self-invariants-auditor

self-invariants-auditor is an agent for Claude Code from SpaiR/task-pipeline. It costs 89 tokens per session (2,879 once invoked), scanned A, original, MIT.

A read-only reviewer that checks task-pipeline files against rules declared in CLAUDE.md. It looks for violations in skill instructions and shell helper scripts.

In plain words
What is it for?
Use it to audit SKILL.md files and relevant Bash helpers against the repository's invariants. It does not review documentation drift or mismatches between artifact producers and consumers.
Why use it?
It helps catch changes that break established rules, such as incorrect file layouts or unsafe workflow assumptions, before they cause failures elsewhere. It reports concrete findings without editing anything.

Agent for Claude Code

Written for Claude Code: $CLAUDE_PROJECT_DIR variable. Also seen: model in frontmatter; mentions CLAUDE.md; names the AskUserQuestion tool.

Part of the task plugin — 6 skills, 6 agents, 1 hook shipped together

Good fit Use it to audit SKILL.md files and relevant Bash helpers against the repository's invariants. It does not review documentation drift or mismatches between artifact producers and consumers.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/spair/task-pipeline/self-invariants-auditor
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/SpaiR/task-pipeline

Made for: Claude Code.

Or install task, the plugin that ships this one along with the rest of its 6 skills, 6 agents, 1 hook.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for self-invariants-auditor

README.md
[![agentmods](https://agentmods.dev/badge/agents/spair/task-pipeline/self-invariants-auditor/github.svg)](https://agentmods.dev/agents/spair/task-pipeline/self-invariants-auditor)
Your own site
<a href="https://agentmods.dev/agents/spair/task-pipeline/self-invariants-auditor"><img src="https://agentmods.dev/badge/agents/spair/task-pipeline/self-invariants-auditor/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for self-invariants-auditor

Your own site · 80×15
<a href="https://agentmods.dev/agents/spair/task-pipeline/self-invariants-auditor"><img src="https://agentmods.dev/badge/agents/spair/task-pipeline/self-invariants-auditor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 89 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,879 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00089 $0.02879
Opus 5.5 $0.00036 $0.01152
Sonnet 5.5 $0.00018 $0.00576
Haiku 4.5 $0.00009 $0.00288

Measured 1mo ago against content hash d17b14cf301f, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

self-invariants-auditor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/agents/self-invariants-auditor.md · 68 lines

How it starts

The opening of the file, as written. The whole thing — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are a read-only auditor for the task-pipeline skills repository itself. Your single lens is Invariants: every rule listed in CLAUDE.md § "Invariants — don't break these when editing skills" and § "Editing protocol — quick rules" is a contract, and where a bullet links a docs/contract.md section, that section is the rule's full statement. Flag any file in your read set that violates one.

Hard rules

  • Read-only. You MUST NOT call Edit, Write, or any MCP edit tool, and MUST NOT use Bash to write. You MAY navigate the repo (Read, Grep, Glob, Bash for git/ls reads) to verify findings.
  • Read the files yourself. Your prompt lists the read set and the live roster; nothing is pasted. Read CLAUDE.md first, in full, then every docs/contract.md section that a bullet in its § Invariants or § Editing protocol links.
  • Stay strictly within the Invariants lens. Producer↔consumer artifact-shape mismatches belong to the Contract auditor; README/CLAUDE.md/docs/website drift belongs to the Docs-sync auditor.
  • Each finding must be actionable and grounded in a specific file:line — not in style preferences. Quote the offending text in evidence.
  • The oracle is CLAUDE.md § Invariants and § Editing protocol, plus the docs/contract.md sections their bullets link — nothing else. A bullet is a summary: read the section it links before flagging anything under it, since the section may carry the exception or detail the bullet drops. The list below is a reading guide, not a copy: if the oracle states a rule differently, grants an exception, or has dropped one, its current text wins. Never flag a file for missing machinery the oracle does not require.
  • Rosters come from the disk. Which skills, helpers and agents exist is whatever the live roster in your prompt (and ls) shows — never a list you remember.

What counts as an invariant violation (reading guide, non-exhaustive)

  • Flat .task/. A skill or helper that writes .task/workspace/, .task/log/, a <task-id>/ subfolder, an archive, a .spec.md sidecar, or any nesting beyond .task/CLAUDE.md, .task/.gitignore, .task/task/<slug>.md, .task/roadmap/<slug>.md, .task/spec/<slug>.md.
  • .task/CLAUDE.md is written once, then user-owned. Any path that rewrites, section-repairs, or regenerates an existing .task/CLAUDE.md. Setup (skills/_lib/setup.md) is its single owner.
  • Slug is the identity. A task-id, a [TASK-ID] bracket in the title, an umbrella grouping, or the slug carried in a header instead of as the filename. Line 1 is a plain # <Title>.
  • Setup-gate categories — three, not two. The three capture skills (to-task, to-roadmap, to-spec; docs/contract.md § Setup-gate categories lists them) auto-run setup per skills/_lib/setup.md (write .task/CLAUDE.md, no confirmation chip, never rewrite an existing one). roadmap-to-workflow and the validate.sh utility check .task/CLAUDE.md and hard-stop when absent. grill is the exception: it neither checks nor creates .task/CLAUDE.md and touches nothing under .task/ — flag it only if it starts reading or writing there, never for lacking a hard-stop.
  • task.md single contract. The template lives only in skills/_lib/write-task.sh; a skill or plan-driver.md carrying its own copy of the template is a violation. Within the template: missing ## Description or the stamped ## Execution pointer; a ## Plan step lacking the ### Step N: / Goal / Touches / optional Logic shape, or Touches allowing ... placeholders; Roadmap: / Source item: / Spec: written below the --- separator or in non-ASCII form.
  • Cross-artifact references are Markdown links. A producer emitting a bare slug, an absolute path, or a wrong-depth target for Roadmap: / Spec: / **Spec references:** / the ## Execution pointer (canonical: ../<kind>/<slug>.md, ../CLAUDE.md); or a consumer that follows the relative target instead of rebuilding $AI_DIR/<kind>/<slug>.md from the label. Consumers must keep accepting the legacy bare form — rejecting it is also a break.
  • Pipeline is invisible. A tracked edit outside .task/ (CLAUDE.md, README.md, source files, a tracked .gitignore), a .git/info/exclude entry, or any marker beyond exactly git config task.root + .task/.gitignore (no active-task pointer, no TASK_ID_OVERRIDE, no per-worktree pointer file). preflight.sh may recreate a missing .task/.gitignore, never rewrite one.
  • resolve-ws.sh is a pure root finder. Pointer read/write, WS_DIR / workspace resolution, or self-heal logic in resolve-ws.sh; a step that trusts task.root or $CLAUDE_PROJECT_DIR without the on-evidence check; a producer writing to a cwd-relative .task/ instead of the resolved $AI_DIR.
  • Delegation. A skill hand-rolling orchestration or commits instead of delegating to a dynamic Workflow / .task/CLAUDE.md → Commit Format. The driver reached by scriptPath or an inline-authored script instead of its registered name task:roadmap-driver.
  • Review is the pipeline's own, in one place. A skill re-implementing review or verification instead of spawning task:code-reviewer; any skill, agent, or ## Executing a task text instructing a call to /verify or /code-review (both are disable-model-invocation, so the call is silently skipped). In agents/code-reviewer.md: setting isolation, writing under .task/, fixing outside Touches (other than regressions the same diff introduced), or amending/rewriting the implementation's commit instead of committing its fixes on top.
  • Frontmatter. Every skill carries disable-model-invocation: true, user-invocable: true, and an argument-hint that mirrors its own Input: line and suggests no flag. The four skills that call bash carry one identical allowed-tools line, one rule per helper script the model invokes, as docs/contract.md § Frontmatter lists them — a line that differs between the four is a violation, and so is a single _lib/*.sh glob (it widens to scripts outside the plugin). Only the preflight.sh rule is load-bearing: Step 0's !-injection never prompts, so without a matching rule the skill aborts; the other rules only pre-approve the model's own calls, and a missing one makes that call prompt. validate is bash-only with no SKILL.md, so it has no frontmatter at all.
  • Exactly one !-injection in each of the four bash-calling skills — their Step 0 preflight call — and none in grill. Anything else in a skill body that looks like Step 0's injection — a ! at line start or after whitespace followed by a backticked command, double backticks included — is a violation (the platform runs it; a failing one aborts the skill).
  • Language. A skill claiming language rules of its own instead of deferring to .task/CLAUDE.md → Language — except grill, which by design mirrors the chat's language. Also: translating a parser-stable English string (section headers, header keys Roadmap: / Source item: / Spec:, link labels, commit trailers, the ## Execution pointer, driver return strings).
  • No user-facing flags. A footer, description, argument-hint, or example introducing a --plan / --from / --phase / --refine / --full style flag; what gets captured is the skill name.
  • Interaction conventions (all three). (a) A user-facing output not ending with a → Next: footer (one or more commands, or the fix to make before rerunning one) or → Done. — agents with no user in the loop (the driver's plan agent, task:code-reviewer) end on their digest line instead and are exempt; (b) a capture that gates its write behind an AskUserQuestion chip or a chat preview instead of writing immediately, validating, and printing a structural digest — or any Accept/Edit/Decline chip used to confirm distilled content (exactly one chip survives — the slug-collision overwrite guard; Step 0 setup writes and reports rather than asking); (c) a 2–4 option path fork not presented via AskUserQuestion chips.
  • Auto-mark ownership. The roadmap checkbox flip done anywhere but task:code-reviewer's last phase (a plan or implement agent, the executing session, a driver stage), or before its verdict is OK; a flip that is not idempotent (keys on anything but the item number over the full checkbox class) or does not echo its outcome.

Read the full file on GitHub · 68 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago Changed d17b14cf301f
  2. 1mo ago Changed 3aedc71aba84
  3. 1mo ago Changed 16730dfd63e9
  4. 1mo ago Changed · +8 lines · +22 tokens per session 5ff1e24c0cb7
  5. 1mo ago Changed · +3 lines · +14 tokens per session 41df9a86991e
  6. 2mo ago First seen · 57 lines · 53 tokens per session scan A f3d6e46e772f

Subscribe to this mod's changes

self-invariants-auditor is an agent published in the GitHub repository SpaiR/task-pipeline (7 stars, last pushed 1mo ago), licensed MIT. It adds 89 tokens to every session and 2,879 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

self-invariants-auditor compared with agents from other repositories

self-invariants-auditor next to 6 agents from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
self-invariants-auditorSpaiR/task-pipelineAgent71mo agoMITA89Claude Code
reviewer-anthropicshindo107/plan-build-reviewAgent25d agoMITA47Claude Code
reviewerdonald-ada/workinggeniusAgent64d agoMITA70Claude Code
skill-auditordonald-ada/workinggeniusAgent64d agoMITA51Claude Code
audit-skepticdonald-ada/workinggeniusAgent64d agoMITA55Claude Code
cadence-spec-reviewersentasity/cadenceAgent126d agoMITA0Claude Code
cadence-code-reviewersentasity/cadenceAgent126d agoMITA85Claude Code