Agent skill

Audit Choices

by dzhng in dzhng/skills

Audit the choices an implementing agent made, not its diff — a pure decision audit that traces the session's history into a choices ledger, changes no code, and never blocks an unsupervised run.

MITAuto-check passedAgent Workflows

Install Audit Choices

skills CLI
$ npx skills add dzhng/skills --skill audit-choices -a claude-code

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

GitHub CLI
$ gh skill install dzhng/skills audit-choices --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/dzhng/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/engineering/audit-choices .claude/skills/audit-choices && 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
audit-choices
GitHub stars
1k
Token cost
~2.5k tokens
SKILL.md length
1,497 words
Files
1
Skills in repo
27
Repo updated
First seen
Licence
MIT

At a glance

Audit the choices an implementing agent made, not its diff — a pure decision audit that traces the session's history into a choices ledger, changes no code, and never blocks an unsupervised run.

  • Works in 5 steps: Elicit and trace back. When an… → Triage each choice on evidence. Forced… → State the corrected decision, don't… → …
  • The user wants to review the decisions the AI made on their behalf
  • SKILL.md covers Workflow, The Choices Ledger, Rules and Done
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Audit Choices is an agent skill from dzhng/skills. Audit the choices an implementing agent made, not its diff — a pure decision audit that traces the session's history into a choices ledger, changes no code, and never blocks an unsupervised run. Working code still embeds architecture the user never chose; surface it because future work inherits it. Use when the user wants to review the decisions the AI made on their behalf, before merging or committing AI-implemented work, when integrating a delegated subagent's pass, or when a fix "works" but might be a point fix.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Subagents. The repository describes itself as: Reusable AI agent skills for software factories: explore ideas, write specs, implement, review, and run autonomous research. Works with Claude Code, Codex, and other… The licence is MIT.

When your agent uses it

  • The user wants to review the decisions the AI made on their behalf
  • Committing AI-implemented work
  • Integrating a delegated subagents pass
  • A fix works but might be a point fix

Example prompts

  • “s pass, or when a fix”
  • “/audit-choices”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Elicit and trace back. When an implementer reports done, ask: *"While
  2. Triage each choice on evidence. Forced by the plan, or invented?
  3. State the corrected decision, don't sketch a patch. For each unsound
  4. Bank every choice in the ledger (below), and promote load-bearing
  5. Present the ledger: grouped by verdict, ranked by confidence. The

What it can do on your machine

Read from SKILL.md and the folder at commit d513228. 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

    No scripts in the folder and no shell commands in SKILL.md.

    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

Audit Choices loads about 2.5k tokens when it runs. Until then it costs about 134 tokens; SKILL.md has 1,497 words of instructions outside code blocks.

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

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 dzhng/skills at commit d513228, republished under its MIT licence (© dzhng). 1,497 words, ~2,533 tokens.

Download SKILL.mdSave it as .claude/skills/audit-choices/SKILL.md (or your agent's skills folder).
name
audit-choices
description
Audit the choices an implementing agent made, not its diff — a pure decision audit that traces the session's history into a choices ledger, changes no code, and never blocks an unsupervised run. Working code still embeds architecture the user never chose; surface it because future work inherits it. Use when the user wants to review the decisions the AI made on their behalf, before merging or committing AI-implemented work, when integrating a delegated subagent's pass, or when a fix "works" but might be a point fix.

Audit Choices

Given a good decision, an agent implements it faithfully; wherever the task is underspecified, it makes the decision itself — silently, and the diff won't flag it. Reviewing thousands of changed lines doesn't scale, and it inspects the execution, which was probably fine. The audit that scales is of the choices: surface every decision the implementer made on its own, judge that list, and record the verdicts.

This is about architecture more than bugs. An implementation can work perfectly and still rest on decisions the user never made — a data shape, a storage location, a dependency, an API contract, a tradeoff of memory for speed — and every one of them is load-bearing for future work. The user needs to know them not because they're wrong, but because they now own them.

This is purely a decision audit — it is not about modifying code, and it can be called at any time. The job is to trace back: walk every step this session has taken, and every step each subagent took (a live implementer traces its own; otherwise reconstruct from its reports, transcripts, and diffs), and surface every single decision that was made on the user's behalf that was not in the original spec or prompt. The ledger of those decisions replaces reading the code as the user's review surface — that is the whole point. Acting on the verdicts (redoing an unsound choice, applying a provisional call) belongs to the caller: the implementing workflow mid-run, or the user after reading the report.

Two ways in, same audit:

  • Called by a workflow (per pass or per slice): audit that pass, append its entries to the ledger, and return; the workflow presents the accumulated ledger when it hands back.
  • Called directly by the user: audit the whole body of work in front of you (session, branch, or named change) and present the report immediately. Recommend; change nothing.

Workflow

  1. Elicit and trace back. When an implementer reports done, ask: "While working on this, which choices did you make that you're not confident of? List all." — but treat the self-report as a starting point, not the boundary: agents under-report. Trace the history yourself — the session's steps, subagent reports, diffs, commits — and collect every decision that is in the work but not in the original spec or prompt. Sweep the architectural categories, not just the suspect fixes: data shapes and formats, storage and naming schemes, API contracts and their error behavior, dependencies added, concurrency/perf tradeoffs, scope interpretations, patterns future code will imitate. Auditing your own session, trace your own steps the same way. Choices the plan explicitly delegated to the implementer are discretion, not audit items.

  2. Triage each choice on evidence. Forced by the plan, or invented? Invented ones get the scrutiny: is this the general solution, or a fix shaped to the one failing case? Verdict per choice: sound, unsound, or needs-user — and alongside the verdict, a confidence: how sure the audit is that the user would have made this same call. Confidence is what ranks the report. Reserve needs-user for genuinely user-only calls (taste, product direction, external cost); every needs-user entry records a recommended provisional call that is reversible, so an unsupervised caller can proceed without waiting. The audit never stalls a run: each entry is a judgment handed over for action or review, not a question that halts.

  3. State the corrected decision, don't sketch a patch. For each unsound choice, the entry names the decision the work should be redone from — the property that must hold in general — not an edit to layer on top. A patch on top of a bad decision preserves the decision; the redo itself is the caller's, after the ledger is reviewed.

  4. Bank every choice in the ledger (below), and promote load-bearing sound ones into the plan's handoff so later passes inherit them as givens instead of re-deciding.

  5. Present the ledger: grouped by verdict, ranked by confidence. The audit's deliverable is the ledger, handed to whoever acts next — the calling workflow mid-run, the user at run's end. Each verdict group maps to an action — needs-user (decide, with the provisional calls), unsound (redo, with the corrected decisions), sound (acknowledge: the architecture the user now owns) — and within each group choices are ranked by confidence, least confident first. When the ledger is long, open the report with the two or three least-confident choices overall, whatever their group: the "review these first" line. Sound is not skippable. Only trivial discretion (internal naming, cosmetic calls) compresses to a one-line count.

    Write every entry ELI5 — by default, not on request. The reader didn't live the session: write each entry in the eli5 register — a concrete scenario walked end to end (the triggering event, what the work does today, what the unbuilt alternative would do), every term of art defined at first use, and pseudocode at the level of the decision when the choice is about control flow, ordering, or timing. "A gated ask is dropped, not deferred" is a headline, not an entry. A compressed entry that makes the user ask "explain this one" has failed; the ledger must stand alone without the diff, the spec, or the transcript.

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

The Choices Ledger

A dedicated file that outlives every pass: choices.md beside the plan (specs/<feature>/choices.md when a spec owns the work). One entry per audited choice:

  • When — pass or commit it landed in.
  • The choice — a one-line headline, then the ELI5 scenario: the triggering event, what the work does today, what the unbuilt alternative would do, with terms of art defined in place.
  • The gap — what the plan left unspecified that forced it.
  • The reach — what future work this decision constrains or enables; why the user needs to know it exists.
  • Verdict — sound / unsound / needs-user, with a one-line why. For unsound: the corrected decision to redo from. For needs-user: the recommended provisional call and how to reverse it.
  • Confidence — how sure the audit is that the user would have made the same call (low / medium / high). Ranks the report, ascending.

Rules of the ledger:

  • Banked is settled: a choice already in the ledger (or promoted into the plan) is a given for later passes — never re-listed, never re-decided.
  • The ledger is a plan-quality signal. Entries clustering around one slice or area mean the plan is foggy there — reslice or send that part back through the spec rather than triaging the same class of choice forever.
  • ELI5 survives every rewrite. The entry format above — headline plus the walked scenario with terms defined in place — is the storage format, not presentation polish. When entries are consolidated, merged, re-audited at close, or copied into a final ledger, each surviving entry keeps (or regains) its full scenario. The known failure mode is exactly this compression: a closeout rewrite that shrinks banked entries to their headlines produces a ledger the reader must interrogate — "The checkpoint loads rows in mailbox order and rejects the list when a later reference has an earlier createdAt" reads as settled, but only the walked version (two sessions, per-session sequence numbers that can't be compared, the shared insert-timestamp clock) lets a reader actually judge the choice. A consolidation that drops scenarios has failed even if every fact survives — and so has one that keeps the scenario but leans on labels the build invented ("the retry envelope", "the evidence seam") without defining them where they're used.

Rules

  • "It works" is not a verdict on the choice. The recurring smell is the coincidental fix: a resized buffer, bumped timeout, or special case whose magnitude happens to cover the failing input while the underlying cause stays dormant. Ask what property guarantees the fix in general; if the answer is "this case passes," the choice is unsound even though the code is green.
  • Declared success is the point of maximum risk — the implementer's confidence is highest exactly when its unexamined choices are about to be merged. Never skip the audit because the result looks clean.
  • An empty list on nontrivial work is a red flag, not a pass. Probe: what did the task leave unspecified? Something filled those gaps.
  • The audit changes no code, tests, or build state. Finding an unsound choice is the deliverable, not a license to fix it — record the corrected decision and leave the tree exactly as audited, so the ledger and the tree agree on what the caller is deciding about. Evidence-gathering is fair game: read anything, run the existing tests, write transient probes — but remove every probe before handback.

Done

The audit is done when every invented choice in the pass has a ledger entry with a verdict, every unsound entry names the corrected decision to redo from, every needs-user entry carries a reversible provisional call, and the ledger has been presented — grouped by verdict, least-confident-first within each group, every entry readable ELI5 without follow-up questions — to whoever acts next, with the tree untouched. A handback that shows the diff instead of the choices, or a "fix" applied during the audit, is not done.

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

Files

Just SKILL.md in skills/engineering/audit-choices of dzhng/skills.

Open the folder on GitHubat commit d513228

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in dzhng/skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Audit Choices 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.

Audit Choices compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Audit Choices this skilldzhng/skills1k—~2.5kAutomated safety check: PassMIT
Claude Code Agent Developmentanthropics/claude-plugins-official38k7 repos~2.8kAutomated safety check: PassApache-2.0
Subagent Driven DevelopmentAsvarox/allkaraoke26137 repos~1.2kAutomated safety check: PassNone
Dispatching Parallel Agentsultralisp/ultralisp25840 repos~1.5kAutomated safety check: PassNone
Paseo Advisor Second Opiniongetpaseo/paseo20k1 repos~756Automated safety check: PassCustom licence
Task Observerrebelytics/one-skill-to-rule-them-all3.2k1 repos~11kAutomated safety check: PassCC-BY-4.0

Similar skills

  • Claude Code Agent Development

    anthropics/claude-plugins-official

    Official

    Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.

    38k GitHub starsUsed in 7 repos~2.8k tokens
    Agent WorkflowsAuto-check passed
  • Subagent Driven Development

    Asvarox/allkaraoke

    A skill your agent uses when executing implementation plans with independent tasks in the current session

    261 GitHub starsUsed in 37 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • Dispatching Parallel Agents

    ultralisp/ultralisp

    A skill your agent uses when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies

    258 GitHub starsUsed in 40 repos~1.5k tokens
    Agent WorkflowsAuto-check passed
  • Launches one separate agent through Paseo to give a second opinion on the current task, with a self-contained briefing and no permission to edit files.

    20k GitHub starsUsed in 1 repo~756 tokens
    Agent WorkflowsAuto-check passed
  • Task Observer

    rebelytics/one-skill-to-rule-them-all

    Monitors task execution for skill improvement opportunities.

    3.2k GitHub starsUsed in 1 repo~11k tokens
    Agent WorkflowsAuto-check passed
  • O2 Review Loop

    openobserve/openobserve

    Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.

    22k GitHub stars~3.7k tokensUpdated today
    Agent WorkflowsAuto-check passed

More from dzhng/skills

All 27 skills in this repo
  • Compare screenshots against the intended design, distinguishing approved references from historical baselines.

    1k GitHub stars~2.6k tokensUpdated 4 days ago
    Auto-check passed
  • Claude

    dzhng/skills

    Use Claude Code as an independent claude -p subagent when the user explicitly asks for Claude, wants a second-agent opinion from Claude, or asks to delegate a well-scoped task to Claude.

    1k GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check passed
  • Refactor Clean

    dzhng/skills

    Refactor cleanly instead of layering sediment. An agent skill from dzhng/skills.

    1k GitHub stars~3.1k tokensUpdated 4 days ago
    Auto-check passed
  • Write Skills

    dzhng/skills

    Create or revise agent skills. An agent skill from dzhng/skills.

    1k GitHub stars~2.7k tokensUpdated 4 days ago
    Auto-check passed
  • Codex

    dzhng/skills

    Use the local Codex CLI as an independent second agent. An agent skill from dzhng/skills.

    1k GitHub stars~2.4k tokensUpdated 4 days ago
    Auto-check: warnings
  • Audit Agents

    dzhng/skills

    Audit or rewrite AGENTS.md so it holds only lasting principles.

    1k GitHub stars~847 tokensUpdated 4 days ago
    Auto-check passed

Categories

Questions about Audit Choices

What does Audit Choices do?

Audit the choices an implementing agent made, not its diff — a pure decision audit that traces the session's history into a choices ledger, changes no code, and never blocks an unsupervised run. Audit Choices is an agent skill from dzhng/skills. Audit the choices an implementing agent made, not its diff — a pure decision audit that traces the session's history into a choices ledger, changes no code, and never blocks an unsupervised run.

When should I use Audit Choices?

Audit Choices fits situations like: the user wants to review the decisions the AI made on their behalf; committing AI-implemented work; integrating a delegated subagents pass; A fix works but might be a point fix.

How do I install Audit Choices in Claude Code?

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

How do I install Audit Choices in Codex?

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

Can I use Audit Choices 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 dzhng/skills --skill audit-choices -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/audit-choices, .gemini/skills/audit-choices, .github/skills/audit-choices and .opencode/skills/audit-choices in your project.

What does Audit Choices need to run?

SKILL.md names no scripts, command-line tools or credentials: Audit Choices is instructions for the agent only.

Does Audit Choices 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 Audit Choices 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 Audit Choices use?

Audit Choices 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 Audit Choices use?

About 2.5k tokens (SKILL.md is roughly 10k 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 Audit Choices?

Skills that share tags, products or a category with Audit Choices: Claude Code Agent Development (anthropics/claude-plugins-official, 38k stars), Subagent Driven Development (Asvarox/allkaraoke, 261 stars), Dispatching Parallel Agents (ultralisp/ultralisp, 258 stars) and Paseo Advisor Second Opinion (getpaseo/paseo, 20k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Audit Choices?

dzhng (a GitHub user) maintains it in dzhng/skills, which has 1,022 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 5, 2026.

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