# /smoke-check — Phase 3: Check Test Coverage > Part of `/smoke-check`. `SKILL.md` names when to read this file; the settings it > resolved and the rules under its later headings still apply here. ## Phase 3: Check Test Coverage Draw the story list from, in priority order: 1. The QA plan found in Phase 1 (its Test Summary table lists expected test file paths per story) 2. The current sprint plan from `production/sprints/` (most recently modified file) 3. If the `quick` argument was passed, skip this phase entirely and note: "Coverage scan skipped — run `/smoke-check sprint` for full coverage analysis." For each story in scope: 1. Extract the system slug from the story's file path (e.g., `production/epics/combat/story-001.md` → `combat`) 2. Glob `tests/unit/[system]/` and `tests/integration/[system]/` for files whose name contains the story slug or a closely related term 3. Check the story file itself for a `Test file:` header field or a "Test Evidence" section Assign a coverage status to each story: | Status | Meaning | |--------|---------| | **COVERED** | A test file was found matching this story's system and scope | | **MANUAL** | Story type is Visual/Feel or UI; a test evidence document was found | | **MISSING** | Logic or Integration story with no matching test file | | **EXPECTED** | Config/Data story — no test file required; spot-check is sufficient | | **UNKNOWN** | Story file missing or unreadable | MISSING entries are advisory gaps. They do not cause a FAIL verdict but must appear prominently in the report and must be resolved before `/story-done` can fully close those stories. ---