chore: typecheck-script + dependency-cascade-grep in Make-Plan-prompt
Twee preventieve aanpassingen na de mislukte ST-2wj8mw8q-run, waarbij een
schema-edit (Todo-model verwijderd) groen door lint en vitest kwam maar
op `next build` brak vanwege 16 ongelinkte `prisma.todo`-references in 4
bestanden.
package.json:
- "typecheck": "tsc --noEmit" — losse script voor snelle full-project
type-check, los van eslint en next build.
- "verify": "npm run lint && npm run typecheck && npm test" — umbrella
voor agents/CI om voor de eind-build te valideren.
lib/idea-prompts/make-plan.md:
- Werkwijze-stap 3 toegevoegd: "Bij removal/refactor: doe een
dependency-cascade-grep". Voor de strikte format-sectie staat nu een
verplicht protocol:
- Removal van Prisma-model: grep `prisma.x` in actions/app/components/lib
- Removal van component/utility/type: grep paden + exports
- Hernoemen: per geraakt bestand een edit-taak
- Veld-wijziging in create/update: grep op die call-sites
- Eind-taak: `npm run typecheck` als sanity-check los van
lint/test/build.
- Toelichting waarom: eslint en vitest+esbuild slaan diepe type-check
over; next build is de eerste step die alles type-checkt en zit aan
het eind van de pijp.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
3a61a8ddc1
commit
08babe8c03
2 changed files with 42 additions and 3 deletions
|
|
@ -28,9 +28,46 @@ PBI + stories + taken via `materializeIdeaPlanAction`.
|
|||
|
||||
1. Lees `idea.grill_md` volledig.
|
||||
2. Verken de repo voor patronen, bestaande modules, en `docs/`-structuur.
|
||||
3. Bouw het plan op in de **strikte format** hieronder.
|
||||
4. Roep `mcp__scrum4me__update_idea_plan_md({ idea_id, markdown })`.
|
||||
5. Roep `mcp__scrum4me__update_job_status({ job_id, status: 'done', summary })`.
|
||||
3. **Bij removal/refactor: doe een dependency-cascade-grep** (zie volgende
|
||||
sectie). Voeg per geraakte file een taak toe vóór de schema/code-edit zelf.
|
||||
4. Bouw het plan op in de **strikte format** hieronder.
|
||||
5. Roep `mcp__scrum4me__update_idea_plan_md({ idea_id, markdown })`.
|
||||
6. Roep `mcp__scrum4me__update_job_status({ job_id, status: 'done', summary })`.
|
||||
|
||||
## Dependency-cascade-grep (verplicht bij removal/refactor)
|
||||
|
||||
Wanneer het idee een **bestaand symbool, model, route of component
|
||||
verwijdert of hernoemt**, MOET je éérst de consumers in kaart brengen voordat
|
||||
je het plan vaststelt. Anders breekt `next build` op type-errors die `lint`
|
||||
en `vitest run` niet pakken (zie hieronder waarom).
|
||||
|
||||
**Concreet:**
|
||||
|
||||
- Verwijder je een Prisma-model `Foo`?
|
||||
```bash
|
||||
grep -rn "prisma\.foo\b\|prisma\.foos\b" actions/ app/ components/ lib/ \
|
||||
--include="*.ts" --include="*.tsx"
|
||||
```
|
||||
Voeg per geraakt bestand één of meer taken toe ("schoon `actions/foos.ts`
|
||||
op", "verwijder `app/(app)/foos/`-route", "haal Foo-tegel uit
|
||||
`app/page.tsx`-feature-grid", etc.) **vóór** de schema-edit-taak.
|
||||
|
||||
- Verwijder je een component / utility / type? Idem: grep op de
|
||||
bestandspaden en exports en plan per consumer een taak.
|
||||
|
||||
- Hernoem je een model/route/component? Plan per geraakt bestand een edit-taak.
|
||||
|
||||
- Wijzig je een `prisma.x.create`-veld (verplicht ↔ optioneel)? Grep op
|
||||
`prisma.x.create` en `prisma.x.update` voor type-mismatches.
|
||||
|
||||
- Voeg óók een **eind-taak** toe: `npm run typecheck` (= `tsc --noEmit`)
|
||||
als sanity-check, los van `lint && test && build`. Type-errors verschijnen
|
||||
daar het eerst en zijn 10× sneller dan een full `next build`.
|
||||
|
||||
**Waarom zo strikt?** `eslint` doet geen diepe type-check. `vitest` met
|
||||
esbuild-transpile slaat type-errors over. `next build` is de eerste step die
|
||||
álles type-checkt — en die zit aan het einde van de pijp. Een gemist
|
||||
consumer-bestand wordt pas zichtbaar bij verify, niet bij implementation.
|
||||
|
||||
## STEL GEEN VRAGEN
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@
|
|||
"build": "next build",
|
||||
"start": "next start",
|
||||
"lint": "eslint",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"verify": "npm run lint && npm run typecheck && npm test",
|
||||
"test": "vitest run",
|
||||
"test:watch": "vitest",
|
||||
"prepare": "husky",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue