diff --git a/docs/plans/2026-10-23_prd-1-17-brief.md b/docs/plans/2026-10-23_prd-1-17-brief.md new file mode 100644 index 000000000..a0adefd15 --- /dev/null +++ b/docs/plans/2026-10-23_prd-1-17-brief.md @@ -0,0 +1,82 @@ +# PRD 1.17 brief: Case 2 story files are DOCX + +Sage, 2026-10-23, for mos-1366 item 1, mos-1467 and mos-1470. This follows +`docs/plans/BRIEF-TEMPLATE.md`. Gitea #1815, Vikunja 570. + +## PRD 1.17 Case 2 story files are DOCX (Q235 to Q237, Q239) + +### Problem + +Jason's Q235 to Q237 make Case 2 story files DOCX, with Markdown kept for notes +and docs. PRD 1.16 still says every story file is Markdown in the user's +repository, seen in Obsidian. The 1.17 text is approved: Jason approved d8 at +435a7458d in Q239 with O2, which adds the Console Connections view (mark J-b). +d9 carries that view in Mos's mos-1443 R3 text. Webby approved d9 in rounds 7 +and 8 (webby-0214, webby-0217), and Mos passed the J-b check in mos-1470. + +The approved text is `agents/sage/work/prd-1-17/DRAFT-d9.md` at 4607e15b8, blob +sha256 02f28decad7f946f. Its base is PRD 1.16, `docs/prd/mosaic-stack.md` blob +a6db9b4a at 482e865ac (row 291). + +### Owner and reviewer + +- Owner: Gosalyn. +- Reviewer: Webby. +- After: row 291 (PRD 1.16). + +### Files owned + +The four files in DRAFT-d9.md's "Files the row would own", as it lists them: +- `docs/prd/mosaic-stack.md`. +- `packages/tasks/requirements.json`: version 1.17, the titles of REQ-LIB-1, + REQ-LIB-2 and REQ-LIB-4, and the new ids REQ-LIB-8 and REQ-LIB-9 after + REQ-LIB-7 and before REQ-INST-1. +- `packages/tasks/tests/requirements.test.mjs`: the version pin 1.17, the count + 87 (:21), and the duplicate-id message `requirements[87].id: REQ-ROLE-1 twice` + (:77). +- `packages/bus/tests/requirements.test.mjs`: the list length 87 (:48). + +### What ships + +- Every "Replace", "Add, after", "becomes" and "New" instruction in DRAFT-d9.md's + PRD sections, applied to the 1.16 text word for word. Each quoted old text + occurs once in a6db9b4a, except "The Console shows each cite's scope.", which + d9 scopes to REQ-LIB-2. Webby checked those counts in round 6. +- The 1.17 header, Status line, source lines and notes as d9 writes them. +- requirements.json as d9's requirements.json note says: REQ-LIB-1, REQ-LIB-2 and + REQ-LIB-4 take the new titles, REQ-LIB-5 and REQ-LIB-6 keep theirs, and + REQ-LIB-8 and REQ-LIB-9 are added with the titles d9 gives, so the count is 87. + REQ-LIB-4's title is 117 characters, under the 120 limit in `requirements.mjs` + (mos-1443 R2). +- Nothing from d9's review sections goes into the PRD. That covers "Settled + points", the "d2 changes" through "d9 changes" lists, "What d5 adds", "Marked + for Jason" and the impact map notes. + +### Out of scope + +- The build rows for Vikunja 570 and 571, which Sage files after the landing. +- The queue changes in the impact map (A24, A57 to A59), which go through + `scripts/mosaic queue` (C9). +- Gyro's design edit R3.4 at 767bb62c7. +- Mos's build-order call (mos-1470): the Connections view lands before the first + real chapter import opens. That belongs to Gyro's 571 rows, not the PRD. + +### Gate + +- Webby checks the candidate's PRD diff against DRAFT-d9.md, one instruction at a + time, and checks that nothing else changed. +- No new Jason question. Q239 approved the text, and a change beyond d9 would + need a new version and his approval. +- On Sage's gate: + - tasks, run whole; + - bus, run whole, because the broker loads requirements.json; + - cli `stack-copy.test.mjs`; + - every `scripts/test-*.sh`, under `timeout -k 10`. +- Mos gets the landing commit (mos-1470). + +### Handoffs + +Every seat hands off directly (DECISIONS Q210, mos-1221). When the owner pushes a +round or the reviewer posts a verdict, that seat messages the next seat's T3 +thread and Sage's with `mcp__t3__t3_send_message`. Mos has one step here, which +is receiving the landing commit.