@opengsd/gsd-path 1.0.0 → 1.2.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 +33 -13
- package/CHANGELOG.md +68 -0
- package/DOCS.md +75 -6
- package/FULL.md +12 -15
- package/HOOKS.md +18 -9
- package/QUICK.md +8 -6
- package/README.md +218 -14
- package/RUNTIME.md +16 -5
- package/UPDATE.md +30 -11
- package/WORKFLOW.md +35 -16
- package/package.json +23 -1
- package/platforms/claude/dispatch.md +4 -4
- package/platforms/copilot/dispatch.md +4 -4
- package/platforms/cursor/dispatch.md +5 -10
- package/platforms/grok/dispatch.md +4 -6
- package/platforms/kimi/dispatch.md +4 -4
- package/platforms/kiro/dispatch.md +4 -6
- package/platforms/opencode/dispatch.md +4 -4
- package/platforms/qwen/dispatch.md +4 -4
- package/platforms/shared-agents/dispatch.md +12 -19
- package/scripts/_common.py +5 -0
- package/scripts/archive_milestone.py +30 -124
- package/scripts/bootstrap_repository.py +33 -4
- package/scripts/build_recovery.py +292 -0
- package/scripts/build_state.py +2 -0
- package/scripts/check_docs_audit.py +7 -3
- package/scripts/check_handoffs.py +7 -1
- package/scripts/check_task_briefs.py +3 -0
- package/scripts/detect_project.py +22 -3
- package/scripts/discussion_records.py +3 -0
- package/scripts/discussion_validate.py +8 -3
- package/scripts/dispatch_driver.py +233 -22
- package/scripts/git_guard.py +14 -5
- package/scripts/guard_hook.py +11 -1
- package/scripts/install.mjs +54 -1448
- package/scripts/install.py +155 -188
- package/scripts/integration.py +54 -28
- package/scripts/isolation.py +24 -6
- package/scripts/jev_review.py +138 -0
- package/scripts/lean_verification.py +3 -1
- package/scripts/loop_run.py +2 -0
- package/scripts/model_policy.py +279 -0
- package/scripts/path_config.py +248 -0
- package/scripts/pipeline_diagnose.py +15 -3
- package/scripts/pipeline_git.py +3 -0
- package/scripts/pipeline_state.py +117 -186
- package/scripts/pipeline_undo.py +14 -7
- package/scripts/promote_lookahead.py +33 -162
- package/scripts/review_panel.py +11 -0
- package/scripts/roadmap.py +326 -0
- package/scripts/runtime_store.py +278 -0
- package/scripts/skill-resources.json +182 -4
- package/scripts/state_checkpoint.py +114 -72
- package/scripts/state_promote.py +47 -44
- package/scripts/status_runtime.py +92 -6
- package/scripts/task_context.py +73 -0
- package/scripts/token_budget.py +40 -1
- package/scripts/workflow_run.py +128 -8
- package/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path/BUILD.md +54 -575
- package/skills/gsd-path/DECIDE.md +4 -6
- package/skills/gsd-path/DEFINE.md +23 -21
- package/skills/gsd-path/DOCS-AUDIT.md +2 -0
- package/skills/gsd-path/INSPECT.md +32 -8
- package/skills/gsd-path/PLAN.md +29 -19
- package/skills/gsd-path/RESEARCH.md +5 -6
- package/skills/gsd-path/ROADMAP.md +24 -58
- package/skills/gsd-path/SHIP.md +29 -17
- package/skills/gsd-path/SKILL.md +46 -22
- package/skills/gsd-path/references/build-abandon.md +33 -0
- package/skills/gsd-path/references/build-native.md +502 -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/config.md +57 -0
- package/skills/gsd-path/references/dispatch.md +12 -19
- package/skills/gsd-path/references/docs-auditor.md +14 -0
- package/skills/gsd-path/references/jev-review.md +82 -0
- package/skills/gsd-path/references/model-policy.md +139 -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 -148
- package/skills/gsd-path/references/runtime-selection.md +25 -0
- package/skills/gsd-path/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/_common.py +5 -0
- package/skills/gsd-path/scripts/archive_milestone.py +30 -124
- package/skills/gsd-path/scripts/bootstrap_repository.py +33 -4
- package/skills/gsd-path/scripts/build_recovery.py +292 -0
- package/skills/gsd-path/scripts/build_state.py +2 -0
- package/skills/gsd-path/scripts/check_docs_audit.py +7 -3
- package/skills/gsd-path/scripts/check_handoffs.py +7 -1
- package/skills/gsd-path/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path/scripts/detect_project.py +22 -3
- package/skills/gsd-path/scripts/discussion_records.py +3 -0
- package/skills/gsd-path/scripts/discussion_validate.py +8 -3
- package/skills/gsd-path/scripts/dispatch_driver.py +233 -22
- package/skills/gsd-path/scripts/git_guard.py +768 -0
- package/skills/gsd-path/scripts/integration.py +54 -28
- package/skills/gsd-path/scripts/isolation.py +24 -6
- package/skills/gsd-path/scripts/jev_review.py +138 -0
- package/skills/gsd-path/scripts/lean_verification.py +3 -1
- package/skills/gsd-path/scripts/loop_run.py +2 -0
- package/skills/gsd-path/scripts/model_policy.py +279 -0
- package/skills/gsd-path/scripts/path_config.py +248 -0
- package/skills/gsd-path/scripts/pipeline_git.py +3 -0
- package/skills/gsd-path/scripts/pipeline_state.py +117 -186
- package/skills/gsd-path/scripts/promote_lookahead.py +33 -162
- package/skills/gsd-path/scripts/review_panel.py +11 -0
- package/skills/gsd-path/scripts/roadmap.py +326 -0
- package/skills/gsd-path/scripts/state_checkpoint.py +114 -72
- package/skills/gsd-path/scripts/state_promote.py +47 -44
- package/skills/gsd-path/scripts/status_runtime.py +208 -0
- 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 +128 -8
- package/skills/gsd-path/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path/templates/skeptic.md +1 -1
- package/skills/gsd-path/templates/task.md +2 -0
- package/skills/gsd-path/templates/wave-panel.md +1 -1
- package/skills/gsd-path/templates/wave-review.md +1 -1
- package/skills/gsd-path-build/SKILL.md +54 -575
- package/skills/gsd-path-build/references/build-abandon.md +33 -0
- package/skills/gsd-path-build/references/build-native.md +502 -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 +12 -19
- package/skills/gsd-path-build/references/jev-review.md +82 -0
- package/skills/gsd-path-build/references/model-policy.md +139 -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 -148
- package/skills/gsd-path-build/references/runtime-selection.md +25 -0
- package/skills/gsd-path-build/scripts/__pycache__/_common.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/_common.py +5 -0
- package/skills/gsd-path-build/scripts/archive_milestone.py +30 -124
- package/skills/gsd-path-build/scripts/build_recovery.py +292 -0
- package/skills/gsd-path-build/scripts/build_state.py +2 -0
- package/skills/gsd-path-build/scripts/check_handoffs.py +7 -1
- package/skills/gsd-path-build/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-build/scripts/detect_project.py +1536 -0
- package/skills/gsd-path-build/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-build/scripts/discussion_validate.py +8 -3
- package/skills/gsd-path-build/scripts/dispatch_driver.py +233 -22
- package/skills/gsd-path-build/scripts/integration.py +54 -28
- package/skills/gsd-path-build/scripts/isolation.py +24 -6
- package/skills/gsd-path-build/scripts/jev_review.py +138 -0
- package/skills/gsd-path-build/scripts/loop_run.py +2 -0
- package/skills/gsd-path-build/scripts/model_policy.py +279 -0
- package/skills/gsd-path-build/scripts/path_config.py +248 -0
- package/skills/gsd-path-build/scripts/pipeline_git.py +3 -0
- package/skills/gsd-path-build/scripts/pipeline_state.py +117 -186
- package/skills/gsd-path-build/scripts/promote_lookahead.py +286 -0
- package/skills/gsd-path-build/scripts/review_panel.py +11 -0
- package/skills/gsd-path-build/scripts/roadmap.py +326 -0
- package/skills/gsd-path-build/scripts/state_checkpoint.py +114 -72
- package/skills/gsd-path-build/scripts/state_promote.py +47 -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 +128 -8
- package/skills/gsd-path-build/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-build/templates/skeptic.md +1 -1
- package/skills/gsd-path-build/templates/task.md +2 -0
- package/skills/gsd-path-build/templates/wave-panel.md +1 -1
- package/skills/gsd-path-build/templates/wave-review.md +1 -1
- package/skills/gsd-path-decide/SKILL.md +4 -6
- package/skills/gsd-path-decide/references/dispatch.md +12 -19
- package/skills/gsd-path-decide/references/model-policy.md +139 -0
- package/skills/gsd-path-decide/references/runtime-selection.md +25 -0
- package/skills/gsd-path-decide/scripts/_common.py +5 -0
- package/skills/gsd-path-decide/scripts/archive_milestone.py +2171 -0
- package/skills/gsd-path-decide/scripts/build_recovery.py +292 -0
- package/skills/gsd-path-decide/scripts/check_handoffs.py +7 -1
- package/skills/gsd-path-decide/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-decide/scripts/detect_project.py +1536 -0
- package/skills/gsd-path-decide/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-decide/scripts/discussion_validate.py +1326 -0
- package/skills/gsd-path-decide/scripts/integration.py +1459 -0
- package/skills/gsd-path-decide/scripts/isolation.py +24 -6
- package/skills/gsd-path-decide/scripts/loop_run.py +839 -0
- package/skills/gsd-path-decide/scripts/model_policy.py +279 -0
- package/skills/gsd-path-decide/scripts/path_config.py +248 -0
- package/skills/gsd-path-decide/scripts/pipeline_git.py +3 -0
- package/skills/gsd-path-decide/scripts/pipeline_state.py +117 -186
- package/skills/gsd-path-decide/scripts/promote_lookahead.py +286 -0
- package/skills/gsd-path-decide/scripts/review_panel.py +564 -0
- package/skills/gsd-path-decide/scripts/roadmap.py +326 -0
- package/skills/gsd-path-decide/scripts/state_checkpoint.py +114 -72
- package/skills/gsd-path-decide/scripts/state_promote.py +47 -44
- package/skills/gsd-path-decide/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-define/SKILL.md +23 -21
- package/skills/gsd-path-define/references/build-recovery.md +78 -0
- package/skills/gsd-path-define/references/runtime-selection.md +25 -0
- package/skills/gsd-path-define/scripts/_common.py +5 -0
- package/skills/gsd-path-define/scripts/archive_milestone.py +2171 -0
- package/skills/gsd-path-define/scripts/build_recovery.py +292 -0
- package/skills/gsd-path-define/scripts/check_handoffs.py +7 -1
- package/skills/gsd-path-define/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-define/scripts/detect_project.py +22 -3
- package/skills/gsd-path-define/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-define/scripts/discussion_validate.py +1326 -0
- package/skills/gsd-path-define/scripts/integration.py +1459 -0
- package/skills/gsd-path-define/scripts/isolation.py +24 -6
- package/skills/gsd-path-define/scripts/loop_run.py +839 -0
- package/skills/gsd-path-define/scripts/model_policy.py +279 -0
- package/skills/gsd-path-define/scripts/path_config.py +248 -0
- package/skills/gsd-path-define/scripts/pipeline_git.py +3 -0
- package/skills/gsd-path-define/scripts/pipeline_state.py +117 -186
- package/skills/gsd-path-define/scripts/promote_lookahead.py +286 -0
- package/skills/gsd-path-define/scripts/review_panel.py +564 -0
- package/skills/gsd-path-define/scripts/roadmap.py +326 -0
- package/skills/gsd-path-define/scripts/state_checkpoint.py +114 -72
- package/skills/gsd-path-define/scripts/state_promote.py +47 -44
- package/skills/gsd-path-define/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-discuss/SKILL.md +2 -0
- package/skills/gsd-path-discuss/references/runtime-selection.md +25 -0
- package/skills/gsd-path-discuss/scripts/_common.py +5 -0
- package/skills/gsd-path-discuss/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-discuss/scripts/loop_run.py +839 -0
- package/skills/gsd-path-discuss/scripts/model_policy.py +279 -0
- package/skills/gsd-path-discuss/scripts/path_config.py +248 -0
- package/skills/gsd-path-discuss/scripts/review_panel.py +564 -0
- package/skills/gsd-path-discuss/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-docs-audit/SKILL.md +2 -0
- package/skills/gsd-path-docs-audit/references/dispatch.md +12 -19
- package/skills/gsd-path-docs-audit/references/docs-auditor.md +14 -0
- package/skills/gsd-path-docs-audit/references/model-policy.md +139 -0
- package/skills/gsd-path-docs-audit/references/runtime-selection.md +25 -0
- package/skills/gsd-path-docs-audit/scripts/_common.py +5 -0
- package/skills/gsd-path-docs-audit/scripts/archive_milestone.py +2171 -0
- package/skills/gsd-path-docs-audit/scripts/build_recovery.py +292 -0
- package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +7 -3
- package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +7 -1
- package/skills/gsd-path-docs-audit/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-docs-audit/scripts/detect_project.py +1536 -0
- package/skills/gsd-path-docs-audit/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +1326 -0
- package/skills/gsd-path-docs-audit/scripts/integration.py +1459 -0
- package/skills/gsd-path-docs-audit/scripts/isolation.py +24 -6
- package/skills/gsd-path-docs-audit/scripts/loop_run.py +839 -0
- package/skills/gsd-path-docs-audit/scripts/model_policy.py +279 -0
- package/skills/gsd-path-docs-audit/scripts/path_config.py +248 -0
- package/skills/gsd-path-docs-audit/scripts/pipeline_git.py +3 -0
- package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +117 -186
- package/skills/gsd-path-docs-audit/scripts/promote_lookahead.py +286 -0
- package/skills/gsd-path-docs-audit/scripts/review_panel.py +564 -0
- package/skills/gsd-path-docs-audit/scripts/roadmap.py +326 -0
- package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +114 -72
- package/skills/gsd-path-docs-audit/scripts/state_promote.py +47 -44
- package/skills/gsd-path-docs-audit/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-forensics/SKILL.md +9 -5
- package/skills/gsd-path-forensics/references/runtime-selection.md +25 -0
- package/skills/gsd-path-forensics/scripts/_common.py +5 -0
- package/skills/gsd-path-forensics/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-forensics/scripts/loop_run.py +839 -0
- package/skills/gsd-path-forensics/scripts/model_policy.py +279 -0
- package/skills/gsd-path-forensics/scripts/path_config.py +248 -0
- package/skills/gsd-path-forensics/scripts/pipeline_diagnose.py +15 -3
- package/skills/gsd-path-forensics/scripts/pipeline_undo.py +14 -7
- package/skills/gsd-path-forensics/scripts/review_panel.py +564 -0
- package/skills/gsd-path-forensics/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-inspect/SKILL.md +32 -8
- package/skills/gsd-path-inspect/references/dispatch.md +12 -19
- package/skills/gsd-path-inspect/references/docs-auditor.md +14 -0
- package/skills/gsd-path-inspect/references/model-policy.md +139 -0
- package/skills/gsd-path-inspect/references/runtime-selection.md +25 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/_common.py +5 -0
- package/skills/gsd-path-inspect/scripts/archive_milestone.py +2171 -0
- package/skills/gsd-path-inspect/scripts/build_recovery.py +292 -0
- package/skills/gsd-path-inspect/scripts/check_docs_audit.py +7 -3
- package/skills/gsd-path-inspect/scripts/check_handoffs.py +7 -1
- package/skills/gsd-path-inspect/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-inspect/scripts/detect_project.py +22 -3
- package/skills/gsd-path-inspect/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-inspect/scripts/discussion_validate.py +1326 -0
- package/skills/gsd-path-inspect/scripts/integration.py +1459 -0
- package/skills/gsd-path-inspect/scripts/isolation.py +24 -6
- package/skills/gsd-path-inspect/scripts/loop_run.py +839 -0
- package/skills/gsd-path-inspect/scripts/model_policy.py +279 -0
- package/skills/gsd-path-inspect/scripts/path_config.py +248 -0
- package/skills/gsd-path-inspect/scripts/pipeline_git.py +3 -0
- package/skills/gsd-path-inspect/scripts/pipeline_state.py +117 -186
- package/skills/gsd-path-inspect/scripts/promote_lookahead.py +286 -0
- package/skills/gsd-path-inspect/scripts/review_panel.py +564 -0
- package/skills/gsd-path-inspect/scripts/roadmap.py +326 -0
- package/skills/gsd-path-inspect/scripts/state_checkpoint.py +114 -72
- package/skills/gsd-path-inspect/scripts/state_promote.py +47 -44
- package/skills/gsd-path-inspect/scripts/workflow_run.py +237 -0
- package/skills/gsd-path-inspect/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-loop/SKILL.md +2 -0
- package/skills/gsd-path-loop/references/runtime-selection.md +25 -0
- package/skills/gsd-path-loop/scripts/_common.py +5 -0
- package/skills/gsd-path-loop/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-loop/scripts/loop_run.py +2 -0
- package/skills/gsd-path-loop/scripts/model_policy.py +279 -0
- package/skills/gsd-path-loop/scripts/path_config.py +248 -0
- package/skills/gsd-path-loop/scripts/review_panel.py +564 -0
- package/skills/gsd-path-loop/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-migrate/SKILL.md +2 -0
- package/skills/gsd-path-migrate/references/runtime-selection.md +25 -0
- package/skills/gsd-path-migrate/scripts/_common.py +185 -0
- package/skills/gsd-path-migrate/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-migrate/scripts/loop_run.py +839 -0
- package/skills/gsd-path-migrate/scripts/model_policy.py +279 -0
- package/skills/gsd-path-migrate/scripts/path_config.py +248 -0
- package/skills/gsd-path-migrate/scripts/review_panel.py +564 -0
- package/skills/gsd-path-plan/SKILL.md +29 -19
- package/skills/gsd-path-plan/references/build-recovery.md +78 -0
- package/skills/gsd-path-plan/references/dispatch.md +12 -19
- package/skills/gsd-path-plan/references/model-policy.md +139 -0
- package/skills/gsd-path-plan/references/runtime-selection.md +25 -0
- package/skills/gsd-path-plan/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/_common.py +5 -0
- package/skills/gsd-path-plan/scripts/archive_milestone.py +2171 -0
- package/skills/gsd-path-plan/scripts/build_recovery.py +292 -0
- package/skills/gsd-path-plan/scripts/check_handoffs.py +7 -1
- package/skills/gsd-path-plan/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-plan/scripts/detect_project.py +1536 -0
- package/skills/gsd-path-plan/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-plan/scripts/discussion_validate.py +1326 -0
- package/skills/gsd-path-plan/scripts/integration.py +1459 -0
- package/skills/gsd-path-plan/scripts/isolation.py +24 -6
- package/skills/gsd-path-plan/scripts/loop_run.py +839 -0
- package/skills/gsd-path-plan/scripts/model_policy.py +279 -0
- package/skills/gsd-path-plan/scripts/path_config.py +248 -0
- package/skills/gsd-path-plan/scripts/pipeline_git.py +3 -0
- package/skills/gsd-path-plan/scripts/pipeline_state.py +117 -186
- package/skills/gsd-path-plan/scripts/promote_lookahead.py +286 -0
- package/skills/gsd-path-plan/scripts/review_panel.py +11 -0
- package/skills/gsd-path-plan/scripts/roadmap.py +326 -0
- package/skills/gsd-path-plan/scripts/state_checkpoint.py +114 -72
- package/skills/gsd-path-plan/scripts/state_promote.py +47 -44
- package/skills/gsd-path-plan/scripts/workflow_run.py +128 -8
- package/skills/gsd-path-plan/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-plan/templates/task.md +2 -0
- package/skills/gsd-path-research/SKILL.md +5 -6
- package/skills/gsd-path-research/references/dispatch.md +12 -19
- package/skills/gsd-path-research/references/model-policy.md +139 -0
- package/skills/gsd-path-research/references/runtime-selection.md +25 -0
- package/skills/gsd-path-research/scripts/_common.py +5 -0
- package/skills/gsd-path-research/scripts/archive_milestone.py +2171 -0
- package/skills/gsd-path-research/scripts/build_recovery.py +292 -0
- package/skills/gsd-path-research/scripts/check_handoffs.py +7 -1
- package/skills/gsd-path-research/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-research/scripts/detect_project.py +1536 -0
- package/skills/gsd-path-research/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-research/scripts/discussion_validate.py +1326 -0
- package/skills/gsd-path-research/scripts/integration.py +1459 -0
- package/skills/gsd-path-research/scripts/isolation.py +24 -6
- package/skills/gsd-path-research/scripts/loop_run.py +839 -0
- package/skills/gsd-path-research/scripts/model_policy.py +279 -0
- package/skills/gsd-path-research/scripts/path_config.py +248 -0
- package/skills/gsd-path-research/scripts/pipeline_git.py +3 -0
- package/skills/gsd-path-research/scripts/pipeline_state.py +117 -186
- package/skills/gsd-path-research/scripts/promote_lookahead.py +286 -0
- package/skills/gsd-path-research/scripts/review_panel.py +564 -0
- package/skills/gsd-path-research/scripts/roadmap.py +326 -0
- package/skills/gsd-path-research/scripts/state_checkpoint.py +114 -72
- package/skills/gsd-path-research/scripts/state_promote.py +47 -44
- package/skills/gsd-path-research/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-roadmap/SKILL.md +24 -58
- package/skills/gsd-path-roadmap/references/dispatch.md +12 -19
- package/skills/gsd-path-roadmap/references/model-policy.md +139 -0
- package/skills/gsd-path-roadmap/references/runtime-selection.md +25 -0
- package/skills/gsd-path-roadmap/scripts/_common.py +5 -0
- package/skills/gsd-path-roadmap/scripts/archive_milestone.py +30 -124
- package/skills/gsd-path-roadmap/scripts/build_recovery.py +292 -0
- package/skills/gsd-path-roadmap/scripts/check_handoffs.py +7 -1
- package/skills/gsd-path-roadmap/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-roadmap/scripts/detect_project.py +22 -3
- package/skills/gsd-path-roadmap/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-roadmap/scripts/discussion_validate.py +8 -3
- package/skills/gsd-path-roadmap/scripts/integration.py +54 -28
- package/skills/gsd-path-roadmap/scripts/isolation.py +24 -6
- package/skills/gsd-path-roadmap/scripts/loop_run.py +839 -0
- package/skills/gsd-path-roadmap/scripts/model_policy.py +279 -0
- package/skills/gsd-path-roadmap/scripts/path_config.py +248 -0
- package/skills/gsd-path-roadmap/scripts/pipeline_git.py +3 -0
- package/skills/gsd-path-roadmap/scripts/pipeline_state.py +117 -186
- package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +33 -162
- package/skills/gsd-path-roadmap/scripts/review_panel.py +11 -0
- package/skills/gsd-path-roadmap/scripts/roadmap.py +326 -0
- package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +114 -72
- package/skills/gsd-path-roadmap/scripts/state_promote.py +47 -44
- package/skills/gsd-path-roadmap/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-ship/SKILL.md +29 -17
- package/skills/gsd-path-ship/references/dispatch.md +12 -19
- package/skills/gsd-path-ship/references/jev-review.md +82 -0
- package/skills/gsd-path-ship/references/model-policy.md +139 -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 -148
- package/skills/gsd-path-ship/references/runtime-selection.md +25 -0
- package/skills/gsd-path-ship/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/_common.py +5 -0
- package/skills/gsd-path-ship/scripts/archive_milestone.py +30 -124
- package/skills/gsd-path-ship/scripts/build_recovery.py +292 -0
- package/skills/gsd-path-ship/scripts/build_state.py +2 -0
- package/skills/gsd-path-ship/scripts/check_handoffs.py +7 -1
- package/skills/gsd-path-ship/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-ship/scripts/detect_project.py +1536 -0
- package/skills/gsd-path-ship/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-ship/scripts/discussion_validate.py +8 -3
- package/skills/gsd-path-ship/scripts/integration.py +54 -28
- package/skills/gsd-path-ship/scripts/isolation.py +24 -6
- package/skills/gsd-path-ship/scripts/jev_review.py +138 -0
- package/skills/gsd-path-ship/scripts/lean_verification.py +3 -1
- package/skills/gsd-path-ship/scripts/loop_run.py +839 -0
- package/skills/gsd-path-ship/scripts/model_policy.py +279 -0
- package/skills/gsd-path-ship/scripts/path_config.py +248 -0
- package/skills/gsd-path-ship/scripts/pipeline_git.py +3 -0
- package/skills/gsd-path-ship/scripts/pipeline_state.py +117 -186
- package/skills/gsd-path-ship/scripts/promote_lookahead.py +286 -0
- package/skills/gsd-path-ship/scripts/review_panel.py +11 -0
- package/skills/gsd-path-ship/scripts/roadmap.py +326 -0
- package/skills/gsd-path-ship/scripts/state_checkpoint.py +114 -72
- package/skills/gsd-path-ship/scripts/state_promote.py +47 -44
- package/skills/gsd-path-ship/scripts/workflow_run.py +128 -8
- package/skills/gsd-path-ship/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-ship/templates/wave-review.md +1 -1
- package/skills/gsd-path-undo/SKILL.md +2 -0
- package/skills/gsd-path-undo/references/runtime-selection.md +25 -0
- package/skills/gsd-path-undo/scripts/_common.py +5 -0
- package/skills/gsd-path-undo/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-undo/scripts/loop_run.py +839 -0
- package/skills/gsd-path-undo/scripts/model_policy.py +279 -0
- package/skills/gsd-path-undo/scripts/path_config.py +248 -0
- package/skills/gsd-path-undo/scripts/pipeline_undo.py +14 -7
- package/skills/gsd-path-undo/scripts/review_panel.py +564 -0
- package/skills/gsd-path-undo/scripts/worktree_paths.py +94 -0
- package/skills/path/BUILD.md +54 -575
- package/skills/path/DECIDE.md +4 -6
- package/skills/path/DEFINE.md +23 -21
- package/skills/path/DOCS-AUDIT.md +2 -0
- package/skills/path/INSPECT.md +32 -8
- package/skills/path/PLAN.md +29 -19
- package/skills/path/RESEARCH.md +5 -6
- package/skills/path/ROADMAP.md +24 -58
- package/skills/path/SHIP.md +29 -17
- package/skills/path/SKILL.md +46 -22
- package/skills/path/references/build-abandon.md +33 -0
- package/skills/path/references/build-native.md +502 -0
- package/skills/path/references/build-recovery.md +78 -0
- package/skills/path/references/coder.md +8 -3
- package/skills/path/references/config.md +57 -0
- package/skills/path/references/dispatch.md +12 -19
- package/skills/path/references/docs-auditor.md +14 -0
- package/skills/path/references/jev-review.md +82 -0
- package/skills/path/references/model-policy.md +139 -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 -148
- package/skills/path/references/runtime-selection.md +25 -0
- package/skills/path/scripts/_common.py +5 -0
- package/skills/path/scripts/archive_milestone.py +30 -124
- package/skills/path/scripts/bootstrap_repository.py +33 -4
- package/skills/path/scripts/build_recovery.py +292 -0
- package/skills/path/scripts/build_state.py +2 -0
- package/skills/path/scripts/check_docs_audit.py +7 -3
- package/skills/path/scripts/check_handoffs.py +7 -1
- package/skills/path/scripts/check_task_briefs.py +3 -0
- package/skills/path/scripts/detect_project.py +22 -3
- package/skills/path/scripts/discussion_records.py +3 -0
- package/skills/path/scripts/discussion_validate.py +8 -3
- package/skills/path/scripts/dispatch_driver.py +233 -22
- package/skills/path/scripts/git_guard.py +768 -0
- package/skills/path/scripts/integration.py +54 -28
- package/skills/path/scripts/isolation.py +24 -6
- package/skills/path/scripts/jev_review.py +138 -0
- package/skills/path/scripts/lean_verification.py +3 -1
- package/skills/path/scripts/loop_run.py +2 -0
- package/skills/path/scripts/model_policy.py +279 -0
- package/skills/path/scripts/path_config.py +248 -0
- package/skills/path/scripts/pipeline_git.py +3 -0
- package/skills/path/scripts/pipeline_state.py +117 -186
- package/skills/path/scripts/promote_lookahead.py +33 -162
- package/skills/path/scripts/review_panel.py +11 -0
- package/skills/path/scripts/roadmap.py +326 -0
- package/skills/path/scripts/state_checkpoint.py +114 -72
- package/skills/path/scripts/state_promote.py +47 -44
- package/skills/path/scripts/status_runtime.py +208 -0
- 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 +128 -8
- package/skills/path/scripts/worktree_paths.py +94 -0
- package/skills/path/templates/skeptic.md +1 -1
- package/skills/path/templates/task.md +2 -0
- package/skills/path/templates/wave-panel.md +1 -1
- package/skills/path/templates/wave-review.md +1 -1
|
@@ -3,6 +3,8 @@ name: gsd-path-decide
|
|
|
3
3
|
description: Decide implementation direction from approved intent and complete research evidence, recording settled choices in SYNTHESIS.md. Use only when the user explicitly invokes $gsd-path-decide or an active $gsd-path router explicitly routes to this phase.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
Before executing project helpers, read [runtime selection](references/runtime-selection.md).
|
|
7
|
+
|
|
6
8
|
# GSD Path Decide Phase
|
|
7
9
|
|
|
8
10
|
Dispatch one reasoning-intensive decider and validate its decision artifact.
|
|
@@ -98,12 +100,8 @@ rules are unchanged; never write an active-path artifact.
|
|
|
98
100
|
branch and archive values, `--set-phase decide --set-status done`, and an
|
|
99
101
|
event naming the validated synthesis path. Include `--project-dir
|
|
100
102
|
.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.
|
|
103
|
+
settled outcome, link SYNTHESIS.md again, and use the executable phase
|
|
104
|
+
handoff in AGENTS.md.
|
|
107
105
|
|
|
108
106
|
## Rules
|
|
109
107
|
|
|
@@ -3,6 +3,8 @@ name: gsd-path-define
|
|
|
3
3
|
description: Define and approve project or milestone intent through an interview or milestone confirmation, writing .project/CHARTER.md or .project/intent/INTENT.md. Use only when the user explicitly invokes $gsd-path-define or an active $gsd-path router explicitly routes to this phase.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
Before executing project helpers, read [runtime selection](references/runtime-selection.md).
|
|
7
|
+
|
|
6
8
|
# GSD Path Define Phase
|
|
7
9
|
|
|
8
10
|
Turn a project idea or approved roadmap entry into an approved intent artifact.
|
|
@@ -36,16 +38,22 @@ ROADMAP.md exists), `roadmap/done`
|
|
|
36
38
|
lookahead track at `define/active|blocked` also requires both current-track
|
|
37
39
|
inspection artifacts and a Log entry proving `inspect/done` for the same
|
|
38
40
|
milestone after its latest activation; otherwise route to inspect.
|
|
41
|
+
The sole later-phase exception is a blocked build entered through the
|
|
42
|
+
[build recovery contract](references/build-recovery.md). Follow its preparation
|
|
43
|
+
and corrections procedure when the runtime returns mode `corrections`; keep
|
|
44
|
+
the existing milestone identity and approval gate. Otherwise
|
|
39
45
|
`define/done` or any later phase blocks rather than overwriting approved
|
|
40
46
|
intent and leaving downstream artifacts stale. When an active router supplies
|
|
41
47
|
the lookahead track root `.project/next/`, require its STATE.md to be a regular
|
|
42
48
|
non-symlink file and evaluate this section against that track's state and
|
|
43
49
|
paths; see Lookahead mode. If STATE.md is missing, run the bundled
|
|
44
50
|
`python3 <absolute-bundled-script> initialize --repo <absolute-root>
|
|
45
|
-
--template <absolute-state-template
|
|
51
|
+
--template <absolute-state-template> --require-git` helper (`scripts/detect_project.py`) and
|
|
46
52
|
follow its returned JSON `verdict` / `route`. This is the only no-state
|
|
47
53
|
boundary; do not run `classify` first or classify from a directory listing or
|
|
48
|
-
conversation.
|
|
54
|
+
conversation. Handle `route: setup-repository` before the write gate: preserve
|
|
55
|
+
the folder unchanged and return to `$gsd-path` for repository setup; no state
|
|
56
|
+
was written. If the command exits nonzero, returns `error`, or returns
|
|
49
57
|
`wrote_state: false`, report the error and block without routing or claiming
|
|
50
58
|
STATE.md was written.
|
|
51
59
|
- `owned` — continue under the existing-state rules above.
|
|
@@ -104,12 +112,13 @@ the charter instead of the single-milestone checklist:
|
|
|
104
112
|
4. **Constraints** — program-level stack, budget, deadline, integrations.
|
|
105
113
|
5. **Program success criteria** — observable when the last milestone ships.
|
|
106
114
|
6. **Review panel** — optional durable default (`off` | `detected` | named
|
|
107
|
-
families).
|
|
115
|
+
families). Use the configured future preference unless the user chooses
|
|
116
|
+
otherwise (see Output contract). This value persists on CHARTER.md; later
|
|
108
117
|
milestone INTENT files copy it and may override.
|
|
109
118
|
|
|
110
119
|
Read the local [charter template](templates/charter.md), write the approval
|
|
111
|
-
draft to `.project/CHARTER.md` including
|
|
112
|
-
|
|
120
|
+
draft to `.project/CHARTER.md` including the configured or explicitly chosen
|
|
121
|
+
`Review panel:` value, and run the same playback-approval
|
|
113
122
|
loop as the standard Process. On approval, retain the reviewed
|
|
114
123
|
`Review panel:` value on CHARTER.md, run `pipeline_state.py transition` with
|
|
115
124
|
expected `define/active`, milestone/branch/archive all at their exact current
|
|
@@ -138,7 +147,7 @@ State ownership. There is no re-interview of charter or roadmap scope:
|
|
|
138
147
|
Risks and Open questions from the entry (tagged `RESEARCH`/`NEEDS-USER`),
|
|
139
148
|
`Lane: milestone`, `Surfaces:` copied verbatim from the entry, and
|
|
140
149
|
`Review panel:` copied from CHARTER.md (default
|
|
141
|
-
|
|
150
|
+
the configured preference when CHARTER omits it). The confirmation may override the copied
|
|
142
151
|
panel value; do not invent `detected` or a named list. When brownfield,
|
|
143
152
|
fill `## Current state` from the map, record doc-vs-code rulings as in
|
|
144
153
|
Brownfield mode, and add protected existing behavior under Scope out.
|
|
@@ -265,27 +274,20 @@ question. The rules change for every primary mode:
|
|
|
265
274
|
## Output contract
|
|
266
275
|
|
|
267
276
|
At approval, retain the already reviewed `Lane:` value and its one-line reason.
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
277
|
+
Before presenting an approval draft without a CHARTER or explicit panel choice,
|
|
278
|
+
read `settings.review_panel.value` from the selected runtime's `path_config.py
|
|
279
|
+
show --repo <absolute-root>` (bundle for legacy projects; off for older selected
|
|
280
|
+
runtimes without config support). Include that preference in the draft.
|
|
281
|
+
Retain `Review panel:` as reviewed: the CHARTER copy, the explicit user choice,
|
|
282
|
+
or the configured future preference. Quick lane keeps the panel off.
|
|
271
283
|
|
|
272
284
|
After approval, finalize `.project/intent/INTENT.md` and run
|
|
273
285
|
`pipeline_state.py transition` with expected `define/active`, the exact
|
|
274
286
|
current milestone/branch/archive values, event `milestone intent approved`,
|
|
275
287
|
`--set-phase define --set-status done --set-milestone <milestone slug>`, and
|
|
276
288
|
`--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.
|
|
289
|
+
the exact milestone. Confirm the approved outcome and link INTENT.md again.
|
|
290
|
+
Use the executable phase handoff in AGENTS.md for the next action.
|
|
289
291
|
|
|
290
292
|
## Rules
|
|
291
293
|
|
|
@@ -3,6 +3,8 @@ name: gsd-path-docs-audit
|
|
|
3
3
|
description: Verify Markdown claims against the actual code, commands, and GSD Path artifacts. Use only when the user explicitly invokes $gsd-path-docs-audit or an active $gsd-path router explicitly routes to this phase.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
Before executing project helpers, read [runtime selection](references/runtime-selection.md).
|
|
7
|
+
|
|
6
8
|
# GSD Path Docs Audit
|
|
7
9
|
|
|
8
10
|
Answer one question with evidence: **does the project do what its documents
|
|
@@ -3,6 +3,8 @@ name: gsd-path-inspect
|
|
|
3
3
|
description: Inspect an existing codebase and its documentation to establish brownfield ground truth before intent is defined. Use only when the user explicitly invokes $gsd-path-inspect or an active $gsd-path router explicitly routes to this phase.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
Before executing project helpers, read [runtime selection](references/runtime-selection.md).
|
|
7
|
+
|
|
6
8
|
# GSD Path Inspect Phase
|
|
7
9
|
|
|
8
10
|
Establish ground truth about an existing project before intent is defined.
|
|
@@ -21,10 +23,12 @@ phase blocks.
|
|
|
21
23
|
|
|
22
24
|
If STATE.md is missing, run the bundled
|
|
23
25
|
`python3 <absolute-bundled-script> initialize --repo <absolute-root>
|
|
24
|
-
--template <absolute-state-template
|
|
26
|
+
--template <absolute-state-template> --require-git` helper (`scripts/detect_project.py`) and
|
|
25
27
|
follow its returned JSON `verdict` / `route`. This is the only no-state
|
|
26
28
|
boundary; do not run `classify` first or classify from a directory listing or
|
|
27
|
-
conversation.
|
|
29
|
+
conversation. Handle `route: setup-repository` before the write gate: preserve
|
|
30
|
+
the folder unchanged and return to `$gsd-path` for repository setup; no state
|
|
31
|
+
was written. If the command exits nonzero, returns `error`, or returns
|
|
28
32
|
`wrote_state: false`, report the error and block without routing or claiming
|
|
29
33
|
STATE.md was written.
|
|
30
34
|
- `owned` — continue under the existing-state rules below.
|
|
@@ -47,6 +51,31 @@ same milestone; a later milestone's `inspect/active` is a new scan.
|
|
|
47
51
|
|
|
48
52
|
## Process
|
|
49
53
|
|
|
54
|
+
For an initial `inspect/active` inspection on the `.project` track, with neither output
|
|
55
|
+
artifact present and a clean Git product at the recorded HEAD, run the bundled
|
|
56
|
+
`python3 <absolute workflow_run.py> prepare-inspect --repo <absolute root>
|
|
57
|
+
--expected-head <recorded HEAD>` first. It performs the inventory freeze and
|
|
58
|
+
both sidecar preparations from steps 1–2 and writes complete assignment briefs.
|
|
59
|
+
Its state validation and pending-answer check satisfy those entry checks;
|
|
60
|
+
reuse their results at this boundary.
|
|
61
|
+
Use its returned `inspection.inventory_file` for the gate. Before dispatch, read
|
|
62
|
+
and apply the [runtime dispatch contract](references/dispatch.md), including its
|
|
63
|
+
host-specific context isolation. Dispatch each returned logical `task_name` in a fresh context with its `brief_file` path and the current
|
|
64
|
+
user constraints, including configured budgets. The child reads that file;
|
|
65
|
+
the parent does not read or rewrite the roles, templates, or generated briefs.
|
|
66
|
+
When both children return, review the mapper's Map and Findings against its
|
|
67
|
+
template as in step 3. After that review passes, run the bundled
|
|
68
|
+
`python3 <absolute workflow_run.py> finish-inspect --repo <absolute root>
|
|
69
|
+
--expected-head <recorded HEAD> --inspection <returned receipt_file>
|
|
70
|
+
--mapper-reviewed`. This runs the docs gate, checks the audit baseline,
|
|
71
|
+
collects and retires both sidecars, checks pending discussion, and records
|
|
72
|
+
`inspect/done` through the canonical transition. Do not repeat those operations.
|
|
73
|
+
Present step 4's ground truth and use step 5's caller handoff. A failure uses
|
|
74
|
+
step 3's failure contract and the returned step evidence; do not blindly rerun
|
|
75
|
+
the completion command or repeat already proven steps.
|
|
76
|
+
Prior evidence, lookahead, or a dirty/non-Git product uses steps 1–2 below.
|
|
77
|
+
Preparation never changes phase state; neither command dispatches agents.
|
|
78
|
+
|
|
50
79
|
1. Before creating or changing `.project/` Markdown, freeze the helper's exact
|
|
51
80
|
stdout from `python3 <absolute check_docs_audit.py> --repo <absolute root>
|
|
52
81
|
--emit-inventory` in a temporary file. Do not rediscover or edit that
|
|
@@ -132,12 +161,7 @@ same milestone; a later milestone's `inspect/active` is a new scan.
|
|
|
132
161
|
<current branch or null> --expect-archive <current archive or null>
|
|
133
162
|
--set-phase inspect --set-status done`. This helper is the only ordinary
|
|
134
163
|
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.
|
|
164
|
+
Use the executable phase handoff in AGENTS.md.
|
|
141
165
|
|
|
142
166
|
## Lookahead mode
|
|
143
167
|
|
package/skills/gsd-path/PLAN.md
CHANGED
|
@@ -3,6 +3,8 @@ name: gsd-path-plan
|
|
|
3
3
|
description: Create and validate dependency-ordered GSD Path build waves and complete task contracts. Use only when the user explicitly invokes $gsd-path-plan or an active $gsd-path router explicitly routes to this phase.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
Before executing project helpers, read [runtime selection](references/runtime-selection.md).
|
|
7
|
+
|
|
6
8
|
# GSD Path Planning Phase
|
|
7
9
|
|
|
8
10
|
Dispatch one planner, gate its artifacts, and obtain the single approval that
|
|
@@ -29,8 +31,11 @@ Before dispatch, enter from `decide/done` or `define/done` with
|
|
|
29
31
|
`--set-phase plan --set-status active`, and event `planning started`. Resume
|
|
30
32
|
`plan/blocked` through the same helper with event `planning resumed`. Require
|
|
31
33
|
the returned track state to be `plan/active`; never edit STATE directly.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
For a blocked build, use the [build recovery contract](references/build-recovery.md).
|
|
35
|
+
The runtime's `build-repair` mode owns structural changes to the remaining task
|
|
36
|
+
inventory and the normal approval checkpoint; it is distinct from append-only
|
|
37
|
+
patch mode. Otherwise later phases block instead of replacing an approved plan.
|
|
38
|
+
Patch mode requires an approved plan, no in-progress task, and
|
|
34
39
|
state `plan/done` or `ship/blocked`; any other state blocks. `build/done` is
|
|
35
40
|
reserved exclusively for the build orchestrator's transition recovery and
|
|
36
41
|
must return there instead of reopening planning. When an active router
|
|
@@ -74,10 +79,17 @@ router supplied lookahead mode. Every per-milestone path below, including
|
|
|
74
79
|
review-panel evidence, is rooted there. Program inputs remain at `.project/`
|
|
75
80
|
as stated in Lookahead mode.
|
|
76
81
|
|
|
77
|
-
1.
|
|
78
|
-
|
|
79
|
-
and
|
|
80
|
-
|
|
82
|
+
1. Resolve the local [plan template](templates/plan.md), [task template](templates/task.md),
|
|
83
|
+
`scripts/check_handoffs.py`, and `scripts/review_panel.py` to absolute paths.
|
|
84
|
+
Quick mode reads the plan and task templates because the parent writes
|
|
85
|
+
those artifacts. Other modes pass their paths to the planner. Execute the
|
|
86
|
+
helpers through the commands below and consume their results; their Python
|
|
87
|
+
source is not planning input. Read helper source only when diagnosing a
|
|
88
|
+
concrete failure that the returned error and documented recovery cannot
|
|
89
|
+
explain.
|
|
90
|
+
2. In quick mode, skip planner dispatch and follow Quick mode below; do not
|
|
91
|
+
load the planner role or dispatch contract. In other modes, resolve the
|
|
92
|
+
local [planner role](references/planner.md) for the child, then follow the
|
|
81
93
|
local [runtime dispatch contract](references/dispatch.md) with deterministic
|
|
82
94
|
logical task name `plan`. Give it absolute role, `AGENTS.md`, `WORKFLOW.md`,
|
|
83
95
|
input, template, and output paths, including `.project/LESSONS.md` when it
|
|
@@ -133,7 +145,7 @@ as stated in Lookahead mode.
|
|
|
133
145
|
- Require a `Review depth` value (`full`, `deep`, or `verify-only`) on
|
|
134
146
|
every wave. Wave 1 and any wave touching authentication, authorization,
|
|
135
147
|
payments, data migration, or concurrency requires `full` or `deep`;
|
|
136
|
-
quick-lane single waves
|
|
148
|
+
this includes quick-lane single waves. The planner assigns `deep`
|
|
137
149
|
sparingly to waves where a wrong merge is irreversible or
|
|
138
150
|
security-critical.
|
|
139
151
|
- When INTENT.md `Surfaces:` is not `none`, require a PLAN.md
|
|
@@ -199,11 +211,13 @@ as stated in Lookahead mode.
|
|
|
199
211
|
- `status: error` or exit 2 — use the same guarded transition to set
|
|
200
212
|
`plan/blocked` with an event naming the helper error, link PLAN.md, and stop.
|
|
201
213
|
A named family that is not advertised is an assertion failure.
|
|
202
|
-
- `status: ready` —
|
|
214
|
+
- `status: ready` — resolve the local
|
|
215
|
+
[plan-panel template](templates/plan-panel.md) for the reviewers; other
|
|
216
|
+
statuses do not load this template. For each selected family, spawn one independent child
|
|
203
217
|
with logical task name `review_plan_panel_<family>`, the reviewer role
|
|
204
218
|
in plan-panel mode, the plan-panel template, and the exact helper-returned
|
|
205
|
-
model slug
|
|
206
|
-
|
|
219
|
+
model slug through the dispatch model-policy contract. Planner choices
|
|
220
|
+
use that same contract. Each child stages its family file under a
|
|
207
221
|
disposable root; the parent validates and copies those files, removes
|
|
208
222
|
any stale `<track>/review/PLAN-PANEL.skipped.json`, then runs
|
|
209
223
|
`python3 <absolute review_panel.py> merge --kind plan --inputs <family
|
|
@@ -257,12 +271,8 @@ as stated in Lookahead mode.
|
|
|
257
271
|
(event `patch plan approved`) without a plan checkpoint because build's
|
|
258
272
|
patch re-entry commits the artifacts with its `build/active` transition.
|
|
259
273
|
`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.
|
|
274
|
+
link PLAN.md again, and use the executable phase handoff in AGENTS.md.
|
|
275
|
+
The plan approval also authorizes build; do not add another approval gate.
|
|
266
276
|
|
|
267
277
|
## Ordering rules
|
|
268
278
|
|
|
@@ -273,8 +283,8 @@ as stated in Lookahead mode.
|
|
|
273
283
|
## Quick mode
|
|
274
284
|
|
|
275
285
|
Legal entry: `define/done` where INTENT.md records `Lane: quick` (transition
|
|
276
|
-
to `plan/active
|
|
277
|
-
|
|
286
|
+
to `plan/active` using exactly the Preconditions event `planning started`;
|
|
287
|
+
record the skipped research and decide phases in the synthesis). Quick mode dispatches no planner agent — the orchestrator writes
|
|
278
288
|
the artifacts directly:
|
|
279
289
|
|
|
280
290
|
1. Write `.project/research/SYNTHESIS.md` containing only `## Settled` lines
|
|
@@ -282,7 +292,7 @@ the artifacts directly:
|
|
|
282
292
|
plus a minimal `## For the planner` naming the walking skeleton. No
|
|
283
293
|
invented decisions or runner-ups.
|
|
284
294
|
2. Write `.project/plan/PLAN.md` with exactly one wave — `Review depth:
|
|
285
|
-
|
|
295
|
+
full` or `deep` — and at most two deliverable-sized task files
|
|
286
296
|
(project policy),
|
|
287
297
|
honoring every task-contract rule above and `.project/LESSONS.md` when it
|
|
288
298
|
exists. Write `review_panel: off` and `finding_skeptics: off` regardless
|
|
@@ -3,6 +3,8 @@ name: gsd-path-research
|
|
|
3
3
|
description: Dispatch parallel researchers and collect cited GSD Path evidence about domain, stack, pitfalls, and comparable products. Use only when the user explicitly invokes $gsd-path-research or an active $gsd-path router explicitly routes to this phase.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
Before executing project helpers, read [runtime selection](references/runtime-selection.md).
|
|
7
|
+
|
|
6
8
|
# GSD Path Research Phase
|
|
7
9
|
|
|
8
10
|
Dispatch independent researchers and gate their evidence. Keep synthesis out
|
|
@@ -143,12 +145,9 @@ settled brownfield input.
|
|
|
143
145
|
dimensions, and question count. Include `--project-dir .project/next` for
|
|
144
146
|
lookahead. Require the returned state to be `research/done`. Report the
|
|
145
147
|
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.
|
|
148
|
+
summarize the dispatched evidence files, and use the executable phase
|
|
149
|
+
handoff in AGENTS.md. The next phase reads the manifest rather than
|
|
150
|
+
inferring dispatch state from a glob or free-form log.
|
|
152
151
|
|
|
153
152
|
## Rules
|
|
154
153
|
|
|
@@ -3,6 +3,8 @@ name: gsd-path-roadmap
|
|
|
3
3
|
description: Slice an approved GSD Path program charter into a dependency-ordered roadmap of independently shippable milestones. Use only when the user explicitly invokes $gsd-path-roadmap or an active $gsd-path router explicitly routes to this phase.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
Before executing project helpers, read [runtime selection](references/runtime-selection.md).
|
|
7
|
+
|
|
6
8
|
# GSD Path Roadmap Phase
|
|
7
9
|
|
|
8
10
|
Dispatch one roadmapper, gate its roadmap, and obtain the single approval that
|
|
@@ -143,69 +145,33 @@ precondition fails.
|
|
|
143
145
|
retain the entering state for a milestone-boundary re-slice; otherwise keep
|
|
144
146
|
`phase: roadmap`, `status: active`. Retain the baseline, revise, and re-gate
|
|
145
147
|
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:
|
|
148
|
+
7. On approval, record the full current HEAD and use the bundled approval
|
|
149
|
+
module. For a first roadmap approval use `--kind roadmap`; for either
|
|
150
|
+
re-slice use `--kind roadmap-reslice`. In a milestone-boundary re-slice,
|
|
151
|
+
`--milestone` is the unchanged active milestone; after abandon, it is the
|
|
152
|
+
helper-selected pending milestone reviewed by the user.
|
|
168
153
|
|
|
169
154
|
```text
|
|
170
155
|
python3 <absolute pipeline_state.py> approve \
|
|
171
|
-
--repo <absolute root> --kind roadmap \
|
|
172
|
-
--milestone <
|
|
173
|
-
--expected-head <recorded full HEAD>
|
|
156
|
+
--repo <absolute root> --kind roadmap-reslice \
|
|
157
|
+
--milestone <reviewed milestone slug> --expected-head <recorded full HEAD>
|
|
174
158
|
```
|
|
175
159
|
|
|
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.
|
|
160
|
+
The helper owns roadmap selection, expected state, baseline cleanup and
|
|
161
|
+
the approval checkpoint. It journals before mutation, retains the baseline
|
|
162
|
+
bytes for recovery, and refuses changes to settled or active entries.
|
|
163
|
+
A milestone-boundary re-slice retains Inspect or Define; a post-abandon
|
|
164
|
+
re-slice enters Inspect. Require its typed result to report `status:
|
|
165
|
+
approved`, the requested kind, milestone and returned commit. After an
|
|
166
|
+
interruption, follow the router's `resume-checkpoint` action; do not edit
|
|
167
|
+
state, delete the baseline or checkpoint separately.
|
|
168
|
+
|
|
169
|
+
Before Git exists, or during a `Kind: new-github` transaction, use the same
|
|
170
|
+
approval command with `--defer-checkpoint` instead of `--expected-head`.
|
|
171
|
+
That existing deferred path writes the metadata without a Git journal or
|
|
172
|
+
commit; the next build checkpoint owns it. Retain the baseline through
|
|
173
|
+
revisions and rejected approvals. Confirm approval, link ROADMAP.md again,
|
|
174
|
+
and use the executable phase handoff in AGENTS.md without another gate.
|
|
209
175
|
|
|
210
176
|
## Rules
|
|
211
177
|
|
package/skills/gsd-path/SHIP.md
CHANGED
|
@@ -3,13 +3,15 @@ name: gsd-path-ship
|
|
|
3
3
|
description: Verify a completed GSD Path milestone, manage evidence-backed patch decisions, request final shipping approval, and archive the validated result. Use only when the user explicitly invokes $gsd-path-ship or an active $gsd-path router or build orchestrator explicitly routes to this phase.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
Before executing project helpers, read [runtime selection](references/runtime-selection.md).
|
|
7
|
+
|
|
6
8
|
# GSD Path Ship Phase
|
|
7
9
|
|
|
8
10
|
Reuse proven review scope; dispatch reviewers for remaining claims. They never fix
|
|
9
11
|
product code.
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
After completion, use the executable phase handoff in AGENTS.md.
|
|
14
|
+
Before completion, preserve the approval and recovery gates below.
|
|
13
15
|
|
|
14
16
|
Require `pipeline: gsd-path/v2` in `.project/STATE.md`; a missing or different
|
|
15
17
|
marker returns to `$gsd-path` for ownership checking. Read the local
|
|
@@ -174,8 +176,9 @@ so the position is unchanged. Then:
|
|
|
174
176
|
|
|
175
177
|
## Archive transaction
|
|
176
178
|
|
|
177
|
-
Resolve the
|
|
178
|
-
|
|
179
|
+
Resolve the declared runtime with `python3 -B
|
|
180
|
+
<project>/.gsd-path/status_runtime.py --repo <project> --runtime-path`; use
|
|
181
|
+
`archive_milestone.py` and `pipeline_state.py` from that verified directory for `prepare`,
|
|
179
182
|
`render-manifest`, `preflight`, `record-shipment`, `validate`, `integrate`, and
|
|
180
183
|
`validate-integrated`. Invoke them with `python3`; the files need not be
|
|
181
184
|
executable. Skill-bundle copies are not the guard's trust anchor, even when
|
|
@@ -269,8 +272,9 @@ The persisted `STATE.archive` field is the transaction identity.
|
|
|
269
272
|
create the ship phase's one commit with exact subject
|
|
270
273
|
`ship: M00N — <milestone-slug>` and a body of exactly two consecutive lines,
|
|
271
274
|
`Archive: .project/archive/<NNN>-<slug>` then
|
|
272
|
-
`Reviewed-HEAD: <reviewed SHA>`, with no comment lines or blank line between them
|
|
273
|
-
|
|
275
|
+
`Reviewed-HEAD: <reviewed SHA>`, with no comment lines or blank line between them.
|
|
276
|
+
Write the subject, a blank line, and the two body lines to a message file,
|
|
277
|
+
then use `git commit -F <message-file>`. M00N and NNN come from STATE.archive.
|
|
274
278
|
There is no untracked-project exception and no product or older-archive
|
|
275
279
|
path may enter this commit.
|
|
276
280
|
6. Immediately run `python3 <absolute archive_milestone.py> validate --repo <root>`. It requires the committed shipped state, exact archive and
|
|
@@ -363,27 +367,35 @@ Run this recovery setup from a separate checkout, outside the closed primary
|
|
|
363
367
|
worktree's guard.
|
|
364
368
|
|
|
365
369
|
1. Create separate disposable trust and validation checkouts from the same
|
|
366
|
-
published origin and `STATE.branch`. This separation is required because
|
|
367
|
-
|
|
370
|
+
published origin and `STATE.branch`. This separation is required because an
|
|
371
|
+
explicit runtime upgrade changes the trust checkout's declaration and launcher,
|
|
368
372
|
while archive validation requires a clean checkout. Never use the primary
|
|
369
373
|
worktree for either role.
|
|
370
|
-
2. From the trusted fixed GSD Path checkout, preview and then
|
|
374
|
+
2. From the trusted fixed GSD Path checkout, preview and then explicitly upgrade only the
|
|
371
375
|
disposable trust checkout's managed trust anchor:
|
|
372
376
|
|
|
373
377
|
```bash
|
|
374
|
-
node <trusted-gsd-path>/scripts/install.mjs --
|
|
375
|
-
node <trusted-gsd-path>/scripts/install.mjs --
|
|
378
|
+
node <trusted-gsd-path>/scripts/install.mjs --runtime-upgrade --dry-run --project <trust-root>
|
|
379
|
+
node <trusted-gsd-path>/scripts/install.mjs --runtime-upgrade --project <trust-root>
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
Confirm that the preview identifies the intended fixed version and digest.
|
|
383
|
+
Upgrade changes only the disposable trust project's declaration and compatible
|
|
384
|
+
launcher. For a legacy trust checkout with no declaration, use the explicit
|
|
385
|
+
`--runtime-migrate` preview and migration first. Resolve the upgraded runtime:
|
|
386
|
+
|
|
387
|
+
```bash
|
|
388
|
+
python3 -B <trust-root>/.gsd-path/status_runtime.py --repo <trust-root> --runtime-path
|
|
376
389
|
```
|
|
377
390
|
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
3. Use only the refreshed project-local trust anchor to refresh publication
|
|
391
|
+
Use the returned absolute directory as `<verified-runtime>` below. Stop on any
|
|
392
|
+
error; do not substitute the validation checkout's older selected runtime.
|
|
393
|
+
3. Use only this verified upgraded runtime to refresh publication
|
|
382
394
|
refs in the clean validation checkout and validate its integrated milestone:
|
|
383
395
|
|
|
384
396
|
```bash
|
|
385
|
-
python3 <
|
|
386
|
-
python3 <
|
|
397
|
+
python3 -B <verified-runtime>/archive_milestone.py refresh-origin --repo <validation-root>
|
|
398
|
+
python3 -B <verified-runtime>/archive_milestone.py validate-integrated --repo <validation-root> --slug <STATE.milestone>
|
|
387
399
|
```
|
|
388
400
|
|
|
389
401
|
4. A pass restores the normal shipped handoff without another commit or
|