skills/proof/SKILL.md
This skill should be used when an artifact needs structured user validation. Triggers on "proof", "validate artifact", "review loop", or when an artifact needs a careful item-by-item read before it ships. Replaces ad-hoc single-turn validation with item-by-item review protocol.
npx skillsauth add ddaanet/agent-core proofInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Item-by-item review loop for planning artifacts. Presents discrete items with per-item verdicts, accumulates decisions, applies as batch. Replaces single-turn "does this look right?" with forced-verdict iteration grounded in Fagan inspection (per-item detection, reader-paraphrase) and cognitive load research (segmentation, forced verdict).
Why a skill, not a reference file: Structure requires enforcement. Enforcement requires gates. Gates require tool calls. The Skill tool invocation is the gate — forces protocol steps into attention focus.
/proof <artifact-path>
Runs inline (no context: fork) — shares the current context window, seeing all loaded artifacts and discussion history. May be invoked directly or by another skill that reaches a review stage.
Emit a state line at every transition point. The act of generating the state line forces the agent to know which state it's in and what actions are available — protocol adherence becomes a side effect of producing the output.
Format:
[proof: <state> <artifact> | decisions: <N> | actions: <action-list>]
reviewing, applying, completeoutline.md)Emission rules:
| Transition | State | Actions shown |
|-----------|-------|---------------|
| Entry (after summary) | reviewing | Full: feedback, proceed, learn, suspend, sync |
| After accumulate | reviewing | Compact: omit actions (user has seen them) |
| After sync | reviewing | Compact |
| Terminal apply | applying N decisions | None |
| Terminal no-change | complete — no changes | None |
Example (entry):
[proof: reviewing outline.md | decisions: 0 | actions: feedback, proceed, learn, suspend, sync]
Example (after 2 decisions accumulated):
[proof: reviewing outline.md | decisions: 2]
Example (terminal): Self-contained sentence form — no pipe-separated segments:
[proof: applying 3 decisions to outline.md]
[proof: complete — no changes to outline.md]
Read the artifact under review. If the artifact path contains a glob pattern (e.g., section-*.md), expand via Glob and read all matching files — present as a single composite review target.
Detect items. Parse artifact structure to identify reviewable items. See references/item-review.md for granularity detection table and splitting indicators. When artifact has no detectable sub-items, it is one item — the loop runs once.
Before item iteration, present:
Present items in document order. Each item:
**Item N of M: [item title]**
[item content — plain text, not blockquote]
Recall: [domain-relevant context if any, or omitted if none]
Verdict? (a)pprove (r)evise (k)ill (s)kip
Per-item recall (FR-3): Before presenting each item, resolve domain-relevant recall entries for that item's topic. Null recall is silent — no "no relevant context found" noise.
Verdicts — 4 explicit, uniform across all artifact types:
Non-verdict input is implicit discussion. Any response that isn't a recognized verdict shortcut enters the discussion sub-loop for that item. The conversational medium makes explicit "discuss" actions unnecessary.
When user provides non-verdict input on an item, enter discussion scoped to that item:
Reword: Restate user feedback as understanding statement: "Understanding: [restatement]. Correct?" Wait for confirmation before proceeding.
Accumulate: Each validated round adds to a per-item decision list (in-memory). Returns to verdict prompt with accumulated understanding when discussion concludes.
Sync: On user request ("sync", "show decisions"), output the full accumulated verdict list across all items.
No direct edits during iteration. Refuse execution-oriented requests (file edits, skill chains to other skills or external plugins). This gate prevents bare-directive bypass of the review loop.
Normal loop actions available throughout iteration, resume review after:
agents/learnings.mdp: semantics)Emit state line after showing decisions:
[proof: reviewing <artifact> | decisions: <N>]
"apply":
Skip semantics: Explicit deferral — affirmative decision to accept as-is without evaluation, not silent omission. Non-blocking — does not prevent apply. Listed prominently in summary with distinct count. No tracking obligation — skipped items do not carry forward as open items or generate pending tasks.
"discard": Abandon all verdicts. Artifact unchanged.
Available during and after item iteration (non-terminal — resume review after):
"revisit": Change verdict for a previously-reviewed item. Identification is flexible — by number, title, or content. Re-enter verdict prompt. Returns to post-iteration state (not back into the linear sequence).
development
Verify a Python function against its intended behavior by writing an icontract contract and checking it with `edify check` (CrossHair), repairing in a loop. Triggers on "formalize", "verify this function", "add a contract and check it", or after writing a function whose correctness matters. The in-context agent holds intent and asks the user when behavior is ambiguous; CrossHair owns the deduction.
tools
Manage git worktrees for parallel task execution. Triggers on "create a worktree", "set up parallel work", "merge a worktree", "branch off a task", or uses the `wt`, `wt merge`, or `wt-rm` shortcuts. Worktree lifecycle: creation, focused sessions, merge ceremony, cleanup, parallel task setup.
testing
Recall behavioral knowledge from project decisions. Triggers on "when to do X", situational patterns, or decision content for recognized situations. Invoke with "/when <trigger>".
tools
Sync edify fragments and portable justfile to match the current plugin version. Detects user-edited files and warns instead of overwriting. Use --force to overwrite conflicts.