LLM Skills
~/catalog/testing & quality//checklist
Testing & qualityGitHub source

Checklists (unit tests for requirements)

/checklist

**CRITICAL CONCEPT**: Checklists are **UNIT TESTS FOR REQUIREMENTS WRITING** - they validate the quality, clarity, and completeness of requirements in a given domain.

githubgithub
129.6k
June 4, 2026
MIT
// skill content

--- description: Generate a custom checklist for the current feature based on user requirements. scripts: sh: scripts/bash/check-prerequisites.sh --json ps: scripts/powershell/check-prerequisites.ps1 -Json --- ## Checklist Purpose: "Unit Tests for English" CRITICAL CONCEPT: Checklists are UNIT TESTS FOR REQUIREMENTS WRITING - they validate the quality, clarity, and completeness of requirements in a given domain. NOT for verification/testing: - ❌ NOT "Verify the button clicks correctly" - ❌ NOT "Test error handling works" - ❌ NOT "Confirm the API returns 200" - ❌ NOT checking if code/implementation matches the spec FOR requirements quality validation: - ✅ "Are visual hierarchy requirements defined for all card types?" (completeness) - ✅ "Is 'prominent display' quantified with specific sizing/positioning?" (clarity) - ✅ "Are hover state requirements consistent across all interactive elements?" (consistency) - ✅ "Are accessibility requirements defined for keyboard navigation?" (coverage) - ✅ "Does the spec define what happens when logo image fails to load?" (edge cases) Metaphor: If your spec is code written in English, the checklist is its unit test suite. You're testing whether the requirements are well-written, complete, unambiguous, and ready for implementation - NOT whether the implementation works. ## User Input ``text $ARGUMENTS ` You **MUST** consider the user input before proceeding (if not empty). ## Pre-Execution Checks **Check for extension hooks (before checklist generation)**: - Check if .specify/extensions.yml exists in the project root. - If it exists, read it and look for entries under the hooks.before_checklist key - If the YAML cannot be parsed or is invalid, skip hook checking silently and continue normally - Filter out hooks where enabled is explicitly false. Treat hooks without an enabled field as enabled by default. - For each remaining hook, do **not** attempt to interpret or evaluate hook condition expressions: - If the hook has no condition field, or it is null/empty, treat the hook as executable - If the hook defines a non-empty condition, skip the hook and leave condition evaluation to the HookExecutor implementation - For each executable hook, output the following based on its optional flag: - **Optional hook** (optional: true): ` ## Extension Hooks **Optional Pre-Hook**: {extension} Command: /{command} Description: {description} Prompt: {prompt} To execute: /{command} ` - **Mandatory hook** (optional: false): ` ## Extension Hooks **Automatic Pre-Hook**: {extension} Executing: /{command} EXECUTE_COMMAND: {command} Wait for the result of the hook command before proceeding to the Execution Steps. ` - If no hooks are registered or .specify/extensions.yml does not exist, skip silently ## Execution Steps 1. **Setup**: Run {SCRIPT} from repo root and parse JSON for FEATURE_DIR and AVAILABLE_DOCS list. - All file paths must be absolute. - For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot"). 2. **IF EXISTS**: Load /memory/constitution.md for project principles and governance constraints. 3. **Clarify intent (dynamic)**: Derive up to THREE initial contextual clarifying questions (no pre-baked catalog). They MUST: - Be generated from the user's phrasing + extracted signals from spec/plan/tasks - Only ask about information that materially changes checklist content - Be skipped individually if already unambiguous in $ARGUMENTS` - Prefer precision over breadth Generation algorithm: 1. Extract signals: feature domain keywords (e.g., auth, latency, UX, API), risk indicators ("critical", "must", "compliance"), stakeholder hints ("QA", "review", "security team"), and explicit deliverables ("a11y", "rollback", "contracts"). 2. Cluster signals into candidate focus areas (max 4) ranked by relevance. 3. Identify probable audience & timing (author, reviewer, QA, release) if not explicit. 4. Detect missing dimensions: scope breadth, depth/rigor, risk emphasis, exclusion boundaries, measurable acceptance criteria. 5. Formulate questions chosen from these archetypes: - Scope refinement (e.g., "Should this include integration touchpoints with X and Y or stay limited to local module correctness?") - Risk prioritization (e.g., "Which of these potential risk areas should receive mandatory gating checks?") - Depth calibration (e.g., "Is this a lightweight pre-commit sanity list or a formal release gate?") - Audience framing (e.g., "Will this be used by the author only or peers during PR review?") - Boundary exclusion (e.g., "Should we explicitly exclude performance tuning items this round?") - Scenario class gap (e.g., "No recovery flows detected:are rollback / partial failure paths in scope?") Question forma

// original public source
github/spec-kit
/templates/commands/checklist.md
License: MIT
Independent project, not affiliated with Anthropic. This skill remains the property of its original author.
// install this skill
Paste this command in your terminal at the root of your project:
mkdir -p .claude/commands && curl -o ".claude/commands/checklist.md" "https://raw.githubusercontent.com/github/spec-kit/main/templates/commands/checklist.md"
Then in Claude Code, type /checklist to activate it.
open_in_newOpen original source
// save
Save available after sign in.
loginSign in to save
// information
Creatorgithub
Stars 129.6k
LicenseMIT
UpdatedJune 4, 2026
Format.md
AccessFree
// similar

Skills Testing & quality

View allarrow_forward