project-handbook 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. project_handbook-0.0.1/.github/workflows/ci.yml +37 -0
  2. project_handbook-0.0.1/.github/workflows/docs.yml +46 -0
  3. project_handbook-0.0.1/.github/workflows/release.yml +100 -0
  4. project_handbook-0.0.1/.gitignore +14 -0
  5. project_handbook-0.0.1/PKG-INFO +73 -0
  6. project_handbook-0.0.1/README.md +58 -0
  7. project_handbook-0.0.1/cli_plan/AI_AGENT_START_HERE.md +184 -0
  8. project_handbook-0.0.1/cli_plan/README.md +37 -0
  9. project_handbook-0.0.1/cli_plan/archive/README.md +20 -0
  10. project_handbook-0.0.1/cli_plan/archive/strict_parity_2026-02/PARITY_CHECKLIST.md +350 -0
  11. project_handbook-0.0.1/cli_plan/archive/strict_parity_2026-02/due-diligence.json +1055 -0
  12. project_handbook-0.0.1/cli_plan/archive/strict_parity_2026-02/tasks_v1_parity.json +1073 -0
  13. project_handbook-0.0.1/cli_plan/archive/strict_parity_2026-02/v0_make/MAKE_CONTRACT.md +492 -0
  14. project_handbook-0.0.1/cli_plan/archive/tasks_legacy.json +1736 -0
  15. project_handbook-0.0.1/cli_plan/backlog.json +34 -0
  16. project_handbook-0.0.1/cli_plan/backlog.md +38 -0
  17. project_handbook-0.0.1/cli_plan/ph_spec/CONTRACT_TEMPLATE.md +35 -0
  18. project_handbook-0.0.1/cli_plan/ph_spec/README.md +14 -0
  19. project_handbook-0.0.1/cli_plan/ph_spec/ph/adr/contract.md +68 -0
  20. project_handbook-0.0.1/cli_plan/ph_spec/ph/adr/examples/0007-tribuence-mini-v2-supergraph-context.md +65 -0
  21. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/bugs/contract.md +69 -0
  22. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/bugs/examples/EXAMPLE-BUG-P0-20250922-1144/README.md +48 -0
  23. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/bugs/examples/EXAMPLE-BUG-P0-20250922-1144/triage.md +122 -0
  24. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/contract.md +58 -0
  25. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/examples/bugs/EXAMPLE-BUG-P0-20250922-1144/README.md +48 -0
  26. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/examples/bugs/EXAMPLE-BUG-P0-20250922-1144/triage.md +122 -0
  27. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/examples/wildcards/WILD-P2-20260101-2107/README.md +59 -0
  28. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/examples/work-items/WORK-P4-20260104-1919/README.md +45 -0
  29. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/wildcards/contract.md +64 -0
  30. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/wildcards/examples/WILD-P2-20260101-2107/README.md +59 -0
  31. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/work-items/contract.md +65 -0
  32. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/work-items/examples/WORK-P4-20260104-1919/README.md +45 -0
  33. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/bugs/contract.md +74 -0
  34. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/bugs/examples/EXAMPLE-BUG-P0-20250922-1144/README.md +45 -0
  35. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/bugs/examples/EXAMPLE-BUG-P0-20250922-1144/triage.md +122 -0
  36. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/contract.md +102 -0
  37. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/examples/bugs/EXAMPLE-BUG-P0-20250922-1144/README.md +45 -0
  38. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/examples/bugs/EXAMPLE-BUG-P0-20250922-1144/triage.md +122 -0
  39. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/examples/wildcards/WILD-P2-20260103-2109/README.md +41 -0
  40. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/examples/work-items/WORK-P2-20260106-213751/README.md +42 -0
  41. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/wildcards/contract.md +62 -0
  42. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/wildcards/examples/WILD-P2-20260103-2109/README.md +41 -0
  43. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/work-items/contract.md +64 -0
  44. project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/work-items/examples/WORK-P2-20260106-213751/README.md +42 -0
  45. project_handbook-0.0.1/cli_plan/ph_spec/ph/contract.md +95 -0
  46. project_handbook-0.0.1/cli_plan/ph_spec/ph/contracts/contract.md +62 -0
  47. project_handbook-0.0.1/cli_plan/ph_spec/ph/contracts/examples/api/README.md +13 -0
  48. project_handbook-0.0.1/cli_plan/ph_spec/ph/contracts/examples/api/api-contracts.json +41 -0
  49. project_handbook-0.0.1/cli_plan/ph_spec/ph/contracts/examples/api/v2-context-service.md +49 -0
  50. project_handbook-0.0.1/cli_plan/ph_spec/ph/contracts/examples/api/v2-ui-healthz.md +71 -0
  51. project_handbook-0.0.1/cli_plan/ph_spec/ph/contracts/examples/inventory.md +50 -0
  52. project_handbook-0.0.1/cli_plan/ph_spec/ph/decision-register/contract.md +79 -0
  53. project_handbook-0.0.1/cli_plan/ph_spec/ph/decision-register/examples/DR-0003-cosmo-minio-baseline-topology.md +139 -0
  54. project_handbook-0.0.1/cli_plan/ph_spec/ph/decision-register/examples/README.md +89 -0
  55. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/adr/0007-tribuence-mini-v2-supergraph-context.md +65 -0
  56. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/backlog/bugs/EXAMPLE-BUG-P0-20250922-1144/README.md +45 -0
  57. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/backlog/bugs/EXAMPLE-BUG-P0-20250922-1144/triage.md +122 -0
  58. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/architecture/ARCHITECTURE.md +36 -0
  59. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/changelog.md +16 -0
  60. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/implementation/GATES.md +67 -0
  61. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/implementation/IMPLEMENTATION.md +27 -0
  62. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/overview.md +53 -0
  63. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/risks.md +35 -0
  64. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/status.md +54 -0
  65. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/testing/TESTING.md +33 -0
  66. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/roadmap/now-next-later.md +15 -0
  67. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/sprints/2026/SPRINT-2026-01-11/plan.md +128 -0
  68. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/sprints/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/README.md +62 -0
  69. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/sprints/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/checklist.md +30 -0
  70. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/sprints/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/commands.md +45 -0
  71. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/sprints/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/references.md +35 -0
  72. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/sprints/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/steps.md +61 -0
  73. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/sprints/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/task.yaml +21 -0
  74. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/sprints/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/validation.md +32 -0
  75. project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/status/current_summary.md.example +37 -0
  76. project_handbook-0.0.1/cli_plan/ph_spec/ph/features/archive/contract.md +54 -0
  77. project_handbook-0.0.1/cli_plan/ph_spec/ph/features/contract.md +104 -0
  78. project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/architecture/ARCHITECTURE.md +36 -0
  79. project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/changelog.md +16 -0
  80. project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/implementation/GATES.md +67 -0
  81. project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/implementation/IMPLEMENTATION.md +27 -0
  82. project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/overview.md +53 -0
  83. project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/risks.md +35 -0
  84. project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/status.md +54 -0
  85. project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/testing/TESTING.md +33 -0
  86. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/contract.md +66 -0
  87. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/examples/research/RES-20251230-process-fix-session-end-index-/README.md +38 -0
  88. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/examples/technical-debt/DEBT-20260102-standardize-task-directory-slu/README.md +37 -0
  89. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/external-requests/contract.md +54 -0
  90. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/features/contract.md +54 -0
  91. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/research/contract.md +54 -0
  92. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/research/examples/RES-20251230-process-fix-session-end-index-/README.md +38 -0
  93. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/technical-debt/contract.md +54 -0
  94. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/technical-debt/examples/DEBT-20260102-standardize-task-directory-slu/README.md +37 -0
  95. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/contract.md +100 -0
  96. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/examples/index.json +11 -0
  97. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/external-requests/contract.md +57 -0
  98. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/features/contract.md +57 -0
  99. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/research/contract.md +57 -0
  100. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/research/examples/RES-20251230-process-fix-session-end-index-/README.md +35 -0
  101. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/technical-debt/contract.md +57 -0
  102. project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/technical-debt/examples/DEBT-20260102-standardize-task-directory-slu/README.md +34 -0
  103. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/contract.md +74 -0
  104. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/current/contract.md +112 -0
  105. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/current/examples/current/features.yaml +36 -0
  106. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/current/examples/current/plan.md +73 -0
  107. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/current/examples/current/progress.md +27 -0
  108. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/delivered/contract.md +45 -0
  109. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/delivered/examples/v0.5.1/changelog.md +28 -0
  110. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/delivered/examples/v0.5.1/features.yaml +36 -0
  111. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/delivered/examples/v0.5.1/plan.md +75 -0
  112. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/delivered/examples/v0.5.1/progress.md +27 -0
  113. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/examples/CHANGELOG.md +17 -0
  114. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/examples/v0.5.1/features.yaml +36 -0
  115. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/examples/v0.5.1/plan.md +73 -0
  116. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/examples/v0.5.1/progress.md +27 -0
  117. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/planning/contract.md +53 -0
  118. project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/planning/examples/EXAMPLE-v0.1.0.md +21 -0
  119. project_handbook-0.0.1/cli_plan/ph_spec/ph/roadmap/contract.md +59 -0
  120. project_handbook-0.0.1/cli_plan/ph_spec/ph/roadmap/examples/now-next-later.md +15 -0
  121. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/contract.md +93 -0
  122. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/burndown.md +29 -0
  123. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/plan.md +112 -0
  124. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/retrospective.md +47 -0
  125. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-001-investigate-cosmo-minio-baseline-wiring-strategy-topology-versions-posture/README.md +64 -0
  126. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-001-investigate-cosmo-minio-baseline-wiring-strategy-topology-versions-posture/checklist.md +26 -0
  127. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-001-investigate-cosmo-minio-baseline-wiring-strategy-topology-versions-posture/commands.md +52 -0
  128. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-001-investigate-cosmo-minio-baseline-wiring-strategy-topology-versions-posture/references.md +35 -0
  129. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-001-investigate-cosmo-minio-baseline-wiring-strategy-topology-versions-posture/steps.md +85 -0
  130. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-001-investigate-cosmo-minio-baseline-wiring-strategy-topology-versions-posture/task.yaml +21 -0
  131. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-001-investigate-cosmo-minio-baseline-wiring-strategy-topology-versions-posture/validation.md +38 -0
  132. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-002-investigate-vault-seeding-secrets-contract-for-cosmo-minio-no-leakage/README.md +58 -0
  133. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-002-investigate-vault-seeding-secrets-contract-for-cosmo-minio-no-leakage/checklist.md +23 -0
  134. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-002-investigate-vault-seeding-secrets-contract-for-cosmo-minio-no-leakage/commands.md +47 -0
  135. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-002-investigate-vault-seeding-secrets-contract-for-cosmo-minio-no-leakage/references.md +35 -0
  136. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-002-investigate-vault-seeding-secrets-contract-for-cosmo-minio-no-leakage/steps.md +68 -0
  137. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-002-investigate-vault-seeding-secrets-contract-for-cosmo-minio-no-leakage/task.yaml +20 -0
  138. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-002-investigate-vault-seeding-secrets-contract-for-cosmo-minio-no-leakage/validation.md +40 -0
  139. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-003-investigate-router-consumes-cosmo-supergraph-pull-model-auth-refresh/README.md +59 -0
  140. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-003-investigate-router-consumes-cosmo-supergraph-pull-model-auth-refresh/checklist.md +22 -0
  141. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-003-investigate-router-consumes-cosmo-supergraph-pull-model-auth-refresh/commands.md +50 -0
  142. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-003-investigate-router-consumes-cosmo-supergraph-pull-model-auth-refresh/references.md +37 -0
  143. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-003-investigate-router-consumes-cosmo-supergraph-pull-model-auth-refresh/steps.md +73 -0
  144. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-003-investigate-router-consumes-cosmo-supergraph-pull-model-auth-refresh/task.yaml +21 -0
  145. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-003-investigate-router-consumes-cosmo-supergraph-pull-model-auth-refresh/validation.md +36 -0
  146. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-004-investigate-harvester-publish-workflow-sdl-sources-mirror-updates-report-contrac/README.md +63 -0
  147. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-004-investigate-harvester-publish-workflow-sdl-sources-mirror-updates-report-contrac/checklist.md +24 -0
  148. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-004-investigate-harvester-publish-workflow-sdl-sources-mirror-updates-report-contrac/commands.md +60 -0
  149. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-004-investigate-harvester-publish-workflow-sdl-sources-mirror-updates-report-contrac/references.md +37 -0
  150. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-004-investigate-harvester-publish-workflow-sdl-sources-mirror-updates-report-contrac/steps.md +80 -0
  151. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-004-investigate-harvester-publish-workflow-sdl-sources-mirror-updates-report-contrac/task.yaml +23 -0
  152. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-004-investigate-harvester-publish-workflow-sdl-sources-mirror-updates-report-contrac/validation.md +38 -0
  153. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-005-kickoff-v0-5-0-registry-pipeline-discovery-evidence-dirs-next-up-ordering/README.md +62 -0
  154. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-005-kickoff-v0-5-0-registry-pipeline-discovery-evidence-dirs-next-up-ordering/checklist.md +18 -0
  155. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-005-kickoff-v0-5-0-registry-pipeline-discovery-evidence-dirs-next-up-ordering/commands.md +42 -0
  156. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-005-kickoff-v0-5-0-registry-pipeline-discovery-evidence-dirs-next-up-ordering/references.md +27 -0
  157. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-005-kickoff-v0-5-0-registry-pipeline-discovery-evidence-dirs-next-up-ordering/steps.md +55 -0
  158. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-005-kickoff-v0-5-0-registry-pipeline-discovery-evidence-dirs-next-up-ordering/task.yaml +18 -0
  159. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-005-kickoff-v0-5-0-registry-pipeline-discovery-evidence-dirs-next-up-ordering/validation.md +34 -0
  160. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-006-implement-v2-cosmo-minio-baseline-from-legacy-reference/README.md +69 -0
  161. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-006-implement-v2-cosmo-minio-baseline-from-legacy-reference/checklist.md +41 -0
  162. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-006-implement-v2-cosmo-minio-baseline-from-legacy-reference/commands.md +110 -0
  163. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-006-implement-v2-cosmo-minio-baseline-from-legacy-reference/references.md +42 -0
  164. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-006-implement-v2-cosmo-minio-baseline-from-legacy-reference/steps.md +121 -0
  165. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-006-implement-v2-cosmo-minio-baseline-from-legacy-reference/task.yaml +22 -0
  166. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-006-implement-v2-cosmo-minio-baseline-from-legacy-reference/validation.md +133 -0
  167. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-007-cutover-replace-minio-with-seaweedfs-s3-gateway/README.md +55 -0
  168. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-007-cutover-replace-minio-with-seaweedfs-s3-gateway/checklist.md +41 -0
  169. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-007-cutover-replace-minio-with-seaweedfs-s3-gateway/commands.md +83 -0
  170. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-007-cutover-replace-minio-with-seaweedfs-s3-gateway/references.md +38 -0
  171. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-007-cutover-replace-minio-with-seaweedfs-s3-gateway/steps.md +82 -0
  172. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-007-cutover-replace-minio-with-seaweedfs-s3-gateway/task.yaml +22 -0
  173. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-007-cutover-replace-minio-with-seaweedfs-s3-gateway/validation.md +109 -0
  174. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-008-implement-router-supergraph-sync-from-cosmo-option-b/README.md +73 -0
  175. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-008-implement-router-supergraph-sync-from-cosmo-option-b/checklist.md +38 -0
  176. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-008-implement-router-supergraph-sync-from-cosmo-option-b/commands.md +147 -0
  177. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-008-implement-router-supergraph-sync-from-cosmo-option-b/references.md +36 -0
  178. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-008-implement-router-supergraph-sync-from-cosmo-option-b/steps.md +103 -0
  179. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-008-implement-router-supergraph-sync-from-cosmo-option-b/task.yaml +25 -0
  180. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-008-implement-router-supergraph-sync-from-cosmo-option-b/validation.md +63 -0
  181. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-009-implement-v2-schema-harvester-publish-check-mirrors-report-hardening-option-a/README.md +79 -0
  182. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-009-implement-v2-schema-harvester-publish-check-mirrors-report-hardening-option-a/checklist.md +37 -0
  183. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-009-implement-v2-schema-harvester-publish-check-mirrors-report-hardening-option-a/commands.md +85 -0
  184. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-009-implement-v2-schema-harvester-publish-check-mirrors-report-hardening-option-a/references.md +33 -0
  185. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-009-implement-v2-schema-harvester-publish-check-mirrors-report-hardening-option-a/steps.md +94 -0
  186. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-009-implement-v2-schema-harvester-publish-check-mirrors-report-hardening-option-a/task.yaml +25 -0
  187. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-009-implement-v2-schema-harvester-publish-check-mirrors-report-hardening-option-a/validation.md +120 -0
  188. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-010-implement-v2-registry-backed-codegen-wiring-cosmo-fetch-drift-gate-ci-ordering/README.md +76 -0
  189. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-010-implement-v2-registry-backed-codegen-wiring-cosmo-fetch-drift-gate-ci-ordering/checklist.md +35 -0
  190. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-010-implement-v2-registry-backed-codegen-wiring-cosmo-fetch-drift-gate-ci-ordering/commands.md +85 -0
  191. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-010-implement-v2-registry-backed-codegen-wiring-cosmo-fetch-drift-gate-ci-ordering/references.md +32 -0
  192. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-010-implement-v2-registry-backed-codegen-wiring-cosmo-fetch-drift-gate-ci-ordering/steps.md +65 -0
  193. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-010-implement-v2-registry-backed-codegen-wiring-cosmo-fetch-drift-gate-ci-ordering/task.yaml +26 -0
  194. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/tasks/TASK-010-implement-v2-registry-backed-codegen-wiring-cosmo-fetch-drift-gate-ci-ordering/validation.md +125 -0
  195. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/index.json +74 -0
  196. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/contract.md +115 -0
  197. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/examples/2026/SPRINT-2026-01-11/plan.md +128 -0
  198. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/examples/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/README.md +62 -0
  199. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/examples/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/checklist.md +30 -0
  200. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/examples/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/commands.md +45 -0
  201. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/examples/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/references.md +35 -0
  202. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/examples/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/steps.md +61 -0
  203. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/examples/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/task.yaml +21 -0
  204. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/examples/2026/SPRINT-2026-01-11/tasks/TASK-029-investigate-context-control-plane-schema-migration-wrapper-consumption-contract/validation.md +32 -0
  205. project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/examples/scaffold/2026/SPRINT-2026-01-11/plan.md +128 -0
  206. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/contract.md +87 -0
  207. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/daily/contract.md +58 -0
  208. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/daily/examples/2026/01/03.md +37 -0
  209. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/contract.md +61 -0
  210. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/anythingllm-subgraph-logs.txt +6 -0
  211. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/context-logs.txt +6 -0
  212. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/index.md +40 -0
  213. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/index_head.txt +6 -0
  214. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/index_paths_check.txt +31 -0
  215. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/index_paths_check_repo_root.txt +2 -0
  216. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/keycloak-local-headers.txt +9 -0
  217. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/modular-compose-cosmo-minio-env-snippets.txt +286 -0
  218. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/newest_prompt.txt +4 -0
  219. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/newest_recap_head.txt +63 -0
  220. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/repo_session_end_dir_ls.txt +5 -0
  221. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/session_end_dir_ls.txt +4 -0
  222. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-down-20260103T220131.log +70 -0
  223. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-ps-20260103T220142.log +15 -0
  224. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-smoke-20260103T220247-run1.log +41 -0
  225. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-smoke-20260103T221139-run1.log +36 -0
  226. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-smoke-20260103T221139-run2.log +37 -0
  227. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-up-20260103T220142.log +81 -0
  228. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-vault-bootstrap-no-leakage-snippets.txt +68 -0
  229. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-vault-kv-layout.txt +37 -0
  230. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-vault-templates-inventory.txt +6 -0
  231. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/vault-agent.hcl.txt +45 -0
  232. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/vault-bootstrap-20260103T220612.log +29 -0
  233. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/vault-bootstrap-20260103T220848.log +35 -0
  234. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/examples/README.md +164 -0
  235. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/examples/current.json +382 -0
  236. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/examples/current_summary.md.example +37 -0
  237. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/examples/validation.json +3 -0
  238. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/exports/contract.md +63 -0
  239. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/exports/examples/SPRINT-2026-01-11-doc-review.README.txt +13 -0
  240. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/exports/examples/SPRINT-2026-01-11-doc-review.manifest.txt +15 -0
  241. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/exports/examples/SPRINT-2026-01-11-doc-review.paths.txt +13 -0
  242. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/exports/examples/SPRINT-2026-01-11-doc-review.tar.gz +0 -0
  243. project_handbook-0.0.1/cli_plan/ph_spec/ph/status/exports/examples/SPRINT-2026-01-11-doc-review.tar.gz.sha256 +1 -0
  244. project_handbook-0.0.1/cli_plan/session_logs.md +9666 -0
  245. project_handbook-0.0.1/cli_plan/tasks_v1_next.json +206 -0
  246. project_handbook-0.0.1/cli_plan/v1_cli/ADR-CLI-0001-ph-cli-migration.md +201 -0
  247. project_handbook-0.0.1/cli_plan/v1_cli/ADR-CLI-0002-handbook-instance-scaffolding.md +132 -0
  248. project_handbook-0.0.1/cli_plan/v1_cli/ADR-CLI-0003-ph-project-layout.md +190 -0
  249. project_handbook-0.0.1/cli_plan/v1_cli/ADR-CLI-0004-ph-root-layout.md +47 -0
  250. project_handbook-0.0.1/cli_plan/v1_cli/CLI_CONTRACT.md +913 -0
  251. project_handbook-0.0.1/docs/commands.md +45 -0
  252. project_handbook-0.0.1/docs/index.md +11 -0
  253. project_handbook-0.0.1/docs/quickstart.md +47 -0
  254. project_handbook-0.0.1/mkdocs.yml +11 -0
  255. project_handbook-0.0.1/pyproject.toml +30 -0
  256. project_handbook-0.0.1/pytest.ini +3 -0
  257. project_handbook-0.0.1/src/ph/__init__.py +1 -0
  258. project_handbook-0.0.1/src/ph/__main__.py +6 -0
  259. project_handbook-0.0.1/src/ph/backlog.py +107 -0
  260. project_handbook-0.0.1/src/ph/backlog_manager.py +809 -0
  261. project_handbook-0.0.1/src/ph/clean.py +36 -0
  262. project_handbook-0.0.1/src/ph/cli.py +1301 -0
  263. project_handbook-0.0.1/src/ph/clock.py +44 -0
  264. project_handbook-0.0.1/src/ph/config.py +116 -0
  265. project_handbook-0.0.1/src/ph/context.py +49 -0
  266. project_handbook-0.0.1/src/ph/daily.py +371 -0
  267. project_handbook-0.0.1/src/ph/dashboard.py +59 -0
  268. project_handbook-0.0.1/src/ph/doctor.py +65 -0
  269. project_handbook-0.0.1/src/ph/end_session.py +1935 -0
  270. project_handbook-0.0.1/src/ph/feature.py +389 -0
  271. project_handbook-0.0.1/src/ph/feature_archive.py +183 -0
  272. project_handbook-0.0.1/src/ph/feature_status_updater.py +330 -0
  273. project_handbook-0.0.1/src/ph/git_hooks.py +33 -0
  274. project_handbook-0.0.1/src/ph/help_text.py +120 -0
  275. project_handbook-0.0.1/src/ph/history.py +29 -0
  276. project_handbook-0.0.1/src/ph/hooks.py +97 -0
  277. project_handbook-0.0.1/src/ph/init_repo.py +608 -0
  278. project_handbook-0.0.1/src/ph/migrate_system_scope.py +526 -0
  279. project_handbook-0.0.1/src/ph/onboarding.py +124 -0
  280. project_handbook-0.0.1/src/ph/orchestration.py +214 -0
  281. project_handbook-0.0.1/src/ph/parking.py +61 -0
  282. project_handbook-0.0.1/src/ph/parking_lot_manager.py +391 -0
  283. project_handbook-0.0.1/src/ph/pre_exec.py +537 -0
  284. project_handbook-0.0.1/src/ph/release.py +1807 -0
  285. project_handbook-0.0.1/src/ph/reset.py +272 -0
  286. project_handbook-0.0.1/src/ph/reset_smoke.py +168 -0
  287. project_handbook-0.0.1/src/ph/roadmap.py +156 -0
  288. project_handbook-0.0.1/src/ph/rollout_parser.py +129 -0
  289. project_handbook-0.0.1/src/ph/root.py +46 -0
  290. project_handbook-0.0.1/src/ph/sprint.py +402 -0
  291. project_handbook-0.0.1/src/ph/sprint_archive.py +146 -0
  292. project_handbook-0.0.1/src/ph/sprint_burndown.py +120 -0
  293. project_handbook-0.0.1/src/ph/sprint_capacity.py +149 -0
  294. project_handbook-0.0.1/src/ph/sprint_close.py +257 -0
  295. project_handbook-0.0.1/src/ph/sprint_commands.py +81 -0
  296. project_handbook-0.0.1/src/ph/sprint_status.py +411 -0
  297. project_handbook-0.0.1/src/ph/sprint_tasks.py +121 -0
  298. project_handbook-0.0.1/src/ph/status.py +749 -0
  299. project_handbook-0.0.1/src/ph/task_create.py +770 -0
  300. project_handbook-0.0.1/src/ph/task_status.py +164 -0
  301. project_handbook-0.0.1/src/ph/task_view.py +260 -0
  302. project_handbook-0.0.1/src/ph/validate_docs.py +818 -0
  303. project_handbook-0.0.1/src/ph/work_item_archiver.py +273 -0
  304. project_handbook-0.0.1/tests/test_backlog_add.py +171 -0
  305. project_handbook-0.0.1/tests/test_backlog_assign.py +129 -0
  306. project_handbook-0.0.1/tests/test_backlog_assign_parity_v1p0034.py +107 -0
  307. project_handbook-0.0.1/tests/test_backlog_list.py +138 -0
  308. project_handbook-0.0.1/tests/test_backlog_list_parity_v1p0032.py +59 -0
  309. project_handbook-0.0.1/tests/test_backlog_rubric_parity_v1p0035.py +116 -0
  310. project_handbook-0.0.1/tests/test_backlog_rubric_stats.py +101 -0
  311. project_handbook-0.0.1/tests/test_backlog_triage.py +117 -0
  312. project_handbook-0.0.1/tests/test_backlog_triage_parity_v1p0033.py +87 -0
  313. project_handbook-0.0.1/tests/test_check_all_parity_v1p0068.py +67 -0
  314. project_handbook-0.0.1/tests/test_clean.py +40 -0
  315. project_handbook-0.0.1/tests/test_clean_parity_v1p0066.py +62 -0
  316. project_handbook-0.0.1/tests/test_cli_help.py +8 -0
  317. project_handbook-0.0.1/tests/test_config_validation.py +27 -0
  318. project_handbook-0.0.1/tests/test_daily.py +84 -0
  319. project_handbook-0.0.1/tests/test_daily_make_parity.py +192 -0
  320. project_handbook-0.0.1/tests/test_dashboard.py +128 -0
  321. project_handbook-0.0.1/tests/test_doctor.py +46 -0
  322. project_handbook-0.0.1/tests/test_end_session_session_end_artifacts.py +92 -0
  323. project_handbook-0.0.1/tests/test_end_session_skip_codex.py +87 -0
  324. project_handbook-0.0.1/tests/test_feature_archive.py +145 -0
  325. project_handbook-0.0.1/tests/test_feature_create_list.py +178 -0
  326. project_handbook-0.0.1/tests/test_feature_status.py +160 -0
  327. project_handbook-0.0.1/tests/test_feature_summary_parity_v1p0029.py +85 -0
  328. project_handbook-0.0.1/tests/test_feature_update_status_and_summary.py +143 -0
  329. project_handbook-0.0.1/tests/test_feature_update_status_parity_v1p0028.py +157 -0
  330. project_handbook-0.0.1/tests/test_help_topics.py +342 -0
  331. project_handbook-0.0.1/tests/test_history.py +82 -0
  332. project_handbook-0.0.1/tests/test_hooks_install.py +46 -0
  333. project_handbook-0.0.1/tests/test_hooks_install_parity_v1p0067.py +54 -0
  334. project_handbook-0.0.1/tests/test_hooks_plan.py +133 -0
  335. project_handbook-0.0.1/tests/test_init.py +92 -0
  336. project_handbook-0.0.1/tests/test_migrate_system_scope.py +123 -0
  337. project_handbook-0.0.1/tests/test_onboarding.py +130 -0
  338. project_handbook-0.0.1/tests/test_orchestration.py +57 -0
  339. project_handbook-0.0.1/tests/test_parking_add.py +79 -0
  340. project_handbook-0.0.1/tests/test_parking_add_parity_v1p0037.py +81 -0
  341. project_handbook-0.0.1/tests/test_parking_list_parity_v1p0038.py +111 -0
  342. project_handbook-0.0.1/tests/test_parking_list_review.py +134 -0
  343. project_handbook-0.0.1/tests/test_parking_promote.py +114 -0
  344. project_handbook-0.0.1/tests/test_parking_promote_parity_v1p0040.py +91 -0
  345. project_handbook-0.0.1/tests/test_parking_review_parity_v1p0039.py +100 -0
  346. project_handbook-0.0.1/tests/test_post_hook_exit_codes.py +84 -0
  347. project_handbook-0.0.1/tests/test_post_hook_integration.py +62 -0
  348. project_handbook-0.0.1/tests/test_pre_exec.py +65 -0
  349. project_handbook-0.0.1/tests/test_pre_exec_audit_parity_v1p0044.py +360 -0
  350. project_handbook-0.0.1/tests/test_pre_exec_lint_parity_v1p0043.py +142 -0
  351. project_handbook-0.0.1/tests/test_release_activate_clear_show_progress.py +88 -0
  352. project_handbook-0.0.1/tests/test_release_add_feature_suggest.py +228 -0
  353. project_handbook-0.0.1/tests/test_release_clear_parity_v1p0053.py +63 -0
  354. project_handbook-0.0.1/tests/test_release_close.py +172 -0
  355. project_handbook-0.0.1/tests/test_release_list_parity_v1p0059.py +54 -0
  356. project_handbook-0.0.1/tests/test_release_list_status.py +77 -0
  357. project_handbook-0.0.1/tests/test_release_plan.py +127 -0
  358. project_handbook-0.0.1/tests/test_release_progress_parity_v1p0056.py +205 -0
  359. project_handbook-0.0.1/tests/test_release_show_parity_v1p0055.py +185 -0
  360. project_handbook-0.0.1/tests/test_release_status_parity_v1p0054.py +170 -0
  361. project_handbook-0.0.1/tests/test_reset.py +176 -0
  362. project_handbook-0.0.1/tests/test_reset_smoke.py +114 -0
  363. project_handbook-0.0.1/tests/test_roadmap_create_parity_v1p0049.py +100 -0
  364. project_handbook-0.0.1/tests/test_roadmap_create_show.py +90 -0
  365. project_handbook-0.0.1/tests/test_roadmap_show_parity_v1p0047.py +92 -0
  366. project_handbook-0.0.1/tests/test_roadmap_validate.py +75 -0
  367. project_handbook-0.0.1/tests/test_roadmap_validate_parity_v1p0050.py +57 -0
  368. project_handbook-0.0.1/tests/test_root_detection.py +65 -0
  369. project_handbook-0.0.1/tests/test_scope.py +33 -0
  370. project_handbook-0.0.1/tests/test_sprint_archive.py +141 -0
  371. project_handbook-0.0.1/tests/test_sprint_burndown_capacity.py +216 -0
  372. project_handbook-0.0.1/tests/test_sprint_close.py +213 -0
  373. project_handbook-0.0.1/tests/test_sprint_plan_open.py +291 -0
  374. project_handbook-0.0.1/tests/test_sprint_status_and_tasks.py +193 -0
  375. project_handbook-0.0.1/tests/test_status.py +84 -0
  376. project_handbook-0.0.1/tests/test_status_parity_v1p0045.py +169 -0
  377. project_handbook-0.0.1/tests/test_task_create.py +433 -0
  378. project_handbook-0.0.1/tests/test_task_list_show.py +161 -0
  379. project_handbook-0.0.1/tests/test_task_status.py +283 -0
  380. project_handbook-0.0.1/tests/test_test_system_parity_v1p0069.py +129 -0
  381. project_handbook-0.0.1/tests/test_validate.py +40 -0
  382. project_handbook-0.0.1/tests/test_validate_parity_v1p0041.py +49 -0
  383. project_handbook-0.0.1/tests/test_validate_quick_parity_v1p0042.py +49 -0
@@ -0,0 +1,37 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request: {}
7
+ workflow_dispatch: {}
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ test:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - uses: actions/setup-python@v5
19
+ with:
20
+ python-version: "3.12"
21
+
22
+ - name: Install
23
+ run: |
24
+ python -m pip install --upgrade pip
25
+ python -m pip install -e ".[dev]"
26
+
27
+ - name: Lint
28
+ run: |
29
+ ruff check .
30
+
31
+ - name: Test
32
+ run: |
33
+ pytest -q
34
+
35
+ - name: Build
36
+ run: |
37
+ python -m build
@@ -0,0 +1,46 @@
1
+ name: Docs (GitHub Pages)
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ workflow_dispatch: {}
7
+
8
+ permissions:
9
+ contents: read
10
+ pages: write
11
+ id-token: write
12
+
13
+ concurrency:
14
+ group: pages
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ build:
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+
23
+ - uses: actions/setup-python@v5
24
+ with:
25
+ python-version: "3.12"
26
+
27
+ - name: Build MkDocs site
28
+ run: |
29
+ python -m pip install --upgrade pip
30
+ python -m pip install mkdocs
31
+ mkdocs build --strict
32
+
33
+ - uses: actions/upload-pages-artifact@v3
34
+ with:
35
+ path: site
36
+
37
+ deploy:
38
+ needs: build
39
+ runs-on: ubuntu-latest
40
+ environment:
41
+ name: github-pages
42
+ url: ${{ steps.deployment.outputs.page_url }}
43
+ steps:
44
+ - id: deployment
45
+ uses: actions/deploy-pages@v4
46
+
@@ -0,0 +1,100 @@
1
+ name: Release (PyPI)
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ workflow_dispatch:
8
+ inputs:
9
+ tag:
10
+ description: "Existing git tag to release (e.g. v0.0.1)"
11
+ required: true
12
+ type: string
13
+
14
+ permissions:
15
+ contents: read
16
+
17
+ jobs:
18
+ build:
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ with:
23
+ # Needed for workflow_dispatch + tag ref checkouts.
24
+ fetch-depth: 0
25
+ ref: ${{ inputs.tag != '' && inputs.tag || github.ref }}
26
+
27
+ - uses: actions/setup-python@v5
28
+ with:
29
+ python-version: "3.12"
30
+
31
+ - name: Verify tag matches version
32
+ env:
33
+ TAG: ${{ inputs.tag != '' && inputs.tag || github.ref_name }}
34
+ run: |
35
+ python - <<'PY'
36
+ import os
37
+ import re
38
+ import tomllib
39
+ from pathlib import Path
40
+
41
+ tag = os.environ["TAG"]
42
+ m = re.fullmatch(r"v(?P<version>[0-9]+(?:\.[0-9]+){2}(?:[a-zA-Z0-9\.\-_]+)?)", tag)
43
+ if not m:
44
+ raise SystemExit(f"Tag must look like vX.Y.Z (got {tag!r})")
45
+ tag_version = m.group("version")
46
+
47
+ pyproject = tomllib.loads(Path("pyproject.toml").read_text("utf-8"))
48
+ project_version = pyproject["project"]["version"]
49
+ if project_version != tag_version:
50
+ raise SystemExit(f"pyproject.toml version {project_version!r} != tag {tag_version!r}")
51
+
52
+ init_text = Path("src/ph/__init__.py").read_text("utf-8")
53
+ mm = re.search(r'__version__\s*=\s*"([^"]+)"', init_text)
54
+ if not mm:
55
+ raise SystemExit("src/ph/__init__.py missing __version__")
56
+ init_version = mm.group(1)
57
+ if init_version != tag_version:
58
+ raise SystemExit(f"src/ph/__init__.py __version__ {init_version!r} != tag {tag_version!r}")
59
+
60
+ print(f"OK: tag={tag_version} matches pyproject + src/ph/__init__.py")
61
+ PY
62
+
63
+ - name: Build sdist and wheel
64
+ run: |
65
+ python -m pip install --upgrade pip
66
+ python -m pip install build twine
67
+ python -m build
68
+ python -m twine check --strict dist/*
69
+
70
+ - name: Smoke test wheel
71
+ run: |
72
+ python -m pip install dist/*.whl
73
+ ph --help >/dev/null
74
+
75
+ - uses: actions/upload-artifact@v4
76
+ with:
77
+ name: dist
78
+ path: dist/*
79
+ if-no-files-found: error
80
+
81
+ publish:
82
+ needs: build
83
+ runs-on: ubuntu-latest
84
+ if: startsWith(github.ref, 'refs/tags/') || (github.event_name == 'workflow_dispatch' && inputs.tag != '')
85
+ permissions:
86
+ contents: write
87
+ id-token: write
88
+ steps:
89
+ - uses: actions/download-artifact@v4
90
+ with:
91
+ name: dist
92
+ path: dist
93
+
94
+ - name: Publish to PyPI (Trusted Publishing)
95
+ uses: pypa/gh-action-pypi-publish@v1.13.0
96
+
97
+ - name: Create GitHub Release (attach artifacts)
98
+ uses: softprops/action-gh-release@v2
99
+ with:
100
+ files: dist/*
@@ -0,0 +1,14 @@
1
+ .venv/
2
+ __pycache__/
3
+ *.pyc
4
+ *.pyo
5
+ *.egg-info/
6
+ dist/
7
+ build/
8
+ site/
9
+ .pytest_cache/
10
+ .ruff_cache/
11
+ uv.lock
12
+ .codex-agent-*
13
+ ph-parity-*.done
14
+ .DS_Store
@@ -0,0 +1,73 @@
1
+ Metadata-Version: 2.4
2
+ Name: project-handbook
3
+ Version: 0.0.1
4
+ Summary: Installed ph CLI for Project Handbook
5
+ Project-URL: Repository, https://github.com/Spenquatch/project-handbook-cli
6
+ Requires-Python: >=3.10
7
+ Requires-Dist: packaging>=23.0
8
+ Provides-Extra: dev
9
+ Requires-Dist: build; extra == 'dev'
10
+ Requires-Dist: mkdocs>=1.6.0; extra == 'dev'
11
+ Requires-Dist: pytest; extra == 'dev'
12
+ Requires-Dist: ruff; extra == 'dev'
13
+ Requires-Dist: twine; extra == 'dev'
14
+ Description-Content-Type: text/markdown
15
+
16
+ # project-handbook-cli
17
+
18
+ Installed Python CLI distribution: `project-handbook`
19
+
20
+ Console script: `ph`
21
+
22
+ Handbook root marker (v1):
23
+ - `project_handbook.config.json`
24
+
25
+ Rule: `ph` MUST NOT execute repo-local Python scripts at runtime.
26
+
27
+ ## IMPORTANT: Be explicit about `PH_ROOT` during development
28
+
29
+ When developing, prefer `ph --root /absolute/path/to/handbook` so you don’t accidentally operate on the wrong directory.
30
+
31
+ v1 contract summary:
32
+ - Content root: `PH_ROOT/**` (repo-root layout, e.g. `sprints/`, `features/`, `status/`, etc.)
33
+ - Internals: `PH_ROOT/.project-handbook/**`
34
+
35
+ ## Repo layout (this repo)
36
+
37
+ - `src/ph/**`: CLI implementation
38
+ - `cli_plan/**`: authoritative v1 contract + spec + planning
39
+ - `docs/**`: rendered docs (MkDocs)
40
+
41
+ ## Local install verification (exact commands)
42
+
43
+ 1) `uv venv`
44
+ 2) `uv pip install -e .`
45
+ 3) `ph --help`
46
+
47
+ If `ph` is not found, activate the venv first: `. .venv/bin/activate`.
48
+
49
+ ## Dev verification (exact commands)
50
+
51
+ - `uv pip install -e ".[dev]"`
52
+ - `uv run ruff format .`
53
+ - `uv run ruff check .`
54
+ - `uv run pytest -q`
55
+
56
+ ## Docs (MkDocs)
57
+
58
+ - `uv pip install -e ".[dev]"`
59
+ - `uv run mkdocs serve`
60
+
61
+ ## End-session (manual verification)
62
+
63
+ Non-`--skip-codex` mode requires the `codex` CLI on your `PATH` (e.g. `npm i -g @openai/codex`).
64
+
65
+ Example:
66
+ - `ph end-session --log ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl --root /path/to/project-handbook`
67
+
68
+ ## Release (exact steps)
69
+
70
+ 1) update `pyproject.toml` `project.version` and `src/ph/__init__.py` `__version__` (must match)
71
+ 2) run `uv run ruff check .` then `uv run pytest -q`
72
+ 3) create git tag `v<version>` and push
73
+ 4) GitHub Actions publishes to PyPI on tag push (see `.github/workflows/release.yml`)
@@ -0,0 +1,58 @@
1
+ # project-handbook-cli
2
+
3
+ Installed Python CLI distribution: `project-handbook`
4
+
5
+ Console script: `ph`
6
+
7
+ Handbook root marker (v1):
8
+ - `project_handbook.config.json`
9
+
10
+ Rule: `ph` MUST NOT execute repo-local Python scripts at runtime.
11
+
12
+ ## IMPORTANT: Be explicit about `PH_ROOT` during development
13
+
14
+ When developing, prefer `ph --root /absolute/path/to/handbook` so you don’t accidentally operate on the wrong directory.
15
+
16
+ v1 contract summary:
17
+ - Content root: `PH_ROOT/**` (repo-root layout, e.g. `sprints/`, `features/`, `status/`, etc.)
18
+ - Internals: `PH_ROOT/.project-handbook/**`
19
+
20
+ ## Repo layout (this repo)
21
+
22
+ - `src/ph/**`: CLI implementation
23
+ - `cli_plan/**`: authoritative v1 contract + spec + planning
24
+ - `docs/**`: rendered docs (MkDocs)
25
+
26
+ ## Local install verification (exact commands)
27
+
28
+ 1) `uv venv`
29
+ 2) `uv pip install -e .`
30
+ 3) `ph --help`
31
+
32
+ If `ph` is not found, activate the venv first: `. .venv/bin/activate`.
33
+
34
+ ## Dev verification (exact commands)
35
+
36
+ - `uv pip install -e ".[dev]"`
37
+ - `uv run ruff format .`
38
+ - `uv run ruff check .`
39
+ - `uv run pytest -q`
40
+
41
+ ## Docs (MkDocs)
42
+
43
+ - `uv pip install -e ".[dev]"`
44
+ - `uv run mkdocs serve`
45
+
46
+ ## End-session (manual verification)
47
+
48
+ Non-`--skip-codex` mode requires the `codex` CLI on your `PATH` (e.g. `npm i -g @openai/codex`).
49
+
50
+ Example:
51
+ - `ph end-session --log ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl --root /path/to/project-handbook`
52
+
53
+ ## Release (exact steps)
54
+
55
+ 1) update `pyproject.toml` `project.version` and `src/ph/__init__.py` `__version__` (must match)
56
+ 2) run `uv run ruff check .` then `uv run pytest -q`
57
+ 3) create git tag `v<version>` and push
58
+ 4) GitHub Actions publishes to PyPI on tag push (see `.github/workflows/release.yml`)
@@ -0,0 +1,184 @@
1
+ ---
2
+ title: CLI Plan – AI Agent Start Here
3
+ type: process
4
+ date: 2026-01-14
5
+ tags: [cli, plan, execution, agent]
6
+ links:
7
+ - ./archive/tasks_legacy.json
8
+ - ./tasks_v1_next.json
9
+ - ./archive/strict_parity_2026-02/tasks_v1_parity.json
10
+ - ./archive/strict_parity_2026-02/due-diligence.json
11
+ - ./backlog.json
12
+ - ./session_logs.md
13
+ - ./archive/strict_parity_2026-02/PARITY_CHECKLIST.md
14
+ - ./v1_cli/ADR-CLI-0001-ph-cli-migration.md
15
+ - ./v1_cli/ADR-CLI-0002-handbook-instance-scaffolding.md
16
+ - ./v1_cli/ADR-CLI-0003-ph-project-layout.md
17
+ - ./v1_cli/ADR-CLI-0004-ph-root-layout.md
18
+ - ./v1_cli/CLI_CONTRACT.md
19
+ - ./archive/strict_parity_2026-02/v0_make/MAKE_CONTRACT.md
20
+ - ./ph_spec/
21
+ ---
22
+
23
+ # CLI Plan – AI Agent Start Here
24
+
25
+ This folder is the **only** place we track v1 CLI execution planning and due diligence. Do not update general handbook onboarding docs for v1; keep v1 planning scoped to `cli_plan/`.
26
+
27
+ ## What you are building
28
+
29
+ - A separately-installed Python CLI tool named `project-handbook` that provides the `ph` command.
30
+ - The `ph` tool operates on a “handbook instance repo” (any repo with `project_handbook.config.json`) as **data/templates/plans**, and MUST NOT execute repo-local Python scripts at runtime.
31
+ - Reference implementation for parity/real-world behavior: `/Users/spensermcconnell/__Active_Code/oss-saas/project-handbook` (invoked via `pnpm make -- <target>`).
32
+ - When running commands during development, prefer `ph --root /absolute/path/to/target` so you don’t accidentally operate on the wrong directory.
33
+
34
+ ## Sources of truth (read in this order)
35
+
36
+ 1. `cli_plan/v1_cli/ADR-CLI-0004-ph-root-layout.md` (project layout + marker)
37
+ 2. `cli_plan/v1_cli/CLI_CONTRACT.md`
38
+ 3. `cli_plan/ph_spec/` (directory-by-directory spec + examples)
39
+ 4. `cli_plan/tasks_v1_next.json` (active incremental work queue)
40
+ 5. `cli_plan/archive/strict_parity_2026-02/due-diligence.json` (historical; complete)
41
+ 6. `cli_plan/archive/strict_parity_2026-02/v0_make/MAKE_CONTRACT.md` (historical parity reference)
42
+ 7. `cli_plan/v1_cli/ADR-CLI-0001-ph-cli-migration.md` (historical context)
43
+ 8. `cli_plan/v1_cli/ADR-CLI-0003-ph-project-layout.md` (historical context; superseded)
44
+ 9. `cli_plan/v1_cli/ADR-CLI-0002-handbook-instance-scaffolding.md` (historical context; superseded)
45
+
46
+ ## Root marker for v1
47
+
48
+ For v1, the handbook instance repo root is detected by the presence of:
49
+
50
+ - `project_handbook.config.json`
51
+
52
+ The `ph` CLI MUST treat the directory that contains `project_handbook.config.json` as `PH_ROOT`.
53
+
54
+ ## Workstreams
55
+
56
+ There are two primary workstreams under `cli_plan/`:
57
+
58
+ 1. **Next tasks (active)**: incremental v1 improvements in `cli_plan/tasks_v1_next.json`.
59
+ 2. **Backlog (active)**: items that require contract/spec decisions first in `cli_plan/backlog.json` (+ tech-debt notes in `cli_plan/backlog.md`).
60
+
61
+ Historical (kept for audit trail):
62
+ - Due diligence queue: `cli_plan/archive/strict_parity_2026-02/due-diligence.json` (complete).
63
+ - Strict parity queue + checklist: `cli_plan/archive/strict_parity_2026-02/` (complete).
64
+ - Original migration queue: `cli_plan/archive/tasks_legacy.json` (complete).
65
+
66
+ Default policy:
67
+ - Use `cli_plan/tasks_v1_next.json` for new work.
68
+ - Only refer to archived queues for historical context.
69
+
70
+ Important note:
71
+ - `cli_plan/archive/tasks_legacy.json` and older `cli_plan/session_logs.md` entries include historical references to a deprecated `.ph/**` / `ph/**` layout. For v1, treat `cli_plan/v1_cli/CLI_CONTRACT.md` + `cli_plan/ph_spec/` as authoritative.
72
+
73
+ ## Strict workflow (do this every session)
74
+
75
+ 1. Decide the active queue:
76
+ - Use **Next queue workflow** (`cli_plan/tasks_v1_next.json`) for new work.
77
+ 2. Select exactly one task to execute (algorithm below).
78
+ 3. Before doing any work:
79
+ - set that task’s `status` to `in_progress` in the appropriate JSON file
80
+ - append exactly one new entry to `cli_plan/session_logs.md` using the template in that file
81
+ 4. Execute the task exactly as written (no scope creep; do not execute other task IDs).
82
+ 5. When finished, update both:
83
+ - the appropriate JSON file: set status to `done` OR `blocked` (and record blockers)
84
+ - `cli_plan/session_logs.md`: fill in verification, outcome, and the computed “Next task”
85
+ 6. Stop. The next session starts again from step 1.
86
+
87
+ ## Task selection algorithm (zero ambiguity)
88
+
89
+ ### Due diligence queue (archived) (`cli_plan/archive/strict_parity_2026-02/due-diligence.json`)
90
+
91
+ Given `cli_plan/archive/strict_parity_2026-02/due-diligence.json`:
92
+
93
+ 1. If there is exactly one task with `status == "in_progress"`, continue that same task.
94
+ 2. Else pick the single task with `status == "todo"` with the lowest numeric ID (e.g. `DD-0001` before `DD-0100`).
95
+ 3. If none are `todo`:
96
+ - if there are blocked tasks, pick the blocked task with the lowest numeric ID and work only on unblocking it
97
+ - else stop and report: “No runnable due-diligence tasks. All due-diligence tasks are done.”
98
+
99
+ ### CLI queue (`cli_plan/archive/tasks_legacy.json`)
100
+
101
+ Given `cli_plan/archive/tasks_legacy.json`:
102
+
103
+ 1. Build the set `DONE = { task.id | task.status == "done" }`.
104
+ 2. Compute the candidate list:
105
+ - `CANDIDATES = [ task | task.status == "todo" AND every dep in task.depends_on is in DONE ]`
106
+ 3. If `CANDIDATES` is empty:
107
+ - pick the single `blocked` task with the lowest `(phase.order, task.order)` and work only on unblocking it
108
+ - if there are no blocked tasks, stop and report: “No runnable tasks. All tasks are done.”
109
+ 4. Otherwise pick the single task in `CANDIDATES` with the lowest `(phase.order, task.order)`.
110
+ 5. The selected task is “the next task” for this session.
111
+
112
+ ### Next queue (`cli_plan/tasks_v1_next.json`)
113
+
114
+ Given `cli_plan/tasks_v1_next.json`:
115
+
116
+ 1. Build the set `DONE = { task.id | task.status == "done" }`.
117
+ 2. Compute the candidate list:
118
+ - `CANDIDATES = [ task | task.status == "todo" AND every dep in task.depends_on is in DONE ]`
119
+ 3. If `CANDIDATES` is empty:
120
+ - pick the single `blocked` task with the lowest `(phase.order, task.order)` and work only on unblocking it
121
+ - if there are no blocked tasks, stop and report: “No runnable v1-next tasks. All v1-next tasks are done.”
122
+ 4. Otherwise pick the single task in `CANDIDATES` with the lowest `(phase.order, task.order)`.
123
+ 5. The selected task is “the next task” for this session.
124
+
125
+ ### Parity queue (archived) (`cli_plan/archive/strict_parity_2026-02/tasks_v1_parity.json`)
126
+
127
+ Given `cli_plan/archive/strict_parity_2026-02/tasks_v1_parity.json`:
128
+
129
+ 1. Build the set `DONE = { task.id | task.status == "done" }`.
130
+ 2. Compute the candidate list:
131
+ - `CANDIDATES = [ task | task.status == "todo" AND every dep in task.depends_on is in DONE ]`
132
+ 3. If `CANDIDATES` is empty:
133
+ - pick the single `blocked` task with the lowest `(phase.order, task.order)` and work only on unblocking it
134
+ - if there are no blocked tasks, stop and report: “No runnable parity tasks. All parity tasks are done.”
135
+ 4. Otherwise pick the single task in `CANDIDATES` with the lowest `(phase.order, task.order)`.
136
+ 5. The selected task is “the next task” for this session.
137
+
138
+ ## How to mark progress
139
+
140
+ ### Due diligence tasks (archived) (`cli_plan/archive/strict_parity_2026-02/due-diligence.json`)
141
+
142
+ For the active due-diligence task object:
143
+
144
+ - On start:
145
+ - set `"status": "in_progress"`
146
+ - add `"started_at": "YYYY-MM-DDTHH:MM:SSZ"` (UTC)
147
+ - add `"last_session_log_ref": "cli_plan/session_logs.md#<paste the entry heading>"`
148
+ - On completion:
149
+ - set `"status": "done"`
150
+ - add `"completed_at": "YYYY-MM-DDTHH:MM:SSZ"` (UTC)
151
+ - add `"next_task_id": "<computed next DD-#### id or NONE>"`
152
+ - On blocked:
153
+ - set `"status": "blocked"`
154
+ - add `"blocked_at": "YYYY-MM-DDTHH:MM:SSZ"` (UTC)
155
+ - add `"blockers": ["<concrete blocker>", "..."]`
156
+ - add `"unblock_steps": ["<exact step to unblock>", "..."]`
157
+ - add `"next_task_id": "<computed next DD-#### id or NONE>"`
158
+
159
+ ### CLI tasks (`cli_plan/archive/tasks_legacy.json`)
160
+
161
+ For the active CLI task object:
162
+
163
+ - On start:
164
+ - set `"status": "in_progress"`
165
+ - set `"started_at": "YYYY-MM-DDTHH:MM:SSZ"` (UTC)
166
+ - set `"last_session_log_ref": "cli_plan/session_logs.md#<paste the entry heading>"`
167
+ - On completion:
168
+ - set `"status": "done"`
169
+ - set `"completed_at": "YYYY-MM-DDTHH:MM:SSZ"` (UTC)
170
+ - set `"next_task_id": "<computed next task id>"`
171
+ - On blocked:
172
+ - set `"status": "blocked"`
173
+ - set `"blocked_at": "YYYY-MM-DDTHH:MM:SSZ"` (UTC)
174
+ - set `"blockers": ["<concrete blocker>", "..."]`
175
+ - set `"unblock_steps": ["<exact step to unblock>", "..."]`
176
+ - set `"next_task_id": "<computed next task id>"` (this will typically be the same task, until unblocked)
177
+
178
+ These tracking fields are permitted and expected even if they were not present originally.
179
+
180
+ ## Non-negotiables
181
+
182
+ - Keep execution planning here (`cli_plan/`) only.
183
+ - Follow the contract exactly; if you must change the contract, do it as a dedicated task and explain why in session logs.
184
+ - Prefer small PR-sized tasks; do not bundle multiple task IDs into one run.
@@ -0,0 +1,37 @@
1
+ ---
2
+ title: CLI Migration Plan (Versioned)
3
+ type: guide
4
+ date: 2026-01-13
5
+ tags: [handbook, cli, migration, plan]
6
+ links:
7
+ - ./archive/strict_parity_2026-02/v0_make/MAKE_CONTRACT.md
8
+ - ./v1_cli/ADR-CLI-0001-ph-cli-migration.md
9
+ - ./v1_cli/CLI_CONTRACT.md
10
+ ---
11
+
12
+ # CLI Migration Plan (Versioned)
13
+
14
+ This folder is versioned so we can always compare the **current Make-based interface** against the **new CLI interface** during parity work.
15
+
16
+ ## Versions
17
+
18
+ ### `v0_make/`
19
+ Authoritative snapshot/contract of the current command surface:
20
+ - Make targets (including placeholders/no-ops)
21
+ - Hook behavior (history + auto validation)
22
+ - Pre-exec gates + release coordination targets
23
+
24
+ ### `v1_cli/`
25
+ Authoritative CLI design:
26
+ - ADR for the `ph` CLI migration
27
+ - CLI contract (command tree, hints, hooks, skip rules)
28
+
29
+ ## Parity rule
30
+
31
+ `v1_cli` MUST preserve the intent and ergonomics of `v0_make` where applicable, while improving usability by ensuring the CLI can bootstrap a repo (`ph init`) and scaffold required files/directories (so commands don’t assume a pre-existing handbook filesystem).
32
+
33
+ ## Task queues
34
+
35
+ - `cli_plan/archive/tasks_legacy.json`: historical migration task queue (complete; kept as an audit trail).
36
+ - `cli_plan/archive/strict_parity_2026-02/tasks_v1_parity.json`: strict parity queue (complete; one checkbox per task from `cli_plan/archive/strict_parity_2026-02/PARITY_CHECKLIST.md`).
37
+ - `cli_plan/tasks_v1_next.json`: active incremental v1 task queue (preferred for new work).
@@ -0,0 +1,20 @@
1
+ ---
2
+ title: CLI Plan – Archive
3
+ type: guide
4
+ date: 2026-02-04
5
+ tags: [cli, plan, archive]
6
+ links: []
7
+ ---
8
+
9
+ # Archive
10
+
11
+ This folder contains historical planning artifacts kept for audit trail purposes.
12
+
13
+ Active planning queues:
14
+
15
+ - `cli_plan/tasks_v1_next.json` (post-parity improvements)
16
+
17
+ Historical (do not use for new work):
18
+
19
+ - `cli_plan/archive/tasks_legacy.json` (original migration queue; contains deprecated prompts/layout references)
20
+ - `cli_plan/archive/strict_parity_2026-02/` (strict Make→CLI parity artifacts: queue + checklist + legacy Make contract snapshot)