@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
|
@@ -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,82 @@
|
|
|
1
|
+
# Optional Jev evidence screening
|
|
2
|
+
|
|
3
|
+
Jev screens selected criterion/evidence pairs for a wave or final reviewer.
|
|
4
|
+
It is disabled by default. Normal Path review needs no account, API key, SDK,
|
|
5
|
+
or network access. This helper uses Python's standard library.
|
|
6
|
+
|
|
7
|
+
## Enable or disable
|
|
8
|
+
|
|
9
|
+
Set these environment variables in the session that launches the reviewing
|
|
10
|
+
agent; child agents must inherit them to use Jev:
|
|
11
|
+
|
|
12
|
+
| Variable | Value |
|
|
13
|
+
| --- | --- |
|
|
14
|
+
| `GSD_PATH_JEV` | Exactly `1` enables screening. Unset it to disable. |
|
|
15
|
+
| `TYPESAFE_API_KEY` | Your TypeSafe API key, supplied through the environment. |
|
|
16
|
+
| `GSD_PATH_JEV_TIMEOUT_SECONDS` | Positive finite seconds chosen by the owner for the HTTP socket timeout. There is no default. |
|
|
17
|
+
|
|
18
|
+
Enabling this option permits the selected criterion and evidence text to be
|
|
19
|
+
sent to TypeSafe's hosted API. Supply only material authorized for that service.
|
|
20
|
+
Do not include credentials, environment dumps, or unrelated repository content.
|
|
21
|
+
Having a key alone does not enable Jev. Do not put keys in commands or artifacts.
|
|
22
|
+
|
|
23
|
+
## Reviewer procedure
|
|
24
|
+
|
|
25
|
+
1. Use only still-uncovered criteria from the assigned wave/final review and
|
|
26
|
+
the corresponding evidence already available in the supplied verify sidecar.
|
|
27
|
+
Keep existing rules for isolated evidence, command reuse, and provenance.
|
|
28
|
+
2. Pass JSON through stdin to `python3 -B <absolute skill scripts/jev_review.py>`
|
|
29
|
+
from that sidecar. Resolve the helper as `../scripts/jev_review.py` relative
|
|
30
|
+
to this reference directory. Do not create another project report. The input
|
|
31
|
+
has exactly this shape; replace the illustrative revision and contents:
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"reviewed_head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
36
|
+
"items": [
|
|
37
|
+
{
|
|
38
|
+
"id": "T001-AC1",
|
|
39
|
+
"criterion": "Reject an empty name.",
|
|
40
|
+
"evidence": "Recorded isolated Verify: test_empty_name passed."
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Use the full review SHA supplied by the orchestrator, unique nonempty item
|
|
47
|
+
IDs, verbatim criterion text, and selected evidence text. Empty evidence is
|
|
48
|
+
allowed. The SHA is caller-supplied context; the helper does not prove Git
|
|
49
|
+
ancestry or that the text actually came from that revision.
|
|
50
|
+
3. Read the JSON status. `disabled` means ordinary review. `unavailable` means
|
|
51
|
+
ordinary review with the explicit reason recorded in the assigned artifact.
|
|
52
|
+
Neither is a failed criterion. The helper exits zero for these optional
|
|
53
|
+
outcomes and makes no automatic retries. Correct invalid input/configuration
|
|
54
|
+
before an explicit retry; keep a service failure visible and continue review.
|
|
55
|
+
4. For `ok`, inspect per-item `supported`, `partial`, `unsupported`, or `unclear`
|
|
56
|
+
answers, their probabilities, and confidence. Independently examine suggested
|
|
57
|
+
gaps under the existing rubric. A Jev answer is neither executable evidence
|
|
58
|
+
nor an independent review verdict. It cannot satisfy or waive a criterion,
|
|
59
|
+
change a gate, select a route, or authorize publication.
|
|
60
|
+
5. Keep the advisory JSON receipt in the assigned review artifact's notes or
|
|
61
|
+
evidence prose, outside fixed-format verdict fields. An `ok` receipt includes
|
|
62
|
+
the supplied revision, SHA-256 of the exact canonical request, versioned model,
|
|
63
|
+
item IDs and answers, and token usage. An `unavailable` receipt includes the
|
|
64
|
+
reason and, only after request construction, the revision and request hash;
|
|
65
|
+
it has no model, answers, or usage. A `disabled` receipt contains only the
|
|
66
|
+
status and advisory marker. Retain the selected input with that evidence if it
|
|
67
|
+
is not already reconstructible from cited sources. Keep all canonical verdicts and template
|
|
68
|
+
structure unchanged. Reuse the recorded advisory when its exact request and
|
|
69
|
+
review revision remain unchanged; skip screening for a reused proven review.
|
|
70
|
+
|
|
71
|
+
## Service behavior
|
|
72
|
+
|
|
73
|
+
The helper calls only `https://api.typesafe.ai/v1/systemone` with the documented
|
|
74
|
+
version `jev-1.13.0`. It does not follow redirects, echo provider error bodies,
|
|
75
|
+
write files, or install packages. Missing keys/timeouts, HTTP and network errors,
|
|
76
|
+
and invalid input/responses return `unavailable`. There is no confidence cutoff:
|
|
77
|
+
the existing reviewer owns acceptance. Real model accuracy and savings must be
|
|
78
|
+
evaluated on chosen evidence before relying on this advisory signal.
|
|
79
|
+
|
|
80
|
+
Sources: [HTTP API](https://docs.typesafe.ai/api),
|
|
81
|
+
[models](https://docs.typesafe.ai/models),
|
|
82
|
+
[confidence](https://docs.typesafe.ai/confidence).
|
|
@@ -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,21 @@
|
|
|
1
|
+
## Final integration mode
|
|
2
|
+
|
|
3
|
+
Use only final-review.md. Treat INTENT.md success criteria as the rubric.
|
|
4
|
+
Exercise the running system and record `met`, `not-met`, or `unverifiable`
|
|
5
|
+
with checked command output or a precise file reference. When PLAN.md carries
|
|
6
|
+
a `## Surface contract`, every criterion it lists under a surface is checked
|
|
7
|
+
by performing that surface's Walkthrough from its Entry in the supplied
|
|
8
|
+
sidecar: `Surface` names that surface, Check names what was performed,
|
|
9
|
+
Observed records what the surface actually showed at each state, and a missing
|
|
10
|
+
or unreachable surface is `not-met`. A surface criterion is never `met` on
|
|
11
|
+
internal test output alone. Run project commands only in the supplied verify
|
|
12
|
+
sidecar at the exact reviewed HEAD. Do not
|
|
13
|
+
re-run PLAN.md's project Verify; cite the orchestrator's recorded
|
|
14
|
+
project-verify sidecar output. `pass`
|
|
15
|
+
requires every criterion to be `met`.
|
|
16
|
+
|
|
17
|
+
## Final gap mode
|
|
18
|
+
|
|
19
|
+
Use only gap-review.md. Check the one cross-wave risk in the brief against the
|
|
20
|
+
running system in the supplied verify sidecar at the exact reviewed HEAD.
|
|
21
|
+
Record evidence and `pass` or `blocked`; an unverified risk is blocked.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
## Plan panel mode
|
|
2
|
+
|
|
3
|
+
Use only plan-panel.md. Review `.project/plan/PLAN.md` and every task file
|
|
4
|
+
against INTENT.md and SYNTHESIS.md. Do not edit those files. Write one
|
|
5
|
+
finding block per issue, or `- none`. Mark `Kind: criterion` only when the
|
|
6
|
+
finding names a written plan/task criterion; alternate designs are
|
|
7
|
+
`Kind: preference`. This output is advisory. The structural plan gate and
|
|
8
|
+
the user's approval remain the only plan gates.
|
|
9
|
+
|
|
10
|
+
## Wave panel mode
|
|
11
|
+
|
|
12
|
+
Use only wave-panel.md. Apply every Wave mode evidence rule (recorded SHAs,
|
|
13
|
+
isolated patch, recorded Verify) when the brief supplies a verify sidecar.
|
|
14
|
+
On a `deep` wave the brief is the adversarial lens only. Record findings
|
|
15
|
+
the same way as plan panel mode. Do not write a Wave verdict and do not
|
|
16
|
+
edit the canonical wave-review file. The canonical reviewer remains the only
|
|
17
|
+
pass/fail.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## Skeptic mode
|
|
2
|
+
|
|
3
|
+
Use only skeptic.md. The brief supplies one canonical criterion locator, the
|
|
4
|
+
failed criterion verbatim, and every distinct blocking observation for that
|
|
5
|
+
criterion from the `deep` wave lenses, plus the involved task files and their
|
|
6
|
+
recorded bases and proven landing commits. The only job is to refute all of
|
|
7
|
+
those observations.
|
|
8
|
+
|
|
9
|
+
- Apply every Wave mode evidence rule (recorded SHAs, isolated patch,
|
|
10
|
+
recorded Verify) in the supplied sidecar, scoped to the tasks the
|
|
11
|
+
observations cite.
|
|
12
|
+
- Address every distinct observation separately. Record `Verdict: refuted`
|
|
13
|
+
only when checked evidence refutes every observation by proving each
|
|
14
|
+
claimed failure cannot occur or the cited criterion actually holds.
|
|
15
|
+
Anything short of that is `Verdict: stands`.
|
|
16
|
+
- Stage
|
|
17
|
+
`.project/review/wave-N.cycleC.skeptic-<criterion_locator>.md` under the
|
|
18
|
+
supplied sidecar.
|
|
19
|
+
- Do not write a Wave verdict and do not review anything beyond the
|
|
20
|
+
supplied criterion and observations.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
## Wave mode
|
|
2
|
+
|
|
3
|
+
Use task acceptance criteria and the INTENT.md success criteria owned by
|
|
4
|
+
tasks in this wave as the rubric. For each task:
|
|
5
|
+
|
|
6
|
+
1. Read the task file's `base` and the landing commit SHA the orchestrator
|
|
7
|
+
supplied in your brief (it comes from `isolation.py land`/`recover`).
|
|
8
|
+
Never infer either SHA from task ids, branch position, or nearby history.
|
|
9
|
+
2. Fail a missing, malformed, or invalid SHA. Inspect the commit with
|
|
10
|
+
`git show --format=fuller --stat --patch <commit> --`.
|
|
11
|
+
3. In the supplied verify sidecar at `base`, apply only the complete
|
|
12
|
+
binary patch from `commit^..commit` for the task's declared product files
|
|
13
|
+
and inspect the diff. Use the orchestrator's recorded isolated Verify
|
|
14
|
+
output in that task's Log as the Verify evidence. Do not re-run the
|
|
15
|
+
task Verify command or PLAN.md's project Verify. Re-run a command only
|
|
16
|
+
when the recorded output plus the isolated diff cannot check the
|
|
17
|
+
criterion. Never use the primary worktree or branch tip as task
|
|
18
|
+
evidence. Do not create or remove Git worktrees yourself.
|
|
19
|
+
4. Mark `pass` or `fail`. Before the evidence separator (` — `), copy the
|
|
20
|
+
complete task acceptance or interface criterion verbatim, joining wrapped
|
|
21
|
+
lines with spaces. Do not substitute an AC id or summary: finding grouping
|
|
22
|
+
binds this text to the task. Give the observed result, `file:line`, and
|
|
23
|
+
concrete fix direction for each failure.
|
|
24
|
+
|
|
25
|
+
Then check each INTENT.md success criterion owned by a task in this wave
|
|
26
|
+
against that same isolated product. Copy the criterion verbatim from
|
|
27
|
+
INTENT.md. Mark `pass` or `fail` with evidence; a failed owned SC blocks
|
|
28
|
+
the wave. Omit the Intent coverage section when no task in the wave owns
|
|
29
|
+
an SC.
|
|
30
|
+
|
|
31
|
+
Allow changed paths only in the task's `files` plus its assigned task file.
|
|
32
|
+
Within the task file, allow orchestrator-owned `base`, `worktree`,
|
|
33
|
+
`task_branch`, `status`, and `agent` fields plus append-only Log
|
|
34
|
+
entries; block contract-body changes in the task commit. Warn on disabled tests
|
|
35
|
+
or Verify commands that cannot fail unless either defeats a criterion. Set the
|
|
36
|
+
wave verdict to `pass` only when every task passes and every owned INTENT
|
|
37
|
+
success criterion for the wave passes.
|
|
38
|
+
|
|
39
|
+
For cycle greater than 1, read the previous review, re-check every failure,
|
|
40
|
+
and regression-check affected passes. State when the same criterion fails for
|
|
41
|
+
a different reason. Use only the wave-review template.
|
|
42
|
+
|
|
43
|
+
### Re-review after a proven repair
|
|
44
|
+
|
|
45
|
+
When the brief supplies a `review_findings.py repair-evidence` receipt, use
|
|
46
|
+
its isolated repair product for the linked original criteria, including owned
|
|
47
|
+
INTENT criteria. The original faulty landing and earlier verdicts remain
|
|
48
|
+
historical evidence; they do not force the later verdict to remain failed.
|
|
49
|
+
Reconstruct the receipt's repair `base` plus only its `commit^..commit` patch
|
|
50
|
+
for `files` inside the supplied sidecar. Read the repair task's recorded
|
|
51
|
+
Verify, inspect the patch against the original unchanged contract, and reuse
|
|
52
|
+
settled checks. Check unaffected criteria from their prior evidence plus the
|
|
53
|
+
repair diff for regressions. Cite the receipt, repair landing and task Log in
|
|
54
|
+
the new review. A receipt proves provenance, not acceptance: judge whether the
|
|
55
|
+
repair actually satisfies the criterion. A missing or rejected receipt blocks
|
|
56
|
+
using that repair; the parent resolves it rather than creating another product
|
|
57
|
+
fix for the unchanged historical failure.
|
|
58
|
+
|
|
59
|
+
## Final scope in a quick full wave
|
|
60
|
+
|
|
61
|
+
When explicitly briefed with final scope, record `Review scope: final` and the
|
|
62
|
+
full supplied review HEAD in the wave artifact. Check all INTENT success criteria
|
|
63
|
+
and PLAN's Surface contract against the completed isolated product. Each surface
|
|
64
|
+
criterion's Intent coverage block includes `- **Surface**:`, `- **Check**:`, and
|
|
65
|
+
`- **Observed**:` with the walked states and actual result. Reuse recorded task
|
|
66
|
+
output if it proves that exact walkthrough; run only a missing check. Final-scope
|
|
67
|
+
coverage shares this wave artifact; do not write a second report. Shipping's
|
|
68
|
+
runtime checks freshness and derives the final view from these records.
|
|
69
|
+
|
|
70
|
+
## Deep review lenses
|
|
71
|
+
|
|
72
|
+
A `deep` wave spawns two independent reviewers in parallel, each with a fresh
|
|
73
|
+
context and its own verify sidecar at the recorded review base. Every
|
|
74
|
+
Wave mode rule above applies to both lenses.
|
|
75
|
+
|
|
76
|
+
- **Contract** — logical task name
|
|
77
|
+
`review_wave_<wave>_cycle_<cycle>_contract`; stages
|
|
78
|
+
`.project/review/wave-N.cycleC.contract.md`. This is the full wave review:
|
|
79
|
+
patches applied to the recorded base, recorded Verify plus diff, every
|
|
80
|
+
acceptance criterion and interface contract checked. Record `Lens:
|
|
81
|
+
contract`.
|
|
82
|
+
- **Adversarial** — logical task name
|
|
83
|
+
`review_wave_<wave>_cycle_<cycle>_adversarial`; stages
|
|
84
|
+
`.project/review/wave-N.cycleC.adversarial.md`. Try to kill the work:
|
|
85
|
+
security holes, unhandled edge cases, failure modes, data-loss and
|
|
86
|
+
concurrency risks, missing error handling. Record `Lens: adversarial`.
|
|
87
|
+
|
|
88
|
+
The wave passes only when both lenses return `pass`; any `blocked` lens
|
|
89
|
+
blocks the wave.
|
|
@@ -17,159 +17,23 @@ Verify written GSD Path expectations and block failures. Never fix code.
|
|
|
17
17
|
inside supplied sidecars. Never edit a product path or any other
|
|
18
18
|
primary-worktree path. Stop on a missing input or template.
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## Load the assigned mode
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
Read only the row matching the brief. Common rules below apply to every mode.
|
|
23
|
+
Resolve sibling links against this role file's directory.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
and inspect the diff. Use the orchestrator's recorded isolated Verify
|
|
33
|
-
output in that task's Log as the Verify evidence. Do not re-run the
|
|
34
|
-
task Verify command or PLAN.md's project Verify. Re-run a command only
|
|
35
|
-
when the recorded output plus the isolated diff cannot check the
|
|
36
|
-
criterion. Never use the primary worktree or branch tip as task
|
|
37
|
-
evidence. Do not create or remove Git worktrees yourself.
|
|
38
|
-
4. Mark `pass` or `fail`. Before the evidence separator (` — `), copy the
|
|
39
|
-
complete task acceptance or interface criterion verbatim, joining wrapped
|
|
40
|
-
lines with spaces. Do not substitute an AC id or summary: finding grouping
|
|
41
|
-
binds this text to the task. Give the observed result, `file:line`, and
|
|
42
|
-
concrete fix direction for each failure.
|
|
43
|
-
|
|
44
|
-
Then check each INTENT.md success criterion owned by a task in this wave
|
|
45
|
-
against that same isolated product. Copy the criterion verbatim from
|
|
46
|
-
INTENT.md. Mark `pass` or `fail` with evidence; a failed owned SC blocks
|
|
47
|
-
the wave. Omit the Intent coverage section when no task in the wave owns
|
|
48
|
-
an SC.
|
|
49
|
-
|
|
50
|
-
Allow changed paths only in the task's `files` plus its assigned task file.
|
|
51
|
-
Within the task file, allow orchestrator-owned `base`, `worktree`,
|
|
52
|
-
`task_branch`, `status`, and `agent` fields plus append-only Log
|
|
53
|
-
entries; block contract-body changes in the task commit. Warn on disabled tests
|
|
54
|
-
or Verify commands that cannot fail unless either defeats a criterion. Set the
|
|
55
|
-
wave verdict to `pass` only when every task passes and every owned INTENT
|
|
56
|
-
success criterion for the wave passes.
|
|
57
|
-
|
|
58
|
-
For cycle greater than 1, read the previous review, re-check every failure,
|
|
59
|
-
and regression-check affected passes. State when the same criterion fails for
|
|
60
|
-
a different reason. Use only the wave-review template.
|
|
61
|
-
|
|
62
|
-
### Re-review after a proven repair
|
|
63
|
-
|
|
64
|
-
When the brief supplies a `review_findings.py repair-evidence` receipt, use
|
|
65
|
-
its isolated repair product for the linked original criteria, including owned
|
|
66
|
-
INTENT criteria. The original faulty landing and earlier verdicts remain
|
|
67
|
-
historical evidence; they do not force the later verdict to remain failed.
|
|
68
|
-
Reconstruct the receipt's repair `base` plus only its `commit^..commit` patch
|
|
69
|
-
for `files` inside the supplied sidecar. Read the repair task's recorded
|
|
70
|
-
Verify, inspect the patch against the original unchanged contract, and reuse
|
|
71
|
-
settled checks. Check unaffected criteria from their prior evidence plus the
|
|
72
|
-
repair diff for regressions. Cite the receipt, repair landing and task Log in
|
|
73
|
-
the new review. A receipt proves provenance, not acceptance: judge whether the
|
|
74
|
-
repair actually satisfies the criterion. A missing or rejected receipt blocks
|
|
75
|
-
using that repair; the parent resolves it rather than creating another product
|
|
76
|
-
fix for the unchanged historical failure.
|
|
77
|
-
|
|
78
|
-
## Final scope in a quick full wave
|
|
79
|
-
|
|
80
|
-
When explicitly briefed with final scope, record `Review scope: final` and the
|
|
81
|
-
full supplied review HEAD in the wave artifact. Check all INTENT success criteria
|
|
82
|
-
and PLAN's Surface contract against the completed isolated product. Each surface
|
|
83
|
-
criterion's Intent coverage block includes `- **Surface**:`, `- **Check**:`, and
|
|
84
|
-
`- **Observed**:` with the walked states and actual result. Reuse recorded task
|
|
85
|
-
output if it proves that exact walkthrough; run only a missing check. Final-scope
|
|
86
|
-
coverage shares this wave artifact; do not write a second report. Shipping's
|
|
87
|
-
runtime checks freshness and derives the final view from these records.
|
|
88
|
-
|
|
89
|
-
## Deep review lenses
|
|
90
|
-
|
|
91
|
-
A `deep` wave spawns two independent reviewers in parallel, each with a fresh
|
|
92
|
-
context and its own verify sidecar at the recorded review base. Every
|
|
93
|
-
Wave mode rule above applies to both lenses.
|
|
94
|
-
|
|
95
|
-
- **Contract** — logical task name
|
|
96
|
-
`review_wave_<wave>_cycle_<cycle>_contract`; stages
|
|
97
|
-
`.project/review/wave-N.cycleC.contract.md`. This is the full wave review:
|
|
98
|
-
patches applied to the recorded base, recorded Verify plus diff, every
|
|
99
|
-
acceptance criterion and interface contract checked. Record `Lens:
|
|
100
|
-
contract`.
|
|
101
|
-
- **Adversarial** — logical task name
|
|
102
|
-
`review_wave_<wave>_cycle_<cycle>_adversarial`; stages
|
|
103
|
-
`.project/review/wave-N.cycleC.adversarial.md`. Try to kill the work:
|
|
104
|
-
security holes, unhandled edge cases, failure modes, data-loss and
|
|
105
|
-
concurrency risks, missing error handling. Record `Lens: adversarial`.
|
|
106
|
-
|
|
107
|
-
The wave passes only when both lenses return `pass`; any `blocked` lens
|
|
108
|
-
blocks the wave.
|
|
109
|
-
|
|
110
|
-
## Skeptic mode
|
|
111
|
-
|
|
112
|
-
Use only skeptic.md. The brief supplies one canonical criterion locator, the
|
|
113
|
-
failed criterion verbatim, and every distinct blocking observation for that
|
|
114
|
-
criterion from the `deep` wave lenses, plus the involved task files and their
|
|
115
|
-
recorded bases and proven landing commits. The only job is to refute all of
|
|
116
|
-
those observations.
|
|
117
|
-
|
|
118
|
-
- Apply every Wave mode evidence rule (recorded SHAs, isolated patch,
|
|
119
|
-
recorded Verify) in the supplied sidecar, scoped to the tasks the
|
|
120
|
-
observations cite.
|
|
121
|
-
- Address every distinct observation separately. Record `Verdict: refuted`
|
|
122
|
-
only when checked evidence refutes every observation by proving each
|
|
123
|
-
claimed failure cannot occur or the cited criterion actually holds.
|
|
124
|
-
Anything short of that is `Verdict: stands`.
|
|
125
|
-
- Stage
|
|
126
|
-
`.project/review/wave-N.cycleC.skeptic-<criterion_locator>.md` under the
|
|
127
|
-
supplied sidecar.
|
|
128
|
-
- Do not write a Wave verdict and do not review anything beyond the
|
|
129
|
-
supplied criterion and observations.
|
|
130
|
-
|
|
131
|
-
## Final integration mode
|
|
132
|
-
|
|
133
|
-
Use only final-review.md. Treat INTENT.md success criteria as the rubric.
|
|
134
|
-
Exercise the running system and record `met`, `not-met`, or `unverifiable`
|
|
135
|
-
with checked command output or a precise file reference. When PLAN.md carries
|
|
136
|
-
a `## Surface contract`, every criterion it lists under a surface is checked
|
|
137
|
-
by performing that surface's Walkthrough from its Entry in the supplied
|
|
138
|
-
sidecar: `Surface` names that surface, Check names what was performed,
|
|
139
|
-
Observed records what the surface actually showed at each state, and a missing
|
|
140
|
-
or unreachable surface is `not-met`. A surface criterion is never `met` on
|
|
141
|
-
internal test output alone. Run project commands only in the supplied verify
|
|
142
|
-
sidecar at the exact reviewed HEAD. Do not
|
|
143
|
-
re-run PLAN.md's project Verify; cite the orchestrator's recorded
|
|
144
|
-
project-verify sidecar output. `pass`
|
|
145
|
-
requires every criterion to be `met`.
|
|
146
|
-
|
|
147
|
-
## Final gap mode
|
|
148
|
-
|
|
149
|
-
Use only gap-review.md. Check the one cross-wave risk in the brief against the
|
|
150
|
-
running system in the supplied verify sidecar at the exact reviewed HEAD.
|
|
151
|
-
Record evidence and `pass` or `blocked`; an unverified risk is blocked.
|
|
152
|
-
|
|
153
|
-
## Plan panel mode
|
|
154
|
-
|
|
155
|
-
Use only plan-panel.md. Review `.project/plan/PLAN.md` and every task file
|
|
156
|
-
against INTENT.md and SYNTHESIS.md. Do not edit those files. Write one
|
|
157
|
-
finding block per issue, or `- none`. Mark `Kind: criterion` only when the
|
|
158
|
-
finding names a written plan/task criterion; alternate designs are
|
|
159
|
-
`Kind: preference`. This output is advisory. The structural plan gate and
|
|
160
|
-
the user's approval remain the only plan gates.
|
|
161
|
-
|
|
162
|
-
## Wave panel mode
|
|
163
|
-
|
|
164
|
-
Use only wave-panel.md. Apply every Wave mode evidence rule (recorded SHAs,
|
|
165
|
-
isolated patch, recorded Verify) when the brief supplies a verify sidecar.
|
|
166
|
-
On a `deep` wave the brief is the adversarial lens only. Record findings
|
|
167
|
-
the same way as plan panel mode. Do not write a Wave verdict and do not
|
|
168
|
-
edit the canonical wave-review file. The inherit reviewer remains the only
|
|
169
|
-
pass/fail.
|
|
25
|
+
| Mode | Required procedure |
|
|
26
|
+
|---|---|
|
|
27
|
+
| Wave, full or deep; quick final scope | [Wave review](reviewer-wave.md) |
|
|
28
|
+
| Skeptic | [Wave evidence rules](reviewer-wave.md) and [skeptic](reviewer-skeptic.md) |
|
|
29
|
+
| Final integration or final gap | [Final review](reviewer-final.md) |
|
|
30
|
+
| Plan panel | [Panel review](reviewer-panel.md) |
|
|
31
|
+
| Wave panel | [Wave evidence rules](reviewer-wave.md) and [panel review](reviewer-panel.md) |
|
|
170
32
|
|
|
171
33
|
## Rules
|
|
172
34
|
|
|
35
|
+
- When `GSD_PATH_JEV=1`, wave and final reviewers follow the optional
|
|
36
|
+
[Jev evidence screening procedure](jev-review.md) for uncovered criteria.
|
|
173
37
|
- Review written expectations, not preferences or alternate designs.
|
|
174
38
|
- Treat an Interface contract violation as a failed criterion, citing the
|
|
175
39
|
contract line and the offending diff hunk.
|
|
@@ -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.
|