docs: leg Forgejo-als-leidende-forge vast; vervang gh CLI referenties #2

Merged
janpeter merged 1 commit from docs/forgejo-pr-rule into main 2026-05-16 14:52:18 +02:00
Owner

Wat: Per-product documentatie-feature (PBI-96) — elk product krijgt de 8-folder docs-tree die Scrum4Me zelf gebruikt (adr/, architecture/, patterns/, plans/, runbooks/, specs/, manual/, api/), per product configureerbaar via folder-toggles, beheerd via een in-app markdown-editor.
Hoe: DB-storage (product_docs + product_doc_logs), 5 server-actions (create/update/delete/toggle/list), 4 UI-pages onder /products/[id]/docs/ (INDEX + folder + viewer/editor + settings), sub-nav-integratie via ProductSubNav, en een herbruikbare MarkdownDocEditor (geëxtraheerd uit idea-md-editor.tsx — beide editors delen nu dezelfde stack).
Reviews verwerkt: P1 (delete-audit FK-race), P2 (frontmatter sync + last_updated normalisatie, disabled-folder semantiek), P3 (denormalized actor-velden + index). Audit-rapporten in docs/recommendations/.
Plan: docs/plans/PBI-96-product-docs.md
Audit: docs/recommendations/PBI-96-demo-audit-2026-05-16.md
Spec: docs/specs/dialogs/product-doc.md + docs/specs/functional.md §F-15

Stories (6 totaal, alle DONE)
Story Code Wat
A ST-1379 DB-schema + migratie + Zod-schemas + parser + frontmatter-serializer (P2-fix) + slug-helpers
B ST-1380 5 server-actions + rate-limit-keys + 28 tests (P1 + P2 volledig dekkend)
C ST-1381 MarkdownDocEditor-extractie + idea-md-editor refactor naar wrapper
D ST-1382 4 pages + 10 componenten + dialog-spec + DisabledFolderBanner
E ST-1383 /docs/settings + folder-toggle + ProductSubNav (Backlog/Sprint/Solo/Docs/Instellingen)
F ST-1384 Demo-policy audit + architecture-breadcrumb + functional-spec F-15
Verificatie
1022 tests groen (70 nieuw t.o.v. baseline 952). De pre-existing fail in tests/components/idea-timeline-merge.test.ts blijft buiten scope (DATABASE_URL niet beschikbaar in worktree-env; geen regressie).
Lint + typecheck schoon.
Schema valid (npx prisma format + validate).
Migration handmatig geschreven volgens claude_job-pattern; DEFAULT ARRAY[...]::ProductDocFolder[] vult bestaande producten automatisch (geen backfill).
Test plan (handmatige e2e — 10 stappen uit plan §Verificatie)
npm run dev → login als seed-user
Open product → tab Docs → INDEX toont 8 lege folders
"Nieuwe doc" in runbooks → save → viewer-redirect; check last_updated = today
Edit doc met user-supplied last_updated: 2020-01-01 → save → server-normalisatie overschrijft naar today
/docs/settings → toggle api uit → INDEX toont 7 folders; directe URL /docs/api → 200 met DisabledFolderBanner; flip terug → folder weer in INDEX
Yaml-fout introduceren → save geblokkeerd; error-box met line-info
Delete → confirm → doc weg; product_doc_logs heeft rij met type=DELETED, doc_id=null, metadata {folder, slug, title}
Andere user zonder ProductMember → directe URL → 404 (anti-enum)
Demo-user → docs lezen werkt, write-knoppen disabled met DemoTooltip; directe action-call → 403
ProductMember (niet-owner) → lezen + schrijven docs OK; /docs/settings read-only
npm run verify && npm run build groen
Bestanden gewijzigd (42 totaal)
Schema/migratie (2): prisma/schema.prisma, prisma/migrations/20260516100000_add_product_docs/migration.sql
Libs (7 nieuw): schemas + folder-mapper + parser + frontmatter-serializer + slug-helpers + server-helper + rate-limit-edit
Actions (1 nieuw): actions/product-docs.ts
Pages (4 nieuw): INDEX + settings + folder + folder/slug
Layout edit (1): hook
Componenten (12 nieuw): 10 in components/product-docs/ + 1 in components/products/ + 1 in components/shared/ (MarkdownDocEditor)
Refactor (1): idea-md-editor.tsx -146 / +31 (wrapper rond shared)
Tests (5 nieuw): 70 tests over schemas, slug, parser, frontmatter, shared editor, actions
Docs (6): plan, architecture-topical + breadcrumb, functional F-15, demo-audit, dialog-spec, INDEX-regen

Wat: Per-product documentatie-feature (PBI-96) — elk product krijgt de 8-folder docs-tree die Scrum4Me zelf gebruikt (adr/, architecture/, patterns/, plans/, runbooks/, specs/, manual/, api/), per product configureerbaar via folder-toggles, beheerd via een in-app markdown-editor. Hoe: DB-storage (product_docs + product_doc_logs), 5 server-actions (create/update/delete/toggle/list), 4 UI-pages onder /products/[id]/docs/ (INDEX + folder + viewer/editor + settings), sub-nav-integratie via ProductSubNav, en een herbruikbare MarkdownDocEditor (geëxtraheerd uit idea-md-editor.tsx — beide editors delen nu dezelfde stack). Reviews verwerkt: P1 (delete-audit FK-race), P2 (frontmatter sync + last_updated normalisatie, disabled-folder semantiek), P3 (denormalized actor-velden + index). Audit-rapporten in docs/recommendations/. Plan: docs/plans/PBI-96-product-docs.md Audit: docs/recommendations/PBI-96-demo-audit-2026-05-16.md Spec: docs/specs/dialogs/product-doc.md + docs/specs/functional.md §F-15 Stories (6 totaal, alle DONE) Story Code Wat A ST-1379 DB-schema + migratie + Zod-schemas + parser + frontmatter-serializer (P2-fix) + slug-helpers B ST-1380 5 server-actions + rate-limit-keys + 28 tests (P1 + P2 volledig dekkend) C ST-1381 MarkdownDocEditor-extractie + idea-md-editor refactor naar wrapper D ST-1382 4 pages + 10 componenten + dialog-spec + DisabledFolderBanner E ST-1383 /docs/settings + folder-toggle + ProductSubNav (Backlog/Sprint/Solo/Docs/Instellingen) F ST-1384 Demo-policy audit + architecture-breadcrumb + functional-spec F-15 Verificatie 1022 tests groen (70 nieuw t.o.v. baseline 952). De pre-existing fail in __tests__/components/idea-timeline-merge.test.ts blijft buiten scope (DATABASE_URL niet beschikbaar in worktree-env; geen regressie). Lint + typecheck schoon. Schema valid (npx prisma format + validate). Migration handmatig geschreven volgens claude_job-pattern; DEFAULT ARRAY[...]::ProductDocFolder[] vult bestaande producten automatisch (geen backfill). Test plan (handmatige e2e — 10 stappen uit plan §Verificatie) npm run dev → login als seed-user Open product → tab Docs → INDEX toont 8 lege folders "Nieuwe doc" in runbooks → save → viewer-redirect; check last_updated = today Edit doc met user-supplied last_updated: 2020-01-01 → save → server-normalisatie overschrijft naar today /docs/settings → toggle api uit → INDEX toont 7 folders; directe URL /docs/api → 200 met DisabledFolderBanner; flip terug → folder weer in INDEX Yaml-fout introduceren → save geblokkeerd; error-box met line-info Delete → confirm → doc weg; product_doc_logs heeft rij met type=DELETED, doc_id=null, metadata {folder, slug, title} Andere user zonder ProductMember → directe URL → 404 (anti-enum) Demo-user → docs lezen werkt, write-knoppen disabled met DemoTooltip; directe action-call → 403 ProductMember (niet-owner) → lezen + schrijven docs OK; /docs/settings read-only npm run verify && npm run build groen Bestanden gewijzigd (42 totaal) Schema/migratie (2): prisma/schema.prisma, prisma/migrations/20260516100000_add_product_docs/migration.sql Libs (7 nieuw): schemas + folder-mapper + parser + frontmatter-serializer + slug-helpers + server-helper + rate-limit-edit Actions (1 nieuw): actions/product-docs.ts Pages (4 nieuw): INDEX + settings + folder + folder/slug Layout edit (1): <ProductSubNav> hook Componenten (12 nieuw): 10 in components/product-docs/ + 1 in components/products/ + 1 in components/shared/ (MarkdownDocEditor) Refactor (1): idea-md-editor.tsx -146 / +31 (wrapper rond shared) Tests (5 nieuw): 70 tests over schemas, slug, parser, frontmatter, shared editor, actions Docs (6): plan, architecture-topical + breadcrumb, functional F-15, demo-audit, dialog-spec, INDEX-regen
janpeter added 1 commit 2026-05-16 14:50:59 +02:00
docs: leg Forgejo-als-leidende-forge vast; vervang gh CLI referenties
Some checks are pending
CI / Lint, Typecheck, Test & Build (pull_request) Waiting to run
CI / Detect deploy-relevant changes (pull_request) Blocked by required conditions
CI / Deploy Preview (PR) (pull_request) Blocked by required conditions
CI / Deploy Production (main) (pull_request) Blocked by required conditions
CI / Deploy Manual (workflow_dispatch) (pull_request) Waiting to run
0b4cb511d6
- CLAUDE.md: nieuwe hardstop "Forge" — Forgejo (git.jp-visser.nl) is
  leidend, gh CLI verboden, PRs via Forgejo compare-URL of tea CLI.
  "Hoe werk vinden" stap 8 verwijst nu naar Forgejo compare-URL ipv
  gh pr create.
- docs/runbooks/branch-and-commit.md: agent-batch-tabel verbod-kolom
  "PR aanmaken" generic; nieuwe sectie "Forgejo is leidend — PR-flow"
  beschrijft 4-staps PR-flow (push → compare-URL → user klikt of tea
  CLI → optionele github-mirror push). GitHub-checks → Forgejo-checks.
  Merge-conflict-mitigatie's "vóór gh pr create" → "vóór het aanmaken
  van de Forgejo-PR".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
janpeter merged commit 4e3df2d425 into main 2026-05-16 14:52:18 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: janpeter/Scrum4Me#2
No description provided.