docs(backlog): WS-TOOLING-001 done + 3 follow-up tech items
This commit is contained in:
@@ -855,6 +855,46 @@ ARCH-discussie en RFC.
|
||||
|
||||
---
|
||||
|
||||
### TECH-HOOK-001 — `block-dangerous-bash.sh` substring matching botst met commit messages
|
||||
|
||||
**Aanleiding:** WS-TOOLING-001 smoke tests onthulden dat `block-dangerous-bash.sh` substring-matchet op de hele bash command-string. Een commit message die een geblokkeerd patroon beschrijft (bv. `git commit -m "blocks git reset --hard"`) triggert de hook op zijn eigen commit. Workaround tijdens implementatie: rephrase de message of `git commit -F /tmp/msg.txt`.
|
||||
**Wat:**
|
||||
- Refactor `block-dangerous-bash.sh` naar argv-tokenization in plaats van substring-matching.
|
||||
- Parse de eerste niet-quoted token als command verb (`git`, `php`, `composer`, etc.).
|
||||
- Match alleen op verb + flags (eerste paar args), niet op `-m "..."` of `-F file` argument bodies.
|
||||
- Test fixtures toevoegen: commit messages met blocked patterns, shell-pipes (`&&`, `;`).
|
||||
- Behoud achterwaartse compatibiliteit voor bestaande blocked patterns (force push, migrate:fresh, db:wipe, dependency updates, rm -rf).
|
||||
**Prioriteit:** Laag — workaround is werkbaar. Aanpakken bij de eerste keer dat het commit-flow daadwerkelijk blokkeert in een actieve sessie.
|
||||
**Refs:** `.claude/hooks/block-dangerous-bash.sh`, `dev-docs/CLAUDE_CODE_TOOLING.md`.
|
||||
|
||||
---
|
||||
|
||||
### TECH-CMD-001 — `/sprint-status` leest geen sprint-anchor docs
|
||||
|
||||
**Aanleiding:** WS-TOOLING-001 smoke test 8 liet zien dat `/sprint-status` alleen de eerste 50 regels van `BACKLOG.md` leest. Voor een actieve consolidatie-sprint waarvan de scope in een ARCH-anchor doc staat (`ARCH-CONSOLIDATION-2026-04.md`), mist de output het echte "next item" — het commando antwoordt eerlijk dat dat in een ander document staat, maar dat is niet ideaal voor "waar staan we?".
|
||||
**Wat:**
|
||||
- Detecteer aanwezige sprint-anchor docs in `dev-docs/`: `ARCH-CONSOLIDATION-*.md`, `ARCH-*-SPRINT.md`, `RFC-*.md`.
|
||||
- Voeg de top-30 regels van de meest-recent gewijzigde anchor toe aan de status-output.
|
||||
- Heuristiek voor "actieve" anchor: meest recent door `git log --name-only` aangeraakt in de laatste 14 dagen.
|
||||
- Output blijft beknopt (5-10 regels totaal); alleen de relevante anchor-snippet wordt geprepend.
|
||||
**Prioriteit:** Laag — cosmetisch, het commando geeft nu al een eerlijke "kijk in deze doc" hint.
|
||||
**Refs:** `.claude/commands/sprint-status.md`.
|
||||
|
||||
---
|
||||
|
||||
### TECH-STYLE-001 — eenmalige `pint` pass over hele `api/` codebase
|
||||
|
||||
**Aanleiding:** WS-TOOLING-001 smoke test 1 onthulde dat `pint --dirty` óók formatteert op niet-aangeraakte regels in een gewijzigd bestand wanneer die regels nog niet eerder door pint heen zijn geweest. Concreet: een edit aan `Event.php` triggerde reformatting van `static::addGlobalScope(new OrganisationScope())` naar `self::addGlobalScope(new OrganisationScope)` in een aparte methode. Functioneel identiek, maar veroorzaakt onverwachte diff-noise in feature-commits en vervuilt `git blame`.
|
||||
**Wat:**
|
||||
- Eénmalige `cd api && vendor/bin/pint` over de hele codebase, los van enige feature-werk.
|
||||
- Eigen commit met message `style: pint pass over codebase`.
|
||||
- Run vóór de eerstvolgende grote feature-sprint zodat `pint --dirty` in de PostToolUse hook daarna alleen Bert's daadwerkelijke edits formatteert.
|
||||
- Verifieer dat het hele backend nog groen test na de reformat (`composer test`).
|
||||
**Prioriteit:** Laag — cosmetisch, niet blokkerend. Aanbevolen moment: vlak vóór RFC-FORM-BUILDER-UI implementatie zodat S3b op een schone baseline landt.
|
||||
**Refs:** `.claude/hooks/post-edit-pint.sh`, `dev-docs/CLAUDE_CODE_TOOLING.md`.
|
||||
|
||||
---
|
||||
|
||||
### ~~TECH-02 — scopeForFestival helper op Event model~~ ✅ OPGELOST
|
||||
|
||||
---
|
||||
@@ -871,6 +911,12 @@ ARCH-discussie en RFC.
|
||||
|
||||
---
|
||||
|
||||
## Opgeloste items (mei 2026)
|
||||
|
||||
- ~~**WS-TOOLING-001**: Claude Code deterministic guard-rail layer (5 hooks, `crewli-reviewer` subagent op Opus 4.7, 3 slash commands `/sprint-status` `/review-multitenancy` `/sync-docs`, `dev-docs/CLAUDE_CODE_TOOLING.md`). 8/8 smoke tests groen, live integratie geverifieerd. Merge `ad36c06` op 2026-05-05. Follow-ups: TECH-HOOK-001, TECH-CMD-001, TECH-STYLE-001.~~ ✅
|
||||
|
||||
---
|
||||
|
||||
## Opgeloste items (april 2026)
|
||||
|
||||
De volgende items zijn geïmplementeerd en afgerond (673+ tests):
|
||||
|
||||
Reference in New Issue
Block a user