Skip to content

For agents and humans

Integrate the
trust toolchain.

Point an agent at this page, or paste the whole playbook to one with no web access. It has everything needed to add fledge, spec-sync, augur, and attest to any project, publish live coverage with atlas, and make the toolchain stick so future sessions keep using it.

Hand it to an agent

Two ways, depending on whether the agent can browse.

Share the URL

For an agent with web access. It fetches this page and follows it.

No web access

Copies the entire self-contained playbook. Also at /integrate.md (raw).

What you're wiring in

Two tiers. Four tools run one gate: contract → lifecycle → risk → trust. Then atlas maps the result, so the gate is visible to everyone.

The gate

The map, on top

atlas

The coverage map

Renders spec coverage as a living badge and an interactive map, published to Pages on every push and rolled up on the coverage dashboard. The map on top of the gate, not a gate step.

Prerequisites

Six steps

  1. 1

    Trust: adopt one policy and one gate

    Install the stable Trust bundle or immutable plugin tag, preview adoption, and commit the generated policy. Adoption is conservative and will not overwrite an existing workflow or verification lane without review.

    # Install (pick one)
    brew install CorvidLabs/tap/corvid-trust
    fledge plugins install CorvidLabs/trust@v1.0.0
    
    fledge trust adopt --dry-run
    fledge trust adopt
    fledge trust doctor

    Keep a real lifecycle lane in fledge.toml (only steps the stack has):

    [lanes.verify]
    description = "The single CI gate"
    steps = ["fmt", "lint", "test", "build"]
    
    # Run the whole gate with one command
    # $ fledge lanes run verify
  2. 2

    spec-sync: contracts that fail the build on drift

    SpecSync 5 validates canonical module contracts and can enforce the verified delivery lifecycle. Existing projects preview change adoption before enabling it; new projects receive the SDD policy during init.

    specsync init
    specsync change adopt --dry-run   # existing projects
    specsync change adopt
    specsync agents install --claude --cursor --codex --gemini
    specsync check --strict
  3. 3

    augur: score the diff before it merges

    Deterministic, no LLM. Score the staged change or a branch range, and emit JSON for attest. A block verdict is a hard stop: do not run attest or finish on a block, surface it and split or de-risk. If there is no upstream branch yet, score --staged only.

    augur check --staged                          # before a commit
    augur check --range origin/main..HEAD --json > augur.json
    echo "augur.json" >> .gitignore               # per-run artifact, not committed
  4. 4

    attest: record the trust decision

    After a green verify lane and a non-block augur verdict, sign provenance (reviewer, tests, the augur verdict) into git notes, then verify a range against a committed policy. Only pass --tests-passed if the lane actually passed.

    attest sign --commit HEAD \
      --reviewer agent:claude --from-augur augur.json --tests-passed
    
    # Create .attest.json (require a reviewer + tests-passed), commit it, then:
    attest verify --range origin/main..HEAD --policy .attest.json
  5. 5

    atlas: publish a living coverage badge

    Optional but recommended once specs exist. atlas renders your spec coverage as a self-contained SVG badge and an interactive map, and publishes them to GitHub Pages on every push, so a README badge and the CorvidLabs coverage dashboard track your main automatically. Add a .atlasignore to scope coverage to real source (exclude build output, vendored deps, generated code).

    # Easiest: Actions tab -> New workflow -> "Atlas spec coverage" (CorvidLabs template).
    # Or add the step to a Pages workflow directly:
    - uses: CorvidLabs/fledge-plugin-atlas@v1
      with:
        path: .
        output-dir: _site/badges
    # Enable Pages once: Settings -> Pages -> Source: GitHub Actions.

    Then add the badge to your README (swap in your Pages slug):

    ![spec coverage](https://img.shields.io/endpoint?url=https://<owner>.github.io/<repo>/badges/coverage.json)
  6. 6

    Make it stick: persist the toolchain so future sessions cannot forget

    Wiring it once is worthless if the next session forgets. Write the canonical rules block into AGENTS.md at the repo root (read natively by Codex, Cursor, Copilot, Aider, Windsurf, Zed). Create AGENTS.md if absent. In any runner-specific file that exists (CLAUDE.md, a .cursor/rules/*.mdc with alwaysApply: true, .github/copilot-instructions.md), add a one-line pointer to AGENTS.md instead of a second copy. The block is fenced so a re-run replaces it in place rather than duplicating. The CI step in the next section greps for this marker, so deleting the block fails the build: the rule is enforced, not just remembered.

    <!-- CorvidLabs trust toolchain: BEGIN (managed, do not edit inside) -->
    ## CorvidLabs trust toolchain (standing rules)
    
    This repo is governed by four CLIs. Every session MUST use them; never bypass or weaken them.
    
    - fledge: run `fledge lanes run verify` before calling any change done. It must pass.
    - spec-sync: when you change a module with a *.spec.md, update the spec, then `specsync check`. (skipped: <reason>, if content-only)
    - augur: `augur check --staged` before a commit; `augur check --range origin/main..HEAD` before merge. A block verdict is a hard stop, never auto-overridden.
    - attest: after a green lane, `attest sign --commit HEAD --reviewer agent:<id> --from-augur augur.json --tests-passed`.
    
    CI enforces the same gate (.github/workflows/trust.yml) and fails if this block is missing. Brand rule: no em-dash characters in anything you write.
    <!-- CorvidLabs trust toolchain: END -->

One CI gate

Drop this in .github/workflows/trust.yml. augur enforces from day one; spec-sync and attest stay soft until specs and attestations land. The last step greps AGENTS.md for the rules marker, so removing the standing instructions fails the build. This mirrors the gate this very site runs.

name: trust
on: [pull_request]

permissions:
  contents: read

jobs:
  trust:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
        with:
          fetch-depth: 0

      - uses: CorvidLabs/trust@v1
        id: trust

      # Durability: fail if the standing rules block was removed
      - run: grep -q "CorvidLabs trust toolchain: BEGIN" AGENTS.md

Definition of done

An agent has finished when every line is true. Report each one.

Go deeper