Skip to content

Commit dcdf34a

Browse files
sudoshiruvnet
andcommitted
docs(lineage): reconcile completion-plan check-offs + ship protocol-to-publication closeout
11-section evidence audit (each newly-done claim adversarially re-verified, several by running the cited tests) reconciled the application-completion plan against the A1-A5/Gate-B work of 2026-06-19..21: - Checked off Phase 0 bounded test lanes and the full Phase 3 protocol-to-publication block (P0-P6 + parent), HADES sidecar verification, sidecar contract tests, package closeout, the r_not_implemented decision, and the phenotype-validation backlog. - New per-phase closeout: docs/lineage/modules/studies/2026-06-21-protocol-to-publication-closeout.md. - Protocol-to-publication plan banner: implementation complete, open pending the live study-114 gated re-run. - Fixed Gate-B5 regression: DR runbook frontmatter missing related_prs (--check-frontmatter now passes), regenerated catalog. content-tree + public-docs guards green. Co-Authored-By: claude-flow <ruv@ruv.net>
1 parent 9b554f7 commit dcdf34a

5 files changed

Lines changed: 132 additions & 29 deletions

File tree

docs/lineage/catalog.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,20 @@ Generated by `python3 scripts/docs/catalog_lineage_docs.py --write-catalog`.
1818

1919
## Summary
2020

21-
- Authored Markdown/MDX files: 931
22-
- Total lines: 419,466
21+
- Authored Markdown/MDX files: 933
22+
- Total lines: 419,771
2323
- Files missing lineage frontmatter: 0
2424

2525
## Category Counts
2626

2727
| Count | Category |
2828
|---:|---|
29-
| 191 | `module-lineage` |
29+
| 192 | `module-lineage` |
3030
| 95 | `public-docs-source` |
3131
| 93 | `closed-plan` |
3232
| 79 | `legacy-plan` |
3333
| 74 | `public-dev-blog` |
34-
| 72 | `operations-lineage` |
34+
| 73 | `operations-lineage` |
3535
| 50 | `active-spec` |
3636
| 42 | `legacy-spec` |
3737
| 36 | `session-lineage` |
@@ -70,10 +70,10 @@ Generated by `python3 scripts/docs/catalog_lineage_docs.py --write-catalog`.
7070
| `docs/lineage/plans/open/2026-05-07-parthenon-ingestion-templates-phase-4-plan-6-fhir-bulk-data-reader.md` | Parthenon Ingestion Templates — Phase 4, Plan 6: HL7 FHIR Bulk Data reader (streaming claims) | 62 | yes | `docs/lineage/plans/open/2026-05-07-parthenon-ingestion-templates-phase-4-plan-6-fhir-bulk-data-reader.md` |
7171
| `docs/lineage/plans/open/2026-05-07-parthenon-ingestion-templates-phase-4-plan-7-federated-mapping-spike.md` | Parthenon Ingestion Templates — Phase 4, Plan 7: Federated mapping review spike | 61 | yes | `docs/lineage/plans/open/2026-05-07-parthenon-ingestion-templates-phase-4-plan-7-federated-mapping-spike.md` |
7272
| `docs/lineage/plans/open/2026-05-07-parthenon-ingestion-templates-phase-4-plan-8-upstream-diff-workflows.md` | Parthenon Ingestion Templates — Phase 4, Plan 8: Quarterly upstream-diff workflows (ARTEMIS + NAACCR) | 53 | yes | `docs/lineage/plans/open/2026-05-07-parthenon-ingestion-templates-phase-4-plan-8-upstream-diff-workflows.md` |
73-
| `docs/lineage/plans/open/2026-06-18-application-completion-plan.md` | Parthenon Application Completion Plan | 467 | yes | `docs/lineage/plans/open/2026-06-18-application-completion-plan.md` |
73+
| `docs/lineage/plans/open/2026-06-18-application-completion-plan.md` | Parthenon Application Completion Plan | 479 | yes | `docs/lineage/plans/open/2026-06-18-application-completion-plan.md` |
7474
| `docs/lineage/plans/open/2026-06-19-production-readiness-roadmap.md` | Parthenon Production-Readiness Roadmap | 351 | yes | `docs/lineage/plans/open/2026-06-19-production-readiness-roadmap.md` |
7575
| `docs/lineage/plans/open/README.md` | Open Plan Backlog | 47 | yes | `docs/lineage/plans/open/README.md` |
76-
| `docs/lineage/plans/open/protocol-to-publication-implementation-plan.md` | Abby — Protocol-to-Publication Pipeline: Implementation Plan | 371 | yes | `docs/lineage/plans/open/protocol-to-publication-implementation-plan.md` |
76+
| `docs/lineage/plans/open/protocol-to-publication-implementation-plan.md` | Abby — Protocol-to-Publication Pipeline: Implementation Plan | 380 | yes | `docs/lineage/plans/open/protocol-to-publication-implementation-plan.md` |
7777

7878
### active-spec
7979

@@ -309,7 +309,7 @@ Generated by `python3 scripts/docs/catalog_lineage_docs.py --write-catalog`.
309309
|---|---|---:|---|---|
310310
| `docs/compliance/audit-controls.md` | Parthenon Audit Controls Documentation | 311 | yes | `docs/compliance/audit-controls.md` |
311311
| `docs/compliance/compliance-remediation-plan.md` | Parthenon Compliance Remediation Plan | 855 | yes | `docs/compliance/compliance-remediation-plan.md` |
312-
| `docs/compliance/disaster-recovery-plan.md` | Parthenon Disaster Recovery Plan | 382 | yes | `docs/compliance/disaster-recovery-plan.md` |
312+
| `docs/compliance/disaster-recovery-plan.md` | Parthenon Disaster Recovery Plan | 395 | yes | `docs/compliance/disaster-recovery-plan.md` |
313313
| `docs/compliance/evidence/breach-log.md` | Parthenon HIPAA Breach Log | 35 | yes | `docs/compliance/evidence/breach-log.md` |
314314
| `docs/compliance/incident-response-plan.md` | Parthenon Incident Response Plan | 345 | yes | `docs/compliance/incident-response-plan.md` |
315315
| `docs/compliance/risk-assessment.md` | Parthenon Risk Assessment | 242 | yes | `docs/compliance/risk-assessment.md` |
@@ -477,7 +477,7 @@ Generated by `python3 scripts/docs/catalog_lineage_docs.py --write-catalog`.
477477
| `docs/README.md` | Documentation Map | 76 | yes | `docs/README.md` |
478478
| `docs/lineage/README.md` | Developer Lineage | 147 | yes | `docs/lineage/README.md` |
479479
| `docs/lineage/archive/README.md` | Lineage Archive | 26 | yes | `docs/lineage/archive/README.md` |
480-
| `docs/lineage/catalog.md` | Documentation Lineage Catalog | 1128 | yes | `docs/lineage/catalog.md` |
480+
| `docs/lineage/catalog.md` | Documentation Lineage Catalog | 1129 | yes | `docs/lineage/catalog.md` |
481481
| `docs/lineage/design/README.md` | Design Lineage | 27 | yes | `docs/lineage/design/README.md` |
482482
| `docs/lineage/document-authoring-governance.md` | Document Authoring Governance | 136 | yes | `docs/lineage/document-authoring-governance.md` |
483483
| `docs/lineage/plans/README.md` | Plan Lineage | 32 | yes | `docs/lineage/plans/README.md` |
@@ -518,7 +518,7 @@ Generated by `python3 scripts/docs/catalog_lineage_docs.py --write-catalog`.
518518
| `docs/lineage/modules/analyses/2026-04-15-ohdsi-full-parity-shiny-supersession-runtime-guardrails.md` | OHDSI Full Parity - Shiny Supersession and Runtime Guardrails | 331 | yes | `docs/lineage/modules/analyses/2026-04-15-ohdsi-full-parity-shiny-supersession-runtime-guardrails.md` |
519519
| `docs/lineage/modules/analyses/2026-05-09-hades-parity-managed-ohdsi-shiny-runtime.md` | HADES Parity and Managed OHDSI Shiny Runtime | 657 | yes | `docs/lineage/modules/analyses/2026-05-09-hades-parity-managed-ohdsi-shiny-runtime.md` |
520520
| `docs/lineage/modules/analyses/2026-05-09-managed-ohdsi-shiny-followup-devlog.md` | Managed OHDSI Shiny Follow-Up Devlog | 695 | yes | `docs/lineage/modules/analyses/2026-05-09-managed-ohdsi-shiny-followup-devlog.md` |
521-
| `docs/lineage/modules/analyses/2026-06-20-hades-sidecar-readiness-verification.md` | HADES / Darkstar Sidecar Readiness Verification | 106 | yes | `docs/lineage/modules/analyses/2026-06-20-hades-sidecar-readiness-verification.md` |
521+
| `docs/lineage/modules/analyses/2026-06-20-hades-sidecar-readiness-verification.md` | HADES / Darkstar Sidecar Readiness Verification | 172 | yes | `docs/lineage/modules/analyses/2026-06-20-hades-sidecar-readiness-verification.md` |
522522
| `docs/lineage/modules/analyses/afib-anticoagulation-study-design.md` | AFib Anticoagulation Study Design | 109 | yes | `docs/lineage/modules/analyses/afib-anticoagulation-study-design.md` |
523523
| `docs/lineage/modules/analyses/analyses-hardening-audit.md` | Analyses Hardening Audit | 94 | yes | `docs/lineage/modules/analyses/analyses-hardening-audit.md` |
524524
| `docs/lineage/modules/analyses/analyses-hardening-v1.md` | Analyses Hardening v1 — API Envelope Fixes & Defensive Numeric Formatting | 77 | yes | `docs/lineage/modules/analyses/analyses-hardening-v1.md` |
@@ -665,6 +665,7 @@ Generated by `python3 scripts/docs/catalog_lineage_docs.py --write-catalog`.
665665
| `docs/lineage/modules/solr/vector-explorer-3d-visualization.md` | Vector Explorer — 3D Embedding Visualization for Chroma Studio | 86 | yes | `docs/lineage/modules/solr/vector-explorer-3d-visualization.md` |
666666
| `docs/lineage/modules/studies-module-s10-s13.md` | Studies Module — Phases S10–S13 Devlog | 117 | yes | `docs/lineage/modules/studies-module-s10-s13.md` |
667667
| `docs/lineage/modules/studies-ux-enhancements.md` | Studies Module — Next-Gen UX Enhancements Devlog | 112 | yes | `docs/lineage/modules/studies-ux-enhancements.md` |
668+
| `docs/lineage/modules/studies/2026-06-21-protocol-to-publication-closeout.md` | Protocol-to-Publication (ADR-0020) — Implementation Closeout | 79 | yes | `docs/lineage/modules/studies/2026-06-21-protocol-to-publication-closeout.md` |
668669
| `docs/lineage/modules/synpuf-enrichment-2026-04-04.md` | SynPUF 2.3M Enrichment — Complete | 100 | yes | `docs/lineage/modules/synpuf-enrichment-2026-04-04.md` |
669670
| `docs/lineage/modules/templates-laravel-integration-2026-05-02.md` | Templates Laravel Integration — 2026-05-02 | 67 | yes | `docs/lineage/modules/templates-laravel-integration-2026-05-02.md` |
670671
| `docs/lineage/modules/ui/2026-04-12-light-mode-rollout.md` | Light / Dark Mode Rollout — Where We Are (2026-04-12) | 230 | yes | `docs/lineage/modules/ui/2026-04-12-light-mode-rollout.md` |
@@ -700,6 +701,7 @@ Generated by `python3 scripts/docs/catalog_lineage_docs.py --write-catalog`.
700701
| `docs/lineage/operations/2026-06-11-grant-adr0020-study-tables.md` | Migration: grant ADR-0020 study tables to `parthenon_app` | 56 | yes | `docs/lineage/operations/2026-06-11-grant-adr0020-study-tables.md` |
701702
| `docs/lineage/operations/2026-06-11-manuscript-publisher-bridge.md` | Migration + bridge: seed a /publish draft from the composed manuscript | 67 | yes | `docs/lineage/operations/2026-06-11-manuscript-publisher-bridge.md` |
702703
| `docs/lineage/operations/2026-06-11-study-results-projection.md` | Migration + backfill: project analysis executions into `study_results` | 165 | yes | `docs/lineage/operations/2026-06-11-study-results-projection.md` |
704+
| `docs/lineage/operations/2026-06-21-dr-restore-runbook.md` | PostgreSQL Backup & Restore Runbook (DR drill verified 2026-06-21) | 125 | yes | `docs/lineage/operations/2026-06-21-dr-restore-runbook.md` |
703705
| `docs/lineage/operations/README.md` | Operations Lineage | 22 | yes | `docs/lineage/operations/README.md` |
704706
| `docs/lineage/operations/process/2026-04-24-care-bundles-migration-fixes.md` | Care Bundles Workbench — Migration & Permission Fixes | 49 | yes | `docs/lineage/operations/process/2026-04-24-care-bundles-migration-fixes.md` |
705707
| `docs/lineage/operations/process/2026-04-24-care-bundles-tier-a.md` | CareBundles Tier A — Methodology card, DQ flags, Stratification | 56 | yes | `docs/lineage/operations/process/2026-04-24-care-bundles-tier-a.md` |
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
doc_type: lineage
3+
status: historical
4+
date: 2026-06-21
5+
owner: acumenus
6+
module: studies
7+
lineage_anchor: false
8+
supersedes: []
9+
superseded_by: null
10+
related_prs: []
11+
related_code:
12+
- docs/lineage/decisions/adr/adr-0020-protocol-to-publication-pipeline.md
13+
- docs/lineage/plans/open/protocol-to-publication-implementation-plan.md
14+
- backend/app/Support/Hashing/DefinitionHasher.php
15+
- backend/app/Services/Analysis/Calibration/CalibrationService.php
16+
- backend/app/Services/Studies/Gates/StudyGateService.php
17+
- backend/app/Services/Studies/Gates/GateThresholdEvaluator.php
18+
- backend/app/Support/EstimationResultNormalizer.php
19+
- backend/app/Services/Analysis/CohortDiagnosticsService.php
20+
- backend/app/Services/Publication/ManuscriptComposer.php
21+
- backend/app/Http/Controllers/Api/V1/StudyOrchestratorController.php
22+
- ai/app/orchestrator/state_machine.py
23+
- darkstar/api/calibration.R
24+
- backend/tests/Feature/Studies/HypertensionV3RegressionTest.php
25+
- backend/tests/Feature/Studies/ManuscriptComposerTest.php
26+
- backend/tests/Unit/Services/Analysis/Calibration/CalibrationServiceTest.php
27+
- ai/tests/test_orchestrator.py
28+
---
29+
30+
# Protocol-to-Publication (ADR-0020) — Implementation Closeout
31+
32+
This closeout records the shipped evidence for each phase of the ADR-0020
33+
protocol-to-publication pipeline. All seven phases (P0–P6) landed in code with
34+
passing tests between 2026-06-19 and 2026-06-21. It satisfies the
35+
`docs/lineage/plans/open/2026-06-18-application-completion-plan.md` Phase 3
36+
acceptance "Protocol-to-publication has shipped closeout evidence for each
37+
phase." The implementation plan
38+
(`docs/lineage/plans/open/protocol-to-publication-implementation-plan.md`)
39+
**remains open** for the one outstanding acceptance: the live gated re-run of
40+
the golden regression study (`app.studies.id = 114`).
41+
42+
## Per-phase shipped evidence
43+
44+
| Phase | Deliverable | Code | Test | Commit |
45+
|---|---|---|---|---|
46+
| **P0** | Regression harness for the golden study-114 failures | `backend/tests/Feature/Studies/HypertensionV3RegressionTest.php` | Load-bearing cases un-skipped: S5 gate-fail + blinding, S6 calibration-fail, incidence-rate CIs (green). 3 cases remain `markTestSkipped` as explicitly-scoped future discrete rules (design-lint, 100%-Unknown DQ-flag, connection-retry), documented in-test. | `8fd842c70` |
47+
| **P1** | Provenance spine (SHA-256 over definitions) | `backend/app/Support/Hashing/DefinitionHasher.php`; consumed by `CohortDefinition`, `ConceptSet`, `AnalysisExecution`, `StudyPackageService`, `Console/Commands/Provenance/BackfillProvenanceHashes` | Provenance asserted in `ManuscriptComposerTest` (`study_diagnostics=overridden`) ||
48+
| **P2** | Empirical calibration service + R endpoint | `backend/app/Services/Analysis/Calibration/CalibrationService.php`; `darkstar/api/calibration.R` (`POST /analysis/calibrate`) | `CalibrationServiceTest` (payload contract, insufficient-controls refusal, error fallback — green) | `f9b208182` |
49+
| **P3** | Gate ledger, blocking gates, estimate blinding | `StudyGateService::blindEstimationIfGated()`, `GateThresholdEvaluator`, `EstimationResultNormalizer::blind()` | `HypertensionV3RegressionTest` S5 (blind strips estimates — green) ||
50+
| **P4** | Missing/inclusion cohort diagnostics | `backend/app/Services/Analysis/CohortDiagnosticsService.php::getInclusionAttrition()` (emits `severe_inclusion_attrition`) | Live-verified cohort 68 → 29,204 entry → 27,702 final | `5b4c39a95` |
51+
| **P5** | Abby orchestration via python-ai with recoverable job state | `ai/app/orchestrator/{state_machine,guards,tools}.py`; Laravel relay `StudyOrchestratorController` (`POST /orchestrate`, scoped Sanctum token); channel `abby.study.{study}` | `ai/tests/test_orchestrator.py` — 7 passed in the python-ai container (study-114 halts at S5 with estimates blinded, full-pass, S6 halt, guards) | `40cb5c3ab` |
52+
| **P6** | Manuscript synthesis with provenance-linked sections | `backend/app/Services/Publication/ManuscriptComposer.php` | `ManuscriptComposerTest` — gate-aware compose, withholds estimates when gate uncleared, never prints a fabricated effect number (green) | `ed6ca4eaf` |
53+
54+
## Adjacent verified evidence
55+
56+
- **HADES sidecar readiness** (Phase 3): 40/40 HADES packages installed, 0
57+
required missing, real end-to-end compute; recorded in
58+
`docs/lineage/modules/analyses/2026-06-20-hades-sidecar-readiness-verification.md`.
59+
- **Sidecar contract tests** (Phase 3): `backend/tests/Unit/Services/RServiceTest.php`
60+
covers all four runners across success / invalid-input / legacy
61+
`not_implemented` / empty-non-JSON / connection-failure.
62+
- **`r_not_implemented` decision** (Phase 3): retained as a defensive fallback for
63+
unconfigured deployments (decision recorded in commit `cc3faba17`).
64+
65+
## Remaining before the implementation plan can close
66+
67+
1. **Live gated re-run of study 114** with `execute=true`, confirming the
68+
orchestrator halts at S5 with estimates blinded against real analytics
69+
(offline + dry-walk already proven; the full live run is ~90 min of prod
70+
analytics and is the last acceptance).
71+
2. **UI diagnostics** (Phase 3 sub-item, not P0–P6): the dedicated
72+
`EstimationResults.tsx` / `PredictionResults.tsx` sidecar-pending branch still
73+
renders generic copy rather than package/environment-specific diagnostics.
74+
3. **Frontend contract coverage** for the resolved phenotype-validation behavior
75+
(the backend contract — 17 cases, 0 skips — is shipped).
76+
77+
Once item 1 lands, move
78+
`docs/lineage/plans/open/protocol-to-publication-implementation-plan.md` to
79+
`plans/closed/` with `status: shipped` and link this closeout.

docs/lineage/operations/2026-06-21-dr-restore-runbook.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module: infrastructure
77
lineage_anchor: false
88
supersedes: []
99
superseded_by: null
10+
related_prs: []
1011
related_code:
1112
- scripts/pg-host-logical-backup.sh
1213
- scripts/pg-host-basebackup.sh

0 commit comments

Comments
 (0)