# Skill Test Spec: /day-one-patch

## Skill Summary

`/day-one-patch` prepares a day-one patch plan for issues that are known at
launch but deferred from the v1.0 release. It reads open bug reports in
`production/bugs/`, deferred acceptance criteria from story files (stories
marked `Status: Done` but with noted deferred ACs), and produces a prioritized
patch plan with estimated fix timelines per issue.

The patch plan is written to `production/releases/day-one-patch.md` after a
"May I write" ask. If a P0 (critical post-ship) issue is discovered, the skill
triggers guidance to run `/hotfix` before the patch. No director gates apply.
The verdict is always COMPLETE.

---

## Static Assertions (Structural)

Verified automatically by `/skill-test static` — no fixture needed.

- [ ] Has required frontmatter fields: `name`, `description`, `argument-hint`, `user-invocable`, `allowed-tools`
- [ ] Has ≥2 phase headings
- [ ] Contains verdict keyword: COMPLETE
- [ ] Contains "May I write" collaborative protocol language before writing the plan
- [ ] Has a next-step handoff (e.g., `/hotfix` for P0 issues, `/release-checklist` for follow-up)

---

## Director Gate Checks

None. `/day-one-patch` is a release planning utility. No director gates apply.

---

## Test Cases

### Case 1: Happy Path — 3 Known Issues, Patch Plan With Fix Estimates

**Fixture:**
- `production/bugs/` contains 3 open bugs with severities: 1 MEDIUM, 2 LOW
- No deferred ACs in sprint stories
- All bugs have repro steps and system identifications

**Input:** `/day-one-patch`

**Expected behavior:**
1. Skill reads all 3 open bugs
2. Skill assigns fix effort estimates: MEDIUM bug = 1-2 days, LOW bugs = 4 hours each
3. Skill produces a patch plan prioritizing MEDIUM bug first
4. Plan includes: priority order, estimated timeline, responsible system, fix description
5. Skill asks "May I write to `production/releases/day-one-patch.md`?"
6. File written; verdict is COMPLETE

**Assertions:**
- [ ] All 3 bugs appear in the plan
- [ ] Bugs are prioritized by severity (MEDIUM before LOW)
- [ ] Fix estimates are provided per issue
- [ ] "May I write" is asked before writing
- [ ] Verdict is COMPLETE

---

### Case 2: Critical Issue Discovered Post-Ship — P0, Triggers /hotfix Guidance

**Fixture:**
- A CRITICAL severity bug is found in `production/bugs/` after the v1.0 release
- The bug causes data loss for all save files

**Input:** `/day-one-patch`

**Expected behavior:**
1. Skill reads bugs and identifies the CRITICAL severity issue
2. Skill escalates: "P0 ISSUE DETECTED — data loss bug requires immediate hotfix
   before patch planning can proceed"
3. Skill does NOT include the P0 issue in the patch plan timeline
4. Skill explicitly directs: "Run `/hotfix` to resolve this issue first"
5. After P0 guidance is issued: plan for remaining lower-severity bugs is still
   generated and written; verdict is COMPLETE

**Assertions:**
- [ ] P0 escalation message appears prominently before the patch plan
- [ ] `/hotfix` is explicitly directed for the P0 issue
- [ ] P0 issue is NOT scheduled in the patch plan timeline (it needs immediate action)
- [ ] Non-P0 issues are still planned; verdict is COMPLETE

---

### Case 3: Deferred AC From Story-Done — Pulled Into Patch Plan Automatically

**Fixture:**
- `production/sprints/sprint-008.md` has a story with `Status: Done` and a note:
  "DEFERRED AC: Gamepad vibration on damage — deferred to post-launch patch"
- No open bugs for the same system

**Input:** `/day-one-patch`

**Expected behavior:**
1. Skill reads sprint stories and detects the deferred AC note
2. Deferred AC is automatically included in the patch plan as a work item
3. Plan entry: "Deferred from sprint-008: Gamepad vibration on damage"
4. Fix estimate is assigned; patch plan written after "May I write" approval
5. Verdict is COMPLETE

**Assertions:**
- [ ] Deferred ACs from story files are automatically pulled into the plan
- [ ] Deferred items are labeled by their source story (sprint-008)
- [ ] Deferred AC gets a fix estimate like bug entries
- [ ] Verdict is COMPLETE

---

### Case 4: No Known Issues — Empty Plan With Template Note

**Fixture:**
- `production/bugs/` is empty
- No stories have deferred ACs

**Input:** `/day-one-patch`

**Expected behavior:**
1. Skill reads bugs — none found
2. Skill reads story deferred ACs — none found
3. Skill produces an empty patch plan with a note: "No known issues at launch"
4. Template structure is preserved (headers intact) for future use
5. Skill asks "May I write to `production/releases/day-one-patch.md`?"
6. File written; verdict is COMPLETE

**Assertions:**
- [ ] "No known issues at launch" note appears in the written file
- [ ] Template headers are present in the empty plan
- [ ] Skill does NOT error out when there are no issues to plan
- [ ] Verdict is COMPLETE

---

### Case 5: Director Gate Check — No gate; day-one-patch is a planning utility

**Fixture:**
- Known issues present in production/bugs/

**Input:** `/day-one-patch`

**Expected behavior:**
1. Skill generates and writes the patch plan
2. No director agents are spawned
3. No gate IDs appear in output

**Assertions:**
- [ ] No director gate is invoked
- [ ] No gate skip messages appear
- [ ] Verdict is COMPLETE without any gate check

---

## Protocol Compliance

- [ ] Reads open bugs from `production/bugs/` before generating the plan
- [ ] Scans story files for deferred AC notes
- [ ] Escalates CRITICAL (P0) bugs with explicit `/hotfix` guidance
- [ ] Produces an empty plan with note when no issues exist (not an error)
- [ ] Asks "May I write to `production/releases/day-one-patch.md`?" before writing
- [ ] Verdict is COMPLETE in all paths

---

## Coverage Notes

- The case where multiple CRITICAL bugs exist is handled the same as Case 2;
  all P0 issues are escalated together.
- Timeline estimation for the patch (e.g., "patch available in 3 days")
  requires manual QA and build time estimates; the skill uses rough estimates
  based on severity, not actual team velocity.
- The patch notes player communication document (`/patch-notes`) is a separate
  skill invoked after the patch plan is executed.
