@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
package/README.md
CHANGED
|
@@ -15,6 +15,18 @@ Support means the installer and dispatch contract exist. See the
|
|
|
15
15
|
[host trust matrix](https://github.com/open-gsd/gsd-path/blob/main/docs/trust-validation/HOST-MATRIX.md) for live milestone
|
|
16
16
|
proof and each host's guard tier.
|
|
17
17
|
|
|
18
|
+
<!-- release-docs -->
|
|
19
|
+
**Latest npm release:** [@opengsd/gsd-path@1.2.0](https://www.npmjs.com/package/@opengsd/gsd-path/v/1.2.0) — [release notes](CHANGELOG.md#120---2026-09-20)
|
|
20
|
+
|
|
21
|
+
**Recent highlights**
|
|
22
|
+
- add Path settings and project history dashboard
|
|
23
|
+
- add optional Jev evidence screening
|
|
24
|
+
- store worktrees and pinned runtimes outside project checkouts
|
|
25
|
+
- centralize sub-agent model selection policy
|
|
26
|
+
- reuse unchanged host receipts for releases
|
|
27
|
+
|
|
28
|
+
<!-- /release-docs -->
|
|
29
|
+
|
|
18
30
|
## Documentation
|
|
19
31
|
|
|
20
32
|
**Start at [DOCS.md](DOCS.md)** — install, use, understand, and update in one hub.
|
|
@@ -27,22 +39,195 @@ proof and each host's guard tier.
|
|
|
27
39
|
| **[UPDATE.md](UPDATE.md)** | Refresh skills, hooks, or contracts |
|
|
28
40
|
| [WORKFLOW.md](WORKFLOW.md) | Phase-by-phase agent SOP |
|
|
29
41
|
| [HOOKS.md](HOOKS.md) | Optional archive/git guard hooks |
|
|
42
|
+
| [Jev screening](skills/gsd-path/references/jev-review.md) | Optional evidence screening; disabled by default, no SDK required |
|
|
43
|
+
| [daemon/README.md](daemon/README.md) | Dashboard, menu-bar app, and monitoring setup |
|
|
44
|
+
| [CHANGELOG.md](CHANGELOG.md) | Published release notes |
|
|
45
|
+
| [RELEASE.md](RELEASE.md) | Maintainer CI and npm release cycle |
|
|
30
46
|
| [GUIDE.md](GUIDE.md) | Pointer to the guides above |
|
|
31
47
|
|
|
48
|
+
## What's new — September 19, 2026
|
|
49
|
+
|
|
50
|
+
These changes are merged into the source checkout; npm installs use the latest
|
|
51
|
+
published release.
|
|
52
|
+
|
|
53
|
+
- **Dashboard settings and history:** edit Path settings, browse project files
|
|
54
|
+
and Git versions, and load full recorded evidence. See the
|
|
55
|
+
[dashboard guide](daemon/README.md#project-history-and-files).
|
|
56
|
+
- **Model and effort policy:** set user, project, host, and task choices through
|
|
57
|
+
one resolver. Recorded assignments stay pinned; unsupported explicit choices
|
|
58
|
+
stop the affected dispatch. See the
|
|
59
|
+
[model policy](skills/gsd-path/references/model-policy.md).
|
|
60
|
+
- **External worktrees and pinned runtimes:** new parallel task, verification,
|
|
61
|
+
and integration worktrees live outside project checkouts. Projects pin runtime
|
|
62
|
+
versions by content digest, with explicit upgrade, restore, and legacy migration
|
|
63
|
+
commands. See
|
|
64
|
+
[worktree locations](DOCS.md#worktree-locations) and
|
|
65
|
+
[runtime versions](DOCS.md#project-runtime-versions).
|
|
66
|
+
- **Clearer project updates:** the dashboard shows project runtime versions and
|
|
67
|
+
update results. After verified integration, ordinary branches can resume
|
|
68
|
+
product work while archived milestones remain protected. See
|
|
69
|
+
[update guidance](UPDATE.md#update-the-project-runtime-and-guard-hooks).
|
|
70
|
+
- **Optional Jev screening:** reviewers can request advisory checks of selected
|
|
71
|
+
criteria and evidence. It is disabled by default and never replaces recorded
|
|
72
|
+
verification or review gates. See
|
|
73
|
+
[Jev screening](skills/gsd-path/references/jev-review.md).
|
|
74
|
+
|
|
75
|
+
## Install from npm
|
|
76
|
+
|
|
77
|
+
Requires **Node.js 18.17+** for the npm installer and **Python 3.9+** for
|
|
78
|
+
project contracts and pipeline helpers. Install and sign in to a supported
|
|
79
|
+
coding-agent host separately; GSD Path installs its skills, not the host itself.
|
|
80
|
+
The public npm package is **[@opengsd/gsd-path](https://www.npmjs.com/package/@opengsd/gsd-path)**.
|
|
81
|
+
|
|
32
82
|
```bash
|
|
33
|
-
#
|
|
34
|
-
|
|
35
|
-
cd your-repo && node scripts/install.mjs --all --project "$(pwd)"
|
|
36
|
-
# In agent: invoke the router (see Install summary below)
|
|
83
|
+
# Interactive installer: choose hosts, install scope, contracts, and hooks
|
|
84
|
+
npx @opengsd/gsd-path@latest
|
|
37
85
|
|
|
38
|
-
#
|
|
39
|
-
|
|
40
|
-
|
|
86
|
+
# Or preview and install skills for all supported hosts
|
|
87
|
+
npx @opengsd/gsd-path@latest --all --dry-run
|
|
88
|
+
npx @opengsd/gsd-path@latest --all
|
|
89
|
+
|
|
90
|
+
# Add contracts and the status runtime to your project
|
|
91
|
+
npx @opengsd/gsd-path@latest --all --project /path/to/your-repo
|
|
92
|
+
|
|
93
|
+
# Update existing installs
|
|
94
|
+
npx @opengsd/gsd-path@latest --update
|
|
95
|
+
npx @opengsd/gsd-path@latest --update --project /path/to/your-repo
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Use host flags such as `--claude --codex` instead of `--all` to select hosts.
|
|
99
|
+
For project-local skills, run from your project directory and add `--local`
|
|
100
|
+
to install and update commands. `--project PATH` selects where contracts are
|
|
101
|
+
written; it does not change the directory used by `--local`. Run
|
|
102
|
+
`npx @opengsd/gsd-path@latest --help` for all options. After installing, invoke
|
|
103
|
+
`$path` in Codex or `/path` on slash-command hosts to start the pipeline.
|
|
104
|
+
See [Install (summary)](#install-summary) for the host list and source-checkout commands.
|
|
105
|
+
The npm command installs the latest published release; a source checkout may
|
|
106
|
+
contain newer changes.
|
|
107
|
+
|
|
108
|
+
### Start your first project
|
|
109
|
+
|
|
110
|
+
1. Open your project folder in your coding-agent host. Existing repositories
|
|
111
|
+
need Git; GitHub repository creation and pull-request operations also need
|
|
112
|
+
an authenticated GitHub CLI (`gh`).
|
|
113
|
+
2. Start or reload the host session so it discovers the installed skills.
|
|
114
|
+
3. Invoke `$path` in Codex, or `/path` on slash-command hosts. The router
|
|
115
|
+
identifies the project and guides you through the required inputs and approvals.
|
|
116
|
+
4. Resume later from the same folder with the router. Use `$path status`
|
|
117
|
+
(Codex) or `/path status` to inspect progress without advancing.
|
|
118
|
+
|
|
119
|
+
For a missing skill or an install problem, run:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
npx @opengsd/gsd-path@latest --doctor --project /path/to/your-repo
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Add `--local` when checking project-local skills, from that project directory.
|
|
126
|
+
See [QUICK.md](QUICK.md) for the first-run checklist and [HOOKS.md](HOOKS.md)
|
|
127
|
+
for optional Git and host guard hooks.
|
|
128
|
+
|
|
129
|
+
For project-owned model and effort choices, see the
|
|
130
|
+
[dispatch model policy](skills/gsd-path/references/model-policy.md).
|
|
131
|
+
|
|
132
|
+
Use `$path config` (Codex) or `/path config` to view and change user defaults or
|
|
133
|
+
project settings. Dashboard users can open **Settings → Path settings** for the
|
|
134
|
+
same shipping, model/effort, and future review-panel controls. See
|
|
135
|
+
[Path settings](skills/gsd-path/references/config.md) for precedence and locks.
|
|
136
|
+
|
|
137
|
+
## Dashboard and menu-bar toolbar
|
|
138
|
+
|
|
139
|
+
The optional **OpenGSD Path monitor** shows your projects without opening each
|
|
140
|
+
project's `.project/` files. It watches the folders you choose and reads project
|
|
141
|
+
state without advancing phase gates. Explicit Path settings saves use the
|
|
142
|
+
validated configuration helper; background monitoring remains read-only.
|
|
143
|
+
The monitor is a separate install from the npm skills package.
|
|
144
|
+
|
|
145
|
+
### Dashboard
|
|
146
|
+
|
|
147
|
+
The project board shows blocked, active, and shipped work, with milestone and
|
|
148
|
+
phase progress, task counts, last activity, and available usage data. Use the
|
|
149
|
+
[dashboard controls](daemon/README.md#dashboard) to filter or search projects,
|
|
150
|
+
switch between Board and Milestones, refresh status, and manage settings.
|
|
151
|
+
|
|
152
|
+

|
|
153
|
+
|
|
154
|
+
Click a project to see its milestone roadmap, tasks, success criteria, review
|
|
155
|
+
results, verification history, and activity. Usage includes tokens and turns
|
|
156
|
+
from supported host session logs; cost estimates require model prices in the
|
|
157
|
+
daemon configuration.
|
|
158
|
+
|
|
159
|
+

|
|
160
|
+
|
|
161
|
+
*Dashboard screenshots captured from the current source on September 19, 2026,
|
|
162
|
+
using the repository's sample projects.*
|
|
163
|
+
|
|
164
|
+
Open **History & files** to browse project files and archived milestones,
|
|
165
|
+
preview Markdown, or read a file at a selected Git commit. Relative document
|
|
166
|
+
links keep that selected version. **Records & sources → Load full records**
|
|
167
|
+
loads recorded usage, verification, activity, and indexed host turns on demand,
|
|
168
|
+
with coverage details that make missing or invalid data visible.
|
|
169
|
+
|
|
170
|
+
Open **Settings → Path settings** to change user defaults or project overrides
|
|
171
|
+
for shipping mode, model and effort choices, and future review panels. Each
|
|
172
|
+
setting shows its source and any lock reason; changes are saved explicitly.
|
|
173
|
+
|
|
174
|
+
The **Plugin** settings page shows each watched project's runtime version and
|
|
175
|
+
provides an explicit **Update** action with progress and failure details.
|
|
176
|
+
Updating global skills does not update a project's pinned runtime.
|
|
177
|
+
|
|
178
|
+
### macOS menu bar
|
|
179
|
+
|
|
180
|
+
Click the OpenGSD Path menu-bar icon for a compact project list with phase
|
|
181
|
+
meters and task progress. Click a project to open its dashboard page. The
|
|
182
|
+
bottom toolbar opens the dashboard, plugin settings, and watched folders;
|
|
183
|
+
it also provides rescan, appearance, and quit controls. The daemon row shows
|
|
184
|
+
its running state and provides restart and stop controls. Option-click the
|
|
185
|
+
menu-bar icon to open the dashboard directly.
|
|
186
|
+
|
|
187
|
+
<img src="docs/images/macos-menu-bar.png" alt="OpenGSD Path native macOS panel with sample projects and its bottom toolbar" width="400">
|
|
188
|
+
|
|
189
|
+
*Screenshots show the current UI with sample project data. The native panel is
|
|
190
|
+
captured in its preview window.*
|
|
191
|
+
|
|
192
|
+
### Install the monitor
|
|
193
|
+
|
|
194
|
+
The monitor requires Python 3.9+. From a source checkout, preview the setup,
|
|
195
|
+
then install (macOS/Linux shell):
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
git clone https://github.com/open-gsd/gsd-path.git
|
|
199
|
+
cd gsd-path
|
|
200
|
+
PYTHONPATH=daemon python3 -m gsd_daemon install --dry-run
|
|
201
|
+
PYTHONPATH=daemon python3 -m gsd_daemon install
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
On Windows, after cloning and entering `gsd-path`, use PowerShell:
|
|
205
|
+
|
|
206
|
+
```powershell
|
|
207
|
+
$env:PYTHONPATH = "daemon"
|
|
208
|
+
python -m gsd_daemon install --dry-run
|
|
209
|
+
python -m gsd_daemon install
|
|
41
210
|
```
|
|
42
211
|
|
|
43
|
-
|
|
212
|
+
On Windows, launch the installed shortcut for this session before opening the
|
|
213
|
+
dashboard. It starts automatically at future logins:
|
|
44
214
|
|
|
45
|
-
|
|
215
|
+
```powershell
|
|
216
|
+
Start-Process "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\gsd-path-daemon.lnk"
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Open **http://127.0.0.1:8765**, then use **Settings → Watched folders** to add
|
|
220
|
+
your project folders. The installer creates an isolated Python environment and
|
|
221
|
+
configures autostart. On macOS it also builds and installs the native menu-bar
|
|
222
|
+
app; this requires macOS 12+ and Xcode Command Line Tools (`swiftc`). On
|
|
223
|
+
macOS, use `--no-tray` for the dashboard only. Linux autostart runs the
|
|
224
|
+
dashboard; launch the optional tray separately with
|
|
225
|
+
`~/.gsd-path/venv/bin/gsd-path-daemon tray`. Windows uses a tray-and-dashboard
|
|
226
|
+
Startup shortcut; see the [daemon guide](daemon/README.md) for platform details.
|
|
227
|
+
|
|
228
|
+
See the [daemon guide](daemon/README.md) for configuration, usage pricing,
|
|
229
|
+
manual startup, and platform setup, or the [macOS guide](daemon/macos/README.md)
|
|
230
|
+
for native menu-bar details.
|
|
46
231
|
|
|
47
232
|
## Skills
|
|
48
233
|
|
|
@@ -91,7 +276,7 @@ flowchart TD
|
|
|
91
276
|
B --> W{"wave loop"}
|
|
92
277
|
W -->|"briefs linted at base SHA"| C["parallel coders, isolated worktrees"]
|
|
93
278
|
C -->|"streaming: dependents dispatch as deps land"| V{"wave review"}
|
|
94
|
-
V -->|"full
|
|
279
|
+
V -->|"full / verify-only / deep"| F{"verdict"}
|
|
95
280
|
F -->|"blocked → criterion triage"| W
|
|
96
281
|
F -->|"pass → next wave"| W
|
|
97
282
|
F -->|"all waves pass"| S["6 · ship — final review"]
|
|
@@ -109,6 +294,16 @@ flowchart TD
|
|
|
109
294
|
A -->|"program complete"| PC["stop"]
|
|
110
295
|
```
|
|
111
296
|
|
|
297
|
+
Starting in an empty folder without Git leaves that folder unchanged until
|
|
298
|
+
repository setup. The router asks whether to create a new GitHub repository or
|
|
299
|
+
use an existing repository. For a new repository, approve the exact owner/name,
|
|
300
|
+
visibility, default-checkout path, `gsd-path/M001` branch, and linked-worktree
|
|
301
|
+
path before creation. The starting folder is proposed as the linked worktree,
|
|
302
|
+
with a distinct default checkout beside it, so the agent keeps working where
|
|
303
|
+
it started. Only an approved empty directory can be reused; nonempty folders
|
|
304
|
+
and symlinks remain protected. Pipeline state is created after repository
|
|
305
|
+
setup. See the [repository setup procedure](WORKFLOW.md#new-github-repository-creation).
|
|
306
|
+
|
|
112
307
|
For an existing Git repository, initialization writes STATE.md first. Before
|
|
113
308
|
entering inspect or define, the router fetches `origin/main`, creates or adopts
|
|
114
309
|
`gsd-path/M001` there, and records the binding in state. Build only uses that
|
|
@@ -123,6 +318,8 @@ advance past an unresolved required follow-up.
|
|
|
123
318
|
|
|
124
319
|
**Build, under the hood:**
|
|
125
320
|
|
|
321
|
+
- For intent corrections or structural plan repair during a blocked build,
|
|
322
|
+
follow the [build recovery contract](skills/gsd-path/references/build-recovery.md).
|
|
126
323
|
- Task briefs are linted against the real base tree (`check_task_briefs.py`)
|
|
127
324
|
before any agent is dispatched, and every coder runs a preflight — paths
|
|
128
325
|
exist or are declared, interface contracts match siblings verbatim — so a
|
|
@@ -146,9 +343,11 @@ advance past an unresolved required follow-up.
|
|
|
146
343
|
|
|
147
344
|
Invoke the router explicitly to start or advance a phase. Once a project has an
|
|
148
345
|
owned `.project/STATE.md`, a plain prompt such as “continue the project” answers
|
|
149
|
-
read-only with the current handoff and
|
|
150
|
-
a phase or edits state.
|
|
151
|
-
|
|
346
|
+
read-only with the current handoff and uses the runtime’s `handoff.next`; it
|
|
347
|
+
never advances a phase or edits state. An active router continues across completed phases
|
|
348
|
+
until required input, approval, or a block. A phase invoked directly stops at
|
|
349
|
+
its handoff; invoke the router again to continue. Chat and the dashboard use
|
|
350
|
+
the same executable phase handoff from the status runtime.
|
|
152
351
|
The discussion sidecar is the exception: it can be invoked at any non-shipped
|
|
153
352
|
phase and returns only a durable conversation record.
|
|
154
353
|
|
|
@@ -203,10 +402,14 @@ top-level `SYNTHESIS.md`) remain active project metadata.
|
|
|
203
402
|
|
|
204
403
|
## Install (summary)
|
|
205
404
|
|
|
206
|
-
Node 18.17
|
|
405
|
+
Node 18.17+ for the Node installer; Python 3.9+ for project installs and pipeline
|
|
406
|
+
helpers. Validates package,
|
|
207
407
|
backs up existing skills, and rolls back on failure.
|
|
208
408
|
**Always** `--dry-run` first when unsure.
|
|
209
409
|
|
|
410
|
+
The commands below run from a source checkout. For npm, replace
|
|
411
|
+
`node scripts/install.mjs` with `npx @opengsd/gsd-path@latest`.
|
|
412
|
+
|
|
210
413
|
```bash
|
|
211
414
|
node scripts/install.mjs --all --dry-run
|
|
212
415
|
node scripts/install.mjs --all
|
|
@@ -271,6 +474,7 @@ make install && make verify # same path as GitHub Actions CI
|
|
|
271
474
|
| `HOOKS.md` | Guard hooks |
|
|
272
475
|
| `skills/` | Canonical skills and generated aliases declared in [the resource manifest](scripts/skill-resources.json) |
|
|
273
476
|
| `platforms/` | Host dispatch adapters |
|
|
477
|
+
| `daemon/` | Project monitor, dashboard, and tray apps |
|
|
274
478
|
| `scripts/install.mjs` | Installer (npm `gsd-path` bin) |
|
|
275
479
|
| `scripts/install.py` | Python installer |
|
|
276
480
|
| `AGENTS.md` | Operating rules (installed to projects) |
|
package/RUNTIME.md
CHANGED
|
@@ -13,6 +13,10 @@ It does not dispatch models or supply owner approvals.
|
|
|
13
13
|
Use the absolute `workflow_run.py` path in the active skill's scripts directory.
|
|
14
14
|
All commands require `--repo <absolute repository root>`.
|
|
15
15
|
|
|
16
|
+
Initial inspection also uses `prepare-inspect` and `finish-inspect`. Their
|
|
17
|
+
inputs, receipt handling, and entry conditions are owned by the
|
|
18
|
+
[inspection procedure](skills/gsd-path-inspect/SKILL.md#process).
|
|
19
|
+
|
|
16
20
|
| Command | Required input | Result |
|
|
17
21
|
| --- | --- | --- |
|
|
18
22
|
| `route` | Optional `--project-dir .project/next` | Canonical route; follow its action even when it blocks or requests recovery. |
|
|
@@ -70,8 +74,9 @@ skeptic attempts under `skeptics/`.
|
|
|
70
74
|
|
|
71
75
|
The child command is owner-supplied shell words. The driver runs it with the
|
|
72
76
|
isolated worktree as its working directory and the self-contained brief on
|
|
73
|
-
stdin; the owner's flags decide the child's permissions and
|
|
74
|
-
|
|
77
|
+
stdin; the owner's flags decide the child's permissions. Model and effort
|
|
78
|
+
controls follow the [dispatch model policy](skills/gsd-path/references/model-policy.md#cli-lifecycle).
|
|
79
|
+
Verified templates: `claude -p --output-format json <owner permission flags>` and
|
|
75
80
|
`codex exec --json <owner sandbox flags>`. A coder child ends its final message with
|
|
76
81
|
`RESULT: <task id> ready|blocked`; no line means blocked. A Log delta whose
|
|
77
82
|
first entry after the last recorded `Orchestrator answer:` leads with
|
|
@@ -79,8 +84,9 @@ first entry after the last recorded `Orchestrator answer:` leads with
|
|
|
79
84
|
a timeout or nonzero exit is a failure even if the child wrote a question.
|
|
80
85
|
Canonical reviewer children instead return the `Wave verdict:` line in their
|
|
81
86
|
validated review artifact; they do not need a `RESULT:` line.
|
|
82
|
-
Panel children write family findings without a Wave verdict. The
|
|
83
|
-
|
|
87
|
+
Panel children write family findings without a Wave verdict. The `{model}`
|
|
88
|
+
command example above is the legacy form; capability-based commands use the
|
|
89
|
+
argument slots defined in the dispatch model policy.
|
|
84
90
|
`--wave` is required and pins the parent-selected wave, including on resumed
|
|
85
91
|
calls. In `round`, an unfinished earlier wave blocks dispatch before the bookkeeping
|
|
86
92
|
checkpoint. Child completion is recorded in `exit.json`; the parent alone
|
|
@@ -89,6 +95,9 @@ For `review`, `panel`, and `skeptics`, when the child process is gone and `finis
|
|
|
89
95
|
unset, the driver rereads that attempt's state and exit receipt before
|
|
90
96
|
collecting the result or blocking with
|
|
91
97
|
`child wrapper exited without recording a result`.
|
|
98
|
+
Review starts from a clean base. A same-cycle retry may dispatch a missing lens
|
|
99
|
+
at that unchanged base while verified, already-collected review artifacts remain
|
|
100
|
+
uncommitted. Altered artifacts or unrelated changes block recovery.
|
|
92
101
|
`--wait`, `--child-timeout`, and `--capacity` (concurrent children) have
|
|
93
102
|
no defaults. `--max-attempts` defaults to 2 dispatches per task per milestone,
|
|
94
103
|
the build contract's one logged redispatch after the first attempt; question
|
|
@@ -192,7 +201,9 @@ python3 <token_budget.py> admit --ledger <absolute ledger> --task <next logical
|
|
|
192
201
|
The metric is the host's `output_tokens`, including its reported reasoning output;
|
|
193
202
|
reasoning is not added again. Input and cached input are not included. Resumptions
|
|
194
203
|
reuse the ledger and task identity. Each CLI invocation uses its immutable event
|
|
195
|
-
file. Re-observing that file is idempotent
|
|
204
|
+
file. Re-observing that file is idempotent. For per-invocation versus cumulative
|
|
205
|
+
resume counters, follow the [dispatch accounting contract](platforms/shared-agents/dispatch.md#configured-output-budgets):
|
|
206
|
+
new invocations must charge only new output. Native
|
|
196
207
|
single-invocation child sessions and Claude `--output-format json` usage
|
|
197
208
|
receipts are supported. Resumed native child logs with
|
|
198
209
|
ambiguous cumulative counters fail closed; use separate CLI run receipts instead.
|
package/UPDATE.md
CHANGED
|
@@ -14,10 +14,10 @@ Pulled new gsd-path / ran npx @opengsd/gsd-path@latest
|
|
|
14
14
|
└─ Skills feel stale or router shows old behavior?
|
|
15
15
|
├─ Global install → install.mjs --update
|
|
16
16
|
├─ Project-local → install.mjs --update --local (from repo root)
|
|
17
|
-
├─ Project
|
|
17
|
+
├─ Project wiring → install.mjs --update --project PATH (keeps contracts and selected runtime)
|
|
18
18
|
└─ npm only → npx @opengsd/gsd-path@latest --update
|
|
19
19
|
|
|
20
|
-
Installed with --hooks and
|
|
20
|
+
Installed with --hooks and need to refresh wiring
|
|
21
21
|
└─ install.mjs --hooks-refresh --project PATH
|
|
22
22
|
└─ Also refresh native settings / git hooks?
|
|
23
23
|
→ --hooks-refresh-full [--claude] [--codex] [--cursor]
|
|
@@ -40,7 +40,7 @@ AGENTS.md or WORKFLOW.md template changed upstream
|
|
|
40
40
|
| Global skills (`~/.claude/skills`, …) | Yes | `--update` |
|
|
41
41
|
| Project-local skills (`.cursor/skills`, …) | Yes | `--update --local` |
|
|
42
42
|
| `.gsd-path/guard_hook.py`, `git_guard.py` | Yes | `--hooks-refresh` or `--update --project PATH` |
|
|
43
|
-
|
|
|
43
|
+
| Project runtime | Explicit upgrade only | [Runtime lifecycle](DOCS.md#project-runtime-versions) |
|
|
44
44
|
| Native hook settings + git hooks | Yes | `--hooks-refresh-full` (host flag creates missing config) |
|
|
45
45
|
| Guards for an existing project | Yes | `--hooks-init` (preserves project contracts) |
|
|
46
46
|
| `AGENTS.md`, `WORKFLOW.md` | **No** | Manual merge |
|
|
@@ -57,7 +57,8 @@ updates roll back all selected targets.
|
|
|
57
57
|
An initial `--hooks` install merges valid native settings for explicitly selected Claude,
|
|
58
58
|
Codex, or Cursor hosts; other existing project contract and guard files are refused.
|
|
59
59
|
`--update --project PATH` keeps `AGENTS.md`, `WORKFLOW.md`, and `.claude/CLAUDE.md`
|
|
60
|
-
and refreshes
|
|
60
|
+
and refreshes managed hook wiring, native settings, and git hooks. For runtime
|
|
61
|
+
changes or legacy installations, follow the [runtime lifecycle](DOCS.md#project-runtime-versions).
|
|
61
62
|
Use `--hooks-init` to add guards to an existing project without changing its
|
|
62
63
|
`AGENTS.md` or `WORKFLOW.md`. It inspects and merges native configs only for
|
|
63
64
|
the selected hosts; configs for unselected hosts remain untouched.
|
|
@@ -120,16 +121,33 @@ You can update proactively with [commands above](#update-skills) without waiting
|
|
|
120
121
|
|
|
121
122
|
## Update the project runtime and guard hooks
|
|
122
123
|
|
|
123
|
-
|
|
124
|
+
The Dashboard's **Plugin → Watched projects → Runtime version** column shows
|
|
125
|
+
each project's installed runtime release. Global skill versions are separate;
|
|
126
|
+
a global update does not update project runtimes. Use the project's **Update**
|
|
127
|
+
button to refresh its runtime and existing guards. Install and update actions
|
|
128
|
+
show progress, success or failure, and installer output.
|
|
129
|
+
|
|
130
|
+
If the daemon's plugin source checkout has local changes, project Update uses
|
|
131
|
+
that local build and says so in its result. It does not pull remote changes over
|
|
132
|
+
local edits. Clean source checkouts still refresh before a project update.
|
|
133
|
+
|
|
134
|
+
Older unstamped installs show **Unknown — version metadata unavailable**.
|
|
135
|
+
This does not establish that their runtime is outdated or broken. **Update**
|
|
136
|
+
uses the guarded migration for legacy runtime directories and an upgrade for
|
|
137
|
+
version-pinned runtimes. Migration leaves a reviewable Git diff and refuses
|
|
138
|
+
modified or unknown runtime files; the dashboard shows the failure reason.
|
|
139
|
+
See [Project runtime versions](DOCS.md#project-runtime-versions) for manual
|
|
140
|
+
migration and preview commands. Use `--doctor --project PATH` to check runtime files.
|
|
141
|
+
|
|
142
|
+
For upgrades, exact-version restoration, or legacy migration, follow
|
|
143
|
+
[Project runtime versions](DOCS.md#project-runtime-versions). To refresh hook wiring:
|
|
124
144
|
|
|
125
145
|
```bash
|
|
126
146
|
node scripts/install.mjs --hooks-refresh --project /path/to/repo
|
|
127
147
|
```
|
|
128
148
|
|
|
129
|
-
This refresh
|
|
130
|
-
|
|
131
|
-
installed. Guard files must contain `gsd-path guard`; runtime files must
|
|
132
|
-
contain `gsd-path project runtime`.
|
|
149
|
+
This refresh retains the selected runtime and leaves hookless installs hookless.
|
|
150
|
+
Guard files must contain `gsd-path guard`.
|
|
133
151
|
|
|
134
152
|
Include existing native settings and git hooks, and create missing settings for
|
|
135
153
|
explicitly selected hosts:
|
|
@@ -164,7 +182,8 @@ To adopt upstream template changes:
|
|
|
164
182
|
1. Open new templates in the gsd-path repo or npm package
|
|
165
183
|
2. `diff` against your project copies
|
|
166
184
|
3. Merge manually
|
|
167
|
-
4.
|
|
185
|
+
4. Follow the [runtime lifecycle](DOCS.md#project-runtime-versions) when adopting
|
|
186
|
+
runtime changes. Use `--hooks-refresh-full` when host wiring needs a refresh.
|
|
168
187
|
5. Never delete active `.project/` milestone state
|
|
169
188
|
|
|
170
189
|
An in-flight milestone whose `INTENT.md` or `ROADMAP.md` predates `Surfaces:`
|
|
@@ -186,7 +205,7 @@ Unrecognized or foreign `.project/` state is never auto-migrated — the router
|
|
|
186
205
|
| Skills still old | Restart session; confirm root with `--update --dry-run` |
|
|
187
206
|
| Update rolled back | Read installer error; fix path overlap; retry |
|
|
188
207
|
| `--hooks-refresh` rejects an unmanaged guard | Move the foreign guard aside, then rerun refresh; use `--hooks-init` if guards are wanted |
|
|
189
|
-
|
|
|
208
|
+
| Runtime missing, invalid, or legacy | Follow [runtime restoration or migration](DOCS.md#project-runtime-versions) |
|
|
190
209
|
| Undo skill update | Copy from `disabled-gsd-skills` next to skills root |
|
|
191
210
|
| npm vs clone confusion | Pick one: `npx @opengsd/gsd-path@latest --update` **or** clone + `install.mjs --update` |
|
|
192
211
|
| Router still shows update line | Run update; or ignore — notice is informational |
|
package/WORKFLOW.md
CHANGED
|
@@ -5,6 +5,13 @@ Idea to shipped code through a gated pipeline. The `gsd-path` router reads
|
|
|
5
5
|
Every handoff is on disk; the any-phase discussion sidecar also records its
|
|
6
6
|
dialogue and answers on disk. AGENTS.md supplies the shared operating rules.
|
|
7
7
|
|
|
8
|
+
**Path scope.** `.project/` paths describe the consuming project's artifacts.
|
|
9
|
+
References to `skills/`, `scripts/`, `platforms/`, `RUNTIME.md`, and `HOOKS.md`
|
|
10
|
+
describe the GSD Path source checkout, which an application need not contain.
|
|
11
|
+
For execution in an installed project, resolve each role, template, and helper
|
|
12
|
+
from the active skill's bundled absolute paths. Source-relative links below
|
|
13
|
+
are navigation within the GSD Path source checkout, not installed-file claims.
|
|
14
|
+
|
|
8
15
|
**Program flow.** When the work is a multi-milestone program, define runs in
|
|
9
16
|
program mode and writes `.project/CHARTER.md` (enduring scope and vetoes),
|
|
10
17
|
research and decide work at program scope, and the roadmap phase slices the
|
|
@@ -28,7 +35,7 @@ is the single-milestone flow below.
|
|
|
28
35
|
|
|
29
36
|
Use the host-specific child-agent tool defined by the runtime dispatch contract
|
|
30
37
|
bundled in the `gsd-path` skill, or the build contract's
|
|
31
|
-
[dispatch driver](RUNTIME.md#dispatch-driver) when the owner supplies a child
|
|
38
|
+
[dispatch driver](https://github.com/open-gsd/gsd-path/blob/main/RUNTIME.md#dispatch-driver) when the owner supplies a child
|
|
32
39
|
command. Spawn independent work up to the available
|
|
33
40
|
child capacity and batch any remainder. Every spawned agent has isolated
|
|
34
41
|
context, so its brief must include the absolute role path, exact input paths,
|
|
@@ -90,18 +97,20 @@ unpublished work; it never invents `git reset`.
|
|
|
90
97
|
|
|
91
98
|
<!-- gsd-path/plain-prompt-reentry/v1 -->
|
|
92
99
|
|
|
93
|
-
Project installs
|
|
94
|
-
|
|
100
|
+
Project installs record the selected runtime in `.gsd-path/runtime.json` and
|
|
101
|
+
keep a stable launcher at `.gsd-path/status_runtime.py`. Runtime implementation
|
|
102
|
+
lives under `~/.gsd-path/runtimes/`; clones and named checkouts inherit the
|
|
103
|
+
declaration. Missing versions require explicit restoration, not a download
|
|
104
|
+
during status or guard execution.
|
|
95
105
|
On any turn that did not explicitly invoke a GSD Path
|
|
96
106
|
skill, an owned `.project/STATE.md` activates re-entry. Informational prompts
|
|
97
107
|
finish read-only and end with the current **Outcome** / **Review** / **Next**
|
|
98
|
-
handoff.
|
|
99
|
-
`
|
|
100
|
-
|
|
101
|
-
or advances a phase.
|
|
108
|
+
handoff. Both informational and mutation replies use the status result's
|
|
109
|
+
`handoff.next` for **Next**. Mutation prompts make no changes. The status engine
|
|
110
|
+
never initializes state or advances a phase.
|
|
102
111
|
|
|
103
112
|
The optional pre-tool guard backs this up where it has deterministic evidence.
|
|
104
|
-
See [HOOKS.md](HOOKS.md#what-gets-blocked) for write restrictions, including
|
|
113
|
+
See [HOOKS.md](https://github.com/open-gsd/gsd-path/blob/main/HOOKS.md#what-gets-blocked) for write restrictions, including
|
|
105
114
|
closed milestone branches and target worktrees. Shell provenance
|
|
106
115
|
cannot prove which skill initiated a command, so the always-loaded AGENTS.md
|
|
107
116
|
contract owns shell cases.
|
|
@@ -113,7 +122,11 @@ gate. Resolve and preview the GitHub owner/name, visibility, normal default
|
|
|
113
122
|
checkout, `gsd-path/M001` branch, and a distinct linked-worktree path.
|
|
114
123
|
Create no repository, checkout, worktree, pipeline state, journal, or preview
|
|
115
124
|
file until the user approves every target; present the pre-creation review
|
|
116
|
-
inline from the bootstrap helper's read-only `preview` result.
|
|
125
|
+
inline from the bootstrap helper's read-only `preview` result. An existing
|
|
126
|
+
empty invocation folder may be the linked worktree with approved
|
|
127
|
+
`--reuse-empty-worktree`; Git populates it in place. Keep the workspace journal
|
|
128
|
+
outside that folder. Preserve nonempty folders and choose another target;
|
|
129
|
+
never delete the invocation folder or its state to pass a preview.
|
|
117
130
|
|
|
118
131
|
After approval, the bundled bootstrap helper writes an exact transaction
|
|
119
132
|
journal under the approved workspace before mutation. Its `create` command
|
|
@@ -137,8 +150,9 @@ at `inspect/active|blocked`. **Output:**
|
|
|
137
150
|
|
|
138
151
|
When STATE.md is absent, the router runs the bundled
|
|
139
152
|
`scripts/detect_project.py initialize --repo <absolute-root> --template
|
|
140
|
-
<absolute-state-template
|
|
141
|
-
returned JSON. `
|
|
153
|
+
<absolute-state-template> --require-git` helper before asking anything and routes from its
|
|
154
|
+
returned JSON. `route: setup-repository` leaves a non-Git folder unchanged and
|
|
155
|
+
asks for repository setup before creating state. `brownfield` initializes `inspect/active` and routes here;
|
|
142
156
|
`greenfield` initializes `define/active` and skips to define; `orphan` blocks.
|
|
143
157
|
Owned state routes by STATE.md without rerunning the helper. Reserve `classify`
|
|
144
158
|
for read-only inspection; do not re-derive a verdict from a directory listing.
|
|
@@ -214,8 +228,8 @@ milestone` instead: research and decide run only when the roadmap entry lists
|
|
|
214
228
|
open questions, and planning writes a Settled-only milestone SYNTHESIS.md from
|
|
215
229
|
the program synthesis before dispatching the planner. The quick lane skips
|
|
216
230
|
research and decide — planning enters directly from `define/done`, writes
|
|
217
|
-
a Settled-only SYNTHESIS.md and a single wave (
|
|
218
|
-
|
|
231
|
+
a Settled-only SYNTHESIS.md and a single wave (full or deep review depth,
|
|
232
|
+
at most two tasks) without a planner agent, and the rest of the
|
|
219
233
|
pipeline runs unchanged. A quick plan that outgrows those bounds corrects the
|
|
220
234
|
lane to `standard` and reroutes through research.
|
|
221
235
|
|
|
@@ -366,6 +380,12 @@ build's re-entry transition instead).
|
|
|
366
380
|
**Input:** the approved plan and tasks. **Output:** committed code, updated
|
|
367
381
|
task files, and wave reviews.
|
|
368
382
|
|
|
383
|
+
A blocked build returns through the guarded
|
|
384
|
+
[build recovery contract](skills/gsd-path/references/build-recovery.md) when
|
|
385
|
+
approved intent must change or the remaining task inventory needs repair.
|
|
386
|
+
It preserves landed work, re-gates changed contracts, and returns through a new
|
|
387
|
+
plan approval checkpoint. Ship and archived milestones cannot use this path.
|
|
388
|
+
|
|
369
389
|
The build contract is not restated here. Branch binding, the wave loop, task
|
|
370
390
|
isolation and landing, wave review, fix batching, completion, and milestone
|
|
371
391
|
abandon live only in the canonical
|
|
@@ -477,8 +497,7 @@ The ship phase closes the milestone with exactly one commit on the bound
|
|
|
477
497
|
branch: the shipped STATE.md, the final-review artifacts, and the archive
|
|
478
498
|
move with its MANIFEST.md, staged from `.project/` only, subject
|
|
479
499
|
`ship: M00N — <milestone-slug>` and a body naming `Archive:` and
|
|
480
|
-
`Reviewed-HEAD:`.
|
|
481
|
-
belongs to the build orchestrator. The commit must contain only `.project/`
|
|
500
|
+
`Reviewed-HEAD:`. The ship commit must contain only `.project/`
|
|
482
501
|
paths. There is no untracked-project fallback. Every pipeline commit carries
|
|
483
502
|
the subject and field body defined by its canonical phase contract; task-land
|
|
484
503
|
fields live only in the
|
|
@@ -645,7 +664,7 @@ with their exact ordered source-file and row list.
|
|
|
645
664
|
research/evidence-codebase.md brownfield ground truth (inspect)
|
|
646
665
|
research/DOCS-AUDIT.md doc-vs-code verdicts and remediation queue
|
|
647
666
|
research/RESEARCH.md research dispatch/question/output manifest
|
|
648
|
-
research/evidence-*.md
|
|
667
|
+
research/evidence-*.md evidence for dispatched dimensions; RESEARCH.md records skips
|
|
649
668
|
research/SYNTHESIS.md decision artifact; authoritative after decide gate
|
|
650
669
|
plan/PLAN.md waves, config, and project verify
|
|
651
670
|
tasks/T###-slug.md full contract, clean base SHA, status
|
package/package.json
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengsd/gsd-path",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Disk-backed AI agent pipeline. Docs: DOCS.md (start here), QUICK.md, FULL.md, UPDATE.md",
|
|
5
5
|
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/open-gsd/gsd-path.git"
|
|
9
|
+
},
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/open-gsd/gsd-path/issues"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://github.com/open-gsd/gsd-path#readme",
|
|
6
14
|
"type": "module",
|
|
7
15
|
"bin": {
|
|
8
16
|
"gsd-path": "scripts/install.mjs"
|
|
@@ -11,6 +19,7 @@
|
|
|
11
19
|
"plugin.json",
|
|
12
20
|
"scripts/install.mjs",
|
|
13
21
|
"scripts/install.py",
|
|
22
|
+
"scripts/runtime_store.py",
|
|
14
23
|
"scripts/migrate_core.py",
|
|
15
24
|
"scripts/core_hook_gate.py",
|
|
16
25
|
"scripts/core_hook_settings.py",
|
|
@@ -18,7 +27,10 @@
|
|
|
18
27
|
"scripts/wizard.mjs",
|
|
19
28
|
"scripts/skill-resources.json",
|
|
20
29
|
"scripts/_common.py",
|
|
30
|
+
"scripts/worktree_paths.py",
|
|
31
|
+
"scripts/build_recovery.py",
|
|
21
32
|
"scripts/state_checkpoint.py",
|
|
33
|
+
"scripts/roadmap.py",
|
|
22
34
|
"scripts/state_promote.py",
|
|
23
35
|
"scripts/discussion_validate.py",
|
|
24
36
|
"scripts/integration.py",
|
|
@@ -30,7 +42,10 @@
|
|
|
30
42
|
"scripts/check_handoffs.py",
|
|
31
43
|
"scripts/check_docs_audit.py",
|
|
32
44
|
"scripts/check_task_briefs.py",
|
|
45
|
+
"scripts/path_config.py",
|
|
46
|
+
"scripts/model_policy.py",
|
|
33
47
|
"scripts/review_panel.py",
|
|
48
|
+
"scripts/jev_review.py",
|
|
34
49
|
"scripts/review_findings.py",
|
|
35
50
|
"scripts/check_update.py",
|
|
36
51
|
"scripts/guard_hook.py",
|
|
@@ -43,11 +58,13 @@
|
|
|
43
58
|
"scripts/loop_run.py",
|
|
44
59
|
"scripts/workflow_run.py",
|
|
45
60
|
"scripts/dispatch_driver.py",
|
|
61
|
+
"scripts/task_context.py",
|
|
46
62
|
"scripts/lean_verification.py",
|
|
47
63
|
"scripts/token_budget.py",
|
|
48
64
|
"scripts/pipeline_undo.py",
|
|
49
65
|
"scripts/pipeline_diagnose.py",
|
|
50
66
|
"README.md",
|
|
67
|
+
"CHANGELOG.md",
|
|
51
68
|
"MIGRATE.md",
|
|
52
69
|
"RUNTIME.md",
|
|
53
70
|
"DOCS.md",
|
|
@@ -75,6 +92,11 @@
|
|
|
75
92
|
"test:daemon": "PYTHONPATH=daemon python3 -m unittest discover -s tests -p 'test_daemon_*.py'",
|
|
76
93
|
"verify": "npm test && npm run test:python && python3 scripts/sync_skill_resources.py --check",
|
|
77
94
|
"verify:release": "npm run verify && python3 scripts/check_trust_evidence.py --repo .",
|
|
95
|
+
"release:docs": "node scripts/update_release_docs.mjs",
|
|
96
|
+
"release:bump": "node scripts/bump_version.mjs --bump auto",
|
|
78
97
|
"prepublishOnly": "npm run verify:release"
|
|
98
|
+
},
|
|
99
|
+
"devDependencies": {
|
|
100
|
+
"yaml": "^2.9.1"
|
|
79
101
|
}
|
|
80
102
|
}
|
|
@@ -27,10 +27,10 @@ Apply this contract whenever a GSD Path skill delegates work:
|
|
|
27
27
|
a colliding target.
|
|
28
28
|
- Resolve the phase's linked role brief to an absolute path. Include that path
|
|
29
29
|
in the prompt and require the agent to read it before acting.
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
- Model selection: before every child launch or continuation, follow
|
|
31
|
+
[the model-policy contract](model-policy.md) and apply its recorded
|
|
32
|
+
native arguments. It owns defaults, project settings, task overrides,
|
|
33
|
+
capability failures, and reassignment. Do not ask Claude Code to create
|
|
34
34
|
another worktree: GSD Path supplies the exact repository or
|
|
35
35
|
linked-worktree root in the brief, and the child must work only there.
|
|
36
36
|
Host isolation: none.
|