docs(plan): Phase 4a and 4b for the client intake wizard
4a builds the stateless interview. Every constraint that matters is enforced in code rather than requested in the prompt: the seven-question cap, the answer length, and what fields a brief may contain. parseBrief is a whitelist, not a parser — a brief asserting priority or accepted loses those at the boundary and they never reach a caller that could act on them. 4b adds a separate intake route rather than extending Plan 1a's client card route. That route's tests were written against a two-field body; widening the shape it accepts would leave them passing while proving less. Both routes set column, priority, accepted and created_by_role themselves, and both are separately proven to. The property both plans are written to: the worst a hostile brief can achieve is a strangely-worded card in the Inbox. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
d928e7fd9e
commit
0c4bbd951f
2 changed files with 2548 additions and 0 deletions
1501
docs/superpowers/plans/2026-09-16-phase-4a-intake-interview.md
Normal file
1501
docs/superpowers/plans/2026-09-16-phase-4a-intake-interview.md
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue