docs: leg Forgejo-als-leidende-forge vast; vervang gh CLI referenties #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "docs/forgejo-pr-rule"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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