feat(PBI-102): PBI ↔ ProductDoc-bron via immutable PbiDoc + revisions #13
No reviewers
Labels
No labels
severity/s3
severity/s4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
janpeter/Scrum4Me!13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/pbi-102-pbi-doc-linking"
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 verandert
Koppel PBI's relationeel aan hun bron-
ProductDocvia een immutable revision-laag, zodat plan/grill-documenten reproduceerbaar getraceerd blijven (review-fix: PBI mag niet stilzwijgend mee-verschuiven bij latere doc-edits).Plan: docs/plans/PBI-102-pbi-doc-linking-with-revisions.md (v2, na cross-model review).
Review-feedback: docs/recommendations/pbi-productdoc-linking-plan-review-2026-05-17.md.
Belangrijkste wijzigingen
Schema (
74b32ed):ProductDocRevision-tabel (immutable; SHA-256 content_hash)PbiDoc(pbi_id, doc_revision_id, role)junction metPbiDocRoleenum (PLAN/GRILL)ProductDoc.current_revision_idpointer (SetNull-cascade)Idea.plan_doc_id+grill_doc_id(1:1 FK's, dual-write tijdens transitie)ProductDocFolder.GRILLSenum-waarde + GRILLS-toggle in UIALTER TYPE ADD VALUEmoet committed zijn vóór gebruik)Shared write-laag (
ca15dcf+4880369):lib/product-doc-write.ts:writeProductDoc(tx, input)— Next-vrij, hash + no-op skip + revision-increment binnen één txactions/product-docs.tsdelegeert naar de shared laagscrum4me-mcp/src/lib/(mirror-pact, patroon zoalsjob-config.ts)Data-migratie (
f023346):scripts/migrate-idea-md-to-product-docs.ts— idempotent,--dry-run,--only-idea=UI (
7c8efd2-incl):/products/[id]/backlog/[pbiId]toont gekoppelde source-docs metvN-badge + optionele "→ huidige versie" link?rev=Nquery-param + banner bij oude revisieDocs (
7c8efd2):docs/runbooks/plan-to-pbi-flow.md: nieuwe stap 0.5 (create_product_doc) +source_docs-paramdocs/architecture/data-model.md: nieuwe secties product_doc_revisions + pbi_docsdocs/architecture/product-docs.md: GRILLS-folder + revision-model + PBI-koppelingMCP-counterpart
Aparte PR op
scrum4me-mcp(zelfde branchnaam) — zie compare https://git.jp-visser.nl/janpeter/scrum4me-mcp/compare/main...feat/pbi-102-pbi-doc-linkingVerificatie
npm run verify: 1040/1040 tests pass (lint + typecheck + vitest)__tests__/components/idea-timeline-merge.test.ts(DATABASE_URL viaactions/questions.ts-import) — niet door PBI-102 veroorzaakt, geverifieerd viagit stashzonder mijn wijzigingen20260516235117_add_grills_enum_value,20260516235118_add_pbi_doc_junction_and_revisions)PBI-96/PBI-98plans blijven; mijn nieuwe broken-links (migrate-user → insert-milestone) gefixtTest plan
tsx scripts/migrate-idea-md-to-product-docs.ts --dry-run, daarna echte runcreate_product_doc→create_pbi(source_docs=[…])→ PBI-detail toont source-doc metvN-badgeIdea.grill_md/plan_mdna wait-for-job-refactor groen in productie🤖 Generated with Claude Code
- scripts/migrate-idea-md-to-product-docs.ts: voor elke Idea met grill_md/plan_md → ProductDoc (folder GRILLS/PLANS) + revision + Idea.{grill,plan}_doc_id + (indien pbi_id) PbiDoc-link - ensureValidFrontmatter wrapt md zonder/met incomplete frontmatter in een minimaal {title, status} blok — geen data-verlies - Slug: ${code.toLowerCase()}-${role.toLowerCase()} (bv "idea-079-plan") - Idempotent via writeProductDoc.noop + pbiDoc.upsert op unique - Flags: --dry-run, --only-idea=IDEA-NN Lokaal gerund op dev-DB (Tailscale): Run 1: created=75 linked=58 repaired=75 Run 2: created=0 reused=75 linked=58 (= idempotent ✓) Productie-rollout volgt apart na PR-merge. Task: T-1122 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>