docs(plan-3): close out Plan 3 — BACKLOG entries, RFC status, primitives registry, tooling conventions

- BACKLOG: add 3 spawned follow-ups (EnergyDots NaN, DraggableBlock pointercancel, AD-3 Menubar a11y)
- RFC-WS-GUI-REDESIGN-CREWLI-STARTER: mark Plan 3 complete with commit refs + DoD ledger
- PRIMEVUE_COMPONENTS: v2 primitives registry (8 components), statusSeverity SoT, Menubar-wrap pattern
- ARCH-TESTING: mount-helper type convention (Plan 3 codified, Plan 4 carry-over)
- FRONTEND-TOOLING: scoped lint invocation note (DoD #13 root cause)
- AppDialog.stories.ts: rename title to 'Shared/AppDialog' for sibling consistency
This commit is contained in:
2026-05-19 01:41:19 +02:00
parent 0b19e7856b
commit 637d77b327
6 changed files with 216 additions and 1 deletions

View File

@@ -60,6 +60,31 @@ never blanket-disable ts-reset. If a specific reset is genuinely
wrong for the project, document it; the upstream issue is the
backstop.
## ESLint
### Scoped lint invocation
`pnpm lint -- <path>` is **vacuous**: pnpm's `--` passthrough forwards
trailing args as workspace/script filters, not as ESLint targets, so
errors in the intended files are never surfaced. In Plan 3 this made
per-task lint report "clean" while real errors existed — the root
cause of the GUI-redesign DoD #13 miss (fixed in `0b19e785`).
Correct scoped invocation — call the project's ESLint binary directly
with the paths:
```bash
pnpm exec eslint <paths>
```
For per-task gates, pair a file-scoped run with a directory-scoped run
so project-level rule misconfigs surface too:
```bash
pnpm exec eslint apps/app/src/components-v2/shared/Foo.vue
pnpm exec eslint apps/app/src/components-v2/shared
```
## Vitest
Runs against `apps/portal/` and `apps/app/`. `apps/app/` has a