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

# Conform an agent package

> Run conformance on a built package, read the flags, fix or acknowledge them, and go green.

This guide walks through checking a built agent package against the spec, acting on the flags, and getting an exit `0` result. It assumes you have already built a package — a directory containing `manifest.yaml` and its source files.

No API key or network connection is required. The conformance CLI runs the deterministic lanes only.

<Steps>
  <Step title="Run conformance">
    Point `conform` at the package directory:

    ```bash theme={null}
    jstm agent conform ./invoice-summarizer
    ```

    You get a lane-grouped report and a verdict line ending in `(exit 0)` or `(exit 1)`. A non-zero exit means there is at least one blocking flag, or a lane couldn't run.

    For machine-readable output:

    ```bash theme={null}
    jstm agent conform ./invoice-summarizer --json
    ```
  </Step>

  <Step title="Read the flags">
    Each flag names a rule, the target it lands on, a copyable id, and a one-line rationale:

    ```text theme={null}
      [error] SCHEMA_NAME_REQUIRED  (manifest.name)  id=a1edffb8…
          name is missing
    ```

    `[error]` flags fail the run by default. `[warning]` flags are advisory. See [Reading the flag report](/features/conformance/flag-report) for the full anatomy and exit-code rules.
  </Step>

  <Step title="Fix what's real">
    Most `schema` flags are real, mechanical problems: a missing required field, a bad enum, an out-of-range value, a dangling file reference. Edit the package and re-run.

    ```bash theme={null}
    jstm agent conform ./invoice-summarizer
    ```

    Each fix drops a flag from the report. Iterate until only flags you intend to keep remain.
  </Step>

  <Step title="Acknowledge what you accept">
    Some flags are deliberate — an internal agent with no public repo, or a known spec residue. Acknowledge them so they stop blocking, without hiding them.

    To confirm the run goes green, suppress for this run only:

    ```bash theme={null}
    jstm agent conform ./invoice-summarizer --ignore a1edffb898bc138e7cbd8b41025af29e
    ```

    To keep the acknowledgement, commit a reasoned entry next to the package:

    ```yaml conformance-ignore.yaml theme={null}
    ignores:
      - rule: SCHEMA_REPO_RECOMMENDED
        target: manifest.repo
        violation_class: missing_optional_field
        reason: "Internal agent; no public repo by design."
        accepted_by: your-name
        accepted_at: 2026-06-24
    ```

    Re-run. The flag moves to the ignored set and the run goes green.

    ```bash theme={null}
    jstm agent conform ./invoice-summarizer --show-ignored
    # … active flags …
    # ignored:
    #   [warning] SCHEMA_REPO_RECOMMENDED  (manifest.repo)  id=…
    # PASS: … ignored=1 (exit 0)
    ```

    See [Acknowledging flags](/features/conformance/ignores) for the full ignore, allowlist, and baseline workflow.
  </Step>

  <Step title="Optional: adopt on an existing package with a baseline">
    If a package starts with many flags you don't want to fix right now, snapshot them all so only new drift surfaces afterward:

    ```bash theme={null}
    jstm agent conform ./invoice-summarizer --write-baseline
    # → wrote baseline allowlist: invoice-summarizer/conformance-ignore.yaml
    ```
  </Step>

  <Step title="Wire it into CI">
    `conform` exits `0` on pass and `1` on fail, so it drops straight into a pipeline:

    ```bash theme={null}
    jstm agent conform ./invoice-summarizer --json --fail-on error
    ```

    `--fail-on error`, the default, fails on `error` flags only. `--fail-on none` makes all flags advisory — the run still fails if a required lane couldn't run, so "we didn't check" never passes.
  </Step>
</Steps>

## Common options at a glance

| You want to                           | Use                                                  |
| ------------------------------------- | ---------------------------------------------------- |
| Machine-readable output               | `--json`                                             |
| Check against a specific spec version | `--spec v0.5`                                        |
| Run only some lanes                   | `--source schema` or `--source schema,spec_conflict` |
| Change the fail threshold             | `--fail-on error` or `--fail-on none`                |
| Suppress a flag this run              | `--ignore <id>` or `--ignore-rule <rule>`            |
| Use a specific allowlist file         | `--ignore-file <path>`                               |
| Snapshot current flags                | `--write-baseline`                                   |
| Show suppressed flags                 | `--show-ignored`                                     |

Full details in the [`jstm agent conform` reference](/cli/agent-conform).
