> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cortex-labs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Write and test a reusable skill

> Publish a small SKILL.md procedure and verify its supported chat or agent consumption path.

This exercise creates a short evidence-checking procedure. Use your own permitted passage and one question you can verify.

You need Forge authoring and a chat or agent context that can consume the skill. Agent-definition authoring also requires Vantage access.

<Steps>
  <Step title="Write one bounded procedure">
    Open **Forge → Skills** and create a skill. Use a stable name such as `check-source-support`.

    ```markdown theme={null}
    ---
    name: check-source-support
    description: Checks a short answer against the source material supplied in the task.
    compatibility: both
    requires-tools: []
    ---

    Read the supplied answer and source passage.
    Identify each material claim.
    For each claim, quote its supporting passage or mark support as missing.
    Separate direct support from inference.
    Preserve contradictions and state the limits of the supplied material.
    ```

    This procedure uses supplied text and requires no tool. Add real requirements when a revised procedure needs retrieval or another capability.
  </Step>

  <Step title="Inspect the bundle">
    Check that `name` matches the stored handle. The name remains fixed after creation.

    Add only resources that the procedure needs. Reference their relative paths in the instructions. A plain chat receives the skill document; an agent receives its resource folder too.

    Keep the document within 64 KiB. A version permits up to 32 resource files, with a 10 MiB file limit. HTML and SVG resources are refused.
  </Step>

  <Step title="Publish a version">
    Inspect the intended visibility and remove private examples that its audience must not receive. Publish the version and retain its number.

    Required tool IDs must come from the supported declarable vocabulary. A requirement grants no tool access.
  </Step>

  <Step title="Test the intended consumption path">
    In a permitted plain chat, enable the published skill and supply your short answer and source passage. Inspect supported claims and missing support.

    Test `/<skill-handle>` separately through the plain-chat slash menu. Agent chats take skills from their agent definition and refuse this slash route.

    For agent use, add the published skill to a permitted definition. Test a new Explorer turn with the intended resources available.
  </Step>

  <Step title="Check a failed requirement">
    If the procedure declares tools, inspect a context where one is unavailable. Enablement can remain on with a warning. Slash invocation is refused when requirements are unmet.

    Confirm that the procedure reports the limitation and that no requirement supplies additional authority.
  </Step>
</Steps>

Compare the result with your own source assessment. Revise the draft and publish another version when needed. Review both successful and unsuccessful cases.

See [Configure a reusable agent definition](/vantage/create-reusable-methods/agent-definition) and [Publish, upgrade, and revoke reusable definitions](/vantage/create-reusable-methods/publish-upgrade-revoke).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.