feature-banklisted
Install: claude install-skill SilviaAre95/wayworks
# Feature Bank
**Mental model**: prescriptive, not descriptive — what the product *must* and *must not* do (`project-docs` describes how it's built). Two gates bracket every code change. Drift has two shapes, both caught here: scope creep (unspec'd additions) and silent mutation (unflagged changes to spec'd behavior).
## Layout
```
/docs/features/
INDEX.md ← always read first
<feature-id>.md ← full spec (frontmatter + prose)
<feature-id>.CHANGELOG.md ← append-only history
```
IDs are kebab-case, domain-prefixed (`auth-login`, `billing-invoice`). For spec frontmatter fields, INDEX.md and changelog formats, read `references/spec-format.md`. Templates live in `templates/`.
## Gate 1 — Preflight (MANDATORY before writing any code)
1. Read `/docs/features/INDEX.md`. If missing → Bootstrap (below).
2. Map the code you'll touch to feature IDs. Unclear → ask the user.
3. Load each affected `/docs/features/<id>.md` fully.
4. State in one short block: feature IDs touched, intended behavior change, `acceptance_criteria` satisfied, no `non_goals` violated.
5. Scan `non_goals` across all features in INDEX.md for keywords matching your plan. Any hit → STOP, invoke Gate 2.
6. Deviation check: if the request differs from the spec → STOP, invoke Gate 2. Never silently "fix" the spec by coding the new request.
Edit code only after all six pass.
## Gate 2 — Escape hatch (diff-first spec change)
For any request/spec mismatch, or an intentional feat