@opengsd/gsd-path 1.1.0 → 1.3.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 +5 -2
- package/CHANGELOG.md +87 -0
- package/DOCS.md +73 -1
- package/FULL.md +3 -2
- package/HOOKS.md +18 -9
- package/QUICK.md +3 -4
- package/README.md +72 -5
- package/RUNTIME.md +9 -4
- package/UPDATE.md +56 -11
- package/WORKFLOW.md +5 -2
- package/package.json +9 -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 +6 -19
- package/scripts/_common.py +5 -0
- package/scripts/archive_milestone.py +20 -6
- package/scripts/bootstrap_repository.py +8 -1
- package/scripts/build_recovery.py +5 -0
- package/scripts/build_state.py +2 -0
- package/scripts/check_docs_audit.py +2 -0
- package/scripts/check_handoffs.py +6 -0
- package/scripts/check_task_briefs.py +3 -0
- package/scripts/detect_project.py +11 -1
- package/scripts/discussion_records.py +3 -0
- package/scripts/discussion_validate.py +8 -3
- package/scripts/dispatch_driver.py +230 -21
- package/scripts/git_guard.py +12 -4
- package/scripts/guard_hook.py +11 -1
- package/scripts/install.mjs +74 -1448
- package/scripts/install.py +165 -201
- package/scripts/integration.py +28 -8
- package/scripts/isolation.py +15 -5
- package/scripts/jev_review.py +138 -0
- package/scripts/lean_verification.py +2 -0
- 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 +3 -0
- package/scripts/pipeline_git.py +3 -0
- package/scripts/pipeline_state.py +4 -1
- package/scripts/pipeline_undo.py +3 -0
- package/scripts/promote_lookahead.py +3 -0
- package/scripts/review_panel.py +11 -0
- package/scripts/roadmap.py +5 -0
- package/scripts/runtime_store.py +281 -0
- package/scripts/skill-resources.json +104 -4
- package/scripts/state_checkpoint.py +5 -0
- package/scripts/state_promote.py +5 -0
- package/scripts/status_runtime.py +92 -6
- package/scripts/wizard.mjs +8 -2
- package/scripts/workflow_run.py +12 -1
- package/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path/BUILD.md +7 -0
- package/skills/gsd-path/DECIDE.md +2 -0
- package/skills/gsd-path/DEFINE.md +13 -7
- package/skills/gsd-path/DOCS-AUDIT.md +2 -0
- package/skills/gsd-path/INSPECT.md +2 -0
- package/skills/gsd-path/PLAN.md +4 -2
- package/skills/gsd-path/RESEARCH.md +2 -0
- package/skills/gsd-path/ROADMAP.md +2 -0
- package/skills/gsd-path/SHIP.md +24 -13
- package/skills/gsd-path/SKILL.md +23 -9
- package/skills/gsd-path/references/build-native.md +15 -7
- package/skills/gsd-path/references/config.md +57 -0
- package/skills/gsd-path/references/dispatch.md +6 -19
- 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-panel.md +1 -1
- package/skills/gsd-path/references/reviewer.md +2 -0
- 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 +20 -6
- package/skills/gsd-path/scripts/bootstrap_repository.py +8 -1
- package/skills/gsd-path/scripts/build_recovery.py +5 -0
- package/skills/gsd-path/scripts/build_state.py +2 -0
- package/skills/gsd-path/scripts/check_docs_audit.py +2 -0
- package/skills/gsd-path/scripts/check_handoffs.py +6 -0
- package/skills/gsd-path/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path/scripts/detect_project.py +11 -1
- 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 +230 -21
- package/skills/gsd-path/scripts/git_guard.py +768 -0
- package/skills/gsd-path/scripts/integration.py +28 -8
- package/skills/gsd-path/scripts/isolation.py +15 -5
- package/skills/gsd-path/scripts/jev_review.py +138 -0
- package/skills/gsd-path/scripts/lean_verification.py +2 -0
- 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 +4 -1
- package/skills/gsd-path/scripts/promote_lookahead.py +3 -0
- package/skills/gsd-path/scripts/review_panel.py +11 -0
- package/skills/gsd-path/scripts/roadmap.py +5 -0
- package/skills/gsd-path/scripts/state_checkpoint.py +5 -0
- package/skills/gsd-path/scripts/state_promote.py +5 -0
- package/skills/gsd-path/scripts/status_runtime.py +208 -0
- package/skills/gsd-path/scripts/workflow_run.py +12 -1
- 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-build/SKILL.md +7 -0
- package/skills/gsd-path-build/references/build-native.md +15 -7
- package/skills/gsd-path-build/references/dispatch.md +6 -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-panel.md +1 -1
- package/skills/gsd-path-build/references/reviewer.md +2 -0
- 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 +20 -6
- package/skills/gsd-path-build/scripts/build_recovery.py +5 -0
- package/skills/gsd-path-build/scripts/build_state.py +2 -0
- package/skills/gsd-path-build/scripts/check_handoffs.py +6 -0
- package/skills/gsd-path-build/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-build/scripts/detect_project.py +11 -1
- 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 +230 -21
- package/skills/gsd-path-build/scripts/integration.py +28 -8
- package/skills/gsd-path-build/scripts/isolation.py +15 -5
- 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 +4 -1
- package/skills/gsd-path-build/scripts/promote_lookahead.py +3 -0
- package/skills/gsd-path-build/scripts/review_panel.py +11 -0
- package/skills/gsd-path-build/scripts/roadmap.py +5 -0
- package/skills/gsd-path-build/scripts/state_checkpoint.py +5 -0
- package/skills/gsd-path-build/scripts/state_promote.py +5 -0
- package/skills/gsd-path-build/scripts/workflow_run.py +12 -1
- 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-decide/SKILL.md +2 -0
- package/skills/gsd-path-decide/references/dispatch.md +6 -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 +20 -6
- package/skills/gsd-path-decide/scripts/build_recovery.py +5 -0
- package/skills/gsd-path-decide/scripts/check_handoffs.py +6 -0
- package/skills/gsd-path-decide/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-decide/scripts/detect_project.py +11 -1
- package/skills/gsd-path-decide/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-decide/scripts/discussion_validate.py +8 -3
- package/skills/gsd-path-decide/scripts/integration.py +28 -8
- package/skills/gsd-path-decide/scripts/isolation.py +15 -5
- 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 +4 -1
- package/skills/gsd-path-decide/scripts/promote_lookahead.py +3 -0
- package/skills/gsd-path-decide/scripts/review_panel.py +11 -0
- package/skills/gsd-path-decide/scripts/roadmap.py +5 -0
- package/skills/gsd-path-decide/scripts/state_checkpoint.py +5 -0
- package/skills/gsd-path-decide/scripts/state_promote.py +5 -0
- package/skills/gsd-path-decide/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-define/SKILL.md +13 -7
- 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 +20 -6
- package/skills/gsd-path-define/scripts/build_recovery.py +5 -0
- package/skills/gsd-path-define/scripts/check_handoffs.py +6 -0
- package/skills/gsd-path-define/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-define/scripts/detect_project.py +11 -1
- package/skills/gsd-path-define/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-define/scripts/discussion_validate.py +8 -3
- package/skills/gsd-path-define/scripts/integration.py +28 -8
- package/skills/gsd-path-define/scripts/isolation.py +15 -5
- 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 +4 -1
- package/skills/gsd-path-define/scripts/promote_lookahead.py +3 -0
- package/skills/gsd-path-define/scripts/review_panel.py +11 -0
- package/skills/gsd-path-define/scripts/roadmap.py +5 -0
- package/skills/gsd-path-define/scripts/state_checkpoint.py +5 -0
- package/skills/gsd-path-define/scripts/state_promote.py +5 -0
- 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 +6 -19
- 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 +20 -6
- package/skills/gsd-path-docs-audit/scripts/build_recovery.py +5 -0
- package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +2 -0
- package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +6 -0
- package/skills/gsd-path-docs-audit/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-docs-audit/scripts/detect_project.py +11 -1
- package/skills/gsd-path-docs-audit/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +8 -3
- package/skills/gsd-path-docs-audit/scripts/integration.py +28 -8
- package/skills/gsd-path-docs-audit/scripts/isolation.py +15 -5
- 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 +4 -1
- package/skills/gsd-path-docs-audit/scripts/promote_lookahead.py +3 -0
- package/skills/gsd-path-docs-audit/scripts/review_panel.py +11 -0
- package/skills/gsd-path-docs-audit/scripts/roadmap.py +5 -0
- package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +5 -0
- package/skills/gsd-path-docs-audit/scripts/state_promote.py +5 -0
- 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 +3 -0
- package/skills/gsd-path-forensics/scripts/pipeline_undo.py +3 -0
- 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 +2 -0
- package/skills/gsd-path-inspect/references/dispatch.md +6 -19
- 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 +20 -6
- package/skills/gsd-path-inspect/scripts/build_recovery.py +5 -0
- package/skills/gsd-path-inspect/scripts/check_docs_audit.py +2 -0
- package/skills/gsd-path-inspect/scripts/check_handoffs.py +6 -0
- package/skills/gsd-path-inspect/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-inspect/scripts/detect_project.py +11 -1
- package/skills/gsd-path-inspect/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-inspect/scripts/discussion_validate.py +8 -3
- package/skills/gsd-path-inspect/scripts/integration.py +28 -8
- package/skills/gsd-path-inspect/scripts/isolation.py +15 -5
- 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 +4 -1
- package/skills/gsd-path-inspect/scripts/promote_lookahead.py +3 -0
- package/skills/gsd-path-inspect/scripts/review_panel.py +11 -0
- package/skills/gsd-path-inspect/scripts/roadmap.py +5 -0
- package/skills/gsd-path-inspect/scripts/state_checkpoint.py +5 -0
- package/skills/gsd-path-inspect/scripts/state_promote.py +5 -0
- package/skills/gsd-path-inspect/scripts/workflow_run.py +12 -1
- 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 +4 -2
- package/skills/gsd-path-plan/references/dispatch.md +6 -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 +20 -6
- package/skills/gsd-path-plan/scripts/build_recovery.py +5 -0
- package/skills/gsd-path-plan/scripts/check_handoffs.py +6 -0
- package/skills/gsd-path-plan/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-plan/scripts/detect_project.py +11 -1
- package/skills/gsd-path-plan/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-plan/scripts/discussion_validate.py +8 -3
- package/skills/gsd-path-plan/scripts/integration.py +28 -8
- package/skills/gsd-path-plan/scripts/isolation.py +15 -5
- 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 +4 -1
- package/skills/gsd-path-plan/scripts/promote_lookahead.py +3 -0
- package/skills/gsd-path-plan/scripts/review_panel.py +11 -0
- package/skills/gsd-path-plan/scripts/roadmap.py +5 -0
- package/skills/gsd-path-plan/scripts/state_checkpoint.py +5 -0
- package/skills/gsd-path-plan/scripts/state_promote.py +5 -0
- package/skills/gsd-path-plan/scripts/workflow_run.py +12 -1
- 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 +2 -0
- package/skills/gsd-path-research/references/dispatch.md +6 -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 +20 -6
- package/skills/gsd-path-research/scripts/build_recovery.py +5 -0
- package/skills/gsd-path-research/scripts/check_handoffs.py +6 -0
- package/skills/gsd-path-research/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-research/scripts/detect_project.py +11 -1
- package/skills/gsd-path-research/scripts/discussion_records.py +3 -0
- package/skills/gsd-path-research/scripts/discussion_validate.py +8 -3
- package/skills/gsd-path-research/scripts/integration.py +28 -8
- package/skills/gsd-path-research/scripts/isolation.py +15 -5
- 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 +4 -1
- package/skills/gsd-path-research/scripts/promote_lookahead.py +3 -0
- package/skills/gsd-path-research/scripts/review_panel.py +11 -0
- package/skills/gsd-path-research/scripts/roadmap.py +5 -0
- package/skills/gsd-path-research/scripts/state_checkpoint.py +5 -0
- package/skills/gsd-path-research/scripts/state_promote.py +5 -0
- package/skills/gsd-path-research/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-roadmap/SKILL.md +2 -0
- package/skills/gsd-path-roadmap/references/dispatch.md +6 -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 +20 -6
- package/skills/gsd-path-roadmap/scripts/build_recovery.py +5 -0
- package/skills/gsd-path-roadmap/scripts/check_handoffs.py +6 -0
- package/skills/gsd-path-roadmap/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-roadmap/scripts/detect_project.py +11 -1
- 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 +28 -8
- package/skills/gsd-path-roadmap/scripts/isolation.py +15 -5
- 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 +4 -1
- package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +3 -0
- package/skills/gsd-path-roadmap/scripts/review_panel.py +11 -0
- package/skills/gsd-path-roadmap/scripts/roadmap.py +5 -0
- package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +5 -0
- package/skills/gsd-path-roadmap/scripts/state_promote.py +5 -0
- package/skills/gsd-path-roadmap/scripts/worktree_paths.py +94 -0
- package/skills/gsd-path-ship/SKILL.md +24 -13
- package/skills/gsd-path-ship/references/dispatch.md +6 -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-panel.md +1 -1
- package/skills/gsd-path-ship/references/reviewer.md +2 -0
- 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 +20 -6
- package/skills/gsd-path-ship/scripts/build_recovery.py +5 -0
- package/skills/gsd-path-ship/scripts/build_state.py +2 -0
- package/skills/gsd-path-ship/scripts/check_handoffs.py +6 -0
- package/skills/gsd-path-ship/scripts/check_task_briefs.py +3 -0
- package/skills/gsd-path-ship/scripts/detect_project.py +11 -1
- 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 +28 -8
- package/skills/gsd-path-ship/scripts/isolation.py +15 -5
- package/skills/gsd-path-ship/scripts/jev_review.py +138 -0
- package/skills/gsd-path-ship/scripts/lean_verification.py +2 -0
- 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 +4 -1
- package/skills/gsd-path-ship/scripts/promote_lookahead.py +3 -0
- package/skills/gsd-path-ship/scripts/review_panel.py +11 -0
- package/skills/gsd-path-ship/scripts/roadmap.py +5 -0
- package/skills/gsd-path-ship/scripts/state_checkpoint.py +5 -0
- package/skills/gsd-path-ship/scripts/state_promote.py +5 -0
- package/skills/gsd-path-ship/scripts/workflow_run.py +12 -1
- package/skills/gsd-path-ship/scripts/worktree_paths.py +94 -0
- 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 +3 -0
- 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 +7 -0
- package/skills/path/DECIDE.md +2 -0
- package/skills/path/DEFINE.md +13 -7
- package/skills/path/DOCS-AUDIT.md +2 -0
- package/skills/path/INSPECT.md +2 -0
- package/skills/path/PLAN.md +4 -2
- package/skills/path/RESEARCH.md +2 -0
- package/skills/path/ROADMAP.md +2 -0
- package/skills/path/SHIP.md +24 -13
- package/skills/path/SKILL.md +23 -9
- package/skills/path/references/build-native.md +15 -7
- package/skills/path/references/config.md +57 -0
- package/skills/path/references/dispatch.md +6 -19
- package/skills/path/references/jev-review.md +82 -0
- package/skills/path/references/model-policy.md +139 -0
- package/skills/path/references/reviewer-panel.md +1 -1
- package/skills/path/references/reviewer.md +2 -0
- package/skills/path/references/runtime-selection.md +25 -0
- package/skills/path/scripts/_common.py +5 -0
- package/skills/path/scripts/archive_milestone.py +20 -6
- package/skills/path/scripts/bootstrap_repository.py +8 -1
- package/skills/path/scripts/build_recovery.py +5 -0
- package/skills/path/scripts/build_state.py +2 -0
- package/skills/path/scripts/check_docs_audit.py +2 -0
- package/skills/path/scripts/check_handoffs.py +6 -0
- package/skills/path/scripts/check_task_briefs.py +3 -0
- package/skills/path/scripts/detect_project.py +11 -1
- 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 +230 -21
- package/skills/path/scripts/git_guard.py +768 -0
- package/skills/path/scripts/integration.py +28 -8
- package/skills/path/scripts/isolation.py +15 -5
- package/skills/path/scripts/jev_review.py +138 -0
- package/skills/path/scripts/lean_verification.py +2 -0
- 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 +4 -1
- package/skills/path/scripts/promote_lookahead.py +3 -0
- package/skills/path/scripts/review_panel.py +11 -0
- package/skills/path/scripts/roadmap.py +5 -0
- package/skills/path/scripts/state_checkpoint.py +5 -0
- package/skills/path/scripts/state_promote.py +5 -0
- package/skills/path/scripts/status_runtime.py +208 -0
- package/skills/path/scripts/workflow_run.py +12 -1
- 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/gsd-path/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/discussion_records.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/integration.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/loop_run.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/review_findings.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/task_context.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/workflow_run.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/loop_run.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/review_findings.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/task_context.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/workflow_run.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-forensics/scripts/__pycache__/pipeline_undo.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
package/AGENTS.md
CHANGED
|
@@ -127,7 +127,10 @@ full-repo suite on a tiny edit outrank the phase brief.
|
|
|
127
127
|
with `-B .gsd-path/status_runtime.py --repo <absolute-root>`
|
|
128
128
|
before any requested repository mutation. Treat its JSON as the only route
|
|
129
129
|
authority.
|
|
130
|
-
|
|
130
|
+
When `completion.status` is `verified` and `git.branch` is an ordinary
|
|
131
|
+
branch (not `gsd-path/M###`), requested product work may proceed normally.
|
|
132
|
+
Archives and pipeline control files remain protected. Otherwise,
|
|
133
|
+
a plain change request does not authorize work outside the pipeline: make no
|
|
131
134
|
changes and report **Outcome**, link the returned `path` under **Review**, and
|
|
132
135
|
under **Next** use `handoff.next`. An explicit request to leave
|
|
133
136
|
or bypass the pipeline is a user ruling;
|
|
@@ -253,7 +256,7 @@ full-repo suite on a tiny edit outrank the phase brief.
|
|
|
253
256
|
orchestrator.
|
|
254
257
|
- Reviewers verify and block; they never fix. A block names the criterion,
|
|
255
258
|
observed result, evidence location, and concrete fix direction. An optional
|
|
256
|
-
review panel is advisory: the
|
|
259
|
+
review panel is advisory: the canonical reviewer remains the only wave
|
|
257
260
|
pass/fail, and panel findings never average or auto-replan. Same-model
|
|
258
261
|
agreement is not independent verification: matching verdicts from one
|
|
259
262
|
model family count as a single evidence path. Independence comes from
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to [@opengsd/gsd-path](https://www.npmjs.com/package/@opengsd/gsd-path)
|
|
4
|
+
are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
5
|
+
|
|
6
|
+
## [1.1.0] - 2026-09-18
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
- Scoped npm package `@opengsd/gsd-path` with trusted publishing workflow
|
|
10
|
+
- Release trust evidence validation and host matrix documentation
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Release workflow and maintainer documentation for npm publication
|
|
14
|
+
|
|
15
|
+
## [1.0.0] - 2026-09-15
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- Initial public release of the disk-backed GSD Path pipeline
|
|
19
|
+
- Multi-host installer, skills package, and project contracts
|
|
20
|
+
|
|
21
|
+
## [1.2.0] - 2026-09-20
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- add Path settings and project history dashboard
|
|
25
|
+
- add optional Jev evidence screening
|
|
26
|
+
- store worktrees and pinned runtimes outside project checkouts
|
|
27
|
+
- centralize sub-agent model selection policy
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
- Correct stale release guidance and consolidate scope references
|
|
31
|
+
- record passing eight-host release gate
|
|
32
|
+
- validate corrected OpenCode release evidence
|
|
33
|
+
- validate recovered Claude release evidence
|
|
34
|
+
- record affected release gate results
|
|
35
|
+
- preserve blocked host evaluations without receipt fallback
|
|
36
|
+
- record passing Antigravity Kimi and Grok release runs
|
|
37
|
+
- record remaining 1.2.0 release gate failures
|
|
38
|
+
- record Kimi receipt and complete offline recheck
|
|
39
|
+
- preserve 1.2.0 host receipts and release blockers
|
|
40
|
+
- record v1.3.0 live release evidence and blockers
|
|
41
|
+
- bump version to v1.3.0
|
|
42
|
+
- Align release documentation with risk-based host validation
|
|
43
|
+
- bump version to v1.2.0
|
|
44
|
+
- Automate npm release docs, pack verification, and provenance (#133)
|
|
45
|
+
- refresh README changes and dashboard screenshots
|
|
46
|
+
- Refresh dashboard navigation and file history documentation
|
|
47
|
+
- Clarify Jev receipt fields and consolidate documentation
|
|
48
|
+
- Refresh dashboard update and guard documentation
|
|
49
|
+
- Correct runtime installation, update, guard, and uninstall documentation
|
|
50
|
+
- Correct model policy and dispatch documentation
|
|
51
|
+
|
|
52
|
+
### Fixed
|
|
53
|
+
- reuse unchanged host receipts for releases
|
|
54
|
+
- verify prepared releases without advancing failed versions
|
|
55
|
+
- scope release evidence to affected hosts
|
|
56
|
+
- show project runtime updates and release completed milestone guards
|
|
57
|
+
|
|
58
|
+
### Other
|
|
59
|
+
- Fixed tests/package.test.mjs to invoke git_guard.py with pre-commit in a temporary Git repository instead of unsupported --help. The focused test failed before the fix and during restored-original sabotage. All 6 package tests now pass; resource sync and diff checks pass. Verified locally on Node 26; Node 18/20 CI reruns remain with the outer executor
|
|
60
|
+
- Preserve historical commit selection across relative document links
|
|
61
|
+
- Validate Jev probability normalization with CLI regression coverage
|
|
62
|
+
- Record passing focused checks and isolation violation
|
|
63
|
+
- Fix integration guard and runtime installer regression coverage
|
|
64
|
+
- Fixed stale runtime paths in tests/test_git_guard.py using the installed runtime resolver. Both CI failures reproduced before the fix; all 38 Git guard tests now pass. Both corrected tests also caught a temporarily disabled native guard, which was restored. git diff --check passed. Only the test file changed; remote CI remains for the outer executor
|
|
65
|
+
- Fix pinned runtime routing, guard blocking, and launcher bytes
|
|
66
|
+
- Restore same-cycle recovery after partial review completion
|
|
67
|
+
- Isolate assignment rejections and align native panel exclusions
|
|
68
|
+
- Fix dispatch isolation, legacy pinning, and independent panel selection
|
|
69
|
+
|
|
70
|
+
## [1.3.0] - 2026-09-21
|
|
71
|
+
|
|
72
|
+
### Added
|
|
73
|
+
- migrate legacy runtimes during upgrades
|
|
74
|
+
|
|
75
|
+
### Changed
|
|
76
|
+
- Clarify receipt reuse and consolidate release policy guidance
|
|
77
|
+
- Clarify legacy upgrade guidance and verify syntax
|
|
78
|
+
- update release notes for v1.2.0
|
|
79
|
+
|
|
80
|
+
### Fixed
|
|
81
|
+
- validate installer changes without live host reruns
|
|
82
|
+
- preserve closed review cycles in host recovery
|
|
83
|
+
- clarify owner gates and accept serial task release evidence
|
|
84
|
+
|
|
85
|
+
### Other
|
|
86
|
+
- Clarify reviewer ownership; live verification remains pending
|
|
87
|
+
- Reject unretired verification worktrees and branches in release evidence
|
package/DOCS.md
CHANGED
|
@@ -44,7 +44,8 @@ GSD Path has two install layers:
|
|
|
44
44
|
|
|
45
45
|
1. **Skills** — router + phase skills for your AI host(s)
|
|
46
46
|
2. **Project contracts** (optional) — `AGENTS.md`, `WORKFLOW.md`, and the
|
|
47
|
-
|
|
47
|
+
tracked runtime declaration and stable status/guard launchers; runtime code
|
|
48
|
+
lives outside the checkout under `~/.gsd-path/runtimes/`
|
|
48
49
|
|
|
49
50
|
### Decision tree
|
|
50
51
|
|
|
@@ -223,6 +224,40 @@ route through `NEEDS-ORCHESTRATOR` instead of guesses.
|
|
|
223
224
|
**Quick lane:** ≤2 tasks, one wave, no open questions — may skip research/decide
|
|
224
225
|
([FULL.md](FULL.md)).
|
|
225
226
|
|
|
227
|
+
### Worktree locations
|
|
228
|
+
|
|
229
|
+
The primary worktree stays in the folder you opened. Serial task work stays
|
|
230
|
+
there too. New parallel task worktrees, verify sidecars, and integration
|
|
231
|
+
worktrees share this managed layout:
|
|
232
|
+
|
|
233
|
+
```text
|
|
234
|
+
~/.gsd-path/projects/<repository-id>/<workspace-id>/{task,verify,integrate}/<name>
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Set `GSD_PATH_WORKTREE_ROOT` to another absolute directory before the first
|
|
238
|
+
helper-owned allocation in a workspace. The root must be outside the project's
|
|
239
|
+
own worktrees; an unrelated repository tracking your home folder is allowed.
|
|
240
|
+
Repository and workspace IDs are full SHA-256 hashes of the
|
|
241
|
+
resolved Git common directory and primary path, so separate clones and
|
|
242
|
+
primary folders do not share a location.
|
|
243
|
+
|
|
244
|
+
The first allocation pins the workspace location in
|
|
245
|
+
`<git-common-dir>/gsd-path/workspaces/<workspace-id>.json`. Later environment
|
|
246
|
+
changes do not move it. Existing sibling worktrees remain at their original
|
|
247
|
+
paths and retain the same recovery and cleanup checks. These folders contain
|
|
248
|
+
active work and evidence; they are not a disposable cache. Relocation needs
|
|
249
|
+
a separate migration; do not edit placement records or move folders manually.
|
|
250
|
+
|
|
251
|
+
New repository setup can also use an explicitly approved managed primary
|
|
252
|
+
path through the existing `--worktree` option. Its parent must already exist
|
|
253
|
+
for the read-only preview. An approved empty invocation folder is still
|
|
254
|
+
reused in place. This choice does not move the default checkout.
|
|
255
|
+
|
|
256
|
+
In the dashboard's **Watched folders**, add the managed root explicitly;
|
|
257
|
+
watching its home-directory parent does not traverse hidden `.gsd-path`.
|
|
258
|
+
Discovery follows Git's registered bound branches back to the primary and
|
|
259
|
+
applies exclusions there, so task and verify copies do not displace it.
|
|
260
|
+
|
|
226
261
|
### Key artifacts
|
|
227
262
|
|
|
228
263
|
| Path | Role |
|
|
@@ -340,3 +375,40 @@ initializer. After a milestone ships, the next one inspects again.
|
|
|
340
375
|
| Installer flags | `node scripts/install.mjs --help` |
|
|
341
376
|
|
|
342
377
|
[Workflow runner and observed token budgets](RUNTIME.md) documents canonical gate receipts, serial verification preparation, and host budget limits.
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
## Project runtime versions
|
|
381
|
+
|
|
382
|
+
`.gsd-path/runtime.json` pins an exact runtime by package version and content
|
|
383
|
+
digest. The runtime is stored under `~/.gsd-path/runtimes/<digest>/`; generated
|
|
384
|
+
implementation files are not copied into project worktrees. Track the declaration
|
|
385
|
+
and stable `.gsd-path` launchers as project configuration. Task isolation, Verify
|
|
386
|
+
sidecars and Integration checkouts inherit this configuration through Git.
|
|
387
|
+
|
|
388
|
+
Skill/plugin updates and `--hooks-refresh` retain the selected runtime. Use
|
|
389
|
+
`gsd-path --runtime-upgrade --project /absolute/project` to explicitly select
|
|
390
|
+
the supplied package's runtime and its compatible status launcher. Review those
|
|
391
|
+
configuration changes before committing them. Existing versions remain available
|
|
392
|
+
for other projects and branches.
|
|
393
|
+
|
|
394
|
+
A new machine needs the selected runtime installed before status and guards can
|
|
395
|
+
run. `gsd-path --runtime-restore --project /absolute/project --source-root
|
|
396
|
+
/path/to/matching/package` restores that exact version without changing project
|
|
397
|
+
files. The supplied package must match both the version and digest; custom source
|
|
398
|
+
builds may share a release version while having different digests. No command
|
|
399
|
+
silently substitutes a newer runtime, and status/guards never install or download.
|
|
400
|
+
|
|
401
|
+
For an old tracked `.gsd-path/runtime/`, run `gsd-path --runtime-migrate --project
|
|
402
|
+
/absolute/project --dry-run`, then the same command without `--dry-run` and review
|
|
403
|
+
the Git diff. Migration removes the generated files from the checkout and writes
|
|
404
|
+
the declaration and stable wiring. It does not stage or commit. Resolve local
|
|
405
|
+
runtime edits or unknown files first. Interrupted migration is recovered by the
|
|
406
|
+
same explicit command; its journal lives outside the checkout.
|
|
407
|
+
|
|
408
|
+
To migrate and then update skills and project wiring in one invocation, follow
|
|
409
|
+
[Legacy project runtime](UPDATE.md#legacy-project-runtime) for wizard consent,
|
|
410
|
+
unattended commands, dry-run scope, and recovery after an update failure.
|
|
411
|
+
|
|
412
|
+
An ignore rule alone cannot migrate tracked runtime files. This runtime lifecycle
|
|
413
|
+
covers runtime code and launch wiring; project-local skill copies, retained skill
|
|
414
|
+
backups, and mixed user/host settings remain separately owned installation output.
|
package/FULL.md
CHANGED
|
@@ -131,8 +131,9 @@ Install shared rules into a repo (refuses if managed files already exist):
|
|
|
131
131
|
node scripts/install.mjs --all --project /path/to/project
|
|
132
132
|
```
|
|
133
133
|
|
|
134
|
-
Writes
|
|
135
|
-
`.claude/CLAUDE.md`.
|
|
134
|
+
Writes the [project contracts](DOCS.md#installing); with Claude, also
|
|
135
|
+
`.claude/CLAUDE.md`. See [project runtime versions](DOCS.md#project-runtime-versions)
|
|
136
|
+
for runtime storage, restoration, and legacy migration.
|
|
136
137
|
Merge upgrades manually — the installer will not overwrite existing contracts.
|
|
137
138
|
|
|
138
139
|
### Guard hooks (optional)
|
package/HOOKS.md
CHANGED
|
@@ -59,9 +59,10 @@ Native configs for unselected hosts are ignored.
|
|
|
59
59
|
|
|
60
60
|
| File | Purpose |
|
|
61
61
|
| --- | --- |
|
|
62
|
-
| `.gsd-path/guard_hook.py` | Pre-tool-use guard (stdin JSON → exit 2 + denial JSON) |
|
|
62
|
+
| `.gsd-path/guard_hook.py` | Pre-tool-use guard (stdin JSON → exit 2 + denial JSON; runtime resolution failures exit 2 with stderr) |
|
|
63
63
|
| `.gsd-path/git_guard.py` | Commit and publication validator |
|
|
64
|
-
| `.gsd-path/runtime
|
|
64
|
+
| `.gsd-path/runtime.json` | Tracked selected runtime version and digest |
|
|
65
|
+
| `~/.gsd-path/runtimes/<digest>/` | Immutable external pipeline helpers and guards |
|
|
65
66
|
| `.git/hooks/pre-commit` | Runs `git_guard.py` before commit |
|
|
66
67
|
| `.git/hooks/commit-msg` | Runs `git_guard.py` with commit message |
|
|
67
68
|
| `.git/hooks/pre-push` | Runs `git_guard.py` on every pushed ref update |
|
|
@@ -114,6 +115,12 @@ See [UPDATE.md](UPDATE.md).
|
|
|
114
115
|
|
|
115
116
|
**`guard_hook.py`** (pre-tool-use):
|
|
116
117
|
|
|
118
|
+
- direct product edits outside the routed build phase while milestone work
|
|
119
|
+
remains unfinished. After integration is verified, ordinary branches allow
|
|
120
|
+
product edits, including a dirty product worktree. The proof still checks
|
|
121
|
+
the shipped archive, canonical integration merge, annotated published tag,
|
|
122
|
+
and default-branch ancestry. Missing proof keeps protection active. Closed
|
|
123
|
+
milestone branches, archives, and pipeline control files remain protected.
|
|
117
124
|
- non-read tool actions targeting archived paths or an existing ancestor of
|
|
118
125
|
the archive tree; shell operands count an ancestor only for deletion or move
|
|
119
126
|
commands
|
|
@@ -137,7 +144,7 @@ See [UPDATE.md](UPDATE.md).
|
|
|
137
144
|
- shell commands that reference the archive unless the whole command is a
|
|
138
145
|
recognized standalone read or a single-command invocation of the bundled
|
|
139
146
|
`pipeline_state.py` / `archive_milestone.py` helper, resolved to a regular file
|
|
140
|
-
inside the
|
|
147
|
+
inside the verified runtime selected by `.gsd-path/runtime.json` (legacy projects use `.gsd-path/runtime/` beside `guard_hook.py`
|
|
141
148
|
in the repository layout), using exactly `python` or `python3` with optional
|
|
142
149
|
`-B`; non-empty supplied tool working directories are authoritative. Empty
|
|
143
150
|
strings, including list items, are treated as absent: nested payloads inherit
|
|
@@ -176,16 +183,18 @@ such as `rm -rf scratch` passes the archive check; other guard rules still apply
|
|
|
176
183
|
|
|
177
184
|
- modifies, deletes, or renames away tracked archive paths
|
|
178
185
|
- `ship:` commits (case-insensitive) staging paths outside `.project/`
|
|
179
|
-
-
|
|
180
|
-
`
|
|
181
|
-
it — the bound branch itself, `gsd-path-task/` branches, sidecars, and any
|
|
182
|
-
branch cut from them): commits staging paths outside `.project/` (or the
|
|
186
|
+
- while committed `STATE.md` names unfinished milestone work, including
|
|
187
|
+
`shipped/done` without verified integration: commits staging paths outside `.project/` (or the
|
|
183
188
|
guard's own `.gsd-path/` and native hook settings) unless the phase is
|
|
184
189
|
`build` and they are landing commits as `isolation.py land` writes them —
|
|
185
190
|
subject `<task id>: <task title>` matching the task file at `Base:`, a full
|
|
186
191
|
base SHA HEAD descends from, the staged task file, only that task's declared
|
|
187
192
|
`files:`, and a `Files:` list of exactly the staged paths. Outside build the
|
|
188
|
-
reviewed HEAD is frozen; product fixes reopen through the patch plan
|
|
193
|
+
reviewed HEAD is frozen; product fixes reopen through the patch plan.
|
|
194
|
+
The validated integration merge is allowed to complete before publication
|
|
195
|
+
proof exists; an ordinary commit with an integration subject is not exempt
|
|
196
|
+
- deleting the recorded branch or switching to another branch while carrying
|
|
197
|
+
unfinished state does not release product commit protection
|
|
189
198
|
- pushes (to any remote) that move a `gsd-path/M###` ref anywhere but its
|
|
190
199
|
strict ship commit, or delete it while it holds anything else; and pushes of
|
|
191
200
|
any other ref whose commit carries a `STATE.md` that still owes a ship commit
|
|
@@ -268,6 +277,6 @@ not intercept subagent tools — treat coverage as orchestrator-level.
|
|
|
268
277
|
| Tool denied editing archive | Pre-tool guard — use active paths, not archive |
|
|
269
278
|
| Hook not running in Cursor | Run `--hooks-refresh-full --cursor --project /path/to/repo` |
|
|
270
279
|
| `--hooks-refresh` rejects an unmanaged guard | Move the foreign guard aside, then rerun refresh; use `--hooks-init` if guards are wanted |
|
|
271
|
-
|
|
|
280
|
+
| Runtime missing, invalid, or legacy | Follow [runtime restoration or migration](DOCS.md#project-runtime-versions) |
|
|
272
281
|
|
|
273
282
|
More: [DOCS.md](DOCS.md#help) · [UPDATE.md](UPDATE.md)
|
package/QUICK.md
CHANGED
|
@@ -64,12 +64,11 @@ cd /path/to/your/repo
|
|
|
64
64
|
node scripts/install.mjs --all --project "$(pwd)"
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
Installs
|
|
67
|
+
Installs the [project contracts](DOCS.md#installing)
|
|
68
68
|
(+ `.claude/CLAUDE.md` if Claude is selected).
|
|
69
69
|
If those managed files already exist, a plain install **refuses and installs
|
|
70
|
-
nothing** — use
|
|
71
|
-
|
|
72
|
-
([UPDATE.md](UPDATE.md)).
|
|
70
|
+
nothing** — use [the update guide](UPDATE.md) for existing installations,
|
|
71
|
+
including [legacy runtime migration during upgrades](UPDATE.md#legacy-project-runtime).
|
|
73
72
|
|
|
74
73
|
**Optional** archive/git guards:
|
|
75
74
|
|
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.3.0](https://www.npmjs.com/package/@opengsd/gsd-path/v/1.3.0) — [release notes](CHANGELOG.md#130---2026-09-21)
|
|
20
|
+
|
|
21
|
+
**Recent highlights**
|
|
22
|
+
- migrate legacy runtimes during upgrades
|
|
23
|
+
- validate installer changes without live host reruns
|
|
24
|
+
- preserve closed review cycles in host recovery
|
|
25
|
+
- clarify owner gates and accept serial task release evidence
|
|
26
|
+
- Clarify receipt reuse and consolidate release policy guidance
|
|
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,10 +39,39 @@ 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 |
|
|
30
43
|
| [daemon/README.md](daemon/README.md) | Dashboard, menu-bar app, and monitoring setup |
|
|
44
|
+
| [CHANGELOG.md](CHANGELOG.md) | Published release notes |
|
|
31
45
|
| [RELEASE.md](RELEASE.md) | Maintainer CI and npm release cycle |
|
|
32
46
|
| [GUIDE.md](GUIDE.md) | Pointer to the guides above |
|
|
33
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
|
+
|
|
34
75
|
## Install from npm
|
|
35
76
|
|
|
36
77
|
Requires **Node.js 18.17+** for the npm installer and **Python 3.9+** for
|
|
@@ -85,28 +126,54 @@ Add `--local` when checking project-local skills, from that project directory.
|
|
|
85
126
|
See [QUICK.md](QUICK.md) for the first-run checklist and [HOOKS.md](HOOKS.md)
|
|
86
127
|
for optional Git and host guard hooks.
|
|
87
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
|
+
|
|
88
137
|
## Dashboard and menu-bar toolbar
|
|
89
138
|
|
|
90
139
|
The optional **OpenGSD Path monitor** shows your projects without opening each
|
|
91
140
|
project's `.project/` files. It watches the folders you choose and reads project
|
|
92
|
-
state
|
|
141
|
+
state without advancing phase gates. Explicit Path settings saves use the
|
|
142
|
+
validated configuration helper; background monitoring remains read-only.
|
|
93
143
|
The monitor is a separate install from the npm skills package.
|
|
94
144
|
|
|
95
145
|
### Dashboard
|
|
96
146
|
|
|
97
147
|
The project board shows blocked, active, and shipped work, with milestone and
|
|
98
148
|
phase progress, task counts, last activity, and available usage data. Use the
|
|
99
|
-
|
|
100
|
-
|
|
149
|
+
[dashboard controls](daemon/README.md#dashboard) to filter or search projects,
|
|
150
|
+
switch between Board and Milestones, refresh status, and manage settings.
|
|
101
151
|
|
|
102
|
-

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

|
|
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.
|
|
110
177
|
|
|
111
178
|
### macOS menu bar
|
|
112
179
|
|
package/RUNTIME.md
CHANGED
|
@@ -74,8 +74,9 @@ skeptic attempts under `skeptics/`.
|
|
|
74
74
|
|
|
75
75
|
The child command is owner-supplied shell words. The driver runs it with the
|
|
76
76
|
isolated worktree as its working directory and the self-contained brief on
|
|
77
|
-
stdin; the owner's flags decide the child's permissions and
|
|
78
|
-
|
|
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
|
|
79
80
|
`codex exec --json <owner sandbox flags>`. A coder child ends its final message with
|
|
80
81
|
`RESULT: <task id> ready|blocked`; no line means blocked. A Log delta whose
|
|
81
82
|
first entry after the last recorded `Orchestrator answer:` leads with
|
|
@@ -83,8 +84,9 @@ first entry after the last recorded `Orchestrator answer:` leads with
|
|
|
83
84
|
a timeout or nonzero exit is a failure even if the child wrote a question.
|
|
84
85
|
Canonical reviewer children instead return the `Wave verdict:` line in their
|
|
85
86
|
validated review artifact; they do not need a `RESULT:` line.
|
|
86
|
-
Panel children write family findings without a Wave verdict. The
|
|
87
|
-
|
|
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.
|
|
88
90
|
`--wave` is required and pins the parent-selected wave, including on resumed
|
|
89
91
|
calls. In `round`, an unfinished earlier wave blocks dispatch before the bookkeeping
|
|
90
92
|
checkpoint. Child completion is recorded in `exit.json`; the parent alone
|
|
@@ -93,6 +95,9 @@ For `review`, `panel`, and `skeptics`, when the child process is gone and `finis
|
|
|
93
95
|
unset, the driver rereads that attempt's state and exit receipt before
|
|
94
96
|
collecting the result or blocking with
|
|
95
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.
|
|
96
101
|
`--wait`, `--child-timeout`, and `--capacity` (concurrent children) have
|
|
97
102
|
no defaults. `--max-attempts` defaults to 2 dispatches per task per milestone,
|
|
98
103
|
the build contract's one logged redispatch after the first attempt; question
|
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.
|
|
@@ -97,6 +98,32 @@ node scripts/install.mjs --update --claude --cursor
|
|
|
97
98
|
|
|
98
99
|
`--update` only refreshes hosts that **already have** GSD Path installed.
|
|
99
100
|
|
|
101
|
+
### Legacy project runtime
|
|
102
|
+
|
|
103
|
+
The interactive npm installer detects the old `.gsd-path/runtime/` layout when
|
|
104
|
+
you choose to update project wiring. Choose **Migrate and continue upgrade** to
|
|
105
|
+
migrate first, then update skills and wiring. Cancelling leaves the installation
|
|
106
|
+
unchanged. Migration preserves locally modified files by stopping for you to
|
|
107
|
+
resolve them; it never stages or commits changes.
|
|
108
|
+
|
|
109
|
+
For unattended upgrades, migration requires explicit consent:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
npx @opengsd/gsd-path@latest --update --runtime-migrate --project "/absolute/project" --dry-run
|
|
113
|
+
npx @opengsd/gsd-path@latest --update --runtime-migrate --project "/absolute/project"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The combined dry run previews migration only and writes nothing. The real command
|
|
117
|
+
migrates, then validates and applies the update. These are separate operations:
|
|
118
|
+
if the update fails, the completed migration remains as an unstaged Git diff.
|
|
119
|
+
Review it with `git status --short` and `git diff` in the project.
|
|
120
|
+
|
|
121
|
+
Migration is needed once per project. For later updates, omit `--runtime-migrate`.
|
|
122
|
+
For runtime selection after migration, see
|
|
123
|
+
[Project runtime versions](DOCS.md#project-runtime-versions).
|
|
124
|
+
Without migration consent, legacy project updates stop before writing files and
|
|
125
|
+
print the exact migration command.
|
|
126
|
+
|
|
100
127
|
### After updating
|
|
101
128
|
|
|
102
129
|
1. Restart your agent session (hosts reload skills on session start).
|
|
@@ -120,16 +147,33 @@ You can update proactively with [commands above](#update-skills) without waiting
|
|
|
120
147
|
|
|
121
148
|
## Update the project runtime and guard hooks
|
|
122
149
|
|
|
123
|
-
|
|
150
|
+
The Dashboard's **Plugin → Watched projects → Runtime version** column shows
|
|
151
|
+
each project's installed runtime release. Global skill versions are separate;
|
|
152
|
+
a global update does not update project runtimes. Use the project's **Update**
|
|
153
|
+
button to refresh its runtime and existing guards. Install and update actions
|
|
154
|
+
show progress, success or failure, and installer output.
|
|
155
|
+
|
|
156
|
+
If the daemon's plugin source checkout has local changes, project Update uses
|
|
157
|
+
that local build and says so in its result. It does not pull remote changes over
|
|
158
|
+
local edits. Clean source checkouts still refresh before a project update.
|
|
159
|
+
|
|
160
|
+
Older unstamped installs show **Unknown — version metadata unavailable**.
|
|
161
|
+
This does not establish that their runtime is outdated or broken. **Update**
|
|
162
|
+
uses the guarded migration for legacy runtime directories and an upgrade for
|
|
163
|
+
version-pinned runtimes. Migration leaves a reviewable Git diff and refuses
|
|
164
|
+
modified or unknown runtime files; the dashboard shows the failure reason.
|
|
165
|
+
See [Project runtime versions](DOCS.md#project-runtime-versions) for manual
|
|
166
|
+
migration and preview commands. Use `--doctor --project PATH` to check runtime files.
|
|
167
|
+
|
|
168
|
+
For upgrades, exact-version restoration, or legacy migration, follow
|
|
169
|
+
[Project runtime versions](DOCS.md#project-runtime-versions). To refresh hook wiring:
|
|
124
170
|
|
|
125
171
|
```bash
|
|
126
172
|
node scripts/install.mjs --hooks-refresh --project /path/to/repo
|
|
127
173
|
```
|
|
128
174
|
|
|
129
|
-
This refresh
|
|
130
|
-
|
|
131
|
-
installed. Guard files must contain `gsd-path guard`; runtime files must
|
|
132
|
-
contain `gsd-path project runtime`.
|
|
175
|
+
This refresh retains the selected runtime and leaves hookless installs hookless.
|
|
176
|
+
Guard files must contain `gsd-path guard`.
|
|
133
177
|
|
|
134
178
|
Include existing native settings and git hooks, and create missing settings for
|
|
135
179
|
explicitly selected hosts:
|
|
@@ -164,7 +208,8 @@ To adopt upstream template changes:
|
|
|
164
208
|
1. Open new templates in the gsd-path repo or npm package
|
|
165
209
|
2. `diff` against your project copies
|
|
166
210
|
3. Merge manually
|
|
167
|
-
4.
|
|
211
|
+
4. Follow the [runtime lifecycle](DOCS.md#project-runtime-versions) when adopting
|
|
212
|
+
runtime changes. Use `--hooks-refresh-full` when host wiring needs a refresh.
|
|
168
213
|
5. Never delete active `.project/` milestone state
|
|
169
214
|
|
|
170
215
|
An in-flight milestone whose `INTENT.md` or `ROADMAP.md` predates `Surfaces:`
|
|
@@ -186,7 +231,7 @@ Unrecognized or foreign `.project/` state is never auto-migrated — the router
|
|
|
186
231
|
| Skills still old | Restart session; confirm root with `--update --dry-run` |
|
|
187
232
|
| Update rolled back | Read installer error; fix path overlap; retry |
|
|
188
233
|
| `--hooks-refresh` rejects an unmanaged guard | Move the foreign guard aside, then rerun refresh; use `--hooks-init` if guards are wanted |
|
|
189
|
-
|
|
|
234
|
+
| Runtime missing, invalid, or legacy | Follow [runtime restoration or migration](DOCS.md#project-runtime-versions) |
|
|
190
235
|
| Undo skill update | Copy from `disabled-gsd-skills` next to skills root |
|
|
191
236
|
| npm vs clone confusion | Pick one: `npx @opengsd/gsd-path@latest --update` **or** clone + `install.mjs --update` |
|
|
192
237
|
| Router still shows update line | Run update; or ignore — notice is informational |
|
package/WORKFLOW.md
CHANGED
|
@@ -97,8 +97,11 @@ unpublished work; it never invents `git reset`.
|
|
|
97
97
|
|
|
98
98
|
<!-- gsd-path/plain-prompt-reentry/v1 -->
|
|
99
99
|
|
|
100
|
-
Project installs
|
|
101
|
-
|
|
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.
|
|
102
105
|
On any turn that did not explicitly invoke a GSD Path
|
|
103
106
|
skill, an owned `.project/STATE.md` activates re-entry. Informational prompts
|
|
104
107
|
finish read-only and end with the current **Outcome** / **Review** / **Next**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengsd/gsd-path",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.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
6
|
"repository": {
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"plugin.json",
|
|
20
20
|
"scripts/install.mjs",
|
|
21
21
|
"scripts/install.py",
|
|
22
|
+
"scripts/runtime_store.py",
|
|
22
23
|
"scripts/migrate_core.py",
|
|
23
24
|
"scripts/core_hook_gate.py",
|
|
24
25
|
"scripts/core_hook_settings.py",
|
|
@@ -26,6 +27,7 @@
|
|
|
26
27
|
"scripts/wizard.mjs",
|
|
27
28
|
"scripts/skill-resources.json",
|
|
28
29
|
"scripts/_common.py",
|
|
30
|
+
"scripts/worktree_paths.py",
|
|
29
31
|
"scripts/build_recovery.py",
|
|
30
32
|
"scripts/state_checkpoint.py",
|
|
31
33
|
"scripts/roadmap.py",
|
|
@@ -40,7 +42,10 @@
|
|
|
40
42
|
"scripts/check_handoffs.py",
|
|
41
43
|
"scripts/check_docs_audit.py",
|
|
42
44
|
"scripts/check_task_briefs.py",
|
|
45
|
+
"scripts/path_config.py",
|
|
46
|
+
"scripts/model_policy.py",
|
|
43
47
|
"scripts/review_panel.py",
|
|
48
|
+
"scripts/jev_review.py",
|
|
44
49
|
"scripts/review_findings.py",
|
|
45
50
|
"scripts/check_update.py",
|
|
46
51
|
"scripts/guard_hook.py",
|
|
@@ -59,6 +64,7 @@
|
|
|
59
64
|
"scripts/pipeline_undo.py",
|
|
60
65
|
"scripts/pipeline_diagnose.py",
|
|
61
66
|
"README.md",
|
|
67
|
+
"CHANGELOG.md",
|
|
62
68
|
"MIGRATE.md",
|
|
63
69
|
"RUNTIME.md",
|
|
64
70
|
"DOCS.md",
|
|
@@ -86,6 +92,8 @@
|
|
|
86
92
|
"test:daemon": "PYTHONPATH=daemon python3 -m unittest discover -s tests -p 'test_daemon_*.py'",
|
|
87
93
|
"verify": "npm test && npm run test:python && python3 scripts/sync_skill_resources.py --check",
|
|
88
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",
|
|
89
97
|
"prepublishOnly": "npm run verify:release"
|
|
90
98
|
},
|
|
91
99
|
"devDependencies": {
|