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
fledge
The lifecycle CLI + CI gateOne command runs the whole verify pipeline. Becomes the single CI gate the other three hang off.
spec-sync
Spec-as-contractMarkdown specs are contracts; drift between spec and code fails the build. Skip for content-only repos with no module APIs.
augur
Deterministic diff-riskScores each diff proceed / review / block with no LLM. The same risk number gates humans and agents.
attest
Signed provenanceRecords who/what reviewed a change (and the augur verdict) into git notes. The trust ledger CI can verify.
The map, on top
atlas
The coverage mapRenders 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
- ·A git repository with a CI provider (examples below use GitHub Actions).
- ·Homebrew can install the complete corvid-trust bundle; fledge can also install the immutable Trust plugin tag directly.
- ·fledge auto-detects Rust, Node, Go, Python, Ruby, Java, and Swift, so most commands adapt to the stack with no edits.
Six steps
- 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
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
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
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
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):

- 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.
- ☐
fledge trust doctorandfledge trust verifypass locally. - ☐
fledge.tomlexists with a verify lane (or auto-detection covers fmt/lint/test/build). - ☐ spec-sync: a spec is authored for each module API and
specsync checkpasses, or it is explicitly skipped with a one-line reason for content-only repos. - ☐
augur check --range origin/main..HEADreturns a verdict;augur.jsonis gitignored; any block verdict was surfaced, not buried. - ☐
attest verifypasses against a committed.attest.jsonpolicy (or attest is recorded as CI-only). - ☐ The fenced rules block exists exactly once in
AGENTS.md, with one-line pointers in any runner-specific file (CLAUDE.md, a Cursor rule). - ☐
trust.ymlusesCorvidLabs/trust@v1, preserves full git history, grepsAGENTS.mdfor the marker, and is green on a test PR. - ☐ atlas: the repo publishes
badges/coverage.jsonto Pages and shows on the coverage dashboard, or atlas is skipped with a one-line reason (no Pages). - ☐ No em-dash appears in anything you wrote (
git diffis clean of the em-dash character).