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.
- project_handbook-0.0.1/.github/workflows/ci.yml +37 -0
- project_handbook-0.0.1/.github/workflows/docs.yml +46 -0
- project_handbook-0.0.1/.github/workflows/release.yml +100 -0
- project_handbook-0.0.1/.gitignore +14 -0
- project_handbook-0.0.1/PKG-INFO +73 -0
- project_handbook-0.0.1/README.md +58 -0
- project_handbook-0.0.1/cli_plan/AI_AGENT_START_HERE.md +184 -0
- project_handbook-0.0.1/cli_plan/README.md +37 -0
- project_handbook-0.0.1/cli_plan/archive/README.md +20 -0
- project_handbook-0.0.1/cli_plan/archive/strict_parity_2026-02/PARITY_CHECKLIST.md +350 -0
- project_handbook-0.0.1/cli_plan/archive/strict_parity_2026-02/due-diligence.json +1055 -0
- project_handbook-0.0.1/cli_plan/archive/strict_parity_2026-02/tasks_v1_parity.json +1073 -0
- project_handbook-0.0.1/cli_plan/archive/strict_parity_2026-02/v0_make/MAKE_CONTRACT.md +492 -0
- project_handbook-0.0.1/cli_plan/archive/tasks_legacy.json +1736 -0
- project_handbook-0.0.1/cli_plan/backlog.json +34 -0
- project_handbook-0.0.1/cli_plan/backlog.md +38 -0
- project_handbook-0.0.1/cli_plan/ph_spec/CONTRACT_TEMPLATE.md +35 -0
- project_handbook-0.0.1/cli_plan/ph_spec/README.md +14 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/adr/contract.md +68 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/adr/examples/0007-tribuence-mini-v2-supergraph-context.md +65 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/bugs/contract.md +69 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/bugs/examples/EXAMPLE-BUG-P0-20250922-1144/README.md +48 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/bugs/examples/EXAMPLE-BUG-P0-20250922-1144/triage.md +122 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/contract.md +58 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/examples/bugs/EXAMPLE-BUG-P0-20250922-1144/README.md +48 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/examples/bugs/EXAMPLE-BUG-P0-20250922-1144/triage.md +122 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/examples/wildcards/WILD-P2-20260101-2107/README.md +59 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/examples/work-items/WORK-P4-20260104-1919/README.md +45 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/wildcards/contract.md +64 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/wildcards/examples/WILD-P2-20260101-2107/README.md +59 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/work-items/contract.md +65 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/archive/work-items/examples/WORK-P4-20260104-1919/README.md +45 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/bugs/contract.md +74 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/bugs/examples/EXAMPLE-BUG-P0-20250922-1144/README.md +45 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/bugs/examples/EXAMPLE-BUG-P0-20250922-1144/triage.md +122 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/contract.md +102 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/examples/bugs/EXAMPLE-BUG-P0-20250922-1144/README.md +45 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/examples/bugs/EXAMPLE-BUG-P0-20250922-1144/triage.md +122 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/examples/wildcards/WILD-P2-20260103-2109/README.md +41 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/examples/work-items/WORK-P2-20260106-213751/README.md +42 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/wildcards/contract.md +62 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/wildcards/examples/WILD-P2-20260103-2109/README.md +41 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/work-items/contract.md +64 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/backlog/work-items/examples/WORK-P2-20260106-213751/README.md +42 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/contract.md +95 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/contracts/contract.md +62 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/contracts/examples/api/README.md +13 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/contracts/examples/api/api-contracts.json +41 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/contracts/examples/api/v2-context-service.md +49 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/contracts/examples/api/v2-ui-healthz.md +71 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/contracts/examples/inventory.md +50 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/decision-register/contract.md +79 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/decision-register/examples/DR-0003-cosmo-minio-baseline-topology.md +139 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/decision-register/examples/README.md +89 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/adr/0007-tribuence-mini-v2-supergraph-context.md +65 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/backlog/bugs/EXAMPLE-BUG-P0-20250922-1144/README.md +45 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/backlog/bugs/EXAMPLE-BUG-P0-20250922-1144/triage.md +122 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/architecture/ARCHITECTURE.md +36 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/changelog.md +16 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/implementation/GATES.md +67 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/implementation/IMPLEMENTATION.md +27 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/overview.md +53 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/risks.md +35 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/status.md +54 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/features/v2_launch/testing/TESTING.md +33 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/roadmap/now-next-later.md +15 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/sprints/2026/SPRINT-2026-01-11/plan.md +128 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- project_handbook-0.0.1/cli_plan/ph_spec/ph/examples/status/current_summary.md.example +37 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/features/archive/contract.md +54 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/features/contract.md +104 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/architecture/ARCHITECTURE.md +36 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/changelog.md +16 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/implementation/GATES.md +67 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/implementation/IMPLEMENTATION.md +27 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/overview.md +53 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/risks.md +35 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/status.md +54 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/features/examples/v2_launch/testing/TESTING.md +33 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/contract.md +66 -0
- 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
- 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
- project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/external-requests/contract.md +54 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/features/contract.md +54 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/research/contract.md +54 -0
- 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
- project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/archive/technical-debt/contract.md +54 -0
- 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
- project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/contract.md +100 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/examples/index.json +11 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/external-requests/contract.md +57 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/features/contract.md +57 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/research/contract.md +57 -0
- 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
- project_handbook-0.0.1/cli_plan/ph_spec/ph/parking-lot/technical-debt/contract.md +57 -0
- 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
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/contract.md +74 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/current/contract.md +112 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/current/examples/current/features.yaml +36 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/current/examples/current/plan.md +73 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/current/examples/current/progress.md +27 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/delivered/contract.md +45 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/delivered/examples/v0.5.1/changelog.md +28 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/delivered/examples/v0.5.1/features.yaml +36 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/delivered/examples/v0.5.1/plan.md +75 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/delivered/examples/v0.5.1/progress.md +27 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/examples/CHANGELOG.md +17 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/examples/v0.5.1/features.yaml +36 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/examples/v0.5.1/plan.md +73 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/examples/v0.5.1/progress.md +27 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/planning/contract.md +53 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/releases/planning/examples/EXAMPLE-v0.1.0.md +21 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/roadmap/contract.md +59 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/roadmap/examples/now-next-later.md +15 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/contract.md +93 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/burndown.md +29 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/plan.md +112 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/2026/SPRINT-2026-01-09/retrospective.md +47 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/archive/examples/index.json +74 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/contract.md +115 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/examples/2026/SPRINT-2026-01-11/plan.md +128 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- project_handbook-0.0.1/cli_plan/ph_spec/ph/sprints/examples/scaffold/2026/SPRINT-2026-01-11/plan.md +128 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/contract.md +87 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/daily/contract.md +58 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/daily/examples/2026/01/03.md +37 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/contract.md +61 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/anythingllm-subgraph-logs.txt +6 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/context-logs.txt +6 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/index.md +40 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/index_head.txt +6 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/index_paths_check.txt +31 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/index_paths_check_repo_root.txt +2 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/keycloak-local-headers.txt +9 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/modular-compose-cosmo-minio-env-snippets.txt +286 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/newest_prompt.txt +4 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/newest_recap_head.txt +63 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/repo_session_end_dir_ls.txt +5 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/session_end_dir_ls.txt +4 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-down-20260103T220131.log +70 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-ps-20260103T220142.log +15 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-smoke-20260103T220247-run1.log +41 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-smoke-20260103T221139-run1.log +36 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-smoke-20260103T221139-run2.log +37 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-up-20260103T220142.log +81 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-vault-bootstrap-no-leakage-snippets.txt +68 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-vault-kv-layout.txt +37 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/v2-vault-templates-inventory.txt +6 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/vault-agent.hcl.txt +45 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/vault-bootstrap-20260103T220612.log +29 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/evidence/examples/TASK-002/vault-bootstrap-20260103T220848.log +35 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/examples/README.md +164 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/examples/current.json +382 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/examples/current_summary.md.example +37 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/examples/validation.json +3 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/exports/contract.md +63 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/exports/examples/SPRINT-2026-01-11-doc-review.README.txt +13 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/exports/examples/SPRINT-2026-01-11-doc-review.manifest.txt +15 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/exports/examples/SPRINT-2026-01-11-doc-review.paths.txt +13 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/exports/examples/SPRINT-2026-01-11-doc-review.tar.gz +0 -0
- project_handbook-0.0.1/cli_plan/ph_spec/ph/status/exports/examples/SPRINT-2026-01-11-doc-review.tar.gz.sha256 +1 -0
- project_handbook-0.0.1/cli_plan/session_logs.md +9666 -0
- project_handbook-0.0.1/cli_plan/tasks_v1_next.json +206 -0
- project_handbook-0.0.1/cli_plan/v1_cli/ADR-CLI-0001-ph-cli-migration.md +201 -0
- project_handbook-0.0.1/cli_plan/v1_cli/ADR-CLI-0002-handbook-instance-scaffolding.md +132 -0
- project_handbook-0.0.1/cli_plan/v1_cli/ADR-CLI-0003-ph-project-layout.md +190 -0
- project_handbook-0.0.1/cli_plan/v1_cli/ADR-CLI-0004-ph-root-layout.md +47 -0
- project_handbook-0.0.1/cli_plan/v1_cli/CLI_CONTRACT.md +913 -0
- project_handbook-0.0.1/docs/commands.md +45 -0
- project_handbook-0.0.1/docs/index.md +11 -0
- project_handbook-0.0.1/docs/quickstart.md +47 -0
- project_handbook-0.0.1/mkdocs.yml +11 -0
- project_handbook-0.0.1/pyproject.toml +30 -0
- project_handbook-0.0.1/pytest.ini +3 -0
- project_handbook-0.0.1/src/ph/__init__.py +1 -0
- project_handbook-0.0.1/src/ph/__main__.py +6 -0
- project_handbook-0.0.1/src/ph/backlog.py +107 -0
- project_handbook-0.0.1/src/ph/backlog_manager.py +809 -0
- project_handbook-0.0.1/src/ph/clean.py +36 -0
- project_handbook-0.0.1/src/ph/cli.py +1301 -0
- project_handbook-0.0.1/src/ph/clock.py +44 -0
- project_handbook-0.0.1/src/ph/config.py +116 -0
- project_handbook-0.0.1/src/ph/context.py +49 -0
- project_handbook-0.0.1/src/ph/daily.py +371 -0
- project_handbook-0.0.1/src/ph/dashboard.py +59 -0
- project_handbook-0.0.1/src/ph/doctor.py +65 -0
- project_handbook-0.0.1/src/ph/end_session.py +1935 -0
- project_handbook-0.0.1/src/ph/feature.py +389 -0
- project_handbook-0.0.1/src/ph/feature_archive.py +183 -0
- project_handbook-0.0.1/src/ph/feature_status_updater.py +330 -0
- project_handbook-0.0.1/src/ph/git_hooks.py +33 -0
- project_handbook-0.0.1/src/ph/help_text.py +120 -0
- project_handbook-0.0.1/src/ph/history.py +29 -0
- project_handbook-0.0.1/src/ph/hooks.py +97 -0
- project_handbook-0.0.1/src/ph/init_repo.py +608 -0
- project_handbook-0.0.1/src/ph/migrate_system_scope.py +526 -0
- project_handbook-0.0.1/src/ph/onboarding.py +124 -0
- project_handbook-0.0.1/src/ph/orchestration.py +214 -0
- project_handbook-0.0.1/src/ph/parking.py +61 -0
- project_handbook-0.0.1/src/ph/parking_lot_manager.py +391 -0
- project_handbook-0.0.1/src/ph/pre_exec.py +537 -0
- project_handbook-0.0.1/src/ph/release.py +1807 -0
- project_handbook-0.0.1/src/ph/reset.py +272 -0
- project_handbook-0.0.1/src/ph/reset_smoke.py +168 -0
- project_handbook-0.0.1/src/ph/roadmap.py +156 -0
- project_handbook-0.0.1/src/ph/rollout_parser.py +129 -0
- project_handbook-0.0.1/src/ph/root.py +46 -0
- project_handbook-0.0.1/src/ph/sprint.py +402 -0
- project_handbook-0.0.1/src/ph/sprint_archive.py +146 -0
- project_handbook-0.0.1/src/ph/sprint_burndown.py +120 -0
- project_handbook-0.0.1/src/ph/sprint_capacity.py +149 -0
- project_handbook-0.0.1/src/ph/sprint_close.py +257 -0
- project_handbook-0.0.1/src/ph/sprint_commands.py +81 -0
- project_handbook-0.0.1/src/ph/sprint_status.py +411 -0
- project_handbook-0.0.1/src/ph/sprint_tasks.py +121 -0
- project_handbook-0.0.1/src/ph/status.py +749 -0
- project_handbook-0.0.1/src/ph/task_create.py +770 -0
- project_handbook-0.0.1/src/ph/task_status.py +164 -0
- project_handbook-0.0.1/src/ph/task_view.py +260 -0
- project_handbook-0.0.1/src/ph/validate_docs.py +818 -0
- project_handbook-0.0.1/src/ph/work_item_archiver.py +273 -0
- project_handbook-0.0.1/tests/test_backlog_add.py +171 -0
- project_handbook-0.0.1/tests/test_backlog_assign.py +129 -0
- project_handbook-0.0.1/tests/test_backlog_assign_parity_v1p0034.py +107 -0
- project_handbook-0.0.1/tests/test_backlog_list.py +138 -0
- project_handbook-0.0.1/tests/test_backlog_list_parity_v1p0032.py +59 -0
- project_handbook-0.0.1/tests/test_backlog_rubric_parity_v1p0035.py +116 -0
- project_handbook-0.0.1/tests/test_backlog_rubric_stats.py +101 -0
- project_handbook-0.0.1/tests/test_backlog_triage.py +117 -0
- project_handbook-0.0.1/tests/test_backlog_triage_parity_v1p0033.py +87 -0
- project_handbook-0.0.1/tests/test_check_all_parity_v1p0068.py +67 -0
- project_handbook-0.0.1/tests/test_clean.py +40 -0
- project_handbook-0.0.1/tests/test_clean_parity_v1p0066.py +62 -0
- project_handbook-0.0.1/tests/test_cli_help.py +8 -0
- project_handbook-0.0.1/tests/test_config_validation.py +27 -0
- project_handbook-0.0.1/tests/test_daily.py +84 -0
- project_handbook-0.0.1/tests/test_daily_make_parity.py +192 -0
- project_handbook-0.0.1/tests/test_dashboard.py +128 -0
- project_handbook-0.0.1/tests/test_doctor.py +46 -0
- project_handbook-0.0.1/tests/test_end_session_session_end_artifacts.py +92 -0
- project_handbook-0.0.1/tests/test_end_session_skip_codex.py +87 -0
- project_handbook-0.0.1/tests/test_feature_archive.py +145 -0
- project_handbook-0.0.1/tests/test_feature_create_list.py +178 -0
- project_handbook-0.0.1/tests/test_feature_status.py +160 -0
- project_handbook-0.0.1/tests/test_feature_summary_parity_v1p0029.py +85 -0
- project_handbook-0.0.1/tests/test_feature_update_status_and_summary.py +143 -0
- project_handbook-0.0.1/tests/test_feature_update_status_parity_v1p0028.py +157 -0
- project_handbook-0.0.1/tests/test_help_topics.py +342 -0
- project_handbook-0.0.1/tests/test_history.py +82 -0
- project_handbook-0.0.1/tests/test_hooks_install.py +46 -0
- project_handbook-0.0.1/tests/test_hooks_install_parity_v1p0067.py +54 -0
- project_handbook-0.0.1/tests/test_hooks_plan.py +133 -0
- project_handbook-0.0.1/tests/test_init.py +92 -0
- project_handbook-0.0.1/tests/test_migrate_system_scope.py +123 -0
- project_handbook-0.0.1/tests/test_onboarding.py +130 -0
- project_handbook-0.0.1/tests/test_orchestration.py +57 -0
- project_handbook-0.0.1/tests/test_parking_add.py +79 -0
- project_handbook-0.0.1/tests/test_parking_add_parity_v1p0037.py +81 -0
- project_handbook-0.0.1/tests/test_parking_list_parity_v1p0038.py +111 -0
- project_handbook-0.0.1/tests/test_parking_list_review.py +134 -0
- project_handbook-0.0.1/tests/test_parking_promote.py +114 -0
- project_handbook-0.0.1/tests/test_parking_promote_parity_v1p0040.py +91 -0
- project_handbook-0.0.1/tests/test_parking_review_parity_v1p0039.py +100 -0
- project_handbook-0.0.1/tests/test_post_hook_exit_codes.py +84 -0
- project_handbook-0.0.1/tests/test_post_hook_integration.py +62 -0
- project_handbook-0.0.1/tests/test_pre_exec.py +65 -0
- project_handbook-0.0.1/tests/test_pre_exec_audit_parity_v1p0044.py +360 -0
- project_handbook-0.0.1/tests/test_pre_exec_lint_parity_v1p0043.py +142 -0
- project_handbook-0.0.1/tests/test_release_activate_clear_show_progress.py +88 -0
- project_handbook-0.0.1/tests/test_release_add_feature_suggest.py +228 -0
- project_handbook-0.0.1/tests/test_release_clear_parity_v1p0053.py +63 -0
- project_handbook-0.0.1/tests/test_release_close.py +172 -0
- project_handbook-0.0.1/tests/test_release_list_parity_v1p0059.py +54 -0
- project_handbook-0.0.1/tests/test_release_list_status.py +77 -0
- project_handbook-0.0.1/tests/test_release_plan.py +127 -0
- project_handbook-0.0.1/tests/test_release_progress_parity_v1p0056.py +205 -0
- project_handbook-0.0.1/tests/test_release_show_parity_v1p0055.py +185 -0
- project_handbook-0.0.1/tests/test_release_status_parity_v1p0054.py +170 -0
- project_handbook-0.0.1/tests/test_reset.py +176 -0
- project_handbook-0.0.1/tests/test_reset_smoke.py +114 -0
- project_handbook-0.0.1/tests/test_roadmap_create_parity_v1p0049.py +100 -0
- project_handbook-0.0.1/tests/test_roadmap_create_show.py +90 -0
- project_handbook-0.0.1/tests/test_roadmap_show_parity_v1p0047.py +92 -0
- project_handbook-0.0.1/tests/test_roadmap_validate.py +75 -0
- project_handbook-0.0.1/tests/test_roadmap_validate_parity_v1p0050.py +57 -0
- project_handbook-0.0.1/tests/test_root_detection.py +65 -0
- project_handbook-0.0.1/tests/test_scope.py +33 -0
- project_handbook-0.0.1/tests/test_sprint_archive.py +141 -0
- project_handbook-0.0.1/tests/test_sprint_burndown_capacity.py +216 -0
- project_handbook-0.0.1/tests/test_sprint_close.py +213 -0
- project_handbook-0.0.1/tests/test_sprint_plan_open.py +291 -0
- project_handbook-0.0.1/tests/test_sprint_status_and_tasks.py +193 -0
- project_handbook-0.0.1/tests/test_status.py +84 -0
- project_handbook-0.0.1/tests/test_status_parity_v1p0045.py +169 -0
- project_handbook-0.0.1/tests/test_task_create.py +433 -0
- project_handbook-0.0.1/tests/test_task_list_show.py +161 -0
- project_handbook-0.0.1/tests/test_task_status.py +283 -0
- project_handbook-0.0.1/tests/test_test_system_parity_v1p0069.py +129 -0
- project_handbook-0.0.1/tests/test_validate.py +40 -0
- project_handbook-0.0.1/tests/test_validate_parity_v1p0041.py +49 -0
- 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,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)
|