From silver-bullet
Validates CONTEXT.md artifacts ensuring all discussion points are resolved with specific locked decisions or Claude's Discretion, decisions are non-vague, and no contradictions exist.
How this skill is triggered — by the user, by Claude, or both
Slash command
/silver-bullet:review-context <context-path><context-path>The summary Claude sees in its skill listing — used to decide when to auto-load this skill
CONTEXT.md reviewer skill. Implements the artifact-reviewer framework interface to validate a CONTEXT.md file against SB context quality criteria. Returns structured PASS/ISSUES_FOUND findings.
CONTEXT.md reviewer skill. Implements the artifact-reviewer framework interface to validate a CONTEXT.md file against SB context quality criteria. Returns structured PASS/ISSUES_FOUND findings.
This reviewer MUST load the following before executing any review:
@skills/artifact-reviewer/rules/reviewer-interface.md — interface contract (input/output shape, prohibitions)@skills/artifact-reviewer/rules/review-loop.md — 2-pass loop mechanism and audit trail format/artifact-reviewer <context-path>
Or invoke directly:
/review-context <context-path>
| Field | Type | Required | Description |
|---|---|---|---|
| artifact_path | string | YES | Path to CONTEXT.md file to review |
| source_inputs | string[] | NO | Optional additional context paths |
| review_context | string | NO | Additional context string |
Read the artifact at artifact_path completely before evaluating any criterion. Validate every criterion explicitly — do NOT skip sections.
The artifact MUST contain a ## Decisions (or # Decisions) section with at least one decision entry. A section that exists but contains only whitespace or placeholder text fails this check.
If missing or empty: Emit ISSUE finding CTX-F01 with suggestion = "Add a ## Decisions section listing at least one resolved decision or marking items as Claude's Discretion."
Every discussion point, open question, or gray area noted in the CONTEXT.md MUST have a resolution. A resolution is either:
A gray area is unresolved if it is listed without any resolution or still phrased as a question with no answer below it.
If any unresolved gray area found: Emit ISSUE finding CTX-F02 (increment suffix for each instance) with location = the unresolved item, suggestion = "Resolve this point — either record the concrete decision made or mark it as Claude's Discretion: [context for Claude to decide]."
Each locked decision MUST contain a concrete, specific choice — not vague language. A decision is vague if:
Specific decisions name the actual choice made: "use PostgreSQL", "implement as a REST API", "disable feature X in production".
If any vague decision found: Emit ISSUE finding CTX-F10 (increment suffix for each vague decision) with location = the vague decision, description = "Vague decision — no concrete choice recorded", suggestion = "Replace vague language with the specific choice made, e.g., 'Use PostgreSQL 15' instead of 'use a database'."
No two decisions in the same CONTEXT.md may contradict each other. A contradiction occurs when two decisions make mutually exclusive assertions about the same subject — e.g., "use REST API" and "use GraphQL" for the same endpoint, or "disable caching" and "enable Redis caching" for the same layer.
Scan all decisions pairwise for logical conflicts.
If any contradiction found: Emit ISSUE finding CTX-F20 with location = both conflicting decisions, description = "Contradictory decisions — two decisions make mutually exclusive assertions", suggestion = "Remove or reconcile the conflicting decisions. Keep the one that reflects the actual final choice."
If a ## Deferred Ideas (or equivalent) section is present, no item from that section may also appear in ## Decisions as an active decision. Deferred ideas are not decisions — they are explicitly parked for future consideration.
If a deferred idea appears as an active decision: Emit ISSUE finding CTX-F30 with location = the duplicated item, suggestion = "Remove this item from ## Decisions (it is already deferred) or move it out of Deferred Ideas and record the actual resolution."
Any item marked as "Claude's Discretion" MUST include enough context for Claude to make a reasonable, informed choice. A bare "Claude's Discretion" label without description or constraints fails this check.
If any Claude's Discretion item lacks context: Emit ISSUE finding CTX-F40 with location = the item, suggestion = "Add context to guide Claude's choice, e.g., constraints, preferences, or the options being considered."
Return structured findings using the schema from reviewer-interface.md. Finding IDs MUST use the prefix CTX-F.
status: "PASS" | "ISSUES_FOUND"
findings:
- id: "CTX-F01" # unique within this review
severity: "ISSUE" # or "INFO"
description: "..." # what is wrong
location: "..." # section header or line reference
suggestion: "..." # specific, actionable fix
Status rules:
PASS — zero ISSUE-severity findings; INFO findings allowedISSUES_FOUND — one or more ISSUE-severity findingsnpx claudepluginhub alo-exp/silver-bullet --plugin silver-bulletGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.