@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
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Return a blocked build to its contract owner
|
|
2
|
+
|
|
3
|
+
Use this contract only for an active milestone at `build/blocked`: a documented
|
|
4
|
+
structural plan defect, or an explicit user ruling that changes approved intent.
|
|
5
|
+
It does not reopen ship, archived milestones, or lookahead. Build owns entry;
|
|
6
|
+
Define owns intent corrections; Plan owns the replacement task inventory and
|
|
7
|
+
approval. Routing remains a caller handoff under AGENTS.md.
|
|
8
|
+
|
|
9
|
+
## Build: checkpoint and enter
|
|
10
|
+
|
|
11
|
+
1. Record the finding or verbatim user ruling in STATE through its helper.
|
|
12
|
+
Stop dispatch. Use the normal recovery and retirement procedures until
|
|
13
|
+
every task is either unstarted `pending` with null dispatch metadata or
|
|
14
|
+
proven `done`. Preserve owned uncommitted work before any retirement.
|
|
15
|
+
Settle reviewers and their sidecars too. Dispatch records must have no pending
|
|
16
|
+
cleanup; records with reviewer `worktree` and `branch` ownership must also
|
|
17
|
+
record `cleanup_complete`. A `blocked` or `collected` outcome alone does not
|
|
18
|
+
prove retirement. Records that never owned a reviewer sidecar do not require
|
|
19
|
+
that retirement receipt. Use the existing dispatch retirement procedures;
|
|
20
|
+
recovery does not retire sidecars itself. Never infer that a timed-out child
|
|
21
|
+
stopped. Checkpoint the blocked state and artifacts using the Build
|
|
22
|
+
bookkeeping contract; the primary must be clean.
|
|
23
|
+
2. Run `pipeline_state.py transition` with the complete current state expected,
|
|
24
|
+
`--set-status active`, and the matching target and event:
|
|
25
|
+
|
|
26
|
+
| Cause | Target | Exact event |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| User changes a criterion, constraint, or veto | `--set-phase define` | `build intent corrections requested` |
|
|
29
|
+
| Task inventory, dependency, or wave repair | `--set-phase plan` | `build plan repair requested` |
|
|
30
|
+
|
|
31
|
+
The helper records the committed recovery base in STATE atomically. Do not
|
|
32
|
+
author or edit that record. Milestone, branch, integration settings, and
|
|
33
|
+
landed task contracts remain fixed throughout recovery.
|
|
34
|
+
3. Return to the router or name the selected explicit skill. The route names
|
|
35
|
+
`corrections` for Define and `build-repair` for Plan. Other blocked-build
|
|
36
|
+
failures continue through ordinary Build recovery.
|
|
37
|
+
|
|
38
|
+
## Define and Plan: prepare before editing
|
|
39
|
+
|
|
40
|
+
Run the bundled `pipeline_state.py prepare-build-recovery --repo <absolute-root>`
|
|
41
|
+
before changing any recovery artifact. This repeatable operation preserves the
|
|
42
|
+
old review directory under `plan/build-recovery-<base>/review` and starts a fresh
|
|
43
|
+
active review directory. STATE's recorded base owns an interrupted move; rerun
|
|
44
|
+
this command to finish it. The helper validates the preserved bytes against Git.
|
|
45
|
+
Do not remove, rewrite, or use the preserved reviews as current approval.
|
|
46
|
+
|
|
47
|
+
**Define corrections.** Read the existing intent and governing program artifacts.
|
|
48
|
+
Interview only the requested change; append the user's words under
|
|
49
|
+
`## Corrections`, revise the affected intent, and present the delta for approval.
|
|
50
|
+
Keep the milestone identity. Reclassify the lane using the normal lane rules.
|
|
51
|
+
After approval, use the normal `define/active → define/done` transition and route
|
|
52
|
+
from the approved lane. Standard intent goes through Research and Decide again;
|
|
53
|
+
quick and milestone intent use their existing evidence gates. A program charter
|
|
54
|
+
or roadmap conflict still requires its legal owner gate; this path cannot waive it.
|
|
55
|
+
|
|
56
|
+
**Plan build-repair.** Read the corrected intent, current synthesis, existing plan,
|
|
57
|
+
task files, and recovery base. Use the normal planner, lint, panel, and approval
|
|
58
|
+
gates. Repair the remaining task inventory as needed, including split, rename,
|
|
59
|
+
dependency, or wave changes. Keep IDs ordered and contiguous. Preserve every
|
|
60
|
+
landed task file byte-for-byte, including its recorded base and proof. Any new
|
|
61
|
+
work to satisfy a corrected criterion belongs in new pending tasks, not rewritten
|
|
62
|
+
landed contracts. A plan-only recovery must not change approved intent.
|
|
63
|
+
|
|
64
|
+
## Approve and return to Build
|
|
65
|
+
|
|
66
|
+
Use normal `pipeline_state.py approve --kind plan --expected-head <HEAD>`.
|
|
67
|
+
Neither `--patch` nor `--defer-checkpoint` is legal for recovery. The helper
|
|
68
|
+
checks landed-task preservation and restored intent ownership, restores review
|
|
69
|
+
evidence only for unchanged contracts, and creates the normal journaled plan
|
|
70
|
+
checkpoint. A failed approval leaves recovery open.
|
|
71
|
+
|
|
72
|
+
Return through `plan/done → build/active` with event `build started`. The dispatch
|
|
73
|
+
driver uses a separate record directory for this recovery base, while retaining
|
|
74
|
+
the milestone budget ledger. Resume only from the new approved task inventory.
|
|
75
|
+
Unchanged wave evidence remains usable; changed waves need review in the new
|
|
76
|
+
record directory. Retained task Verify receipts remain historical evidence for
|
|
77
|
+
their original task and base, never proof for a changed task. Final review still
|
|
78
|
+
requires current-HEAD evidence before shipment.
|
|
@@ -7,10 +7,7 @@ use exactly one matching branch:
|
|
|
7
7
|
- A `spawn_agent` tool exposing `task_name`, `agent_type`, and `fork_turns` is
|
|
8
8
|
Codex. Use `fork_turns: "none"`; coders use the built-in `worker` type and
|
|
9
9
|
every other role uses `default`. Reuse a completed logical target with
|
|
10
|
-
`followup_task`.
|
|
11
|
-
`heavy` tier and `low` for the portable `light` tier; leave reasoning effort
|
|
12
|
-
unset for the session-default tier, and never pass `heavy` or `light` as a
|
|
13
|
-
literal Codex value.
|
|
10
|
+
`followup_task`.
|
|
14
11
|
- A `spawn_agent` tool without those Codex fields is Zed. Spawn one isolated,
|
|
15
12
|
full-capability child per brief. Zed children are not resumable, so retries
|
|
16
13
|
use a fresh child and a complete prompt.
|
|
@@ -26,7 +23,7 @@ use exactly one matching branch:
|
|
|
26
23
|
the complete new prompt for later work. Wait for a colliding active child and
|
|
27
24
|
collect results with `wait_commands_or_subagents`.
|
|
28
25
|
- A `Task` tool advertising the custom `gsd-path` subagent is Cursor. Use that
|
|
29
|
-
|
|
26
|
+
full-capability child. Resume it by returned agent ID when
|
|
30
27
|
available; otherwise retry with a fresh child and a complete prompt.
|
|
31
28
|
- A `Task` tool advertising the built-in `general` subagent is OpenCode. Use
|
|
32
29
|
that child; if an installed OpenCode v2 host exposes the renamed `subagent`
|
|
@@ -65,20 +62,10 @@ For every branch:
|
|
|
65
62
|
- Resolve the phase's linked role brief to an absolute path, include it in the
|
|
66
63
|
prompt, and require the child to read it before acting. The role brief
|
|
67
64
|
supplies the read-only boundary for auditors and reviewers.
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
host, use only an exact native equivalent advertised by that host; otherwise
|
|
73
|
-
do not override the model or reasoning effort. The only exception is a
|
|
74
|
-
review-panel child: when the host advertises model selection, pass the exact
|
|
75
|
-
slug returned by `scripts/review_panel.py resolve` for that family. Never
|
|
76
|
-
override the model on the canonical reviewer, planner, coder, or any other
|
|
77
|
-
role.
|
|
78
|
-
Host isolation: none. The child's working directory is the exact absolute
|
|
79
|
-
root GSD Path supplied; a host SHA checkout or extra worktree is a contract
|
|
80
|
-
failure. Never ask the host to create a worktree. Give the child the exact
|
|
81
|
-
repository or linked-worktree root supplied by GSD Path.
|
|
65
|
+
- Model selection: before every child launch or continuation, follow
|
|
66
|
+
[the model-policy contract](model-policy.md) and apply its recorded
|
|
67
|
+
native arguments. It owns defaults, project settings, task overrides,
|
|
68
|
+
capability failures, and reassignment. Host isolation: none. Use the exact GSD Path supplied root; create no extra checkout.
|
|
82
69
|
- Send a self-contained prompt with absolute input, template, and output paths
|
|
83
70
|
plus the child's bounded responsibility. Every brief also names the absolute
|
|
84
71
|
`AGENTS.md` and `WORKFLOW.md` paths (or explicitly says they are absent), the
|
|
@@ -122,6 +109,12 @@ directory for the full logical session; resumptions reuse it. Record completed
|
|
|
122
109
|
parent CLI run events and each native child's session events with stable logical
|
|
123
110
|
task names before the next dispatch. The helper reads host counters and refuses
|
|
124
111
|
incomplete or ambiguous usage; never estimate tokens or reset the ledger.
|
|
112
|
+
When the verified CLI adapter reports cumulative counters across `resume`, record
|
|
113
|
+
each later invocation with `--previous-events <previous recorded CLI events>`.
|
|
114
|
+
The helper checks thread identity and records only the new output, preserving the
|
|
115
|
+
raw total and predecessor. Keep that chain in order; never sum cumulative totals.
|
|
116
|
+
Use ordinary `record` for per-invocation counters. An unknown counter convention
|
|
117
|
+
is unproven usage, not permission to guess.
|
|
125
118
|
Run `admit` for the next task and stop dispatch on a blocked result. Preserve
|
|
126
119
|
its output in the dispatch evidence. This gates observed usage only: concurrent
|
|
127
120
|
or in-flight work can overrun before the host reports usage. Codex CLI has no
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Dispatch model policy
|
|
2
|
+
|
|
3
|
+
Before native dispatch, run the bundled `scripts/model_policy.py`. CLI dispatch
|
|
4
|
+
uses the same resolver inside `dispatch_driver.py`. The helper owns model and
|
|
5
|
+
effort decisions; apply its output instead of choosing again in prose.
|
|
6
|
+
|
|
7
|
+
## Project choices
|
|
8
|
+
|
|
9
|
+
Use `<repo>/.project/model-policy.json`, including when the active track is
|
|
10
|
+
`.project/next`. This file owns project overrides. It is not phase status.
|
|
11
|
+
No file is required to retain existing behavior. `path config` can also set user
|
|
12
|
+
defaults in `~/.gsd-path/config.json` under `models`. Project common roles override
|
|
13
|
+
user host and common roles. Within each scope, host roles override common roles.
|
|
14
|
+
Task overrides still win, and recorded assignments stay pinned.
|
|
15
|
+
|
|
16
|
+
```json
|
|
17
|
+
{
|
|
18
|
+
"roles": {"coder": {"model": "inherit"}},
|
|
19
|
+
"hosts": {"codex": {"plan": {"effort": "high"}}}
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Values are exact advertised model/effort strings or `inherit`. This example
|
|
24
|
+
illustrates configuration; it is not a cost-saving preset. Set concrete models
|
|
25
|
+
only from the current host's advertised choices. Host-specific role settings
|
|
26
|
+
override common role settings. Task settings override both, independently for
|
|
27
|
+
model and effort; omitted fields retain the next applicable value. Explicit
|
|
28
|
+
`inherit` removes that field's override. There are no automatic fallbacks.
|
|
29
|
+
|
|
30
|
+
Role keys are `coder`, `reviewer` (wave, final, and gap review), `review_panel`,
|
|
31
|
+
`skeptic`, `inspect_codebase`, `inspect_docs`, `docs_audit`, `research`, `decide`,
|
|
32
|
+
`roadmap`, `plan`, and `plan_patch`. Use the logical task name as the assignment,
|
|
33
|
+
not as the role. Keep each panel family and review lens a distinct assignment.
|
|
34
|
+
|
|
35
|
+
The helper retains heavy effort hints for plan, plan_patch, decide, and roadmap;
|
|
36
|
+
light hints for inspect_docs and docs_audit; otherwise effort inherits. Codex
|
|
37
|
+
maps these hints to high/low. Other hosts use only advertised equivalents.
|
|
38
|
+
Hints are conditional; unsupported explicit settings stop the affected child.
|
|
39
|
+
|
|
40
|
+
Coders may have scalar `model:` and `effort:` fields in their task frontmatter.
|
|
41
|
+
These are part of the approved task contract. Pass the task file with `--task`.
|
|
42
|
+
For other roles, pass assignment-specific `--model` or `--effort` when the owner
|
|
43
|
+
explicitly overrides the role choice. Coder settings do not affect reviewers.
|
|
44
|
+
|
|
45
|
+
## Advertised capabilities
|
|
46
|
+
|
|
47
|
+
Capture the current child tool's schema and advertised choices in a JSON file
|
|
48
|
+
outside the product tree. For each supported control, provide its native field,
|
|
49
|
+
allowed values, and, for CLI dispatch, its documented argument template. Omit
|
|
50
|
+
unsupported controls. The values below are fixture examples, not a host catalog:
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"host": "codex",
|
|
55
|
+
"model": {"field": "model", "values": ["example-model"],
|
|
56
|
+
"args": ["--model", "{value}"]},
|
|
57
|
+
"effort": {"field": "reasoning_effort", "values": ["low", "high"],
|
|
58
|
+
"args": ["-c", "model_reasoning_effort={value}"]}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`effort_hints` may map heavy/light to exact advertised equivalents. Supply
|
|
63
|
+
`inherited_model` only when the host exposes its identity. Never infer models,
|
|
64
|
+
fields, or CLI flags from a host name. Every existing host uses this contract,
|
|
65
|
+
including hosts with no model or effort controls. Their explicit unsupported
|
|
66
|
+
settings block; their default inheritance remains usable.
|
|
67
|
+
|
|
68
|
+
## Native lifecycle
|
|
69
|
+
|
|
70
|
+
Resolve the bundled helper to an absolute path. Use one record under the Git
|
|
71
|
+
common directory's `gsd-path/model-selection/` directory per assignment. Scope
|
|
72
|
+
the path and `--scope` to the milestone, active/lookahead track, and review cycle
|
|
73
|
+
where applicable; later work must not reuse an earlier record.
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
python3 -B <helper> resolve --repo <primary> --scope <milestone/track/cycle> --assignment <logical-name> --role <role> --record <absolute-record> --capabilities <advertised-json>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Only `status: ready` authorizes launch. Apply `selection.native` exactly to
|
|
80
|
+
the advertised child tool, preserving the host adapter's other controls and
|
|
81
|
+
GSD Path task isolation. The recorded selection applies to a fresh child too.
|
|
82
|
+
If an existing child is still active, reattach or send its continuation;
|
|
83
|
+
resolving again does not authorize launching a second copy. When a host cannot
|
|
84
|
+
change model/effort on a resumed child, a changed selection requires a fresh
|
|
85
|
+
child after terminal completion of the earlier one.
|
|
86
|
+
|
|
87
|
+
After terminal completion, release the assignment with `release` using the
|
|
88
|
+
same identity arguments and `--terminal-result <host-completion-evidence>`.
|
|
89
|
+
To change the selection, use `reassign` with the same identity, current
|
|
90
|
+
capabilities, explicit model/effort changes, and `--ruling <verbatim-owner-ruling>`.
|
|
91
|
+
It requires an inactive assignment and preserves prior selection history.
|
|
92
|
+
Resolve again before starting the replacement. A project-policy edit alone
|
|
93
|
+
does not change an existing selection. Task-contract edits still require their
|
|
94
|
+
legal pipeline path.
|
|
95
|
+
|
|
96
|
+
For panel children, first resolve membership with `review_panel.py resolve`,
|
|
97
|
+
passing `--parent-slug` when known and repeating `--exclude-family` for every
|
|
98
|
+
known parent and canonical-reviewer family (including all deep review lenses).
|
|
99
|
+
Apply these exclusions before persisting membership. Detected membership skips
|
|
100
|
+
excluded families; explicitly named conflicts block. Pass its selected model through `--panel-model`, and pass `--panel-family` plus
|
|
101
|
+
`--exclude-family` for known parent and
|
|
102
|
+
canonical-reviewer families. Persist and reuse the panel roster. Policy cannot
|
|
103
|
+
waive family independence or change canonical review authority. A changed
|
|
104
|
+
panel roster requires a new legal review assignment.
|
|
105
|
+
|
|
106
|
+
Requested controls are durable evidence. When the host hides the inherited
|
|
107
|
+
model identity, exact effective-model continuity across fresh children remains
|
|
108
|
+
unproven; report that limitation rather than asserting an identity.
|
|
109
|
+
|
|
110
|
+
## CLI lifecycle
|
|
111
|
+
|
|
112
|
+
Pass `--model-capabilities <advertised-json>` to the driver. Commands use whole
|
|
113
|
+
argument slots `{model_args}` and `{effort_args}`; the resolver expands these
|
|
114
|
+
to argument arrays. They are not shell substitutions. Remove fixed model and
|
|
115
|
+
effort flags when using these slots; conflicting controls block dispatch.
|
|
116
|
+
Commands with explicit policy choices must expose the corresponding slots,
|
|
117
|
+
including when an explicit choice is `inherit`. Unconfigured legacy commands
|
|
118
|
+
without a capability file retain their existing behavior.
|
|
119
|
+
An existing legacy assignment with no recorded selection keeps its saved
|
|
120
|
+
command across retries, even if project policy or capabilities are later added.
|
|
121
|
+
It cannot use `reassign-model`; model controls require a new explicit assignment.
|
|
122
|
+
|
|
123
|
+
Review and skeptic commands accept `--model` and `--effort` for that assignment.
|
|
124
|
+
For distinct panel families or review lenses, pass `--model-overrides <json>`:
|
|
125
|
+
a mapping from exact logical assignment names to model/effort objects. Each
|
|
126
|
+
entry applies only to its named assignment; conflicting explicit inputs block.
|
|
127
|
+
A common panel model must satisfy every selected family, so use these scoped
|
|
128
|
+
overrides when families need different models. Family checks remain mandatory.
|
|
129
|
+
Coders read their task overrides. Panels with capabilities use the argument
|
|
130
|
+
slots; legacy panel commands may retain their existing `{model}` placeholder.
|
|
131
|
+
|
|
132
|
+
The driver persists selection before launch and retains it on retry. Use
|
|
133
|
+
`dispatch_driver.py reassign-model --repo <primary> --task-id <logical-name>
|
|
134
|
+
--model-capabilities <advertised-json> --model <slug> --ruling <owner-ruling>`
|
|
135
|
+
for an inactive unfinished assignment. Finished work and pinned panel rosters
|
|
136
|
+
require a new legal assignment. Earlier attempt evidence is retained.
|
|
137
|
+
|
|
138
|
+
Compare total cost only with observed usage and outcomes, including retries.
|
|
139
|
+
These controls do not establish cost savings, pricing, or quality rankings.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Project runtime selection
|
|
2
|
+
|
|
3
|
+
Before running a project runtime helper, check for
|
|
4
|
+
`<absolute-project>/.gsd-path/runtime.json`. When present, run the stable launcher:
|
|
5
|
+
|
|
6
|
+
```sh
|
|
7
|
+
python3 -B <absolute-project>/.gsd-path/status_runtime.py --repo <absolute-project> --runtime-path
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
Use `python` only when it is the compatible Python 3.9+ interpreter. A failure
|
|
11
|
+
stops helper execution: follow the exact-version restore action in the error.
|
|
12
|
+
Do not install, upgrade, or fall back to the current plugin's runtime implicitly.
|
|
13
|
+
|
|
14
|
+
The returned directory is the verified Project runtime. Resolve helper names
|
|
15
|
+
present in its `manifest.json` from that directory, including status, state,
|
|
16
|
+
isolation, integration, archive, recovery, build-state, final-verification, and guard helpers.
|
|
17
|
+
The workflow runner resolves its subprocess helpers from this same directory;
|
|
18
|
+
helper imports stay within the selected runtime. This rule overrides
|
|
19
|
+
references to bundled copies of those helpers. Other skill helpers, templates,
|
|
20
|
+
and role briefs remain in the installed skill bundle. Pass `-B` to Python helper
|
|
21
|
+
invocations so execution does not create bytecode in the runtime store.
|
|
22
|
+
|
|
23
|
+
With no declaration, retain the legacy helper lookup. An existing
|
|
24
|
+
`.gsd-path/runtime/` requires the explicit `--runtime-migrate --project PATH`
|
|
25
|
+
operation before adopting external storage; review the resulting Git diff.
|
|
Binary file
|