Source profileQuality 85/100

team-telnyx/ai/skills/telnyx-ai-assistants-java/SKILL.md

telnyx-ai-assistants-java

AI voice assistants with custom instructions, knowledge bases, and tool integrations.

Source repository stars
201
Declared platforms
0
Static risk flags
0
Last source update
2026-08-04
Source checked
2026-08-04

Decision brief

What it does—and where it fits

AI voice assistants with custom instructions, knowledge bases, and tool integrations.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/team-telnyx/ai --skill "skills/telnyx-ai-assistants-java"
    Safe inspection promptEditorial

    Inspect the Agent Skill "telnyx-ai-assistants-java" from https://github.com/team-telnyx/ai/blob/50f446de5b77867ff751d1a2e65e4c54ba692278/skills/telnyx-ai-assistants-java/SKILL.md at commit 50f446de5b77867ff751d1a2e65e4c54ba692278. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Setup

      All examples below assume client is already initialized as shown above.

      All examples below assume client is already initialized as shown above.
    2. 02

      Installation

      Review the “Installation” section in the pinned source before continuing.

      Review and apply the “Installation” source section.
    3. 03

      Error Handling

      All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:

      All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:Common error codes: 401 invalid API key, 403 insufficient permissions, 404 resource not found, 422 validation error (check field formats), 429 rate limited (retry with exponential backoff).
    4. 04

      Important Notes

      Phone numbers must be in E.164 format (e.g., +13125550001). Include the + prefix and country code. No spaces, dashes, or parentheses.

      Phone numbers must be in E.164 format (e.g., +13125550001). Include the + prefix and country code. No spaces, dashes, or parentheses.Pagination: List methods return a page. Use .autoPager() for automatic iteration: for (var item : page.autoPager()) { ... }. For manual control, use .hasNextPage() and .nextPage().- Phone numbers must be in E.164 format (e.g., +13125550001). Include the + prefix and country code. No spaces, dashes, or parentheses. - Pagination: List methods return a page. Use .autoPager() for automatic iteration:…
    5. 05

      Reference Use Rules

      Do not invent Telnyx parameters, enums, response fields, or webhook fields.

      If the parameter, enum, or response field you need is not shown inline in this skill, read references/api-details.md before writing code.Before using any operation in Additional Operations, read the optional-parameters section and the response-schemas section.Do not invent Telnyx parameters, enums, response fields, or webhook fields.

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score85/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars201SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    team-telnyx/ai
    Skill path
    skills/telnyx-ai-assistants-java/SKILL.md
    Commit
    50f446de5b77867ff751d1a2e65e4c54ba692278
    License
    MIT
    Collected
    2026-08-04
    Default branch
    main
    View the original SKILL.md

    Telnyx AI Assistants - Java

    Installation

    <!-- Maven -->
    <dependency>
        <groupId>com.telnyx.sdk</groupId>
        <artifactId>telnyx</artifactId>
        <version>6.82.0</version>
    </dependency>
    
    // Gradle
    implementation("com.telnyx.sdk:telnyx:6.82.0")
    

    Setup

    import com.telnyx.sdk.client.TelnyxClient;
    import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
    
    TelnyxClient client = TelnyxOkHttpClient.fromEnv();
    

    All examples below assume client is already initialized as shown above.

    Error Handling

    All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:

    import com.telnyx.sdk.models.ai.assistants.AssistantCreateParams;
    import com.telnyx.sdk.models.ai.assistants.InferenceEmbedding;
    AssistantCreateParams params = AssistantCreateParams.builder()
        .instructions("You are a helpful assistant.")
        .name("my-resource")
        .model("openai/gpt-4o")
        .build();
    InferenceEmbedding assistant = client.ai().assistants().create(params);
    

    Common error codes: 401 invalid API key, 403 insufficient permissions, 404 resource not found, 422 validation error (check field formats), 429 rate limited (retry with exponential backoff).

    Important Notes

    • Phone numbers must be in E.164 format (e.g., +13125550001). Include the + prefix and country code. No spaces, dashes, or parentheses.
    • Pagination: List methods return a page. Use .autoPager() for automatic iteration: for (var item : page.autoPager()) { ... }. For manual control, use .hasNextPage() and .nextPage().

    Reference Use Rules

    Do not invent Telnyx parameters, enums, response fields, or webhook fields.

    Core Tasks

    Create an assistant

    Assistant creation is the entrypoint for any AI assistant integration. Agents need the exact creation method and the top-level fields returned by the SDK.

    client.ai().assistants().create()POST /ai/assistants

    ParameterTypeRequiredDescription
    namestringYes
    instructionsstringYesSystem instructions for the assistant.
    tagsarray[string]NoTags associated with the assistant.
    modelstringNoID of the model to use when external_llm is not set.
    toolsarray[object]NoDeprecated for new integrations.
    ...+23 optional params in references/api-details.md
    import com.telnyx.sdk.models.ai.assistants.AssistantCreateParams;
    import com.telnyx.sdk.models.ai.assistants.InferenceEmbedding;
    
    AssistantCreateParams params = AssistantCreateParams.builder()
        .instructions("You are a helpful assistant.")
        .name("my-resource")
        .model("openai/gpt-4o")
        .build();
    InferenceEmbedding assistant = client.ai().assistants().create(params);
    

    Primary response fields:

    • assistant.id
    • assistant.name
    • assistant.model
    • assistant.instructions
    • assistant.createdAt
    • assistant.conversationFlow

    Chat with an assistant

    Chat is the primary runtime path. Agents need the exact assistant method and the response content field.

    client.ai().assistants().chat()POST /ai/assistants/{assistant_id}/chat

    ParameterTypeRequiredDescription
    contentstringYesThe message content sent by the client to the assistant
    conversationIdstring (UUID)YesA unique identifier for the conversation thread, used to mai...
    assistantIdstring (UUID)YesUnique identifier of the assistant.
    namestringNoThe optional display name of the user sending the message
    import com.telnyx.sdk.models.ai.assistants.AssistantChatParams;
    import com.telnyx.sdk.models.ai.assistants.AssistantChatResponse;
    
    AssistantChatParams params = AssistantChatParams.builder()
        .assistantId("550e8400-e29b-41d4-a716-446655440000")
        .content("Tell me a joke about cats")
        .conversationId("42b20469-1215-4a9a-8964-c36f66b406f4")
        .build();
    AssistantChatResponse response = client.ai().assistants().chat(params);
    

    Primary response fields:

    • response.content

    Create an assistant test

    Test creation is the main validation path for production assistant behavior before deployment.

    client.ai().assistants().tests().create()POST /ai/assistants/tests

    ParameterTypeRequiredDescription
    namestringYesA descriptive name for the assistant test.
    destinationstringYesThe target destination for the test conversation.
    instructionsstringYesDetailed instructions that define the test scenario and what...
    rubricarray[object]YesEvaluation criteria used to assess the assistant's performan...
    descriptionstringNoOptional detailed description of what this test evaluates an...
    telnyxConversationChannelobjectNoThe communication channel through which the test will be con...
    maxDurationSecondsintegerNoMaximum duration in seconds that the test conversation shoul...
    ...+1 optional params in references/api-details.md
    import com.telnyx.sdk.models.ai.assistants.tests.AssistantTest;
    import com.telnyx.sdk.models.ai.assistants.tests.TestCreateParams;
    
    TestCreateParams params = TestCreateParams.builder()
        .destination("+15551234567")
        .instructions("Act as a frustrated customer who received a damaged product. Ask for a refund and escalate if not satisfied with the initial response.")
        .name("Customer Support Bot Test")
        .addRubric(TestCreateParams.Rubric.builder()
            .criteria("Assistant responds within 30 seconds")
            .name("Response Time")
            .build())
        .addRubric(TestCreateParams.Rubric.builder()
            .criteria("Provides correct product information")
            .name("Accuracy")
            .build())
        .build();
    AssistantTest assistantTest = client.ai().assistants().tests().create(params);
    

    Primary response fields:

    • assistantTest.testId
    • assistantTest.name
    • assistantTest.destination
    • assistantTest.createdAt
    • assistantTest.instructions
    • assistantTest.description

    Important Supporting Operations

    Use these when the core tasks above are close to your flow, but you need a common variation or follow-up step.

    Get an assistant

    Fetch the current state before updating, deleting, or making control-flow decisions.

    client.ai().assistants().retrieve()GET /ai/assistants/{assistant_id}

    ParameterTypeRequiredDescription
    assistantIdstring (UUID)YesUnique identifier of the assistant.
    callControlIdstring (UUID)NoFilter results by call control id.
    fetchDynamicVariablesFromWebhookbooleanNoWhether to fetch dynamic variables from the configured webho...
    fromstring (E.164)NoStart of the filter range.
    ...+1 optional params in references/api-details.md
    import com.telnyx.sdk.models.ai.assistants.AssistantRetrieveParams;
    import com.telnyx.sdk.models.ai.assistants.InferenceEmbedding;
    
    InferenceEmbedding assistant = client.ai().assistants().retrieve("550e8400-e29b-41d4-a716-446655440000");
    

    Primary response fields:

    • assistant.id
    • assistant.name
    • assistant.createdAt
    • assistant.conversationFlow
    • assistant.description
    • assistant.dynamicVariables

    Update an assistant

    Create or provision an additional resource when the core tasks do not cover this flow.

    client.ai().assistants().update()POST /ai/assistants/{assistant_id}

    ParameterTypeRequiredDescription
    assistantIdstring (UUID)YesUnique identifier of the assistant.
    tagsarray[string]NoTags associated with the assistant.
    namestringNo
    modelstringNoID of the model to use when external_llm is not set.
    ...+27 optional params in references/api-details.md
    import com.telnyx.sdk.models.ai.assistants.AssistantUpdateParams;
    import com.telnyx.sdk.models.ai.assistants.InferenceEmbedding;
    
    InferenceEmbedding assistant = client.ai().assistants().update("550e8400-e29b-41d4-a716-446655440000");
    

    Primary response fields:

    • assistant.id
    • assistant.name
    • assistant.createdAt
    • assistant.conversationFlow
    • assistant.description
    • assistant.dynamicVariables

    List assistants

    Inspect available resources or choose an existing resource before mutating it.

    client.ai().assistants().list()GET /ai/assistants

    import com.telnyx.sdk.models.ai.assistants.AssistantListParams;
    import com.telnyx.sdk.models.ai.assistants.AssistantsList;
    
    AssistantsList assistantsList = client.ai().assistants().list();
    

    Response wrapper:

    • items: assistantsList.data

    Primary item fields:

    • id
    • name
    • createdAt
    • conversationFlow
    • description
    • dynamicVariables

    Import assistants from external provider

    Import existing assistants from an external provider instead of creating from scratch.

    client.ai().assistants().imports()POST /ai/assistants/import

    ParameterTypeRequiredDescription
    providerenum (elevenlabs, vapi, retell)YesThe external provider to import assistants from.
    apiKeyRefstringYesIntegration secret pointer that refers to the API key for th...
    importIdsarray[string]NoOptional list of assistant IDs to import from the external p...
    import com.telnyx.sdk.models.ai.assistants.AssistantImportsParams;
    import com.telnyx.sdk.models.ai.assistants.AssistantsList;
    
    AssistantImportsParams params = AssistantImportsParams.builder()
        .apiKeyRef("my-openai-key")
        .provider(AssistantImportsParams.Provider.ELEVENLABS)
        .build();
    AssistantsList assistantsList = client.ai().assistants().imports(params);
    

    Response wrapper:

    • items: assistantsList.data

    Primary item fields:

    • id
    • name
    • createdAt
    • conversationFlow
    • description
    • dynamicVariables

    Get All Tags

    Inspect available resources or choose an existing resource before mutating it.

    client.ai().assistants().tags().list()GET /ai/assistants/tags

    import com.telnyx.sdk.models.ai.assistants.tags.TagListParams;
    import com.telnyx.sdk.models.ai.assistants.tags.TagListResponse;
    
    TagListResponse tags = client.ai().assistants().tags().list();
    

    Primary response fields:

    • tags.tags

    List assistant tests with pagination

    Inspect available resources or choose an existing resource before mutating it.

    client.ai().assistants().tests().list()GET /ai/assistants/tests

    ParameterTypeRequiredDescription
    testSuitestringNoFilter tests by test suite name
    telnyxConversationChannelstringNoFilter tests by communication channel (e.g., 'web_chat', 'sm...
    destinationstringNoFilter tests by destination (phone number, webhook URL, etc....
    ...+1 optional params in references/api-details.md
    import com.telnyx.sdk.models.ai.assistants.tests.TestListPage;
    import com.telnyx.sdk.models.ai.assistants.tests.TestListParams;
    
    TestListPage page = client.ai().assistants().tests().list();
    

    Response wrapper:

    • items: page.data
    • pagination: page.meta

    Primary item fields:

    • name
    • createdAt
    • description
    • destination
    • instructions
    • maxDurationSeconds

    Get all test suite names

    Inspect available resources or choose an existing resource before mutating it.

    client.ai().assistants().tests().testSuites().list()GET /ai/assistants/tests/test-suites

    import com.telnyx.sdk.models.ai.assistants.tests.testsuites.TestSuiteListParams;
    import com.telnyx.sdk.models.ai.assistants.tests.testsuites.TestSuiteListResponse;
    
    TestSuiteListResponse testSuites = client.ai().assistants().tests().testSuites().list();
    

    Response wrapper:

    • items: testSuites.data

    Primary item fields:

    • data

    Get test suite run history

    Fetch the current state before updating, deleting, or making control-flow decisions.

    client.ai().assistants().tests().testSuites().runs().list()GET /ai/assistants/tests/test-suites/{suite_name}/runs

    ParameterTypeRequiredDescription
    suiteNamestringYesName of the suite.
    testSuiteRunIdstring (UUID)NoFilter runs by specific suite execution batch ID
    statusstringNoFilter runs by execution status (pending, running, completed...
    pageobjectNoConsolidated page parameter (deepObject style).
    import com.telnyx.sdk.models.ai.assistants.tests.testsuites.runs.RunListPage;
    import com.telnyx.sdk.models.ai.assistants.tests.testsuites.runs.RunListParams;
    
    RunListPage page = client.ai().assistants().tests().testSuites().runs().list("suite_name");
    

    Response wrapper:

    • items: page.data
    • pagination: page.meta

    Primary item fields:

    • status
    • createdAt
    • updatedAt
    • completedAt
    • conversationId
    • conversationInsightsId

    Additional Operations

    Use the core tasks above first. The operations below are indexed here with exact SDK methods and required params; use references/api-details.md for full optional params, response schemas, and lower-frequency webhook payloads. Before using any operation below, read the optional-parameters section and the response-schemas section so you do not guess missing fields.

    OperationSDK methodEndpointUse whenRequired params
    Trigger test suite executionclient.ai().assistants().tests().testSuites().runs().trigger()POST /ai/assistants/tests/test-suites/{suite_name}/runsTrigger a follow-up action in an existing workflow rather than creating a new top-level resource.suiteName
    Get assistant test by IDclient.ai().assistants().tests().retrieve()GET /ai/assistants/tests/{test_id}Fetch the current state before updating, deleting, or making control-flow decisions.testId
    Update an assistant testclient.ai().assistants().tests().update()PUT /ai/assistants/tests/{test_id}Modify an existing resource without recreating it.testId
    Delete an assistant testclient.ai().assistants().tests().delete()DELETE /ai/assistants/tests/{test_id}Remove, detach, or clean up an existing resource.testId
    Get test run history for a specific testclient.ai().assistants().tests().runs().list()GET /ai/assistants/tests/{test_id}/runsFetch the current state before updating, deleting, or making control-flow decisions.testId
    Trigger a manual test runclient.ai().assistants().tests().runs().trigger()POST /ai/assistants/tests/{test_id}/runsTrigger a follow-up action in an existing workflow rather than creating a new top-level resource.testId
    Get specific test run detailsclient.ai().assistants().tests().runs().retrieve()GET /ai/assistants/tests/{test_id}/runs/{run_id}Fetch the current state before updating, deleting, or making control-flow decisions.testId, runId
    Delete an assistantclient.ai().assistants().delete()DELETE /ai/assistants/{assistant_id}Remove, detach, or clean up an existing resource.assistantId
    Get Canary Deployclient.ai().assistants().canaryDeploys().retrieve()GET /ai/assistants/{assistant_id}/canary-deploysFetch the current state before updating, deleting, or making control-flow decisions.assistantId
    Create Canary Deployclient.ai().assistants().canaryDeploys().create()POST /ai/assistants/{assistant_id}/canary-deploysCreate or provision an additional resource when the core tasks do not cover this flow.assistantId
    Update Canary Deployclient.ai().assistants().canaryDeploys().update()PUT /ai/assistants/{assistant_id}/canary-deploysModify an existing resource without recreating it.assistantId
    Delete Canary Deployclient.ai().assistants().canaryDeploys().delete()DELETE /ai/assistants/{assistant_id}/canary-deploysRemove, detach, or clean up an existing resource.assistantId
    Assistant Sms Chatclient.ai().assistants().sendSms()POST /ai/assistants/{assistant_id}/chat/smsRun assistant chat over SMS instead of direct API chat.from, to, assistantId
    Clone Assistantclient.ai().assistants().clone()POST /ai/assistants/{assistant_id}/cloneTrigger a follow-up action in an existing workflow rather than creating a new top-level resource.assistantId
    Enhance Assistant Instructionsclient.ai().assistants().instructions().enhance()POST /ai/assistants/{assistant_id}/instructions/enhanceCreate or provision an additional resource when the core tasks do not cover this flow.assistantId
    List scheduled eventsclient.ai().assistants().scheduledEvents().list()GET /ai/assistants/{assistant_id}/scheduled_eventsFetch the current state before updating, deleting, or making control-flow decisions.assistantId
    Create a scheduled eventclient.ai().assistants().scheduledEvents().create()POST /ai/assistants/{assistant_id}/scheduled_eventsCreate or provision an additional resource when the core tasks do not cover this flow.telnyxConversationChannel, telnyxEndUserTarget, telnyxAgentTarget, scheduledAtFixedDatetime, +1 more
    Get a scheduled eventclient.ai().assistants().scheduledEvents().retrieve()GET /ai/assistants/{assistant_id}/scheduled_events/{event_id}Fetch the current state before updating, deleting, or making control-flow decisions.assistantId, eventId
    Delete a scheduled eventclient.ai().assistants().scheduledEvents().delete()DELETE /ai/assistants/{assistant_id}/scheduled_events/{event_id}Remove, detach, or clean up an existing resource.assistantId, eventId
    Add Assistant Tagclient.ai().assistants().tags().add()POST /ai/assistants/{assistant_id}/tagsCreate or provision an additional resource when the core tasks do not cover this flow.tag, assistantId
    Remove Assistant Tagclient.ai().assistants().tags().remove()DELETE /ai/assistants/{assistant_id}/tags/{tag}Remove, detach, or clean up an existing resource.assistantId, tag
    Get assistant texmlclient.ai().assistants().getTexml()GET /ai/assistants/{assistant_id}/texmlFetch the current state before updating, deleting, or making control-flow decisions.assistantId
    Add Assistant Toolclient.ai().assistants().tools().add()PUT /ai/assistants/{assistant_id}/tools/{tool_id}Modify an existing resource without recreating it.assistantId, toolId
    Remove Assistant Toolclient.ai().assistants().tools().remove()DELETE /ai/assistants/{assistant_id}/tools/{tool_id}Remove, detach, or clean up an existing resource.assistantId, toolId
    Test Assistant Toolclient.ai().assistants().tools().test()POST /ai/assistants/{assistant_id}/tools/{tool_id}/testTrigger a follow-up action in an existing workflow rather than creating a new top-level resource.assistantId, toolId
    Get all versions of an assistantclient.ai().assistants().versions().list()GET /ai/assistants/{assistant_id}/versionsFetch the current state before updating, deleting, or making control-flow decisions.assistantId
    Get a specific assistant versionclient.ai().assistants().versions().retrieve()GET /ai/assistants/{assistant_id}/versions/{version_id}Fetch the current state before updating, deleting, or making control-flow decisions.assistantId, versionId
    Update a specific assistant versionclient.ai().assistants().versions().update()POST /ai/assistants/{assistant_id}/versions/{version_id}Create or provision an additional resource when the core tasks do not cover this flow.assistantId, versionId
    Delete a specific assistant versionclient.ai().assistants().versions().delete()DELETE /ai/assistants/{assistant_id}/versions/{version_id}Remove, detach, or clean up an existing resource.assistantId, versionId
    Promote an assistant version to mainclient.ai().assistants().versions().promote()POST /ai/assistants/{assistant_id}/versions/{version_id}/promoteTrigger a follow-up action in an existing workflow rather than creating a new top-level resource.assistantId, versionId
    List MCP Serversclient.ai().mcpServers().list()GET /ai/mcp_serversInspect available resources or choose an existing resource before mutating it.None
    Create MCP Serverclient.ai().mcpServers().create()POST /ai/mcp_serversCreate or provision an additional resource when the core tasks do not cover this flow.name, type, url
    Get MCP Serverclient.ai().mcpServers().retrieve()GET /ai/mcp_servers/{mcp_server_id}Fetch the current state before updating, deleting, or making control-flow decisions.mcpServerId
    Update MCP Serverclient.ai().mcpServers().update()PUT /ai/mcp_servers/{mcp_server_id}Modify an existing resource without recreating it.mcpServerId
    Delete MCP Serverclient.ai().mcpServers().delete()DELETE /ai/mcp_servers/{mcp_server_id}Remove, detach, or clean up an existing resource.mcpServerId
    List Toolsclient.ai().tools().list()GET /ai/toolsInspect available resources or choose an existing resource before mutating it.None
    Create Toolclient.ai().tools().create()POST /ai/toolsCreate or provision an additional resource when the core tasks do not cover this flow.type, displayName
    Get Toolclient.ai().tools().retrieve()GET /ai/tools/{tool_id}Fetch the current state before updating, deleting, or making control-flow decisions.toolId
    Update Toolclient.ai().tools().update()PATCH /ai/tools/{tool_id}Modify an existing resource without recreating it.toolId
    Delete Toolclient.ai().tools().delete()DELETE /ai/tools/{tool_id}Remove, detach, or clean up an existing resource.toolId

    For exhaustive optional parameters, full response schemas, and complete webhook payloads, see references/api-details.md.

    Alternatives

    Compare before choosing

    Computed 10023,781

    alirezarezvani/claude-skills

    app-store-optimization

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

    Computed 1004,922

    dotnet/skills

    migrate-vstest-to-mtp

    Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing

    Computed 984,922

    dotnet/skills

    maui-dependency-injection

    Guidance for configuring dependency injection in .NET MAUI apps — service registration in MauiProgram.cs, lifetime selection (Singleton / Transient / Scoped), constructor injection, Shell navigation auto-resolution, platform-specific registrations, and testability patterns. USE FOR: "dependency injection", "DI setup", "AddSingleton", "AddTransient", "AddScoped", "service registration", "constructor injection", "IServiceProvider", "MauiProgram DI", "register services", "BindingContext injection".

    Computed 983,251

    davepoon/buildwithclaude

    circleci-automation

    Automate CircleCI tasks via Rube MCP (Composio): trigger pipelines, monitor workflows/jobs, retrieve artifacts and test metadata. Always search tools first for current schemas.