code-review: Spec axis doesn't flag edge cases the spec leaves open, so tests that pin them look settled
### Before filing - [x] I've read `SCOPE.md` and checked `.out-of-scope/`, and this isn't covered by either. - [x] This issue is about one problem. - [x] I searched open and closed issues for a duplicate. ### Skill code-review ### What went wrong `/implement-spec` built a spec across 7 tickets, then ran `/code-review`. Both axes reported back, and their findings were fixed. Two behaviours the spec never defined got through anyway, and the user found both in production: a test asserted a trailing separator on a Record Key with no Asset (`Entity|AssessmentTypeId|`), and the agents invented a fallback date for a completed request with no `assessmentDate`. The Spec brief asks for missing requirements, scope creep, and wrong implementations. Behaviour the spec leaves open fits none of these three. When a test pins that behaviour down, it looks decided, so neither reviewer flags it. Found by running `/retro` on the session. Claude Code, Claude Opus 5.5 for the builder and both reviewers. code-review installed via skills.sh (folder hash `a8ef561`, updated 2026-10-30), unmodified at the time. ### Proposed change Two edits to `skills/engineering/code-review/SKILL.md`, which I made locally after the retro: **1. Step 4, Spec sub-agent brief:** add a category (d) and raise the word limit. ```diff -- The brief: "Report: (a) requirements the spec asked for that are missing or partial; (b) behaviour in the diff that wasn't asked for (scope creep); (c) requirements that look implemented but where the implementation looks wrong. Quote the spec line for each finding. Under 400 words." +- The brief: "Report: (a) requirements the spec asked for that are missing or partial; (b) behaviour in the diff that wasn't asked for (scope creep); (c) requirements that look implemented but where the implementation looks wrong; (d) **undecided** behaviour: every edge case the diff settles that the spec leaves open (a missing or empty field, a fallback, a tie, a boundary), including ones a test pins down. Quote the spec line for (a)–(c); for (d), quote the code or test that settles it and mark it **needs a human decision**. Under 500 words." ``` **2. Step 5, Aggregate:** add a paragraph after the one-line summary. ```diff End with a one-line summary: total findings per axis, and the worst issue _within each axis_ (if any). Don't pick a single winner across axes: that's the reranking the separation exists to prevent. + +Then list every **needs a human decision** item from the Spec report as a numbered question for the user, each with the behaviour the diff currently picks. These are choices the spec never made: an agent's guess plus a test that pins it looks settled, so the user only catches it in production. ``` _Drafted with Claude Code from the session transcript; I reviewed it before posting._