@opengsd/gsd-path 1.0.0 → 1.1.0
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.
- package/AGENTS.md +28 -11
- package/DOCS.md +6 -5
- package/FULL.md +9 -13
- package/QUICK.md +3 -3
- package/README.md +151 -14
- package/RUNTIME.md +7 -1
- package/WORKFLOW.md +30 -14
- package/package.json +15 -1
- package/platforms/shared-agents/dispatch.md +6 -0
- package/scripts/archive_milestone.py +10 -118
- package/scripts/bootstrap_repository.py +25 -3
- package/scripts/build_recovery.py +287 -0
- package/scripts/check_docs_audit.py +5 -3
- package/scripts/check_handoffs.py +1 -1
- package/scripts/detect_project.py +11 -2
- package/scripts/dispatch_driver.py +4 -2
- package/scripts/git_guard.py +2 -1
- package/scripts/install.mjs +2 -0
- package/scripts/install.py +2 -0
- package/scripts/integration.py +28 -22
- package/scripts/isolation.py +9 -1
- package/scripts/lean_verification.py +1 -1
- package/scripts/pipeline_diagnose.py +12 -3
- package/scripts/pipeline_state.py +114 -186
- package/scripts/pipeline_undo.py +11 -7
- package/scripts/promote_lookahead.py +30 -162
- package/scripts/roadmap.py +321 -0
- package/scripts/skill-resources.json +79 -1
- package/scripts/state_checkpoint.py +109 -72
- package/scripts/state_promote.py +42 -44
- package/scripts/task_context.py +73 -0
- package/scripts/token_budget.py +40 -1
- package/scripts/workflow_run.py +116 -7
- package/skills/gsd-path/BUILD.md +47 -575
- package/skills/gsd-path/DECIDE.md +2 -6
- package/skills/gsd-path/DEFINE.md +10 -14
- package/skills/gsd-path/INSPECT.md +30 -8
- package/skills/gsd-path/PLAN.md +25 -17
- package/skills/gsd-path/RESEARCH.md +3 -6
- package/skills/gsd-path/ROADMAP.md +22 -58
- package/skills/gsd-path/SHIP.md +5 -4
- package/skills/gsd-path/SKILL.md +24 -14
- package/skills/gsd-path/references/build-abandon.md +33 -0
- package/skills/gsd-path/references/build-native.md +494 -0
- package/skills/gsd-path/references/build-recovery.md +78 -0
- package/skills/gsd-path/references/coder.md +8 -3
- package/skills/gsd-path/references/dispatch.md +6 -0
- package/skills/gsd-path/references/docs-auditor.md +14 -0
- package/skills/gsd-path/references/reviewer-final.md +21 -0
- package/skills/gsd-path/references/reviewer-panel.md +17 -0
- package/skills/gsd-path/references/reviewer-skeptic.md +20 -0
- package/skills/gsd-path/references/reviewer-wave.md +89 -0
- package/skills/gsd-path/references/reviewer.md +12 -150
- package/skills/gsd-path/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/discussion_records.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/integration.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/loop_run.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/review_findings.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/task_context.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/workflow_run.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/archive_milestone.py +10 -118
- package/skills/gsd-path/scripts/bootstrap_repository.py +25 -3
- package/skills/gsd-path/scripts/build_recovery.py +287 -0
- package/skills/gsd-path/scripts/check_docs_audit.py +5 -3
- package/skills/gsd-path/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path/scripts/detect_project.py +11 -2
- package/skills/gsd-path/scripts/dispatch_driver.py +4 -2
- package/skills/gsd-path/scripts/integration.py +28 -22
- package/skills/gsd-path/scripts/isolation.py +9 -1
- package/skills/gsd-path/scripts/lean_verification.py +1 -1
- package/skills/gsd-path/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path/scripts/promote_lookahead.py +30 -162
- package/skills/gsd-path/scripts/roadmap.py +321 -0
- package/skills/gsd-path/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path/scripts/state_promote.py +42 -44
- package/skills/gsd-path/scripts/task_context.py +73 -0
- package/skills/gsd-path/scripts/token_budget.py +40 -1
- package/skills/gsd-path/scripts/workflow_run.py +116 -7
- package/skills/gsd-path/templates/wave-review.md +1 -1
- package/skills/gsd-path-build/SKILL.md +47 -575
- package/skills/gsd-path-build/references/build-abandon.md +33 -0
- package/skills/gsd-path-build/references/build-native.md +494 -0
- package/skills/gsd-path-build/references/build-recovery.md +78 -0
- package/skills/gsd-path-build/references/coder.md +8 -3
- package/skills/gsd-path-build/references/dispatch.md +6 -0
- package/skills/gsd-path-build/references/reviewer-final.md +21 -0
- package/skills/gsd-path-build/references/reviewer-panel.md +17 -0
- package/skills/gsd-path-build/references/reviewer-skeptic.md +20 -0
- package/skills/gsd-path-build/references/reviewer-wave.md +89 -0
- package/skills/gsd-path-build/references/reviewer.md +12 -150
- package/skills/gsd-path-build/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/loop_run.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/review_findings.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/task_context.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/workflow_run.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/archive_milestone.py +10 -118
- package/skills/gsd-path-build/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-build/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-build/scripts/detect_project.py +1526 -0
- package/skills/gsd-path-build/scripts/dispatch_driver.py +4 -2
- package/skills/gsd-path-build/scripts/integration.py +28 -22
- package/skills/gsd-path-build/scripts/isolation.py +9 -1
- package/skills/gsd-path-build/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-build/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-build/scripts/roadmap.py +321 -0
- package/skills/gsd-path-build/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-build/scripts/state_promote.py +42 -44
- package/skills/gsd-path-build/scripts/task_context.py +73 -0
- package/skills/gsd-path-build/scripts/token_budget.py +40 -1
- package/skills/gsd-path-build/scripts/workflow_run.py +116 -7
- package/skills/gsd-path-build/templates/wave-review.md +1 -1
- package/skills/gsd-path-decide/SKILL.md +2 -6
- package/skills/gsd-path-decide/references/dispatch.md +6 -0
- package/skills/gsd-path-decide/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/archive_milestone.py +2157 -0
- package/skills/gsd-path-decide/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-decide/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-decide/scripts/detect_project.py +1526 -0
- package/skills/gsd-path-decide/scripts/discussion_validate.py +1321 -0
- package/skills/gsd-path-decide/scripts/integration.py +1439 -0
- package/skills/gsd-path-decide/scripts/isolation.py +9 -1
- package/skills/gsd-path-decide/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-decide/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-decide/scripts/review_panel.py +553 -0
- package/skills/gsd-path-decide/scripts/roadmap.py +321 -0
- package/skills/gsd-path-decide/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-decide/scripts/state_promote.py +42 -44
- package/skills/gsd-path-define/SKILL.md +10 -14
- package/skills/gsd-path-define/references/build-recovery.md +78 -0
- package/skills/gsd-path-define/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/archive_milestone.py +2157 -0
- package/skills/gsd-path-define/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-define/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-define/scripts/detect_project.py +11 -2
- package/skills/gsd-path-define/scripts/discussion_validate.py +1321 -0
- package/skills/gsd-path-define/scripts/integration.py +1439 -0
- package/skills/gsd-path-define/scripts/isolation.py +9 -1
- package/skills/gsd-path-define/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-define/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-define/scripts/review_panel.py +553 -0
- package/skills/gsd-path-define/scripts/roadmap.py +321 -0
- package/skills/gsd-path-define/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-define/scripts/state_promote.py +42 -44
- package/skills/gsd-path-docs-audit/references/dispatch.md +6 -0
- package/skills/gsd-path-docs-audit/references/docs-auditor.md +14 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/archive_milestone.py +2157 -0
- package/skills/gsd-path-docs-audit/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +5 -3
- package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-docs-audit/scripts/detect_project.py +1526 -0
- package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +1321 -0
- package/skills/gsd-path-docs-audit/scripts/integration.py +1439 -0
- package/skills/gsd-path-docs-audit/scripts/isolation.py +9 -1
- package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-docs-audit/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-docs-audit/scripts/review_panel.py +553 -0
- package/skills/gsd-path-docs-audit/scripts/roadmap.py +321 -0
- package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-docs-audit/scripts/state_promote.py +42 -44
- package/skills/gsd-path-forensics/scripts/__pycache__/pipeline_undo.cpython-312.pyc +0 -0
- package/skills/gsd-path-forensics/scripts/pipeline_diagnose.py +12 -3
- package/skills/gsd-path-forensics/scripts/pipeline_undo.py +11 -7
- package/skills/gsd-path-inspect/SKILL.md +30 -8
- package/skills/gsd-path-inspect/references/dispatch.md +6 -0
- package/skills/gsd-path-inspect/references/docs-auditor.md +14 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/archive_milestone.py +2157 -0
- package/skills/gsd-path-inspect/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-inspect/scripts/check_docs_audit.py +5 -3
- package/skills/gsd-path-inspect/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-inspect/scripts/detect_project.py +11 -2
- package/skills/gsd-path-inspect/scripts/discussion_validate.py +1321 -0
- package/skills/gsd-path-inspect/scripts/integration.py +1439 -0
- package/skills/gsd-path-inspect/scripts/isolation.py +9 -1
- package/skills/gsd-path-inspect/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-inspect/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-inspect/scripts/review_panel.py +553 -0
- package/skills/gsd-path-inspect/scripts/roadmap.py +321 -0
- package/skills/gsd-path-inspect/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-inspect/scripts/state_promote.py +42 -44
- package/skills/gsd-path-inspect/scripts/workflow_run.py +226 -0
- package/skills/gsd-path-plan/SKILL.md +25 -17
- package/skills/gsd-path-plan/references/build-recovery.md +78 -0
- package/skills/gsd-path-plan/references/dispatch.md +6 -0
- package/skills/gsd-path-plan/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/archive_milestone.py +2157 -0
- package/skills/gsd-path-plan/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-plan/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-plan/scripts/detect_project.py +1526 -0
- package/skills/gsd-path-plan/scripts/discussion_validate.py +1321 -0
- package/skills/gsd-path-plan/scripts/integration.py +1439 -0
- package/skills/gsd-path-plan/scripts/isolation.py +9 -1
- package/skills/gsd-path-plan/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-plan/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-plan/scripts/roadmap.py +321 -0
- package/skills/gsd-path-plan/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-plan/scripts/state_promote.py +42 -44
- package/skills/gsd-path-plan/scripts/workflow_run.py +116 -7
- package/skills/gsd-path-research/SKILL.md +3 -6
- package/skills/gsd-path-research/references/dispatch.md +6 -0
- package/skills/gsd-path-research/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/archive_milestone.py +2157 -0
- package/skills/gsd-path-research/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-research/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-research/scripts/detect_project.py +1526 -0
- package/skills/gsd-path-research/scripts/discussion_validate.py +1321 -0
- package/skills/gsd-path-research/scripts/integration.py +1439 -0
- package/skills/gsd-path-research/scripts/isolation.py +9 -1
- package/skills/gsd-path-research/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-research/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-research/scripts/review_panel.py +553 -0
- package/skills/gsd-path-research/scripts/roadmap.py +321 -0
- package/skills/gsd-path-research/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-research/scripts/state_promote.py +42 -44
- package/skills/gsd-path-roadmap/SKILL.md +22 -58
- package/skills/gsd-path-roadmap/references/dispatch.md +6 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/archive_milestone.py +10 -118
- package/skills/gsd-path-roadmap/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-roadmap/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-roadmap/scripts/detect_project.py +11 -2
- package/skills/gsd-path-roadmap/scripts/integration.py +28 -22
- package/skills/gsd-path-roadmap/scripts/isolation.py +9 -1
- package/skills/gsd-path-roadmap/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +30 -162
- package/skills/gsd-path-roadmap/scripts/roadmap.py +321 -0
- package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-roadmap/scripts/state_promote.py +42 -44
- package/skills/gsd-path-ship/SKILL.md +5 -4
- package/skills/gsd-path-ship/references/dispatch.md +6 -0
- package/skills/gsd-path-ship/references/reviewer-final.md +21 -0
- package/skills/gsd-path-ship/references/reviewer-panel.md +17 -0
- package/skills/gsd-path-ship/references/reviewer-skeptic.md +20 -0
- package/skills/gsd-path-ship/references/reviewer-wave.md +89 -0
- package/skills/gsd-path-ship/references/reviewer.md +12 -150
- package/skills/gsd-path-ship/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/archive_milestone.py +10 -118
- package/skills/gsd-path-ship/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-ship/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-ship/scripts/detect_project.py +1526 -0
- package/skills/gsd-path-ship/scripts/integration.py +28 -22
- package/skills/gsd-path-ship/scripts/isolation.py +9 -1
- package/skills/gsd-path-ship/scripts/lean_verification.py +1 -1
- package/skills/gsd-path-ship/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-ship/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-ship/scripts/roadmap.py +321 -0
- package/skills/gsd-path-ship/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-ship/scripts/state_promote.py +42 -44
- package/skills/gsd-path-ship/scripts/workflow_run.py +116 -7
- package/skills/gsd-path-ship/templates/wave-review.md +1 -1
- package/skills/gsd-path-undo/scripts/pipeline_undo.py +11 -7
- package/skills/path/BUILD.md +47 -575
- package/skills/path/DECIDE.md +2 -6
- package/skills/path/DEFINE.md +10 -14
- package/skills/path/INSPECT.md +30 -8
- package/skills/path/PLAN.md +25 -17
- package/skills/path/RESEARCH.md +3 -6
- package/skills/path/ROADMAP.md +22 -58
- package/skills/path/SHIP.md +5 -4
- package/skills/path/SKILL.md +24 -14
- package/skills/path/references/build-abandon.md +33 -0
- package/skills/path/references/build-native.md +494 -0
- package/skills/path/references/build-recovery.md +78 -0
- package/skills/path/references/coder.md +8 -3
- package/skills/path/references/dispatch.md +6 -0
- package/skills/path/references/docs-auditor.md +14 -0
- package/skills/path/references/reviewer-final.md +21 -0
- package/skills/path/references/reviewer-panel.md +17 -0
- package/skills/path/references/reviewer-skeptic.md +20 -0
- package/skills/path/references/reviewer-wave.md +89 -0
- package/skills/path/references/reviewer.md +12 -150
- package/skills/path/scripts/archive_milestone.py +10 -118
- package/skills/path/scripts/bootstrap_repository.py +25 -3
- package/skills/path/scripts/build_recovery.py +287 -0
- package/skills/path/scripts/check_docs_audit.py +5 -3
- package/skills/path/scripts/check_handoffs.py +1 -1
- package/skills/path/scripts/detect_project.py +11 -2
- package/skills/path/scripts/dispatch_driver.py +4 -2
- package/skills/path/scripts/integration.py +28 -22
- package/skills/path/scripts/isolation.py +9 -1
- package/skills/path/scripts/lean_verification.py +1 -1
- package/skills/path/scripts/pipeline_state.py +114 -186
- package/skills/path/scripts/promote_lookahead.py +30 -162
- package/skills/path/scripts/roadmap.py +321 -0
- package/skills/path/scripts/state_checkpoint.py +109 -72
- package/skills/path/scripts/state_promote.py +42 -44
- package/skills/path/scripts/task_context.py +73 -0
- package/skills/path/scripts/token_budget.py +40 -1
- package/skills/path/scripts/workflow_run.py +116 -7
- package/skills/path/templates/wave-review.md +1 -1
|
@@ -98,12 +98,8 @@ rules are unchanged; never write an active-path artifact.
|
|
|
98
98
|
branch and archive values, `--set-phase decide --set-status done`, and an
|
|
99
99
|
event naming the validated synthesis path. Include `--project-dir
|
|
100
100
|
.project/next` in lookahead and require returned `decide/done`. Confirm the
|
|
101
|
-
settled outcome, link SYNTHESIS.md again, and
|
|
102
|
-
|
|
103
|
-
When routed by an active `$gsd-path`, return control to
|
|
104
|
-
that router. When invoked directly, stop and tell the user to explicitly
|
|
105
|
-
invoke `$gsd-path`, which routes to that next phase; do not invoke an
|
|
106
|
-
explicit-only sibling skill yourself.
|
|
101
|
+
settled outcome, link SYNTHESIS.md again, and use the executable phase
|
|
102
|
+
handoff in AGENTS.md.
|
|
107
103
|
|
|
108
104
|
## Rules
|
|
109
105
|
|
|
@@ -36,16 +36,22 @@ ROADMAP.md exists), `roadmap/done`
|
|
|
36
36
|
lookahead track at `define/active|blocked` also requires both current-track
|
|
37
37
|
inspection artifacts and a Log entry proving `inspect/done` for the same
|
|
38
38
|
milestone after its latest activation; otherwise route to inspect.
|
|
39
|
+
The sole later-phase exception is a blocked build entered through the
|
|
40
|
+
[build recovery contract](references/build-recovery.md). Follow its preparation
|
|
41
|
+
and corrections procedure when the runtime returns mode `corrections`; keep
|
|
42
|
+
the existing milestone identity and approval gate. Otherwise
|
|
39
43
|
`define/done` or any later phase blocks rather than overwriting approved
|
|
40
44
|
intent and leaving downstream artifacts stale. When an active router supplies
|
|
41
45
|
the lookahead track root `.project/next/`, require its STATE.md to be a regular
|
|
42
46
|
non-symlink file and evaluate this section against that track's state and
|
|
43
47
|
paths; see Lookahead mode. If STATE.md is missing, run the bundled
|
|
44
48
|
`python3 <absolute-bundled-script> initialize --repo <absolute-root>
|
|
45
|
-
--template <absolute-state-template
|
|
49
|
+
--template <absolute-state-template> --require-git` helper (`scripts/detect_project.py`) and
|
|
46
50
|
follow its returned JSON `verdict` / `route`. This is the only no-state
|
|
47
51
|
boundary; do not run `classify` first or classify from a directory listing or
|
|
48
|
-
conversation.
|
|
52
|
+
conversation. Handle `route: setup-repository` before the write gate: preserve
|
|
53
|
+
the folder unchanged and return to `$gsd-path` for repository setup; no state
|
|
54
|
+
was written. If the command exits nonzero, returns `error`, or returns
|
|
49
55
|
`wrote_state: false`, report the error and block without routing or claiming
|
|
50
56
|
STATE.md was written.
|
|
51
57
|
- `owned` — continue under the existing-state rules above.
|
|
@@ -274,18 +280,8 @@ After approval, finalize `.project/intent/INTENT.md` and run
|
|
|
274
280
|
current milestone/branch/archive values, event `milestone intent approved`,
|
|
275
281
|
`--set-phase define --set-status done --set-milestone <milestone slug>`, and
|
|
276
282
|
`--project-dir .project/next` in lookahead. Require returned `define/done` and
|
|
277
|
-
the exact milestone.
|
|
278
|
-
|
|
279
|
-
`Lane: quick`, planning is next and research and decide are skipped. For
|
|
280
|
-
`Lane: milestone`, use the resolved roadmap entry matching the track STATE's
|
|
281
|
-
`milestone`: milestone-scoped research is next when that entry lists open
|
|
282
|
-
questions; otherwise planning is next and research and decide are skipped.
|
|
283
|
-
Confirm the approved outcome, link the final INTENT.md again, and name that
|
|
284
|
-
next phase before routing. When routed by an active `$gsd-path`, return control
|
|
285
|
-
to that router so its bundled next contract can auto-advance to the named
|
|
286
|
-
phase. When invoked directly, stop and tell the user to explicitly invoke
|
|
287
|
-
`$gsd-path`, which selects that next phase; do not invoke an explicit-only
|
|
288
|
-
sibling skill yourself.
|
|
283
|
+
the exact milestone. Confirm the approved outcome and link INTENT.md again.
|
|
284
|
+
Use the executable phase handoff in AGENTS.md for the next action.
|
|
289
285
|
|
|
290
286
|
## Rules
|
|
291
287
|
|
|
@@ -21,10 +21,12 @@ phase blocks.
|
|
|
21
21
|
|
|
22
22
|
If STATE.md is missing, run the bundled
|
|
23
23
|
`python3 <absolute-bundled-script> initialize --repo <absolute-root>
|
|
24
|
-
--template <absolute-state-template
|
|
24
|
+
--template <absolute-state-template> --require-git` helper (`scripts/detect_project.py`) and
|
|
25
25
|
follow its returned JSON `verdict` / `route`. This is the only no-state
|
|
26
26
|
boundary; do not run `classify` first or classify from a directory listing or
|
|
27
|
-
conversation.
|
|
27
|
+
conversation. Handle `route: setup-repository` before the write gate: preserve
|
|
28
|
+
the folder unchanged and return to `$gsd-path` for repository setup; no state
|
|
29
|
+
was written. If the command exits nonzero, returns `error`, or returns
|
|
28
30
|
`wrote_state: false`, report the error and block without routing or claiming
|
|
29
31
|
STATE.md was written.
|
|
30
32
|
- `owned` — continue under the existing-state rules below.
|
|
@@ -47,6 +49,31 @@ same milestone; a later milestone's `inspect/active` is a new scan.
|
|
|
47
49
|
|
|
48
50
|
## Process
|
|
49
51
|
|
|
52
|
+
For an initial `inspect/active` inspection on the `.project` track, with neither output
|
|
53
|
+
artifact present and a clean Git product at the recorded HEAD, run the bundled
|
|
54
|
+
`python3 <absolute workflow_run.py> prepare-inspect --repo <absolute root>
|
|
55
|
+
--expected-head <recorded HEAD>` first. It performs the inventory freeze and
|
|
56
|
+
both sidecar preparations from steps 1–2 and writes complete assignment briefs.
|
|
57
|
+
Its state validation and pending-answer check satisfy those entry checks;
|
|
58
|
+
reuse their results at this boundary.
|
|
59
|
+
Use its returned `inspection.inventory_file` for the gate. Before dispatch, read
|
|
60
|
+
and apply the [runtime dispatch contract](references/dispatch.md), including its
|
|
61
|
+
host-specific context isolation. Dispatch each returned logical `task_name` in a fresh context with its `brief_file` path and the current
|
|
62
|
+
user constraints, including configured budgets. The child reads that file;
|
|
63
|
+
the parent does not read or rewrite the roles, templates, or generated briefs.
|
|
64
|
+
When both children return, review the mapper's Map and Findings against its
|
|
65
|
+
template as in step 3. After that review passes, run the bundled
|
|
66
|
+
`python3 <absolute workflow_run.py> finish-inspect --repo <absolute root>
|
|
67
|
+
--expected-head <recorded HEAD> --inspection <returned receipt_file>
|
|
68
|
+
--mapper-reviewed`. This runs the docs gate, checks the audit baseline,
|
|
69
|
+
collects and retires both sidecars, checks pending discussion, and records
|
|
70
|
+
`inspect/done` through the canonical transition. Do not repeat those operations.
|
|
71
|
+
Present step 4's ground truth and use step 5's caller handoff. A failure uses
|
|
72
|
+
step 3's failure contract and the returned step evidence; do not blindly rerun
|
|
73
|
+
the completion command or repeat already proven steps.
|
|
74
|
+
Prior evidence, lookahead, or a dirty/non-Git product uses steps 1–2 below.
|
|
75
|
+
Preparation never changes phase state; neither command dispatches agents.
|
|
76
|
+
|
|
50
77
|
1. Before creating or changing `.project/` Markdown, freeze the helper's exact
|
|
51
78
|
stdout from `python3 <absolute check_docs_audit.py> --repo <absolute root>
|
|
52
79
|
--emit-inventory` in a temporary file. Do not rediscover or edit that
|
|
@@ -132,12 +159,7 @@ same milestone; a later milestone's `inspect/active` is a new scan.
|
|
|
132
159
|
<current branch or null> --expect-archive <current archive or null>
|
|
133
160
|
--set-phase inspect --set-status done`. This helper is the only ordinary
|
|
134
161
|
STATE mutation; require its returned state to be `inspect/done`.
|
|
135
|
-
|
|
136
|
-
active `$gsd-path`, return control to that router so its bundled define
|
|
137
|
-
contract runs in brownfield mode (and milestone mode when ROADMAP.md
|
|
138
|
-
exists). When invoked directly, stop and tell the
|
|
139
|
-
user to explicitly invoke `$gsd-path`, which routes to define; do not invoke
|
|
140
|
-
an explicit-only sibling skill yourself.
|
|
162
|
+
Use the executable phase handoff in AGENTS.md.
|
|
141
163
|
|
|
142
164
|
## Lookahead mode
|
|
143
165
|
|
package/skills/gsd-path/PLAN.md
CHANGED
|
@@ -29,8 +29,11 @@ Before dispatch, enter from `decide/done` or `define/done` with
|
|
|
29
29
|
`--set-phase plan --set-status active`, and event `planning started`. Resume
|
|
30
30
|
`plan/blocked` through the same helper with event `planning resumed`. Require
|
|
31
31
|
the returned track state to be `plan/active`; never edit STATE directly.
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
For a blocked build, use the [build recovery contract](references/build-recovery.md).
|
|
33
|
+
The runtime's `build-repair` mode owns structural changes to the remaining task
|
|
34
|
+
inventory and the normal approval checkpoint; it is distinct from append-only
|
|
35
|
+
patch mode. Otherwise later phases block instead of replacing an approved plan.
|
|
36
|
+
Patch mode requires an approved plan, no in-progress task, and
|
|
34
37
|
state `plan/done` or `ship/blocked`; any other state blocks. `build/done` is
|
|
35
38
|
reserved exclusively for the build orchestrator's transition recovery and
|
|
36
39
|
must return there instead of reopening planning. When an active router
|
|
@@ -74,10 +77,17 @@ router supplied lookahead mode. Every per-milestone path below, including
|
|
|
74
77
|
review-panel evidence, is rooted there. Program inputs remain at `.project/`
|
|
75
78
|
as stated in Lookahead mode.
|
|
76
79
|
|
|
77
|
-
1.
|
|
78
|
-
|
|
79
|
-
and
|
|
80
|
-
|
|
80
|
+
1. Resolve the local [plan template](templates/plan.md), [task template](templates/task.md),
|
|
81
|
+
`scripts/check_handoffs.py`, and `scripts/review_panel.py` to absolute paths.
|
|
82
|
+
Quick mode reads the plan and task templates because the parent writes
|
|
83
|
+
those artifacts. Other modes pass their paths to the planner. Execute the
|
|
84
|
+
helpers through the commands below and consume their results; their Python
|
|
85
|
+
source is not planning input. Read helper source only when diagnosing a
|
|
86
|
+
concrete failure that the returned error and documented recovery cannot
|
|
87
|
+
explain.
|
|
88
|
+
2. In quick mode, skip planner dispatch and follow Quick mode below; do not
|
|
89
|
+
load the planner role or dispatch contract. In other modes, resolve the
|
|
90
|
+
local [planner role](references/planner.md) for the child, then follow the
|
|
81
91
|
local [runtime dispatch contract](references/dispatch.md) with deterministic
|
|
82
92
|
logical task name `plan`. Give it absolute role, `AGENTS.md`, `WORKFLOW.md`,
|
|
83
93
|
input, template, and output paths, including `.project/LESSONS.md` when it
|
|
@@ -133,7 +143,7 @@ as stated in Lookahead mode.
|
|
|
133
143
|
- Require a `Review depth` value (`full`, `deep`, or `verify-only`) on
|
|
134
144
|
every wave. Wave 1 and any wave touching authentication, authorization,
|
|
135
145
|
payments, data migration, or concurrency requires `full` or `deep`;
|
|
136
|
-
quick-lane single waves
|
|
146
|
+
this includes quick-lane single waves. The planner assigns `deep`
|
|
137
147
|
sparingly to waves where a wrong merge is irreversible or
|
|
138
148
|
security-critical.
|
|
139
149
|
- When INTENT.md `Surfaces:` is not `none`, require a PLAN.md
|
|
@@ -199,7 +209,9 @@ as stated in Lookahead mode.
|
|
|
199
209
|
- `status: error` or exit 2 — use the same guarded transition to set
|
|
200
210
|
`plan/blocked` with an event naming the helper error, link PLAN.md, and stop.
|
|
201
211
|
A named family that is not advertised is an assertion failure.
|
|
202
|
-
- `status: ready` —
|
|
212
|
+
- `status: ready` — resolve the local
|
|
213
|
+
[plan-panel template](templates/plan-panel.md) for the reviewers; other
|
|
214
|
+
statuses do not load this template. For each selected family, spawn one independent child
|
|
203
215
|
with logical task name `review_plan_panel_<family>`, the reviewer role
|
|
204
216
|
in plan-panel mode, the plan-panel template, and the exact helper-returned
|
|
205
217
|
model slug when the host advertises model selection. Never override the
|
|
@@ -257,12 +269,8 @@ as stated in Lookahead mode.
|
|
|
257
269
|
(event `patch plan approved`) without a plan checkpoint because build's
|
|
258
270
|
patch re-entry commits the artifacts with its `build/active` transition.
|
|
259
271
|
`pipeline_state.py transition` never approves a plan. Confirm approval,
|
|
260
|
-
link PLAN.md again, and
|
|
261
|
-
|
|
262
|
-
active `$gsd-path`, return control to that router so its bundled build
|
|
263
|
-
contract starts. When invoked directly, stop and tell the user to explicitly
|
|
264
|
-
invoke `$gsd-path`, which routes to build; do not invoke an explicit-only
|
|
265
|
-
sibling skill yourself.
|
|
272
|
+
link PLAN.md again, and use the executable phase handoff in AGENTS.md.
|
|
273
|
+
The plan approval also authorizes build; do not add another approval gate.
|
|
266
274
|
|
|
267
275
|
## Ordering rules
|
|
268
276
|
|
|
@@ -273,8 +281,8 @@ as stated in Lookahead mode.
|
|
|
273
281
|
## Quick mode
|
|
274
282
|
|
|
275
283
|
Legal entry: `define/done` where INTENT.md records `Lane: quick` (transition
|
|
276
|
-
to `plan/active
|
|
277
|
-
|
|
284
|
+
to `plan/active` using exactly the Preconditions event `planning started`;
|
|
285
|
+
record the skipped research and decide phases in the synthesis). Quick mode dispatches no planner agent — the orchestrator writes
|
|
278
286
|
the artifacts directly:
|
|
279
287
|
|
|
280
288
|
1. Write `.project/research/SYNTHESIS.md` containing only `## Settled` lines
|
|
@@ -282,7 +290,7 @@ the artifacts directly:
|
|
|
282
290
|
plus a minimal `## For the planner` naming the walking skeleton. No
|
|
283
291
|
invented decisions or runner-ups.
|
|
284
292
|
2. Write `.project/plan/PLAN.md` with exactly one wave — `Review depth:
|
|
285
|
-
|
|
293
|
+
full` or `deep` — and at most two deliverable-sized task files
|
|
286
294
|
(project policy),
|
|
287
295
|
honoring every task-contract rule above and `.project/LESSONS.md` when it
|
|
288
296
|
exists. Write `review_panel: off` and `finding_skeptics: off` regardless
|
|
@@ -143,12 +143,9 @@ settled brownfield input.
|
|
|
143
143
|
dimensions, and question count. Include `--project-dir .project/next` for
|
|
144
144
|
lookahead. Require the returned state to be `research/done`. Report the
|
|
145
145
|
outcome, link the resolved absolute `RESEARCH.md` path,
|
|
146
|
-
summarize the dispatched evidence files, and
|
|
147
|
-
The
|
|
148
|
-
a glob or free-form log.
|
|
149
|
-
`$gsd-path`, return control to that router. When invoked directly, stop and
|
|
150
|
-
tell the user to explicitly invoke `$gsd-path`, which routes to decide; do
|
|
151
|
-
not invoke an explicit-only sibling skill yourself.
|
|
146
|
+
summarize the dispatched evidence files, and use the executable phase
|
|
147
|
+
handoff in AGENTS.md. The next phase reads the manifest rather than
|
|
148
|
+
inferring dispatch state from a glob or free-form log.
|
|
152
149
|
|
|
153
150
|
## Rules
|
|
154
151
|
|
|
@@ -143,69 +143,33 @@ precondition fails.
|
|
|
143
143
|
retain the entering state for a milestone-boundary re-slice; otherwise keep
|
|
144
144
|
`phase: roadmap`, `status: active`. Retain the baseline, revise, and re-gate
|
|
145
145
|
against that same baseline.
|
|
146
|
-
7. On approval
|
|
147
|
-
|
|
148
|
-
re-slice
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
state, then checkpoint the pending `.project/` artifacts with:
|
|
152
|
-
|
|
153
|
-
```text
|
|
154
|
-
python3 <absolute isolation.py> checkpoint \
|
|
155
|
-
--repo <absolute root> --expected-head <recorded full HEAD> \
|
|
156
|
-
--subject "roadmap: program roadmap approved" \
|
|
157
|
-
--body "Why: approved roadmap checkpoint" \
|
|
158
|
-
--allow-path .project
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
On a post-abandon re-slice, mark only the helper-selected pending entry
|
|
162
|
-
`active`, use `pipeline_state.py transition` with the complete current
|
|
163
|
-
`roadmap/active` state as expected to set `phase: inspect`, `status: active`,
|
|
164
|
-
`milestone` to the selected slug, preserve the bound branch, and set
|
|
165
|
-
`archive: null`, with an event naming the abandoned predecessor. Then use
|
|
166
|
-
the same `isolation.py checkpoint` command above. For a first roadmap
|
|
167
|
-
approval, run:
|
|
146
|
+
7. On approval, record the full current HEAD and use the bundled approval
|
|
147
|
+
module. For a first roadmap approval use `--kind roadmap`; for either
|
|
148
|
+
re-slice use `--kind roadmap-reslice`. In a milestone-boundary re-slice,
|
|
149
|
+
`--milestone` is the unchanged active milestone; after abandon, it is the
|
|
150
|
+
helper-selected pending milestone reviewed by the user.
|
|
168
151
|
|
|
169
152
|
```text
|
|
170
153
|
python3 <absolute pipeline_state.py> approve \
|
|
171
|
-
--repo <absolute root> --kind roadmap \
|
|
172
|
-
--milestone <
|
|
173
|
-
--expected-head <recorded full HEAD>
|
|
154
|
+
--repo <absolute root> --kind roadmap-reslice \
|
|
155
|
+
--milestone <reviewed milestone slug> --expected-head <recorded full HEAD>
|
|
174
156
|
```
|
|
175
157
|
|
|
176
|
-
The helper
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
Defer either checkpoint only when the directory is not yet a Git repository
|
|
193
|
-
or `.project/REPOSITORY.md` records `Kind: new-github`. For a normal
|
|
194
|
-
approval, run the same `approve` command with `--defer-checkpoint` instead
|
|
195
|
-
of `--expected-head`; it marks the selected entry active and records
|
|
196
|
-
`roadmap/done` with event `program roadmap approved`. `pipeline_state.py
|
|
197
|
-
transition` never approves a roadmap. For
|
|
198
|
-
a milestone-boundary re-slice, use the retaining transition above; for a
|
|
199
|
-
post-abandon re-slice, use its transition above. The build transition
|
|
200
|
-
commit owns the pending artifacts. Confirm approval and link ROADMAP.md again. For
|
|
201
|
-
a milestone-boundary re-slice, state that the preserved inspect or define
|
|
202
|
-
phase resumes; for a post-abandon re-slice, state that inspect is next;
|
|
203
|
-
otherwise state that define (milestone mode) is next. Do not
|
|
204
|
-
add another approval gate. When routed by an active `$gsd-path`, return
|
|
205
|
-
control to that router so it routes the resulting state; never name define
|
|
206
|
-
as next when inspect was preserved or selected. When invoked directly, stop
|
|
207
|
-
and tell the user to explicitly invoke `$gsd-path`, which routes the same
|
|
208
|
-
result; do not invoke an explicit-only sibling skill yourself.
|
|
158
|
+
The helper owns roadmap selection, expected state, baseline cleanup and
|
|
159
|
+
the approval checkpoint. It journals before mutation, retains the baseline
|
|
160
|
+
bytes for recovery, and refuses changes to settled or active entries.
|
|
161
|
+
A milestone-boundary re-slice retains Inspect or Define; a post-abandon
|
|
162
|
+
re-slice enters Inspect. Require its typed result to report `status:
|
|
163
|
+
approved`, the requested kind, milestone and returned commit. After an
|
|
164
|
+
interruption, follow the router's `resume-checkpoint` action; do not edit
|
|
165
|
+
state, delete the baseline or checkpoint separately.
|
|
166
|
+
|
|
167
|
+
Before Git exists, or during a `Kind: new-github` transaction, use the same
|
|
168
|
+
approval command with `--defer-checkpoint` instead of `--expected-head`.
|
|
169
|
+
That existing deferred path writes the metadata without a Git journal or
|
|
170
|
+
commit; the next build checkpoint owns it. Retain the baseline through
|
|
171
|
+
revisions and rejected approvals. Confirm approval, link ROADMAP.md again,
|
|
172
|
+
and use the executable phase handoff in AGENTS.md without another gate.
|
|
209
173
|
|
|
210
174
|
## Rules
|
|
211
175
|
|
package/skills/gsd-path/SHIP.md
CHANGED
|
@@ -8,8 +8,8 @@ description: Verify a completed GSD Path milestone, manage evidence-backed patch
|
|
|
8
8
|
Reuse proven review scope; dispatch reviewers for remaining claims. They never fix
|
|
9
9
|
product code.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
After completion, use the executable phase handoff in AGENTS.md.
|
|
12
|
+
Before completion, preserve the approval and recovery gates below.
|
|
13
13
|
|
|
14
14
|
Require `pipeline: gsd-path/v2` in `.project/STATE.md`; a missing or different
|
|
15
15
|
marker returns to `$gsd-path` for ownership checking. Read the local
|
|
@@ -269,8 +269,9 @@ The persisted `STATE.archive` field is the transaction identity.
|
|
|
269
269
|
create the ship phase's one commit with exact subject
|
|
270
270
|
`ship: M00N — <milestone-slug>` and a body of exactly two consecutive lines,
|
|
271
271
|
`Archive: .project/archive/<NNN>-<slug>` then
|
|
272
|
-
`Reviewed-HEAD: <reviewed SHA>`, with no comment lines or blank line between them
|
|
273
|
-
|
|
272
|
+
`Reviewed-HEAD: <reviewed SHA>`, with no comment lines or blank line between them.
|
|
273
|
+
Write the subject, a blank line, and the two body lines to a message file,
|
|
274
|
+
then use `git commit -F <message-file>`. M00N and NNN come from STATE.archive.
|
|
274
275
|
There is no untracked-project exception and no product or older-archive
|
|
275
276
|
path may enter this commit.
|
|
276
277
|
6. Immediately run `python3 <absolute archive_milestone.py> validate --repo <root>`. It requires the committed shipped state, exact archive and
|
package/skills/gsd-path/SKILL.md
CHANGED
|
@@ -24,10 +24,9 @@ When the invocation argument is exactly `status`, report and stop:
|
|
|
24
24
|
1. Run `python3 <absolute-bundled-pipeline-state.py> status --repo
|
|
25
25
|
<absolute-root>`. Treat the JSON as the only status authority. Do not
|
|
26
26
|
initialize STATE.md, bind a branch, or create a repository from this mode.
|
|
27
|
-
2. Present
|
|
28
|
-
`
|
|
29
|
-
|
|
30
|
-
`route.action` is `block`, without invoking either.
|
|
27
|
+
2. Present the returned `handoff.outcome`, `handoff.review`, and
|
|
28
|
+
`handoff.next` as **Outcome**, **Review**, and **Next**, plus the
|
|
29
|
+
pending-answer count. Use the host's invocation prefix.
|
|
31
30
|
3. Do not run a phase contract, auto-advance, spawn agents, or apply undo.
|
|
32
31
|
|
|
33
32
|
`$gsd-path status` (Codex) and `/gsd-path status` (other hosts) are the only
|
|
@@ -66,19 +65,27 @@ GitHub repository and no owned `.project/STATE.md` is active for that request.
|
|
|
66
65
|
local workspace when absent; do not infer account ownership or visibility.
|
|
67
66
|
Derive `gsd-path/M001` as the branch. The default checkout is
|
|
68
67
|
`<resolved-workspace>/<repo-name>`; propose the distinct sibling
|
|
69
|
-
`<resolved-workspace>/<repo-name>-gsd-path` as the linked worktree.
|
|
68
|
+
`<resolved-workspace>/<repo-name>-gsd-path` as the linked worktree. When
|
|
69
|
+
starting in an empty non-Git folder, propose that existing folder as the
|
|
70
|
+
linked worktree with `--reuse-empty-worktree`, and a distinct absent default
|
|
71
|
+
checkout beside it. Use the parent as workspace so the journal stays outside
|
|
72
|
+
the worktree. Preserve the invocation folder and all its contents; never
|
|
73
|
+
delete it or STATE.md to satisfy a preview. A nonempty folder requires a
|
|
74
|
+
different target or an explicit recovery. The user
|
|
70
75
|
may choose another workspace or worktree path before approval.
|
|
71
76
|
2. Resolve the bundled `scripts/bootstrap_repository.py` to an absolute path.
|
|
72
77
|
Run its `preview` command with the exact owner, repository, visibility,
|
|
73
78
|
workspace, default checkout, linked worktree, and optional description. The
|
|
74
79
|
helper checks authentication, remote state, path parents, and any matching
|
|
75
80
|
transaction journal without mutation. `mode: create` means every target is
|
|
76
|
-
absent
|
|
81
|
+
absent, except an explicitly approved empty linked-worktree directory;
|
|
82
|
+
`mode: resume` means the exact approved journal exists and the helper
|
|
77
83
|
can verify and adopt completed stages; `mode: complete` names an already
|
|
78
84
|
initialized binding. Any ambiguity or unowned collision blocks.
|
|
79
85
|
3. Present **Outcome** as a repository-creation preview. Present **Review** with
|
|
80
86
|
the proposed GitHub URL, visibility, default-checkout path, GSD Path branch,
|
|
81
|
-
and linked-worktree path
|
|
87
|
+
and linked-worktree path. Mark new targets not yet created and an existing
|
|
88
|
+
empty worktree folder as reused in place. Present **Next** as one
|
|
82
89
|
choice: `Create repository and worktree (recommended)` for `mode: create`, or
|
|
83
90
|
`Resume verified repository transaction (recommended)` for `mode: resume`,
|
|
84
91
|
followed by `Change details` and `Cancel`. Present this review inline; do not
|
|
@@ -115,10 +122,15 @@ selects a milestone branch.
|
|
|
115
122
|
mutation. In particular, never stamp the marker onto unowned state.
|
|
116
123
|
2. With no STATE.md, run the bundled
|
|
117
124
|
`python3 <absolute-bundled-script> initialize --repo <absolute-root>
|
|
118
|
-
--template <absolute-state-template
|
|
125
|
+
--template <absolute-state-template> --require-git` helper
|
|
119
126
|
(`scripts/detect_project.py`) before asking anything. Do not classify
|
|
120
127
|
brownfield, greenfield, or orphaned `.project/` from a directory listing or
|
|
121
|
-
conversation.
|
|
128
|
+
conversation. Handle `route: setup-repository` before the write gate: the
|
|
129
|
+
helper left the folder unchanged and wrote no state. Ask whether to create
|
|
130
|
+
a new GitHub repository (recommended for an empty folder) or use an existing
|
|
131
|
+
repository. A new-repository choice enters the preview transaction above;
|
|
132
|
+
an existing-repository choice requires its path before continuing. Do not
|
|
133
|
+
bind a branch or enter a phase yet. If the command exits nonzero, returns `error`, or returns
|
|
122
134
|
`wrote_state: false`, report the error and block without routing or claiming
|
|
123
135
|
STATE.md was written. Otherwise follow the JSON `verdict` / `route` exactly.
|
|
124
136
|
`initialize` classifies and, for brownfield or greenfield, writes STATE.md
|
|
@@ -283,11 +295,9 @@ python3 <absolute-bundled-pipeline-state.py> transition \
|
|
|
283
295
|
--event "build started"
|
|
284
296
|
```
|
|
285
297
|
|
|
286
|
-
Report normal progress
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
router is taking or the single action required from the user. Resolve the
|
|
290
|
-
routed track root first: `.project/` for the active track or `.project/next/`
|
|
298
|
+
Report normal progress through the executable phase handoff in AGENTS.md.
|
|
299
|
+
Use `handoff.router_next` while this router owns continuation.
|
|
300
|
+
Resolve the routed track root first: `.project/` for the active track or `.project/next/`
|
|
291
301
|
for lookahead. If that track root's `research/DOCS-AUDIT.md` has `planned: no`
|
|
292
302
|
rulings, add one alignment-queue line and offer once to route them through the
|
|
293
303
|
bundled [plan contract](PLAN.md); declining does not block.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
## Milestone abandon (program flow only)
|
|
2
|
+
|
|
3
|
+
Abandon the active milestone only on an explicit user ruling — from the
|
|
4
|
+
review-cycle-cap escalation, a decision invalidation, or a direct request.
|
|
5
|
+
Require `.project/ROADMAP.md`; a single-milestone project has no abandon
|
|
6
|
+
path — stop and let the user decide how to restart.
|
|
7
|
+
|
|
8
|
+
1. Retire every recorded task worktree and branch with `isolation.py retire`
|
|
9
|
+
after confirming ownership, recording each discarded uncommitted diff's
|
|
10
|
+
exact path set and hash in the STATE.md log. Never discard work the
|
|
11
|
+
recorded metadata cannot own.
|
|
12
|
+
2. Run the bundled `scripts/archive_milestone.py abandon --repo <absolute
|
|
13
|
+
repo root> --slug <milestone slug> --reason <user ruling, verbatim>`.
|
|
14
|
+
This one helper-owned transaction journals the exact request and starting
|
|
15
|
+
HEAD before mutation; archives the partial artifacts without review gates;
|
|
16
|
+
marks the exact ROADMAP entry `Status: abandoned` with its `Archive:` path;
|
|
17
|
+
appends `- <NNN>-<slug> — abandoned: <collapsed ruling>` exactly once to
|
|
18
|
+
LESSONS.md; transitions STATE to `roadmap/active` with `milestone: null`
|
|
19
|
+
and `archive: null`; and creates the checkpoint with exact subject `build:
|
|
20
|
+
abandon milestone <slug>` and body `Why: <collapsed ruling>`. The manifest
|
|
21
|
+
`Reason:` and checkpoint `Why:` are the same normalized ruling.
|
|
22
|
+
3. Rerun the same command with the same slug and ruling after any interruption.
|
|
23
|
+
It resumes archive moves, metadata, state transition, or checkpoint from
|
|
24
|
+
the journaled starting HEAD; a changed slug, ruling, archive, branch, or
|
|
25
|
+
manifest reason blocks. Success returns the archive, exact checkpoint
|
|
26
|
+
commit, and `committed` or `already-complete` status. Never edit or commit
|
|
27
|
+
any part of this transaction manually and never select another sequence
|
|
28
|
+
number.
|
|
29
|
+
4. Return to the router, which routes `roadmap/active` to the roadmap
|
|
30
|
+
contract in re-slice mode. The abandoned code stays on the build branch
|
|
31
|
+
until the next milestone's integration, then reaches the default branch as
|
|
32
|
+
inert history; the re-slice plans around it. Never revert product commits
|
|
33
|
+
yourself.
|