diff --git a/.claude/skills/handoff/SKILL.md b/.claude/skills/handoff/SKILL.md index a78c5adddc..120f408d39 100644 --- a/.claude/skills/handoff/SKILL.md +++ b/.claude/skills/handoff/SKILL.md @@ -63,6 +63,14 @@ force-push, or discard work. `head`, or another command that can mask its status. Confirm the remote tip equals local HEAD with `git ls-remote` before reporting success. The pre-push guards run (auto-merge sentinel, format, drift) — heed a block rather than overriding blindly. + + **Restarting a branch whose PR already merged:** GitHub deletes the remote branch on merge, + so the local `origin/` ref is stale and `--force-with-lease` fails with `stale info` + before it ever reaches the remote. That is not a lease violation to override — run + `git remote prune origin` and push normally. There is nothing to force: the branch no longer + exists remotely, so the push creates it fresh. Observed 2026-08-14 restarting this branch + after PR #1944 merged. + 6. **Open a PR** with `gh pr create --base main`, body ending with the Claude Code attribution line. Write the body from `.github/pull_request_template.md` in full normal prose — exact `## Summary` / `## Verification` / `## Risk and rollout` / (when clinical-risk diff --git a/.claude/skills/issues/SKILL.md b/.claude/skills/issues/SKILL.md index 9abfecc8d8..87d9e98847 100644 --- a/.claude/skills/issues/SKILL.md +++ b/.claude/skills/issues/SKILL.md @@ -118,6 +118,12 @@ report that the Markdown source is current and the visual artifact is stale. Sti reconciliation handoff — a stale visual artifact must not invalidate a successful canonical transaction. +**This step is unavailable off the operator's Windows machine.** The script and the artifact are +both absolute Windows paths, so a Linux, container, or cloud session cannot run it and cannot +verify it — the artifact drifts silently from the moment such a session reconciles. Do not +improvise a substitute renderer or write the HTML by hand; report the register as stale, name the +reconciliation commit that made it so, and leave the refresh to the operator. + ## Persist the memory (commit) When the user explicitly asks for a commit, commit only the newly created request file(s), never diff --git a/.claude/skills/newtask/SKILL.md b/.claude/skills/newtask/SKILL.md index 45ae42b99c..4990c3d836 100644 --- a/.claude/skills/newtask/SKILL.md +++ b/.claude/skills/newtask/SKILL.md @@ -33,6 +33,14 @@ than opening a second branch. This is one GitHub read (`mcp__github__list_pull_r boundary. If GitHub is unreachable, treat it as a warning and continue — an offline session must still be able to start work. Recorded as `#292`. +**If the PR-handoff stop hook has already armed in this session, that read is denied** — a +session that opened its own PR and then picks up another queued item cannot call +`list_pull_requests` or `gh pr list` at all (see `docs/pr-handoff-stop-cross-agent-gap.md`). +Do not unlock the hook for this; fall back to `git ls-remote --heads origin`, which needs no +provider tool and still answers the question, because a session building the same surface +almost always has a pushed branch named after it. Report which check you used. Observed +2026-08-14 on PR #1956. + ## Steps 1. **Sync main.** `git fetch --quiet origin main`. diff --git a/docs/branch-review-records/26cca9a8fb9d8d74d7f1ee7930cfbe94b1ad5125cb1551eb036da361229c79c6.record.md b/docs/branch-review-records/26cca9a8fb9d8d74d7f1ee7930cfbe94b1ad5125cb1551eb036da361229c79c6.record.md new file mode 100644 index 0000000000..2537fe48c1 --- /dev/null +++ b/docs/branch-review-records/26cca9a8fb9d8d74d7f1ee7930cfbe94b1ad5125cb1551eb036da361229c79c6.record.md @@ -0,0 +1 @@ +| 2026-08-14 | PR-1956 | 40be0b6fd37beb39f2cd10599d5455a4ed74ceef | ledger reconciliation review, current-main merge, and duplicate-follow-up queueing | FIXED: merged current main cleanly; preserved canonical-ledger discipline; queued the two confirmed duplicate consolidations with immutable cancellation records for later serial reconciliation. | offline: ledger write-discipline; outstanding-issues; branch-review-ledger; docs links; skills; pr-policy; ci-scope; merge-loss self-test; manual adversarial review | diff --git a/docs/branch-review-records/f2f43e75cc44bf4d80d3e6bddb9f6844548e9f4d84b79b828a42a53505e3ff5c.record.md b/docs/branch-review-records/f2f43e75cc44bf4d80d3e6bddb9f6844548e9f4d84b79b828a42a53505e3ff5c.record.md new file mode 100644 index 0000000000..6cb89df155 --- /dev/null +++ b/docs/branch-review-records/f2f43e75cc44bf4d80d3e6bddb9f6844548e9f4d84b79b828a42a53505e3ff5c.record.md @@ -0,0 +1 @@ +| 2026-08-14 | claude/ledger-process-tooling-50uqfc | 93365d6e4e496c233e629d85a572f3feb08513cf | outstanding-issues reconciliation of 35 queued requests (fresh base 0011a058) | PR #1956 — one serial reconciliation transaction from a fresh origin/main base, restarting the branch after its previous PR (#1944) merged as squash 372cb13f. 35 requests applied: 17 done, 7 add, 6 update, 5 cancel; ledger 328 to 334 rows, 115 to 99 open. Machine-generated and machine-verified end to end; no request or canonical row was hand-edited. Includes the five requests PR #1944 left pending: closes #313, carries #211 forward with a re-measured 1,445 errors while keeping its deprioritisation and P3 priority, records #168 and #258 without closing either, and opens #335. One request deliberately not re-filed: cancel a8783c79, whose target 0e47904b was already consumed by the reconcile in PR #1936, making it invalid; nothing lost because the surviving #211 update folds its text forward. Visual HTML register NOT refreshed — its PowerShell refresh script is a Windows path unavailable in this Linux container; Markdown source is current, artifact is stale. | npm run verify:pr-local — 11 gates completed, 0 failed; npm run check:ledger-write-discipline printed "Ledger write discipline passed for 0011a058fd1d..HEAD", independently recomputing the transaction; check:outstanding-issues 334 rows (99 open, 235 archived), unique ids, next-id=337 above the highest, 0 pending requests, 129 applied; the pre-existing check:medication-lexicon-report failure seen on PR #1944 is gone, confirming PR #1941 fixed it at source. Note: run before committing, check:ledger-write-discipline correctly REFUSED to report a verdict and named every uncommitted request file — the guard PR #1944 shipped, working on the first real reconciliation after it landed. | diff --git a/docs/outstanding-issues-inbox/0bbea6d5-4d5e-4e9a-bcba-bc129beeba3f.json b/docs/outstanding-issues-inbox/0bbea6d5-4d5e-4e9a-bcba-bc129beeba3f.json new file mode 100644 index 0000000000..c0cb664bb1 --- /dev/null +++ b/docs/outstanding-issues-inbox/0bbea6d5-4d5e-4e9a-bcba-bc129beeba3f.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "id": "0bbea6d5-4d5e-4e9a-bcba-bc129beeba3f", + "createdOn": "2026-08-14", + "action": "cancel", + "payload": { + "requestId": "ef62d13b-6852-4a12-a1d3-4d7e22ec1232", + "reason": "The shell expanded code-span markers while creating this request, removing two command names; preserve it for audit and apply the corrected #331 update instead." + } +} diff --git a/docs/outstanding-issues-inbox/19762e55-fa25-41de-a5a2-7f4932a545fe.json b/docs/outstanding-issues-inbox/19762e55-fa25-41de-a5a2-7f4932a545fe.json new file mode 100644 index 0000000000..c4bb9a01e0 --- /dev/null +++ b/docs/outstanding-issues-inbox/19762e55-fa25-41de-a5a2-7f4932a545fe.json @@ -0,0 +1,11 @@ +{ + "version": 1, + "id": "19762e55-fa25-41de-a5a2-7f4932a545fe", + "createdOn": "2026-08-14", + "action": "update", + "payload": { + "id": "#324", + "detail": "**Outcome:** the file-level merge-loss detector is delivered; one authoritative row now tracks its remaining operational decision. **Delivered:** PR #1944 added scripts/audit-merge-loss.mjs through npm run audit:merge-loss and focused tests. It compares every changed file in a bounded main-history window with the landing commit's first parent, then reports possible reverts for human review. The implementation independently rediscovered the acf78bf casualties, including the #1803 token-retirement loss, and deliberately remains advisory because blob equality cannot distinguish a deliberate revert from an accidental merge-resolution loss. **Remaining:** decide whether it runs after merges or on a schedule, who triages positive findings, and whether the separate branch-versus-squash inbox-request-loss case should be a second detector or a mode of the same tool. A scheduled or required check without a named human disposition path would become ignorable noise. **Stop:** do not reimplement the delivered script, and do not make either detector blocking or auto-close findings until that ownership decision exists.", + "source": "session 2026-08-13 blob sweep; PR #1944 audit implementation and tests; PR #1937 inbox-loss case; consolidated by PR #1956 review follow-up" + } +} diff --git a/docs/outstanding-issues-inbox/2b7856a5-fe32-49b8-9e3c-819d961784c6.json b/docs/outstanding-issues-inbox/2b7856a5-fe32-49b8-9e3c-819d961784c6.json new file mode 100644 index 0000000000..b66e07f209 --- /dev/null +++ b/docs/outstanding-issues-inbox/2b7856a5-fe32-49b8-9e3c-819d961784c6.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "id": "2b7856a5-fe32-49b8-9e3c-819d961784c6", + "createdOn": "2026-08-14", + "action": "done", + "payload": { + "id": "#335", + "outcome": "Closed 2026-08-15 as duplicate follow-up of #324. The delivered file-level audit, the remaining schedule/owner decision, and the distinct inbox-request-loss scope are all retained in #324; no scheduling or CI policy was changed by this consolidation." + } +} diff --git a/docs/outstanding-issues-inbox/4bc449a1-ec81-426d-aadd-8a78abec21cf.json b/docs/outstanding-issues-inbox/4bc449a1-ec81-426d-aadd-8a78abec21cf.json new file mode 100644 index 0000000000..eb5e1c0967 --- /dev/null +++ b/docs/outstanding-issues-inbox/4bc449a1-ec81-426d-aadd-8a78abec21cf.json @@ -0,0 +1,11 @@ +{ + "version": 1, + "id": "4bc449a1-ec81-426d-aadd-8a78abec21cf", + "createdOn": "2026-08-14", + "action": "update", + "payload": { + "id": "#324", + "detail": "**Outcome:** the file-level merge-loss detector is delivered; one authoritative row now tracks its remaining operational decision. **Delivered:** PR #1944 added (\n> prompt-for-codex-medical-knowledge-base@0.1.0 audit:merge-loss\n> node scripts/audit-merge-loss.mjs --self-test && node scripts/audit-merge-loss.mjs\n\n[merge-loss] scanned 362 pull request landing(s) on origin/main over the last 14 day(s); compared 3673 file(s).\n\n[merge-loss] 41 landing(s) look reverted — HUMAN CONFIRMATION REQUIRED.\nA deliberate later revert is identical to an accidental one at blob level, so this is a\nquestion, not a verdict. For each entry below, decide whether the change was meant to go.\n\n PR #1815 — Merge pull request #1815 from BigSimmo/claude/spacing-icon-design-review-rxwh28\n landed 2026-08-12T12:38:37+08:00 as 4587f7890818\n 50 of 141 changed file(s) match the pre-merge tree entry:\n - src/app/mockups/answer-evidence-popups/page.tsx\n - src/app/mockups/mode-dropdown/page.tsx\n - src/components/DocumentViewer.tsx\n - src/components/calculator-mockups/calculator-ui.tsx\n - src/components/calculator-mockups/directory-grid-mockup.tsx\n - src/components/calculator-mockups/guided-flow-mockup.tsx\n - src/components/calculator-mockups/search-page-mockup.tsx\n - src/components/calculators/calculator-ui.tsx\n - src/components/calculators/directory-grid.tsx\n - src/components/calculators/guided-flow.tsx\n - src/components/clinical-dashboard/dashboard-nav.tsx\n - src/components/clinical-dashboard/evidence-panels.tsx\n - src/components/clinical-dashboard/favourites-command-library-page.tsx\n - src/components/clinical-dashboard/favourites-hub.tsx\n - src/components/clinical-dashboard/favourites-library-nav.tsx\n - src/components/clinical-dashboard/signed-image.tsx\n - src/components/document-phone-fused-directions-mockups.tsx\n - src/components/document-phone-title-mockups.tsx\n - src/components/document-phone-title-refined-mockups.tsx\n - src/components/document-search-mockups.tsx\n - src/components/document-top-navigation-mockups.tsx\n - src/components/document-viewer/document-clinical-summary.tsx\n - src/components/document-viewer/non-pdf-source-preview.tsx\n - src/components/document-viewer/pdf-canvas-viewer.tsx\n - src/components/document-viewer/section-nav.tsx\n - src/components/dsm/dsm-comparison-page.tsx\n - src/components/dsm/dsm-differential-considerations-page.tsx\n - src/components/favourites-page-mockups/favourites-page-mockup-page.tsx\n - src/components/formulation/formulation-builder-page.tsx\n - src/components/master-document-flow-mockups.tsx\n - src/components/patient-safety-plan.tsx\n - src/components/phone-mode-sheet-yes-mockups.tsx\n - src/components/privacy-live-signal-perfected-mockups.tsx\n - src/components/registry-record-loader.tsx\n - src/components/settings-search-mockups/settings-search-mockup-page.tsx\n - src/components/source-overlay-redesign-mockups.tsx\n - src/components/therapy-compass/controls.ts\n - src/components/therapy-compass/screens/compare-screen.tsx\n - src/components/therapy-compass/screens/detail-screen.tsx\n - src/components/therapy-compass/screens/other-screen.tsx\n - src/components/therapy-compass/screens/recommend-screen.tsx\n - src/components/therapy-compass/screens/sheets-screen.tsx\n - src/components/tools-page-mockups/rectangle-direction-mockups.tsx\n - src/components/tools-page-mockups/split-pane-refined-mockups.tsx\n - src/components/tools-page-mockups/task-directory-mockup.tsx\n - src/components/tools-page-mockups/tools-page-mockup-page.tsx\n - src/components/ui-primitives.tsx\n - src/components/ui/button.tsx\n - src/components/universal-search-redesign-mockups.tsx\n - tests/tailwind-merge-config.test.ts\n Inspect: git diff 4587f78908180ffb03a75b8ff5703b788e240d61^1 4587f78908180ffb03a75b8ff5703b788e240d61 -- \n\n PR #1920 — Merge pull request #1920 from BigSimmo/claude/ledger-sweep-inbox-requests\n landed 2026-08-14T04:15:35+08:00 as 5d67c2ade600\n 47 of 49 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/05b0c32b-07f7-4ca2-9361-4d7bc5490661.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/09b3e12b-c171-49a6-b9d3-3ff627c8f2cd.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/0d8735c6-1950-4fef-8880-007063bbf662.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/0e47904b-f354-4795-a4fc-dcf8b91c1790.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/2a2200d7-83ea-4cff-9969-ae682bad740c.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/2a5aadb2-ab0e-4d89-8653-7a704933d533.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/439cd410-9311-4d22-8888-9fc15948fea0.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/52929edc-53b9-4694-a0e2-1bd3c4b0a41b.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/5a2b5bda-41b7-45e9-921b-d87df7ac6af0.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/5af9a8bf-6136-4347-bcae-8433c8c9e686.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/5bf830df-f89b-4789-a6dc-48284d212171.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/67352cea-8989-4e12-b50d-5a775664d8a7.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/6a90b0f5-e5e2-46a1-9981-d5886d0e41b8.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/721e629e-15df-4b77-a25c-c18200bdca3f.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/72929356-5ff3-47da-89a9-82de09602e73.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/75a2729c-b0b0-4144-8d99-2c3014d4bcf1.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/7f9de4f4-73ca-4ab2-946c-b2ee3c27d708.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/7fc8d67c-e2e4-4e6c-9bcf-6ac65fe9adc7.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/82377462-2da9-4f8e-b0f5-a421a1ab5fdd.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/8c2d3fea-e7a9-41af-a825-62c8109d0248.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/8ef1a871-8573-4eab-83fd-213734efd82c.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/9424f687-997a-4b52-ab31-b49e462168b6.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/9c89036c-733b-41ed-b1f7-92f3daa2940b.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/9dd78494-88b6-4d8e-b5c3-28caf91acaba.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/a101203a-ae13-46e0-9f76-6e91adf77c9a.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/a5c8654c-f466-49b5-86ec-f783c15fc6e7.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/a8a73f5a-f4c5-4c97-8c5d-bc93215469bc.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/abd14d84-e4d6-4f8c-8384-a97817aafcb7.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/b278a991-3122-4662-a835-37dd1d6645cc.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/bb14f53c-d36f-48ce-a02d-836aaa107008.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/bce5b6bd-4727-4ad5-ac5f-d05a24df43cc.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/bf12d7c9-04f8-4095-ba68-0cf6f5736501.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/bfc60ffa-e648-47e1-8270-bc1056516239.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/c1218846-c99f-4d49-a44c-a97d642926aa.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/c2c0104b-02e3-4ae3-8f8a-706c421ea4ce.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/cafca1f3-5985-4d5e-9a5e-47cb6d5ffafb.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/ce7dfda5-ea3b-4cb8-a992-aec759367f9d.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/d34ff313-231a-4e65-93d6-806f5b910846.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/da9b65c7-7245-4878-8b75-56c4cbe211cb.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/dcb1ba9e-18ea-4ae4-9594-8b7cbb6cbbcc.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/e2b81b96-5063-429c-866f-3d42549bd1c8.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/e7d125c0-98a4-45db-883e-b19937bd4550.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/f1673818-e4fe-4733-9db4-312b11d0279c.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/f6953f9c-671e-4bd3-82a5-d5825046cd95.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/f6e5fe24-02f4-4a49-beea-2f8bf20e0a0e.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/fa725f37-2d49-480e-83bc-23e8bca4c232.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/fc44a290-5b8f-4ee4-b233-516774792802.json (added by the PR, absent now)\n Inspect: git diff 5d67c2ade60009deac175a6afce9aa0003389704^1 5d67c2ade60009deac175a6afce9aa0003389704 -- \n\n PR #1940 — docs(issues): retire the stale IN FLIGHT annotations, archive 9 verified rows (#1940)\n landed 2026-08-14T11:18:50Z as 7a157f423089\n 14 of 15 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/1b483041-4f2e-4ccf-872e-f7657785cfb3.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/1e598935-a21b-4aa5-9bd2-c667ce16ebbd.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/2194da1d-c445-47db-8b97-09774056ab42.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/33d68dca-16b7-4325-8c50-f046c2f71316.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/413a0aec-0239-45b2-8880-d3ace65cfdaf.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/74edc91b-042b-4e73-911c-286d0b38da45.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/a860ce7a-5ecf-4f30-a3b9-5c22d1d914b9.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/b5f28517-89c9-455d-a4b4-202608141940.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/b7a5bee9-bddc-4a7a-9614-a49301c00cc8.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/ce304701-1e01-4cfb-bf9c-202608141940.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/d3b2fe49-3282-4756-9135-7c555dede447.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/d9a7e3fc-06e9-45ca-ab2a-202608141940.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/ded27e2f-5c71-43b8-99dc-ffffa6294ba3.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/f9f40594-a816-45a8-954a-3fcecf6d5d05.json (added by the PR, absent now)\n Inspect: git diff 7a157f423089ae809a3a237221b4a2ec02225c5b^1 7a157f423089ae809a3a237221b4a2ec02225c5b -- \n\n PR #1942 — Re-land the --shadow-tight retirement and close three design-token debt rows (#1942)\n landed 2026-08-14T19:57:21+08:00 as f89fbcc75e76\n 8 of 85 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/04a0b8d6-8af9-4779-8af8-8e3b6e9a3b2b.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/11e56221-8d46-4c9a-a89c-78621f18e754.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/25f6b53a-86e2-42e9-9b38-1c2daae28892.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/39b08439-bd16-4b6d-b218-f04ad0a9a8cd.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/69b9cd4a-9c2a-4e37-a146-48c7e540b87e.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/7268da45-5b77-4583-a3cb-27e5ec7067b1.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/dcb09280-0436-4651-a707-b0007e872d7b.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/fc23f1ec-c597-4690-b256-2263ecf73c86.json (added by the PR, absent now)\n Inspect: git diff f89fbcc75e766dd08850c0e7effbd6520456abfa^1 f89fbcc75e766dd08850c0e7effbd6520456abfa -- \n\n PR #1915 — Reduce registry latency and align Sentry release identity (#1915)\n landed 2026-08-13T13:16:12Z as ca788d41e1e6\n 7 of 39 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/155e96f9-c111-4d18-b4d8-5f83b3f79907.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/2ab54188-4652-42e2-a6b0-ff2f673d3d10.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/67f9ce93-caf5-4cd4-89e1-742e61ce882a.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/78fad74b-9478-4e58-9131-8a6bc5858c79.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/9a3ea3c5-31ed-4a89-a035-e6d364b906bf.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/a4bf50b9-95bf-458f-9a16-a80acf0830c0.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/e760edf4-fdf7-41c2-aa97-6f4563c6152f.json (added by the PR, absent now)\n Inspect: git diff ca788d41e1e6b64dc6b9bc63609074d92470d7e7^1 ca788d41e1e6b64dc6b9bc63609074d92470d7e7 -- \n\n PR #1800 — Add conservative typo-tolerant fuzzy matching to catalogue searches (#1800)\n landed 2026-08-10T23:44:57+08:00 as 022c83bd78a0\n 6 of 12 changed file(s) match the pre-merge tree entry:\n - src/components/factsheets/factsheets-data.ts\n - src/lib/specifiers.ts\n - src/lib/therapies.ts\n - tests/factsheets-data.test.ts\n - tests/specifiers.test.ts\n - tests/therapy-card-preview.test.ts\n Inspect: git diff 022c83bd78a0bb72cc64f1e5dedc5eab21e6377f^1 022c83bd78a0bb72cc64f1e5dedc5eab21e6377f -- \n\n PR #1804 — Merge pull request #1804 from BigSimmo/codex/remove-also-matches-in-other-modes\n landed 2026-08-10T23:59:30+08:00 as 914a5b9009f5\n 5 of 21 changed file(s) match the pre-merge tree entry:\n - src/components/forms/forms-search-results-page.tsx\n - tests/favourites-auth-gate.test.ts\n - tests/favourites-empty-state.dom.test.tsx\n - tests/mode-menu-prefetch.dom.test.tsx\n - tests/style-contract-registry.test.ts\n Inspect: git diff 914a5b9009f5c86b35699a3e53d366f20fd51e12^1 914a5b9009f5c86b35699a3e53d366f20fd51e12 -- \n\n PR #1930 — Queue five ledger corrections: the document-viewer rows say things that are no longer true (#1930)\n landed 2026-08-13T21:22:50Z as a544719afd14\n 5 of 12 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/3f1a672f-9038-4a36-897f-5286e4fa028d.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/89ac3ee8-550a-44aa-b411-88687e5935e4.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/9ae893ef-7073-4dfa-8602-899d53b177b7.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/9db75fae-07e6-454d-b2c4-eb88b0e8ff06.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/c15dfcea-2b4e-4c25-983e-c699ef7d1a52.json (added by the PR, absent now)\n Inspect: git diff a544719afd14ccaf1ed4241e7a66ec20f4f96c2c^1 a544719afd14ccaf1ed4241e7a66ec20f4f96c2c -- \n\n PR #1934 — Merge pull request #1934 from BigSimmo/claude/ledger-tasks-fable-xhl7xb\n landed 2026-08-14T05:50:19+08:00 as 606176ccf6a0\n 5 of 6 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/210e3db5-f863-4dc8-8d6e-4d75d044e661.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/31650c87-cfea-4a98-88e1-bd41b44c12b2.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/829597d4-698b-4cc2-9bf4-65310504cba3.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/8621298b-db72-4960-818a-66ae49a3977f.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/f23c14ec-e386-4910-ba60-fd488cc0a83b.json (added by the PR, absent now)\n Inspect: git diff 606176ccf6a0629735f8345dff6df1edf939b0ac^1 606176ccf6a0629735f8345dff6df1edf939b0ac -- \n\n PR #1944 — Five ledger process and tooling fixes: dirty-tree gate, merge-loss detector, three plans (#1944)\n landed 2026-08-14T14:08:19Z as 372cb13fb2f5\n 5 of 20 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/71d61764-9d93-43bd-a3d3-230f5ad78418.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/83ec71cf-db94-4110-ada8-ec7e730e5154.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/a780ce8a-a373-4c95-974f-0692af775ff6.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/d229e6b5-a31a-44a9-8a7b-536e7f8ccf50.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/e684a311-2a0d-4c21-ba18-13afde3b62f8.json (added by the PR, absent now)\n Inspect: git diff 372cb13fb2f530eab259e72cdff41e6aa31dabbb^1 372cb13fb2f530eab259e72cdff41e6aa31dabbb -- \n\n PR #1960 — Merge pull request #1960 from BigSimmo/claude/live-drift-forensics-lnhvja\n landed 2026-08-14T23:17:32+08:00 as 7679dfa25339\n 5 of 8 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/19fb70c0-1fd4-43a8-a4f4-efa9c31d16b1.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/606b1573-6217-457a-9183-7f8e550d3094.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/81845ded-27a8-43d8-9a56-d85a5515935b.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/bbf21714-0ef9-4c2f-942f-1b8d7e328ac8.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/d52dbc3d-6759-4f6e-9089-24059830ed5a.json (added by the PR, absent now)\n Inspect: git diff 7679dfa25339256cb8e04d32ab666d1eb95396d1^1 7679dfa25339256cb8e04d32ab666d1eb95396d1 -- \n\n PR #1886 — fix(therapies): stop the catalogue generator consuming its own output (#180) and serve aliases by rewrite (#177) (#1886)\n landed 2026-08-13T07:17:48Z as b189fb57d326\n 4 of 14 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/02278dd9-cc4d-4114-8d5e-84414910b886.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/3f38592b-8346-48dc-87d9-acc585ffe5b8.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/7336de95-160e-4255-b2c0-abcfd7f4e093.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/976c4c7a-5c74-47e3-975b-046718c54859.json (added by the PR, absent now)\n Inspect: git diff b189fb57d326d7a05770c0e4be8b0a4b1abfadf6^1 b189fb57d326d7a05770c0e4be8b0a4b1abfadf6 -- \n\n PR #1933 — Record deployed latency evidence and remaining bottleneck (#1933)\n landed 2026-08-13T21:43:37Z as 804e931a063d\n 4 of 5 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/821d7e63-4bf3-4af7-abfb-071f916b847c.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/a51fd616-bb58-4a1b-9009-21686eea2a84.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/e7fe0e34-3ff3-48d0-878c-2d7a7fe792f1.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/ee6875e6-62ad-4f2e-8644-6f3b7a973d87.json (added by the PR, absent now)\n Inspect: git diff 804e931a063d7720de61849e6daeea78916d5cfb^1 804e931a063d7720de61849e6daeea78916d5cfb -- \n\n PR #1957 — Merge pull request #1957 from BigSimmo/claude/correct-rejected-closures\n landed 2026-08-14T23:01:02+08:00 as b58a2359eede\n 4 of 5 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/38c6095f-41f5-4925-b1ea-f5af5187885d.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/7f5e6922-8d0b-424a-b359-12bed3a4e315.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/bd11cfe9-1627-425f-a8f7-e0e202b980a4.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/ec6d0c23-2f19-4159-9c73-49bdc103b61e.json (added by the PR, absent now)\n Inspect: git diff b58a2359eede6fc5a76237337fbe1b04c7964d26^1 b58a2359eede6fc5a76237337fbe1b04c7964d26 -- \n\n PR #1923 — fix(medications): reach lithium, retire the dead z-drugs term, make lexicon review flags evidence-bearing (#1923)\n landed 2026-08-13T20:45:21Z as eac9c4d51fdd\n 3 of 18 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/1bfaf0ef-e169-4a0c-8ad0-ca391f5f6024.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/4b95979b-65e8-474d-bc53-6f69e7eb5acf.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/5c830d16-5076-4435-9903-6f3e7a71daa4.json (added by the PR, absent now)\n Inspect: git diff eac9c4d51fddf258b93ec5affe066427f66345d8^1 eac9c4d51fddf258b93ec5affe066427f66345d8 -- \n\n PR #1925 — chore(issues): close #170, and correct #309 to partially delivered (#1925)\n landed 2026-08-14T00:20:50+08:00 as 63526ee5305e\n 3 of 4 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/4944d2d8-69b6-479c-b0bd-a977494a74fb.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/4bb5ba0d-ca46-454e-97f4-5a49f5c87f22.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/e48b440b-d5a0-436b-bea8-ca7670d1a6bb.json (added by the PR, absent now)\n Inspect: git diff 63526ee5305ec0ff6c6ed2c2ccdf347310cb7c03^1 63526ee5305ec0ff6c6ed2c2ccdf347310cb7c03 -- \n\n PR #1928 — docs(issues): queue a capture for the four placeholders #291 deliberately left native (#1928)\n landed 2026-08-13T21:10:03Z as 3086cf1cc535\n 3 of 5 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/1752caad-7fac-4089-a415-d20a26e5984a.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/38e25384-5dcb-463d-b1b7-e0caea60bb83.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/47ba09d2-64f6-47ab-8ad6-380fc3f93eee.json (added by the PR, absent now)\n Inspect: git diff 3086cf1cc535a23b0f338694477b63db4a953e09^1 3086cf1cc535a23b0f338694477b63db4a953e09 -- \n\n PR #1941 — fix(errors): disposition the last 3 empty catch handlers and guard the rule (#1941)\n landed 2026-08-14T11:41:08Z as 3d5cd7cb8b0d\n 3 of 8 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/b7c0f9f6-c95d-413f-9bdd-6b6ad9cbcb91.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/e4a11465-348c-49e5-8a0a-202608141941.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/f825f6b9-94ec-4af1-929c-202608141941.json (added by the PR, absent now)\n Inspect: git diff 3d5cd7cb8b0d22fc95d3e04a495cfae8533bda17^1 3d5cd7cb8b0d22fc95d3e04a495cfae8533bda17 -- \n\n PR #1548 — Therapy Compass: stop faking multi-select with a listbox on phones (#1548)\n landed 2026-08-01T01:35:44Z as 40814b447080\n 2 of 8 changed file(s) match the pre-merge tree entry:\n - src/components/therapy-compass/filter-sheet.tsx (added by the PR, absent now)\n - tests/therapy-filter-sheet.dom.test.tsx (added by the PR, absent now)\n Inspect: git diff 40814b447080219d861dd999fee0c8bc4cac3cc2^1 40814b447080219d861dd999fee0c8bc4cac3cc2 -- \n\n PR #1807 — Merge pull request #1807 from BigSimmo/claude/codex-m4c-retire-shadow-nliak3\n landed 2026-08-11T18:24:08+08:00 as 381d2c214c8a\n 2 of 10 changed file(s) match the pre-merge tree entry:\n - docs/design-system/HANDOVER-2026-08-07.md\n - docs/design-system/SPEC.md\n Inspect: git diff 381d2c214c8a49b7970474ad9e9f1042dc020c75^1 381d2c214c8a49b7970474ad9e9f1042dc020c75 -- \n\n PR #1906 — Merge pull request #1906 from BigSimmo/claude/fable-tasks-issues-49hnvp\n landed 2026-08-13T18:47:53+08:00 as 4bbc4c5ca2f2\n 2 of 6 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/a3dca734-d253-4c42-8edc-dc690dd140dc.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/dec50a21-f143-485d-a6b1-f9c3621013a6.json (added by the PR, absent now)\n Inspect: git diff 4bbc4c5ca2f27cf8b3e571d8ebce1e18937296b6^1 4bbc4c5ca2f27cf8b3e571d8ebce1e18937296b6 -- \n\n PR #1909 — Merge pull request #1909 from BigSimmo/claude/rag-incremental-delivery-lpw15e\n landed 2026-08-14T02:25:18+08:00 as d9306e800b7a\n 2 of 13 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/75df9b82-7ecc-4aa2-bdac-653da976fe53.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/e1506952-64c6-472f-9da4-812f8d69b483.json (added by the PR, absent now)\n Inspect: git diff d9306e800b7ab276c81d0b41a2b4527cb0da1948^1 d9306e800b7ab276c81d0b41a2b4527cb0da1948 -- \n\n PR #1927 — Reduce render-blocking CSS without delaying LCP fonts (#1927)\n landed 2026-08-14T00:06:15+08:00 as f2abf5baf3f4\n 2 of 10 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/66f364c0-5612-449b-9046-94b4dab0b152.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/f4b9c833-03f4-40bd-9537-90501c1287c4.json (added by the PR, absent now)\n Inspect: git diff f2abf5baf3f449a1803bedef9dc107f30b70db93^1 f2abf5baf3f449a1803bedef9dc107f30b70db93 -- \n\n PR #1929 — Merge pull request #1929 from BigSimmo/claude/design-issues-triage-wnr7k9\n landed 2026-08-14T05:17:30+08:00 as 1e7efdb0f244\n 2 of 3 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/04470779-8c8d-4c90-ad04-bc6d613fd73a.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/9fded706-51d9-4d8f-9aa4-c57a6b0ac7aa.json (added by the PR, absent now)\n Inspect: git diff 1e7efdb0f2441f370564cbdbdb50de94c405026b^1 1e7efdb0f2441f370564cbdbdb50de94c405026b -- \n\n PR #1932 — Close the resolved ranking snapshot refresh task accurately (#1932)\n landed 2026-08-13T21:33:49Z as 1ca47782aa3a\n 2 of 4 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/43a11115-c75f-4402-a83c-7a309b3a76c4.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/b78e551e-280b-4b9c-bdc5-37a79daeb4cf.json (added by the PR, absent now)\n Inspect: git diff 1ca47782aa3ae8504134a5798a6b86716cdebac2^1 1ca47782aa3ae8504134a5798a6b86716cdebac2 -- \n\n PR #1937 — Record a queued ledger request that was lost between a branch and its squash (#1937)\n landed 2026-08-14T11:06:10Z as 87fa45292273\n 2 of 3 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/4b6930e6-fae2-4b4f-9f90-49bf0bcd548c.json (added by the PR, absent now)\n - docs/outstanding-issues-inbox/63419f06-c12a-4a84-a684-6e177f527365.json (added by the PR, absent now)\n Inspect: git diff 87fa4529227393733a2aa9ce9d95598070535714^1 87fa4529227393733a2aa9ce9d95598070535714 -- \n\n PR #1555 — Search results bar: delete the inert scope system, rebuild the filter shelf, and land the bar anatomy (#1555)\n landed 2026-08-01T10:25:30+08:00 as b1e01173eae2\n 1 of 20 changed file(s) match the pre-merge tree entry:\n - docs/handoff-search-bar.md (added by the PR, absent now)\n Inspect: git diff b1e01173eae2ac1f68c7a98e72dd569fe79cd305^1 b1e01173eae2ac1f68c7a98e72dd569fe79cd305 -- \n\n PR #1661 — Add first-page PDF cover thumbnails on document search cards (#1661)\n landed 2026-08-07T03:32:04Z as 096ba3138fe4\n 1 of 20 changed file(s) match the pre-merge tree entry:\n - scripts/backfill-document-covers.mjs (added by the PR, absent now)\n Inspect: git diff 096ba3138fe4dda182d98cc2f9c4e0fe9a09132b^1 096ba3138fe4dda182d98cc2f9c4e0fe9a09132b -- \n\n PR #1665 — refactor(viewer): extract DocumentViewer shell modules (Phase 1) (#1665)\n landed 2026-08-07T01:34:42Z as bd46a39ac02e\n 1 of 9 changed file(s) match the pre-merge tree entry:\n - src/components/document-viewer/use-pdf-viewer-preference.ts (added by the PR, absent now)\n Inspect: git diff bd46a39ac02e604eb45178b5ed38d39f06cc6830^1 bd46a39ac02e604eb45178b5ed38d39f06cc6830 -- \n\n PR #1759 — Add Differentials Presentations catalogue tab (#1759)\n landed 2026-08-08T20:38:06Z as 00cf695806c8\n 1 of 23 changed file(s) match the pre-merge tree entry:\n - src/app/(search-app)/differentials/compare/route.ts (added by the PR, absent now)\n Inspect: git diff 00cf695806c8f23250b527e8666caafce03549d0^1 00cf695806c8f23250b527e8666caafce03549d0 -- \n\n PR #1796 — Merge pull request #1796 from BigSimmo/dependabot/docker/docker-images-263a700181\n landed 2026-08-10T23:31:32+08:00 as 9a3ca935abe4\n 1 of 3 changed file(s) match the pre-merge tree entry:\n - worker/validate-runtime.ts\n Inspect: git diff 9a3ca935abe40743a8ae69222a8c6a80485869da^1 9a3ca935abe40743a8ae69222a8c6a80485869da -- \n\n PR #1803 — Retire the --shadow-tight role alias onto the --e1 elevation tier (#1803)\n landed 2026-08-10T14:27:54Z as 9d8370abf287\n 1 of 82 changed file(s) match the pre-merge tree entry:\n - docs/design-system/TOKENS.md\n Inspect: git diff 9d8370abf287f7e4e20cececd9c3ccdb01b0d78d^1 9d8370abf287f7e4e20cececd9c3ccdb01b0d78d -- \n\n PR #1811 — Merge pull request #1811 from BigSimmo/codex/update-search-page-routing-to-new-version\n landed 2026-08-11T16:12:52+08:00 as cb23f868c51b\n 1 of 3 changed file(s) match the pre-merge tree entry:\n - tests/mode-secondary-navigation.test.ts\n Inspect: git diff cb23f868c51b289dbfb6fd3944c63e5da3a194c5^1 cb23f868c51b289dbfb6fd3944c63e5da3a194c5 -- \n\n PR #1873 — Merge pull request #1873 from BigSimmo/codex/ledger-conflict-guards-publish\n landed 2026-08-13T09:07:02+08:00 as 72bf435840ce\n 1 of 26 changed file(s) match the pre-merge tree entry:\n - .github/workflows/pr1873-merge-main-v2.yml (added by the PR, absent now)\n Inspect: git diff 72bf435840ce22911001088c02b383c638b110dc^1 72bf435840ce22911001088c02b383c638b110dc -- \n\n PR #1893 — Merge pull request #1893 from BigSimmo/codex/keep-pr-auto-merge\n landed 2026-08-13T06:11:48+08:00 as 18cb6889cb36\n 1 of 1 changed file(s) match the pre-merge tree entry:\n - .github/workflows/keep-pr-auto-merge.yml (added by the PR, absent now)\n Inspect: git diff 18cb6889cb36acae352fd526962f9ff86cfe33ef^1 18cb6889cb36acae352fd526962f9ff86cfe33ef -- \n\n PR #1900 — docs(issues): capture the #290 recurrence playbook — window unconfirmed, reporter-stranding mechanism first (#1900)\n landed 2026-08-13T04:07:28Z as a5f03ccc3390\n 1 of 1 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/bbf8ba3d-cdfb-49ef-80f2-09964ac8483d.json (added by the PR, absent now)\n Inspect: git diff a5f03ccc3390803a2b9de1d91701cf3a9d0455a8^1 a5f03ccc3390803a2b9de1d91701cf3a9d0455a8 -- \n\n PR #1921 — docs(issues): close out PR E (therapy-compass) — already merged, close the rollout tracking row (#1921)\n landed 2026-08-13T20:21:57Z as db274b88e889\n 1 of 2 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/02879c2f-f7c7-4698-bc2e-cd5555cc2f37.json (added by the PR, absent now)\n Inspect: git diff db274b88e889b902921c46e7646eb6de50e419bb^1 db274b88e889b902921c46e7646eb6de50e419bb -- \n\n PR #1924 — docs(issues): re-file the #210 correction lost in the inbox migration (#1924)\n landed 2026-08-13T20:49:54Z as cf07f4e3d4d0\n 1 of 2 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/24586190-0756-488d-941e-70a970c13cce.json (added by the PR, absent now)\n Inspect: git diff cf07f4e3d4d023934a4e28ba9e41526ce166b1a6^1 cf07f4e3d4d023934a4e28ba9e41526ce166b1a6 -- \n\n PR #1938 — ci(drift): route live-drift failures to a pinned issue and trigger on migrations (#1938)\n landed 2026-08-14T11:10:15Z as 79b01b3f4a9a\n 1 of 3 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/17e1baf4-7d8f-4494-acd6-a845ade305ca.json (added by the PR, absent now)\n Inspect: git diff 79b01b3f4a9a7d78ca7db330fc122a46d52763a9^1 79b01b3f4a9a7d78ca7db330fc122a46d52763a9 -- \n\n PR #1943 — docs(issues): close #310 — the fuzzy catalogue cap already landed on main (#1943)\n landed 2026-08-14T20:03:29+08:00 as 408747a0439e\n 1 of 1 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/00428ff0-1b45-4066-9838-94216fa8b6eb.json (added by the PR, absent now)\n Inspect: git diff 408747a0439e24a09d0df6fc94d9233ed0a95caf^1 408747a0439e24a09d0df6fc94d9233ed0a95caf -- \n\n PR #1945 — Merge pull request #1945 from BigSimmo/claude/ledger-review-triage-yi63ao\n landed 2026-08-14T20:55:27+08:00 as f368f8d7e796\n 1 of 2 changed file(s) match the pre-merge tree entry:\n - docs/outstanding-issues-inbox/01580a63-502e-4ee9-bdf2-a5bf492f7dee.json (added by the PR, absent now)\n Inspect: git diff f368f8d7e796429d3d6f7a45fa0c39664cfb33af^1 f368f8d7e796429d3d6f7a45fa0c39664cfb33af -- \n\nConfirmed losses are re-landed as their own pull request; record the decision with npm run issues:add.) and focused tests. It compares every changed file in a bounded main-history window with the landing commit's first parent, then reports possible reverts for human review. The implementation independently rediscovered the acf78bf casualties, including the #1803 token-retirement loss, and deliberately remains advisory because blob equality cannot distinguish a deliberate revert from an accidental merge-resolution loss. **Remaining:** decide whether it runs after merges or on a schedule, who triages positive findings, and whether the separate branch-versus-squash inbox-request-loss case should be a second detector or a mode of the same tool. A scheduled or required check without a named human disposition path would become ignorable noise. **Stop:** do not reimplement the delivered script, and do not make either detector blocking or auto-close findings until that ownership decision exists.", + "source": "session 2026-08-13 blob sweep; PR #1944 audit implementation and tests; PR #1937 inbox-loss case; consolidated by PR #1956 review follow-up" + } +} diff --git a/docs/outstanding-issues-inbox/9b67dd0e-f11e-423e-be63-7e4d91f4dd82.json b/docs/outstanding-issues-inbox/9b67dd0e-f11e-423e-be63-7e4d91f4dd82.json new file mode 100644 index 0000000000..f375e01fbe --- /dev/null +++ b/docs/outstanding-issues-inbox/9b67dd0e-f11e-423e-be63-7e4d91f4dd82.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "id": "9b67dd0e-f11e-423e-be63-7e4d91f4dd82", + "createdOn": "2026-08-14", + "action": "done", + "payload": { + "id": "#335", + "outcome": "Closed 2026-08-15 as duplicate follow-up of #324. The delivered file-level audit, the remaining schedule/owner decision, and the distinct inbox-request-loss scope are all retained in #324; no scheduling or CI policy was changed by this consolidation." + } +} diff --git a/docs/outstanding-issues-inbox/d226dce3-76a2-4ccc-9723-5e7ca03a6c5d.json b/docs/outstanding-issues-inbox/d226dce3-76a2-4ccc-9723-5e7ca03a6c5d.json new file mode 100644 index 0000000000..781985910b --- /dev/null +++ b/docs/outstanding-issues-inbox/d226dce3-76a2-4ccc-9723-5e7ca03a6c5d.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "id": "d226dce3-76a2-4ccc-9723-5e7ca03a6c5d", + "createdOn": "2026-08-14", + "action": "cancel", + "payload": { + "requestId": "4bc449a1-ec81-426d-aadd-8a78abec21cf", + "reason": "This aborted command captured audit output inside the immutable detail field; apply the corrected #324 update 19762e55-fa25-41de-a5a2-7f4932a545fe instead." + } +} diff --git a/docs/outstanding-issues-inbox/d2e60a94-b12a-4502-a8b9-3dc8406cc8c8.json b/docs/outstanding-issues-inbox/d2e60a94-b12a-4502-a8b9-3dc8406cc8c8.json new file mode 100644 index 0000000000..51fffaadae --- /dev/null +++ b/docs/outstanding-issues-inbox/d2e60a94-b12a-4502-a8b9-3dc8406cc8c8.json @@ -0,0 +1,13 @@ +{ + "version": 1, + "id": "d2e60a94-b12a-4502-a8b9-3dc8406cc8c8", + "createdOn": "2026-08-14", + "action": "add", + "payload": { + "pri": "P3", + "type": "issue", + "summary": "The visual ISSUES-LIST.html register cannot be refreshed from any non-Windows session, so it drifts silently as work moves to cloud sessions", + "detail": "**Outcome:** either the rendered register is refreshable from any session that can reconcile, or it is retired and the Markdown ledger is the only artifact. **Detail, observed 2026-08-14 during the reconciliation in PR #1956.** `.claude/skills/issues/SKILL.md` refreshes the register by invoking `refresh-issues-list.ps1` under the operator's Windows `.codex\\scripts` directory and writing `ISSUES-LIST.html` into their OneDrive folder — both absolute Windows paths. A Linux, container, or Codex/Claude Cloud session can run `npm run issues:reconcile` perfectly well (it did: 35 requests, write-discipline verified) but cannot run the refresh and cannot even check how stale the artifact is. The skill already handles this correctly for a single run — it says a stale visual artifact must not invalidate a valid canonical transaction, which is the right call — so this is not a correctness bug. The problem is cumulative: every cloud reconciliation widens the gap, and nothing measures it, so a reader opening the HTML has no way to tell whether it is an hour or a month behind. **Why it is P3 and not higher:** `docs/outstanding-issues.md` is the canonical rendered source and is always current; only the convenience artifact drifts. **Next, cheapest first:** decide whether the register is still wanted. If yes, the smallest fix is a stamp rather than a port — have the refresh write the reconciliation commit SHA into the HTML so staleness is visible at a glance, and have reconcile print a reminder naming the commit that needs it. A full cross-platform port (a Node renderer under `scripts/`) is the larger option and probably only worth it if the register is load-bearing for someone. If nobody reads it, retiring it and deleting that skill section is cheaper than either. **Stop:** do not improvise a substitute renderer or hand-write the HTML from a cloud session — an artifact that looks refreshed but was produced by a different generator is worse than one that is visibly stale.", + "source": "PR #1956 reconciliation; .claude/skills/issues/SKILL.md refresh section; session 2026-08-14" + } +} diff --git a/docs/outstanding-issues-inbox/ddef5391-d476-417f-b0c8-662e44c54f8b.json b/docs/outstanding-issues-inbox/ddef5391-d476-417f-b0c8-662e44c54f8b.json new file mode 100644 index 0000000000..8188137dd7 --- /dev/null +++ b/docs/outstanding-issues-inbox/ddef5391-d476-417f-b0c8-662e44c54f8b.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "id": "ddef5391-d476-417f-b0c8-662e44c54f8b", + "createdOn": "2026-08-14", + "action": "cancel", + "payload": { + "requestId": "9b67dd0e-f11e-423e-be63-7e4d91f4dd82", + "reason": "This duplicate #335 closure was created by the aborted command; apply the identical intended closure 2b7856a5-fe32-49b8-9e3c-819d961784c6 instead." + } +} diff --git a/docs/outstanding-issues-inbox/ef62d13b-6852-4a12-a1d3-4d7e22ec1232.json b/docs/outstanding-issues-inbox/ef62d13b-6852-4a12-a1d3-4d7e22ec1232.json new file mode 100644 index 0000000000..66926af268 --- /dev/null +++ b/docs/outstanding-issues-inbox/ef62d13b-6852-4a12-a1d3-4d7e22ec1232.json @@ -0,0 +1,11 @@ +{ + "version": 1, + "id": "ef62d13b-6852-4a12-a1d3-4d7e22ec1232", + "createdOn": "2026-08-14", + "action": "update", + "payload": { + "id": "#331", + "detail": "**Outcome:** one authoritative owner for the medication-report staleness problem, including its missing CI coverage. **Evidence:** on 2026-08-14, reported the review document stale on three independently authored branches (#1947, #1949, #1950) although the document, lexicon sources, medication snapshot, and interaction index were untouched. The symptom must therefore be investigated against a clean current main rather than fixed opportunistically in unrelated work. **Scope:** this row also carries the CI evidence formerly duplicated in #333: the check is reached only at the end of and no workflow invokes it, so CI can stay green while a local PR preflight fails. **Next:** inspect the generator and its staleness comparison against current main; if the report is genuinely stale, regenerate it in a dedicated clinical-document change, otherwise fix the comparison. In the same decision, either make the validated check part of the appropriate CI contract or move it out of the local preflight so its enforcement matches its ownership. **Stop:** do not delete or weaken the check merely to green an unrelated preflight, and do not regenerate a clinical-facing artifact without checking whether the diff changes clinical content.", + "source": "PR #1947, PR #1949 and PR #1950 clean-branch reproductions; PR #1942 preflight; session 2026-08-14; consolidated by PR #1956 review follow-up" + } +} diff --git a/docs/outstanding-issues-inbox/f3b63187-c295-4f6a-8ecd-602f348835c4.json b/docs/outstanding-issues-inbox/f3b63187-c295-4f6a-8ecd-602f348835c4.json new file mode 100644 index 0000000000..ec94efd66f --- /dev/null +++ b/docs/outstanding-issues-inbox/f3b63187-c295-4f6a-8ecd-602f348835c4.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "id": "f3b63187-c295-4f6a-8ecd-602f348835c4", + "createdOn": "2026-08-14", + "action": "done", + "payload": { + "id": "#333", + "outcome": "Closed 2026-08-15 as a duplicate of #331. Its clean-main and missing-CI evidence is preserved in #331, which is now the single owner of both the staleness diagnosis and the CI/local-preflight enforcement decision; no medication report was regenerated or clinical content changed." + } +} diff --git a/docs/outstanding-issues-inbox/fbfe982f-cd2f-49c9-a94e-908a99efa6b8.json b/docs/outstanding-issues-inbox/fbfe982f-cd2f-49c9-a94e-908a99efa6b8.json new file mode 100644 index 0000000000..61b0669aa9 --- /dev/null +++ b/docs/outstanding-issues-inbox/fbfe982f-cd2f-49c9-a94e-908a99efa6b8.json @@ -0,0 +1,11 @@ +{ + "version": 1, + "id": "fbfe982f-cd2f-49c9-a94e-908a99efa6b8", + "createdOn": "2026-08-14", + "action": "update", + "payload": { + "id": "#331", + "detail": "**Outcome:** one authoritative owner for the medication-report staleness problem, including its missing CI coverage. **Evidence:** on 2026-08-14, check:medication-lexicon-report reported the review document stale on three independently authored branches (#1947, #1949, #1950) although the document, lexicon sources, medication snapshot, and interaction index were untouched. The symptom must therefore be investigated against a clean current main rather than fixed opportunistically in unrelated work. **Scope:** this row also carries the CI evidence formerly duplicated in #333: the check is reached only at the end of verify:pr-local and no workflow invokes it, so CI can stay green while a local PR preflight fails. **Next:** inspect the generator and its staleness comparison against current main; if the report is genuinely stale, regenerate it in a dedicated clinical-document change, otherwise fix the comparison. In the same decision, either make the validated check part of the appropriate CI contract or move it out of the local preflight so its enforcement matches its ownership. **Stop:** do not delete or weaken the check merely to green an unrelated preflight, and do not regenerate a clinical-facing artifact without checking whether the diff changes clinical content.", + "source": "PR #1947, PR #1949 and PR #1950 clean-branch reproductions; PR #1942 preflight; session 2026-08-14; consolidated by PR #1956 review follow-up" + } +}