Agent skill

Interlinked Spec Audit

by QuentinCody in QuentinCody/interlinked-cli

Keep prose specs and design docs honest against the code using Interlinked's spec-audit system.

MITAuto-check passedBusiness, Finance & HR

Install Interlinked Spec Audit

skills CLI
$ npx skills add QuentinCody/interlinked-cli --skill interlinked-spec-audit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install QuentinCody/interlinked-cli interlinked-spec-audit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/QuentinCody/interlinked-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/interlinked-spec-audit .claude/skills/interlinked-spec-audit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
interlinked-spec-audit
GitHub stars
178
Token cost
~3.3k tokens
SKILL.md length
1,467 words
Files
2
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

Keep prose specs and design docs honest against the code using Interlinked's spec-audit system.

  • Tasks that involve Architecture decision records
  • SKILL.md covers Load this when, interlinked spec, interlinked findings and interlinked doctest, plus 5 more sections
  • Calls bash
  • Tasks that involve Accounting and bookkeeping

What it does

Interlinked Spec Audit is an agent skill from QuentinCody/interlinked-cli. Keep prose specs and design docs honest against the code using Interlinked's spec-audit system. Load this when extracting a doc's invariants or facts (interlinked spec invariants, spec agenda), when you see [interlinked:spec-drift], [interlinked:spec-marker], [interlinked:spec-xref], or [interlinked:disputed-ground] warnings after editing markdown, when ingesting/triaging an external review report (interlinked findings ingest / status / verify / ack), or when running executable doc examples (interlinked doctest)…

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in Business, Finance & HR, covering Architecture decision records and Accounting and bookkeeping. The repository describes itself as: The harness for your harness. Local hooks, taste enforcement, and developer observability for AI coding agents (Claude Code, Codex, Cursor, Copilot CLI). The licence is MIT.

When your agent uses it

  • Tasks that involve Architecture decision records
  • Tasks that involve Accounting and bookkeeping

Example prompts

  • “s spec-audit system. Load this when extracting a doc”
  • “/interlinked-spec-audit”

What it can do on your machine

Read from SKILL.md and the folder at commit 31b5259. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Interlinked Spec Audit loads about 3.3k tokens when it runs. Until then it costs about 181 tokens; SKILL.md has 1,467 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~181
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from QuentinCody/interlinked-cli at commit 31b5259, republished under its MIT licence (© QuentinCody). 1,467 words, ~3,345 tokens.

Download SKILL.mdSave it as .claude/skills/interlinked-spec-audit/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
interlinked-spec-audit
description
Keep prose specs and design docs honest against the code using Interlinked's spec-audit system. Load this when extracting a doc's invariants or facts (`interlinked spec invariants`, `spec agenda`), when you see `[interlinked:spec-drift]`, `[interlinked:spec-marker]`, `[interlinked:spec-xref]`, or `[interlinked:disputed-ground]` warnings after editing markdown, when ingesting/triaging an external review report (`interlinked findings ingest / status / verify / ack`), or when running executable doc examples (`interlinked doctest`). The system detects and tracks — it never auto-fixes; you write the fix. Covers the fact ledger, findings reconciliation, invariants/agenda, and current-state caveats.

interlinked-spec-audit — keep prose specs honest against code

The spec-audit system is three cooperating substrates plus doctest. Its one policy: detect, never autofix — findings carry evidence and candidate resolutions, but the agent always writes the fix.

  • Fact ledger (interlinked spec) — deterministically extracts the enumerable facts that drift during revision (ID registries like FG-INV-07/B7, count/range claims, headings/ §-refs, backticked paths, <!-- fact:NAME --> markers), merges them cross-file, and flags disagreements ("drift") at edit time.
  • Findings reconciliation (interlinked findings) — ingest an external reviewer's numbered report into a durable corpus, then track each finding to closure (touched by an overlapping edit, or acked with a reason).
  • Invariants + review agenda — extract a doc's invariants into a taxonomy, and generate a standing discovery agenda for the next reviewer.

Load this when

  • Extracting invariants/facts from a design doc, or building a review agenda.
  • You see a [interlinked:spec-*] or [interlinked:disputed-ground] warning after a markdown edit.
  • Ingesting or triaging an external code-review report.
  • Running executable examples embedded in docs.

interlinked spec

Two subcommands, no flags:

bash
interlinked spec agenda                       # → .interlinked/review-agenda.md
interlinked spec invariants <file>            # → .interlinked/policies/<basename>.invariants.md
  • spec agenda — walks cwd, writes a review agenda with three sections: compose-checks (an ID namespace/declared fact constrained from ≥2 files — "read them together, confirm no contradiction"), coverage gaps (a section whose heading matches a kind — format / protocol / crypto-keys / … — but whose body omits that kind's standard concerns), and outstanding deterministic drift, then an open review-findings section appended last. It asks questions, never renders verdicts.
  • spec invariants <file> — for markdown: numbered registry rows + MUST/never/"sole truth" doctrine sentences (fenced code/blockquotes skipped). For code: // INVARIANT: / // SAFETY: comments + assert(/assert! calls. Output is a labeled taxonomy with verbatim quotes + file:line provenance (review context / Tier-2 classification input).

interlinked findings

Review-report ingestion + reconciliation. The CLI operates on review_-prefixed findings.

bash
interlinked findings ingest <report> [--reviewer <name>]   # parse a numbered report into the corpus
interlinked findings status [--all]                        # "N total — X open, Y touched, Z acked"
interlinked findings verify [--write]                      # re-anchor findings whose lines moved
interlinked findings ack <findingId> --reason <text> [--by <name>]
  • ingest parses findings that start at column 0 as N. [severity: high] statement… (severity optional; first repo-path:line token = the anchor; Evidence: line = the quote). bug_class is derived from the statement's first 6 words, so re-ingesting a reworded finding creates a new row (same text merges provenance).
  • status folds the reconciliation sidecar; open findings are what you must close.
  • verify re-checks each finding's anchor against the tree (live / moved / drifted / gone / unverified); --write re-anchors moved rows. verify never changes reconciliation state — it keeps the ledger true, it doesn't close anything.
  • ack appends an acked txn (a later touch never downgrades an ack).
  • An edit that overlaps a finding's cited span (±3 lines) auto-marks it touched.

Storage: corpus .interlinked/findings/corpus.jsonl (append-only, last-write-wins per id)

  • global cache ~/.interlinked/findings-corpus.jsonl; reconciliation sidecar .interlinked/findings/reconciliation.jsonl (states: open/touched/acked). Two-axis model: corpus status (candidate/approved/…) vs. the reconciliation state the CLI reports.

interlinked doctest

For expected output as well as successful execution, use tests contracts import <doc> on explicit json interlinked-contract fences. Ordinary code fences remain illustrative. Import creates proposed cases with the original document hash and quoted example; it never executes them or authorizes policy. Exact observation bindings detect altered expectations; general requirement interpretation stays advisory. Run selected cases explicitly with tests contracts run; use interlinked-verify for the manifest and bounded runners. Existing doctest behavior remains exit-status based. Executes markdown code-fences that opted in with a doctest info-string token, asserting each exits 0. Only tagged fences run (untagged rm -rf examples are never executed).

```bash doctest
interlinked findings status
```

Flags: --path <file|dir> (default cwd), --json. Each block is an independent bash -c (60s timeout); output doctest: P/T block(s) passed, exit 1 on any failure. Caveats (verified): it runs in the CLI's process.cwd(), not --path's directory (run it from the repo root); a missing/typo'd --path silently reports 0/0 and exits 0 (check the total is nonzero); no cd/env/var state carries across blocks; the fence language is ignored (everything runs as bash).

Checks you encounter at edit time

All gated by config spec_checks (default on).

The repository ledger skips Git-ignored files and directory trees, including local archive copies. Tracked files matched by ignore patterns still participate. Incremental refreshes and previews preserve the scope captured when the ledger was built; rebuild after changing ignore or tracking rules. Every build takes a fresh Git ignore snapshot. If Git is unavailable, the bounded filesystem walk still runs with its standard exclusions. Do not rewrite historical snapshots to satisfy a live-repository link warning. After updating the daemon, the next markdown observation refreshes the derived Stop stash; evidence logs stay intact. A fresh spec agenda run can confirm repository scope independently of the daemon's ledger.

PostToolUse single-file (8 checks, severity: warning): spec_dangling_anchor (proven — a [x](#slug) or §N.N ref with no target), spec_numbering, spec_count_claim ("six bets" above a B1..B7 census), spec_pitfall (curated spec falsehoods), spec_claim_untagged, spec_capacity_claim, spec_table_sum (proven — a Total row that doesn't recompute), spec_stage_order.

PostToolUse cross-file drift — on a markdown edit, [interlinked:spec-drift] for count/range/declared-fact/xref drift involving the edited file (≤5/edit; the rest deferred to the evidence log and review agenda).

Quoted code examples, quoted phrases and explicit Evidence:/Example:/input/output fields do not assert live numeric facts or contribute example IDs to the census. Individually formatted identifiers and count tokens remain supported. These rules depend on content, not repository names or review-directory paths. Declared fact: markers must be live markup: markers inside inline code, fenced code or blockquotes are examples, not declarations.

Generic count claims use a scoped identifier census. A README may describe its directory; other documents must mention the namespace or link to its home near the claim before sibling files enter the census. Nearby explicit links can select another document set. A shared noun such as “gates” does not join an unrelated repository-wide identifier namespace. Stop reports a repository snapshot; it does not claim that the current session introduced every finding. Full comparisons, related files, stable finding IDs and observation provenance are retained in spec-drift.jsonl and can be searched with interlinked data search --source spec-drift. The prior session stash is bounded, so first observation is not evidence of when a defect was introduced.

Show full SKILL.md (522 more words)Show less

PreToolUse spec pre-gates (arm after the session's first markdown edit builds the ledger):

  • Introduced declared-marker drift → decision ask ([interlinked:spec-marker], exact-match, zero-FP): a write setting <!-- fact:NAME --> to a value conflicting with other files prompts the human — it's an ask, not a hard block. Response: update every site of the fact (or fix the source of truth first), then retry.
  • Removing a heading other files link to → warning ([interlinked:spec-xref]).
  • Introducing new cross-file drift → warning ([interlinked:spec-drift], introduced-only).

Disputed-ground — reading or editing a file that carries open review findings emits [interlinked:disputed-ground] <file> carries N open review finding(s)… you are building on disputed ground.

Stop nudges (stderr, never block): retained structural marker/link findings, and ingested review findings with neither a touching edit nor an ack. Inferred count/range comparisons are heuristic evidence and never become spec Stop nudges or automatic sibling-edit obligations. Unclassified legacy stash entries also do not qualify. Structural findings take priority before the bounded Stop stash is capped, so advisory volume cannot crowd them out. Old inferred completion entries remain preserved but do not trigger completion reminders or code-signature Stop warnings.

All observed drift remains append-only in spec-drift.jsonl, including heuristic findings; stop_eligible records whether its kind qualifies for a Stop nudge. Search with interlinked data search --source spec-drift --json, or inspect the live tail with interlinked query spec-drift. A quiet Stop does not certify that all prose agrees. After upgrading Interlinked CLI, use the normal build/update and reload workflow in each running project so its daemon loads the new parser and Stop policy. Existing log history and review documents are preserved; the next markdown observation refreshes the derived stash.

How to respond: for inferred count/range drift, first check whether the text is an example, historical quotation, sub-range or a live assertion about the same registry. Preserve quoted review evidence. Only after establishing a real contradiction decide which side is stale, fix it, recount, then check sibling docs stating the same fact. For dangling anchors — fix or qualify the ref. For a marker ask — update all sites, retry. For disputed-ground/open findings — resolve with an edit, or interlinked findings ack <id> --reason.

Config & files (.interlinked/)

findings/corpus.jsonl, findings/reconciliation.jsonl, review-agenda.md, policies/<file>.invariants.md. Disable the checks with {"spec_checks":{"enabled":false}} in guard-rules.

Common workflows

bash
interlinked spec invariants docs/design/big-plan.md   # taxonomy of the doc's invariants
interlinked spec agenda                                # repo-wide review agenda
interlinked findings ingest audit.md --reviewer sol    # triage an external review
interlinked findings status                            # open/touched/acked
# …edit to address findings (overlaps auto-mark "touched")…
interlinked findings ack <id> --reason "deferred to v2; tracked in #412"
interlinked findings verify --write                    # re-anchor moved findings

Current-state notes (honest — verified 2026-07)

  • The findings corpus is local-only despite a "COMMITTED" code comment. The blanket .interlinked/* gitignore has no ! carve-out for findings/, so the corpus, reconciliation log, and agenda do not travel in PR diffs or to teammates. (To actually commit it you'd add !.interlinked/findings/corpus.jsonl to .gitignore.)
  • Cross-file ledger drift is not surfaced in interlinked verify yet — only in the PostToolUse ledger phase, Stop, and spec agenda. Don't expect verify to report it.
  • Statusline spec counters are unpopulated (no live spec heartbeat on the statusline yet).
  • Marker-drift is an ask, not a hard block, and only arms after the session's first markdown edit — the very first markdown write of a fresh daemon is ungated.
  • findings ingest is format-specific (numbered N. [severity] … at column 0); reworded re-ingests create distinct rows.
  • interlinked-verify — the general check catalog and how findings/suppressions work.
  • interlinked-harness — how ask/warning decisions reach you; suppression grammar.
  • interlinked-observability — interlinked collect (backfill Codex sessions into the timeline).

© QuentinCody, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/interlinked-spec-audit of QuentinCody/interlinked-cli.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 31b5259

Compare with similar skills

Interlinked Spec Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Interlinked Spec Audit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Interlinked Spec Audit this skillQuentinCody/interlinked-cli178—~3.3kAutomated safety check: PassMIT
Sandbox Lifecycle Debugvercel-labs/vercel-openclaw-archived117—~809Automated safety check: PassMIT
Longbridge Market Datasickn33/agentic-awesome-skills47k1 repos~1.7kAutomated safety check: PassMIT
Agentic System Designooiyeefei/ccc494—~7.3kAutomated safety check: PassMIT
Merge ReviewSethGammon/Citadel922—~1.7kAutomated safety check: PassMIT
Barchartgauss314/skills246—~5.4kAutomated safety check: PassMIT

Similar skills

  • Sandbox Lifecycle Debug

    vercel-labs/vercel-openclaw-archived

    Official

    Sandbox lifecycle debugging for vercel-openclaw: create, resume, stop, snapshotting, reset, stale-running reconciliation, persistent Sandbox v2 behavior, hot spares, and lifecycle locks.

    117 GitHub stars~809 tokensUpdated 4 mo ago
    Business, Finance & HRAuto-check passed
  • Longbridge Market Data

    sickn33/agentic-awesome-skills

    Real-time quotes, K-line charts, order book, trade ticks, intraday capital flow, market sentiment temperature, trading session schedule, security lists, exchange rates, and IPO calendar for…

    47k GitHub starsUsed in 1 repo~1.7k tokens
    Business, Finance & HRAuto-check passed
  • Prescriptive Q&A workflow for designing agentic pipelines, multi-model councils, sub-agent hierarchies, and tool-loop hardening for any domain.

    494 GitHub stars~7.3k tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check passed
  • Merge Review

    SethGammon/Citadel

    Reviews pending fleet worktree merges before they're accepted.

    922 GitHub stars~1.7k tokensUpdated 7 days ago
    Business, Finance & HRAuto-check passed
  • Barchart

    gauss314/skills

    Quotes, fundamentals, insider, analyst ratings, earnings estimates, financial summary, income/balance/cashflow detail y company profile (delayed 15-20min).

    246 GitHub stars~5.4k tokensUpdated 3 mo ago
    Business, Finance & HRAuto-check passed
  • Full Audit

    AlexZio00/sovereign-skills

    Exhaustive, denominator-driven audit of an entire area (codebase, docs, memory, skills, DB, config).

    139 GitHub stars~6.2k tokensUpdated 14 days ago
    Business, Finance & HRAuto-check passed

More from QuentinCody/interlinked-cli

All 12 skills in this repo
  • Interlinked Cowork

    QuentinCody/interlinked-cli

    Package, test, and operate the experimental Interlinked Cowork plugin.

    178 GitHub stars~1.6k tokensUpdated 6 days ago
    Auto-check passed
  • Interlinked

    QuentinCody/interlinked-cli

    Overview and router for the Interlinked CLI — a local guard, quality-enforcement, simplification-review, semantic-code-search, and observability layer for AI coding agents.

    178 GitHub stars~4.1k tokensUpdated 6 days ago
    Auto-check passed
  • Interlinked Coordination

    QuentinCody/interlinked-cli

    Coordinate with other agents/humans via the optional Interlinked MCP Server, and use local checkpoints & file reservations.

    178 GitHub stars~2.9k tokensUpdated 6 days ago
    Auto-check passed
  • Interlinked Observability

    QuentinCody/interlinked-cli

    Investigate agent activity and JSONL/gzip evidence. An agent skill from QuentinCody/interlinked-cli.

    178 GitHub stars~10k tokensUpdated 6 days ago
    Auto-check passed
  • Interlinked Semantic Index

    QuentinCody/interlinked-cli

    Install and operate Interlinked's optional local semantic function index.

    178 GitHub stars~1.7k tokensUpdated 6 days ago
    Auto-check passed
  • Interlinked Supply Chain

    QuentinCody/interlinked-cli

    Respond to blocked package installs and manage the Interlinked supply-chain allowlist.

    178 GitHub stars~2.8k tokensUpdated 6 days ago
    Auto-check passed

Questions about Interlinked Spec Audit

What does Interlinked Spec Audit do?

Keep prose specs and design docs honest against the code using Interlinked's spec-audit system. Interlinked Spec Audit is an agent skill from QuentinCody/interlinked-cli. Keep prose specs and design docs honest against the code using Interlinked's spec-audit system.

When should I use Interlinked Spec Audit?

Interlinked Spec Audit fits situations like: tasks that involve Architecture decision records; tasks that involve Accounting and bookkeeping.

How do I install Interlinked Spec Audit in Claude Code?

Run `npx skills add QuentinCody/interlinked-cli --skill interlinked-spec-audit -a claude-code`. Or copy the skill folder (skills/interlinked-spec-audit in QuentinCody/interlinked-cli) into .claude/skills/interlinked-spec-audit in your project. Claude Code loads it when a task matches its description.

How do I install Interlinked Spec Audit in Codex?

Run `npx skills add QuentinCody/interlinked-cli --skill interlinked-spec-audit -a codex`. Or copy the skill folder (skills/interlinked-spec-audit in QuentinCody/interlinked-cli) into .agents/skills/interlinked-spec-audit in your project. Codex loads it when a task matches its description.

Can I use Interlinked Spec Audit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add QuentinCody/interlinked-cli --skill interlinked-spec-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/interlinked-spec-audit, .gemini/skills/interlinked-spec-audit, .github/skills/interlinked-spec-audit and .opencode/skills/interlinked-spec-audit in your project.

What does Interlinked Spec Audit need to run?

Going by SKILL.md and its folder, Interlinked Spec Audit needs the command-line tools its instructions call (bash).

Does Interlinked Spec Audit access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Interlinked Spec Audit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Interlinked Spec Audit use?

Interlinked Spec Audit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Interlinked Spec Audit use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Interlinked Spec Audit?

Skills that share tags, products or a category with Interlinked Spec Audit: Sandbox Lifecycle Debug (vercel-labs/vercel-openclaw-archived, 117 stars), Longbridge Market Data (sickn33/agentic-awesome-skills, 47k stars), Agentic System Design (ooiyeefei/ccc, 494 stars) and Merge Review (SethGammon/Citadel, 922 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Interlinked Spec Audit?

QuentinCody (a GitHub user) maintains it in QuentinCody/interlinked-cli, which has 178 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 2, 2026.

Source: QuentinCody/interlinked-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.