From edify
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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/edify:proofThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
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).
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).
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub ddaanet/edify-plugin