@opengsd/gsd-path 1.0.0 → 1.1.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 +28 -11
- package/DOCS.md +6 -5
- package/FULL.md +9 -13
- package/QUICK.md +3 -3
- package/README.md +151 -14
- package/RUNTIME.md +7 -1
- package/WORKFLOW.md +30 -14
- package/package.json +15 -1
- package/platforms/shared-agents/dispatch.md +6 -0
- package/scripts/archive_milestone.py +10 -118
- package/scripts/bootstrap_repository.py +25 -3
- package/scripts/build_recovery.py +287 -0
- package/scripts/check_docs_audit.py +5 -3
- package/scripts/check_handoffs.py +1 -1
- package/scripts/detect_project.py +11 -2
- package/scripts/dispatch_driver.py +4 -2
- package/scripts/git_guard.py +2 -1
- package/scripts/install.mjs +2 -0
- package/scripts/install.py +2 -0
- package/scripts/integration.py +28 -22
- package/scripts/isolation.py +9 -1
- package/scripts/lean_verification.py +1 -1
- package/scripts/pipeline_diagnose.py +12 -3
- package/scripts/pipeline_state.py +114 -186
- package/scripts/pipeline_undo.py +11 -7
- package/scripts/promote_lookahead.py +30 -162
- package/scripts/roadmap.py +321 -0
- package/scripts/skill-resources.json +79 -1
- package/scripts/state_checkpoint.py +109 -72
- package/scripts/state_promote.py +42 -44
- package/scripts/task_context.py +73 -0
- package/scripts/token_budget.py +40 -1
- package/scripts/workflow_run.py +116 -7
- package/skills/gsd-path/BUILD.md +47 -575
- package/skills/gsd-path/DECIDE.md +2 -6
- package/skills/gsd-path/DEFINE.md +10 -14
- package/skills/gsd-path/INSPECT.md +30 -8
- package/skills/gsd-path/PLAN.md +25 -17
- package/skills/gsd-path/RESEARCH.md +3 -6
- package/skills/gsd-path/ROADMAP.md +22 -58
- package/skills/gsd-path/SHIP.md +5 -4
- package/skills/gsd-path/SKILL.md +24 -14
- package/skills/gsd-path/references/build-abandon.md +33 -0
- package/skills/gsd-path/references/build-native.md +494 -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/dispatch.md +6 -0
- package/skills/gsd-path/references/docs-auditor.md +14 -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 -150
- package/skills/gsd-path/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/discussion_records.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/integration.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/loop_run.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/review_findings.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/task_context.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/__pycache__/workflow_run.cpython-312.pyc +0 -0
- package/skills/gsd-path/scripts/archive_milestone.py +10 -118
- package/skills/gsd-path/scripts/bootstrap_repository.py +25 -3
- package/skills/gsd-path/scripts/build_recovery.py +287 -0
- package/skills/gsd-path/scripts/check_docs_audit.py +5 -3
- package/skills/gsd-path/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path/scripts/detect_project.py +11 -2
- package/skills/gsd-path/scripts/dispatch_driver.py +4 -2
- package/skills/gsd-path/scripts/integration.py +28 -22
- package/skills/gsd-path/scripts/isolation.py +9 -1
- package/skills/gsd-path/scripts/lean_verification.py +1 -1
- package/skills/gsd-path/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path/scripts/promote_lookahead.py +30 -162
- package/skills/gsd-path/scripts/roadmap.py +321 -0
- package/skills/gsd-path/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path/scripts/state_promote.py +42 -44
- 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 +116 -7
- package/skills/gsd-path/templates/wave-review.md +1 -1
- package/skills/gsd-path-build/SKILL.md +47 -575
- package/skills/gsd-path-build/references/build-abandon.md +33 -0
- package/skills/gsd-path-build/references/build-native.md +494 -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 +6 -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 -150
- package/skills/gsd-path-build/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/loop_run.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/review_findings.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/task_context.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/__pycache__/workflow_run.cpython-312.pyc +0 -0
- package/skills/gsd-path-build/scripts/archive_milestone.py +10 -118
- package/skills/gsd-path-build/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-build/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-build/scripts/detect_project.py +1526 -0
- package/skills/gsd-path-build/scripts/dispatch_driver.py +4 -2
- package/skills/gsd-path-build/scripts/integration.py +28 -22
- package/skills/gsd-path-build/scripts/isolation.py +9 -1
- package/skills/gsd-path-build/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-build/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-build/scripts/roadmap.py +321 -0
- package/skills/gsd-path-build/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-build/scripts/state_promote.py +42 -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 +116 -7
- package/skills/gsd-path-build/templates/wave-review.md +1 -1
- package/skills/gsd-path-decide/SKILL.md +2 -6
- package/skills/gsd-path-decide/references/dispatch.md +6 -0
- package/skills/gsd-path-decide/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-decide/scripts/archive_milestone.py +2157 -0
- package/skills/gsd-path-decide/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-decide/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-decide/scripts/detect_project.py +1526 -0
- package/skills/gsd-path-decide/scripts/discussion_validate.py +1321 -0
- package/skills/gsd-path-decide/scripts/integration.py +1439 -0
- package/skills/gsd-path-decide/scripts/isolation.py +9 -1
- package/skills/gsd-path-decide/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-decide/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-decide/scripts/review_panel.py +553 -0
- package/skills/gsd-path-decide/scripts/roadmap.py +321 -0
- package/skills/gsd-path-decide/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-decide/scripts/state_promote.py +42 -44
- package/skills/gsd-path-define/SKILL.md +10 -14
- package/skills/gsd-path-define/references/build-recovery.md +78 -0
- package/skills/gsd-path-define/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-define/scripts/archive_milestone.py +2157 -0
- package/skills/gsd-path-define/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-define/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-define/scripts/detect_project.py +11 -2
- package/skills/gsd-path-define/scripts/discussion_validate.py +1321 -0
- package/skills/gsd-path-define/scripts/integration.py +1439 -0
- package/skills/gsd-path-define/scripts/isolation.py +9 -1
- package/skills/gsd-path-define/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-define/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-define/scripts/review_panel.py +553 -0
- package/skills/gsd-path-define/scripts/roadmap.py +321 -0
- package/skills/gsd-path-define/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-define/scripts/state_promote.py +42 -44
- package/skills/gsd-path-docs-audit/references/dispatch.md +6 -0
- package/skills/gsd-path-docs-audit/references/docs-auditor.md +14 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-docs-audit/scripts/archive_milestone.py +2157 -0
- package/skills/gsd-path-docs-audit/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +5 -3
- package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-docs-audit/scripts/detect_project.py +1526 -0
- package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +1321 -0
- package/skills/gsd-path-docs-audit/scripts/integration.py +1439 -0
- package/skills/gsd-path-docs-audit/scripts/isolation.py +9 -1
- package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-docs-audit/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-docs-audit/scripts/review_panel.py +553 -0
- package/skills/gsd-path-docs-audit/scripts/roadmap.py +321 -0
- package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-docs-audit/scripts/state_promote.py +42 -44
- package/skills/gsd-path-forensics/scripts/__pycache__/pipeline_undo.cpython-312.pyc +0 -0
- package/skills/gsd-path-forensics/scripts/pipeline_diagnose.py +12 -3
- package/skills/gsd-path-forensics/scripts/pipeline_undo.py +11 -7
- package/skills/gsd-path-inspect/SKILL.md +30 -8
- package/skills/gsd-path-inspect/references/dispatch.md +6 -0
- package/skills/gsd-path-inspect/references/docs-auditor.md +14 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-inspect/scripts/archive_milestone.py +2157 -0
- package/skills/gsd-path-inspect/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-inspect/scripts/check_docs_audit.py +5 -3
- package/skills/gsd-path-inspect/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-inspect/scripts/detect_project.py +11 -2
- package/skills/gsd-path-inspect/scripts/discussion_validate.py +1321 -0
- package/skills/gsd-path-inspect/scripts/integration.py +1439 -0
- package/skills/gsd-path-inspect/scripts/isolation.py +9 -1
- package/skills/gsd-path-inspect/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-inspect/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-inspect/scripts/review_panel.py +553 -0
- package/skills/gsd-path-inspect/scripts/roadmap.py +321 -0
- package/skills/gsd-path-inspect/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-inspect/scripts/state_promote.py +42 -44
- package/skills/gsd-path-inspect/scripts/workflow_run.py +226 -0
- package/skills/gsd-path-plan/SKILL.md +25 -17
- package/skills/gsd-path-plan/references/build-recovery.md +78 -0
- package/skills/gsd-path-plan/references/dispatch.md +6 -0
- package/skills/gsd-path-plan/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/archive_milestone.py +2157 -0
- package/skills/gsd-path-plan/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-plan/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-plan/scripts/detect_project.py +1526 -0
- package/skills/gsd-path-plan/scripts/discussion_validate.py +1321 -0
- package/skills/gsd-path-plan/scripts/integration.py +1439 -0
- package/skills/gsd-path-plan/scripts/isolation.py +9 -1
- package/skills/gsd-path-plan/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-plan/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-plan/scripts/roadmap.py +321 -0
- package/skills/gsd-path-plan/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-plan/scripts/state_promote.py +42 -44
- package/skills/gsd-path-plan/scripts/workflow_run.py +116 -7
- package/skills/gsd-path-research/SKILL.md +3 -6
- package/skills/gsd-path-research/references/dispatch.md +6 -0
- package/skills/gsd-path-research/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-research/scripts/archive_milestone.py +2157 -0
- package/skills/gsd-path-research/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-research/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-research/scripts/detect_project.py +1526 -0
- package/skills/gsd-path-research/scripts/discussion_validate.py +1321 -0
- package/skills/gsd-path-research/scripts/integration.py +1439 -0
- package/skills/gsd-path-research/scripts/isolation.py +9 -1
- package/skills/gsd-path-research/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-research/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-research/scripts/review_panel.py +553 -0
- package/skills/gsd-path-research/scripts/roadmap.py +321 -0
- package/skills/gsd-path-research/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-research/scripts/state_promote.py +42 -44
- package/skills/gsd-path-roadmap/SKILL.md +22 -58
- package/skills/gsd-path-roadmap/references/dispatch.md +6 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-roadmap/scripts/archive_milestone.py +10 -118
- package/skills/gsd-path-roadmap/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-roadmap/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-roadmap/scripts/detect_project.py +11 -2
- package/skills/gsd-path-roadmap/scripts/integration.py +28 -22
- package/skills/gsd-path-roadmap/scripts/isolation.py +9 -1
- package/skills/gsd-path-roadmap/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +30 -162
- package/skills/gsd-path-roadmap/scripts/roadmap.py +321 -0
- package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-roadmap/scripts/state_promote.py +42 -44
- package/skills/gsd-path-ship/SKILL.md +5 -4
- package/skills/gsd-path-ship/references/dispatch.md +6 -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 -150
- package/skills/gsd-path-ship/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/archive_milestone.py +10 -118
- package/skills/gsd-path-ship/scripts/build_recovery.py +287 -0
- package/skills/gsd-path-ship/scripts/check_handoffs.py +1 -1
- package/skills/gsd-path-ship/scripts/detect_project.py +1526 -0
- package/skills/gsd-path-ship/scripts/integration.py +28 -22
- package/skills/gsd-path-ship/scripts/isolation.py +9 -1
- package/skills/gsd-path-ship/scripts/lean_verification.py +1 -1
- package/skills/gsd-path-ship/scripts/pipeline_state.py +114 -186
- package/skills/gsd-path-ship/scripts/promote_lookahead.py +283 -0
- package/skills/gsd-path-ship/scripts/roadmap.py +321 -0
- package/skills/gsd-path-ship/scripts/state_checkpoint.py +109 -72
- package/skills/gsd-path-ship/scripts/state_promote.py +42 -44
- package/skills/gsd-path-ship/scripts/workflow_run.py +116 -7
- package/skills/gsd-path-ship/templates/wave-review.md +1 -1
- package/skills/gsd-path-undo/scripts/pipeline_undo.py +11 -7
- package/skills/path/BUILD.md +47 -575
- package/skills/path/DECIDE.md +2 -6
- package/skills/path/DEFINE.md +10 -14
- package/skills/path/INSPECT.md +30 -8
- package/skills/path/PLAN.md +25 -17
- package/skills/path/RESEARCH.md +3 -6
- package/skills/path/ROADMAP.md +22 -58
- package/skills/path/SHIP.md +5 -4
- package/skills/path/SKILL.md +24 -14
- package/skills/path/references/build-abandon.md +33 -0
- package/skills/path/references/build-native.md +494 -0
- package/skills/path/references/build-recovery.md +78 -0
- package/skills/path/references/coder.md +8 -3
- package/skills/path/references/dispatch.md +6 -0
- package/skills/path/references/docs-auditor.md +14 -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 -150
- package/skills/path/scripts/archive_milestone.py +10 -118
- package/skills/path/scripts/bootstrap_repository.py +25 -3
- package/skills/path/scripts/build_recovery.py +287 -0
- package/skills/path/scripts/check_docs_audit.py +5 -3
- package/skills/path/scripts/check_handoffs.py +1 -1
- package/skills/path/scripts/detect_project.py +11 -2
- package/skills/path/scripts/dispatch_driver.py +4 -2
- package/skills/path/scripts/integration.py +28 -22
- package/skills/path/scripts/isolation.py +9 -1
- package/skills/path/scripts/lean_verification.py +1 -1
- package/skills/path/scripts/pipeline_state.py +114 -186
- package/skills/path/scripts/promote_lookahead.py +30 -162
- package/skills/path/scripts/roadmap.py +321 -0
- package/skills/path/scripts/state_checkpoint.py +109 -72
- package/skills/path/scripts/state_promote.py +42 -44
- 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 +116 -7
- package/skills/path/templates/wave-review.md +1 -1
package/AGENTS.md
CHANGED
|
@@ -69,7 +69,10 @@ full-repo suite on a tiny edit outrank the phase brief.
|
|
|
69
69
|
needs verbal explanation is defective.
|
|
70
70
|
- With no `.project/STATE.md`, route through the bundled
|
|
71
71
|
`scripts/detect_project.py initialize --repo <absolute-root> --template
|
|
72
|
-
<absolute-state-template
|
|
72
|
+
<absolute-state-template> --require-git` helper; `route: setup-repository`
|
|
73
|
+
leaves the invocation folder unchanged and routes to repository setup before
|
|
74
|
+
state creation or branch binding. Never delete the invocation folder or its
|
|
75
|
+
state to satisfy bootstrap path checks. Do not classify from a directory listing
|
|
73
76
|
or conversation. Follow its JSON `verdict` and `route`. Reserve `classify`
|
|
74
77
|
for read-only inspection; do not use it as a state-initialization preflight.
|
|
75
78
|
- `.project/STATE.md` tracks phase position. Parse and validate it only with
|
|
@@ -98,11 +101,19 @@ full-repo suite on a tiny edit outrank the phase brief.
|
|
|
98
101
|
deterministic logical task name, and a bounded responsibility. Independent
|
|
99
102
|
briefs may run in parallel up to available child capacity; a dependent
|
|
100
103
|
brief runs as soon as its dependencies complete.
|
|
101
|
-
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
- After a phase completes its gate and state update, run the bundled
|
|
105
|
+
`pipeline_state.py status --repo <absolute-root>` with the routed
|
|
106
|
+
`--project-dir`. Its `handoff` is the shared phase handoff for chat and the
|
|
107
|
+
dashboard. Present **Outcome** from `handoff.outcome` plus the completed
|
|
108
|
+
work; **Review** links the phase artifact, or `handoff.review` when absent.
|
|
109
|
+
An active router uses `handoff.router_next` for **Next** and follows the
|
|
110
|
+
returned route. A directly invoked phase uses `handoff.phase_next` and
|
|
111
|
+
stops. A status or plain-prompt reply uses `handoff.next` and stays read-only.
|
|
112
|
+
Convert the `$` invocation prefix to the host's slash form when needed.
|
|
113
|
+
Phase owners still stop for required input and approval before completion;
|
|
114
|
+
a route is not approval. Return to an active caller instead of invoking an
|
|
115
|
+
explicit-only sibling skill. Derive the next phase from this result, not
|
|
116
|
+
from another lane table in prose.
|
|
106
117
|
|
|
107
118
|
## Plain-prompt re-entry
|
|
108
119
|
|
|
@@ -118,13 +129,12 @@ full-repo suite on a tiny edit outrank the phase brief.
|
|
|
118
129
|
authority.
|
|
119
130
|
A plain change request does not authorize work outside the pipeline: make no
|
|
120
131
|
changes and report **Outcome**, link the returned `path` under **Review**, and
|
|
121
|
-
under **Next**
|
|
122
|
-
route, report `route.action` and `route.reason`. An explicit request to leave
|
|
132
|
+
under **Next** use `handoff.next`. An explicit request to leave
|
|
123
133
|
or bypass the pipeline is a user ruling;
|
|
124
134
|
route it through the router's undo or abandon flow instead of editing directly.
|
|
125
135
|
- After any other plain-prompt turn with owned state, rerun the same read-only
|
|
126
136
|
status command immediately before the final response and append the same
|
|
127
|
-
**Outcome** / **Review** / **Next** handoff with the same
|
|
137
|
+
**Outcome** / **Review** / **Next** handoff with the same shared handoff rule.
|
|
128
138
|
Keep an informational turn read-only from start to finish: do not use repository
|
|
129
139
|
mutation tools or run commands that can create or alter files. A GSD Path skill
|
|
130
140
|
already supplies this handoff, so emit it once. With no STATE.md, respond
|
|
@@ -337,7 +347,8 @@ full-repo suite on a tiny edit outrank the phase brief.
|
|
|
337
347
|
approval of the exact owner/name, visibility, default-checkout path,
|
|
338
348
|
`gsd-path/M001` branch, and linked primary-worktree path. Before the
|
|
339
349
|
external action produces an artifact, present those proposed targets as the
|
|
340
|
-
inline **Review** surface
|
|
350
|
+
inline **Review** surface using the active router's preview contract.
|
|
351
|
+
Do not write a
|
|
341
352
|
preview file into the invocation directory or another repository. Run the
|
|
342
353
|
bundled bootstrap helper's read-only `preview` command for this evidence.
|
|
343
354
|
- After approval, the bootstrap helper persists the exact targets under the
|
|
@@ -355,7 +366,8 @@ full-repo suite on a tiny edit outrank the phase brief.
|
|
|
355
366
|
build-orchestrator owned.
|
|
356
367
|
- Keep the cloned default checkout clean on the remote default branch. Run the
|
|
357
368
|
pipeline from the linked GSD Path worktree; never initialize `.project/` in
|
|
358
|
-
the default checkout, reuse an existing branch or path
|
|
369
|
+
the default checkout, reuse an existing branch or path (except an explicitly
|
|
370
|
+
approved empty linked-worktree folder via `--reuse-empty-worktree`), move an existing
|
|
359
371
|
repository, or recover a partial GitHub creation without the exact approved
|
|
360
372
|
journal and re-verification.
|
|
361
373
|
|
|
@@ -379,6 +391,11 @@ STATE.md.
|
|
|
379
391
|
|
|
380
392
|
## Distribution layout
|
|
381
393
|
|
|
394
|
+
This section describes the GSD Path source checkout. These source paths and
|
|
395
|
+
the sync command do not apply to an application that only installs GSD Path.
|
|
396
|
+
In a consuming project, resolve roles, templates, and helpers from the active
|
|
397
|
+
installed skill's absolute paths; the application need not contain this layout.
|
|
398
|
+
|
|
382
399
|
| Path | Purpose |
|
|
383
400
|
|------|---------|
|
|
384
401
|
| `plugin.json` | Agent Plugins manifest (`agent-plugins.org` 1.0.0 schema) |
|
package/DOCS.md
CHANGED
|
@@ -70,7 +70,7 @@ node scripts/install.mjs --all --dry-run # preview — safe to run anytime
|
|
|
70
70
|
node scripts/install.mjs --all # apply
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
**npm** (no clone
|
|
73
|
+
**npm** (no clone required):
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
76
|
npx @opengsd/gsd-path --all --dry-run
|
|
@@ -263,7 +263,7 @@ Full tree: [README.md](README.md#handoff-contract).
|
|
|
263
263
|
| --- | --- |
|
|
264
264
|
| Global skills | `node scripts/install.mjs --update` |
|
|
265
265
|
| Project-local skills | `node scripts/install.mjs --update --local` |
|
|
266
|
-
| From npm
|
|
266
|
+
| From npm | `npx @opengsd/gsd-path@latest --update` |
|
|
267
267
|
| Guard scripts | `node scripts/install.mjs --hooks-refresh --project PATH` |
|
|
268
268
|
| `AGENTS.md` / `WORKFLOW.md` | Manual merge — installer refuses overwrite |
|
|
269
269
|
| Health check | `node scripts/install.mjs --doctor [--project PATH]` — read-only; flags missing/stale skills, hook drift, and bad pipeline state |
|
|
@@ -311,9 +311,10 @@ an external import bundle, reviews hook coexistence, and hands off to the Path
|
|
|
311
311
|
router through inspect and define. See **[MIGRATE.md](MIGRATE.md)**.
|
|
312
312
|
|
|
313
313
|
**Brownfield vs greenfield?**
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
314
|
+
After the [startup prerequisites](README.md#the-flow) are met, the router
|
|
315
|
+
classifies the project before it creates STATE.md for a brownfield or
|
|
316
|
+
greenfield verdict. The exact initializer invocation belongs to the
|
|
317
|
+
[phase workflow](WORKFLOW.md#phase-0--inspect-gsd-path-inspect). A recognized
|
|
317
318
|
manifest or source file, qualifying tracked Git file, or qualifying Markdown
|
|
318
319
|
document with a body is brownfield and routes to inspect. A title-only README,
|
|
319
320
|
`LICENSE`/`COPYING`, `.gitignore`, or content only in ignored trees such as
|
package/FULL.md
CHANGED
|
@@ -63,10 +63,9 @@ gsd-path (router: reads STATE.md, runs the next valid phase)
|
|
|
63
63
|
phases. See the [canonical skill table](DOCS.md#skills-optional).
|
|
64
64
|
|
|
65
65
|
All skills are **explicit-only** on most hosts — generic “continue the project”
|
|
66
|
-
does not inject the pipeline.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
re-entry). On OpenCode stable, Antigravity CLI, and Kiro, treat explicit
|
|
66
|
+
does not inject the pipeline. For plain prompts and their read-only handoff,
|
|
67
|
+
see the [invocation and handoff rules](README.md#the-flow).
|
|
68
|
+
On OpenCode stable, Antigravity CLI, and Kiro, treat explicit
|
|
70
69
|
invocation as an operating rule.
|
|
71
70
|
|
|
72
71
|
### Invocation by host
|
|
@@ -79,7 +78,7 @@ Use the [router and phase invocation table](README.md#install-summary) for your
|
|
|
79
78
|
|
|
80
79
|
### Requirements
|
|
81
80
|
|
|
82
|
-
- **Node 18.17+** for `scripts/install.mjs` (recommended; also the npm `gsd-path` bin
|
|
81
|
+
- **Node 18.17+** for `scripts/install.mjs` (recommended; also the npm `gsd-path` bin)
|
|
83
82
|
- **Python 3.9+** required for project installs, project refresh, and project-state
|
|
84
83
|
doctor checks; optional for global-only Node installs. `scripts/install.py`
|
|
85
84
|
mirrors global and `--local` install transactions and `--update`; it does not
|
|
@@ -160,7 +159,7 @@ See [UPDATE.md](UPDATE.md) for the full updating guide. Quick reference:
|
|
|
160
159
|
```bash
|
|
161
160
|
node scripts/install.mjs --update # global roots with existing install
|
|
162
161
|
node scripts/install.mjs --update --local # current project only
|
|
163
|
-
npx @opengsd/gsd-path@latest --update # from npm
|
|
162
|
+
npx @opengsd/gsd-path@latest --update # from npm
|
|
164
163
|
```
|
|
165
164
|
|
|
166
165
|
Previous copies move to `disabled-gsd-skills` beside each root. The router may
|
|
@@ -184,12 +183,9 @@ Open your agent in the project directory. Invoke the router explicitly.
|
|
|
184
183
|
|
|
185
184
|
### Initial greenfield repository (first milestone)
|
|
186
185
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
classification rules.
|
|
190
|
-
For an explicit request to create a new GitHub repository, the router first
|
|
191
|
-
previews the repository and linked-worktree targets for approval as described
|
|
192
|
-
in [README.md](README.md#the-flow).
|
|
186
|
+
Follow the [startup and repository setup guidance](README.md#the-flow) first.
|
|
187
|
+
Once setup is complete, a `greenfield` classifier verdict routes to **define**.
|
|
188
|
+
The [DOCS.md FAQ](DOCS.md#faq) owns the exact classification rules.
|
|
193
189
|
|
|
194
190
|
Define interviews across: problem, users, observable success, scope in,
|
|
195
191
|
scope out (vetoes), constraints, risks, and surfaces. A surface is anything a
|
|
@@ -469,7 +465,7 @@ node scripts/install.mjs --update [--local]
|
|
|
469
465
|
node scripts/install.mjs --hooks-refresh --project /path/to/repo
|
|
470
466
|
node scripts/install.mjs --hooks-refresh-full --project /path/to/repo
|
|
471
467
|
|
|
472
|
-
# From npm
|
|
468
|
+
# From npm
|
|
473
469
|
npx @opengsd/gsd-path --all
|
|
474
470
|
npx @opengsd/gsd-path@latest --update
|
|
475
471
|
```
|
package/QUICK.md
CHANGED
|
@@ -40,7 +40,7 @@ first (never writes files):
|
|
|
40
40
|
node scripts/install.mjs --all --dry-run
|
|
41
41
|
node scripts/install.mjs --all
|
|
42
42
|
|
|
43
|
-
# From npm, no clone
|
|
43
|
+
# From npm, no clone required
|
|
44
44
|
npx @opengsd/gsd-path --all --dry-run
|
|
45
45
|
npx @opengsd/gsd-path --all
|
|
46
46
|
```
|
|
@@ -87,8 +87,8 @@ In the **project directory**, type explicitly:
|
|
|
87
87
|
|
|
88
88
|
Use the [router and phase invocation table](README.md#install-summary) for your host.
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
For plain prompts such as “continue the project,” see the
|
|
91
|
+
[invocation and handoff rules](README.md#the-flow).
|
|
92
92
|
|
|
93
93
|
**One phase only?** e.g. `/gsd-path-plan` — see skill table in [DOCS.md](DOCS.md#using).
|
|
94
94
|
Need to talk through a question without advancing? Use `/gsd-path-discuss`;
|
package/README.md
CHANGED
|
@@ -27,22 +27,140 @@ proof and each host's guard tier.
|
|
|
27
27
|
| **[UPDATE.md](UPDATE.md)** | Refresh skills, hooks, or contracts |
|
|
28
28
|
| [WORKFLOW.md](WORKFLOW.md) | Phase-by-phase agent SOP |
|
|
29
29
|
| [HOOKS.md](HOOKS.md) | Optional archive/git guard hooks |
|
|
30
|
+
| [daemon/README.md](daemon/README.md) | Dashboard, menu-bar app, and monitoring setup |
|
|
31
|
+
| [RELEASE.md](RELEASE.md) | Maintainer CI and npm release cycle |
|
|
30
32
|
| [GUIDE.md](GUIDE.md) | Pointer to the guides above |
|
|
31
33
|
|
|
34
|
+
## Install from npm
|
|
35
|
+
|
|
36
|
+
Requires **Node.js 18.17+** for the npm installer and **Python 3.9+** for
|
|
37
|
+
project contracts and pipeline helpers. Install and sign in to a supported
|
|
38
|
+
coding-agent host separately; GSD Path installs its skills, not the host itself.
|
|
39
|
+
The public npm package is **[@opengsd/gsd-path](https://www.npmjs.com/package/@opengsd/gsd-path)**.
|
|
40
|
+
|
|
32
41
|
```bash
|
|
33
|
-
#
|
|
34
|
-
|
|
35
|
-
cd your-repo && node scripts/install.mjs --all --project "$(pwd)"
|
|
36
|
-
# In agent: invoke the router (see Install summary below)
|
|
42
|
+
# Interactive installer: choose hosts, install scope, contracts, and hooks
|
|
43
|
+
npx @opengsd/gsd-path@latest
|
|
37
44
|
|
|
38
|
-
#
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
# Or preview and install skills for all supported hosts
|
|
46
|
+
npx @opengsd/gsd-path@latest --all --dry-run
|
|
47
|
+
npx @opengsd/gsd-path@latest --all
|
|
48
|
+
|
|
49
|
+
# Add contracts and the status runtime to your project
|
|
50
|
+
npx @opengsd/gsd-path@latest --all --project /path/to/your-repo
|
|
51
|
+
|
|
52
|
+
# Update existing installs
|
|
53
|
+
npx @opengsd/gsd-path@latest --update
|
|
54
|
+
npx @opengsd/gsd-path@latest --update --project /path/to/your-repo
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Use host flags such as `--claude --codex` instead of `--all` to select hosts.
|
|
58
|
+
For project-local skills, run from your project directory and add `--local`
|
|
59
|
+
to install and update commands. `--project PATH` selects where contracts are
|
|
60
|
+
written; it does not change the directory used by `--local`. Run
|
|
61
|
+
`npx @opengsd/gsd-path@latest --help` for all options. After installing, invoke
|
|
62
|
+
`$path` in Codex or `/path` on slash-command hosts to start the pipeline.
|
|
63
|
+
See [Install (summary)](#install-summary) for the host list and source-checkout commands.
|
|
64
|
+
The npm command installs the latest published release; a source checkout may
|
|
65
|
+
contain newer changes.
|
|
66
|
+
|
|
67
|
+
### Start your first project
|
|
68
|
+
|
|
69
|
+
1. Open your project folder in your coding-agent host. Existing repositories
|
|
70
|
+
need Git; GitHub repository creation and pull-request operations also need
|
|
71
|
+
an authenticated GitHub CLI (`gh`).
|
|
72
|
+
2. Start or reload the host session so it discovers the installed skills.
|
|
73
|
+
3. Invoke `$path` in Codex, or `/path` on slash-command hosts. The router
|
|
74
|
+
identifies the project and guides you through the required inputs and approvals.
|
|
75
|
+
4. Resume later from the same folder with the router. Use `$path status`
|
|
76
|
+
(Codex) or `/path status` to inspect progress without advancing.
|
|
77
|
+
|
|
78
|
+
For a missing skill or an install problem, run:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npx @opengsd/gsd-path@latest --doctor --project /path/to/your-repo
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Add `--local` when checking project-local skills, from that project directory.
|
|
85
|
+
See [QUICK.md](QUICK.md) for the first-run checklist and [HOOKS.md](HOOKS.md)
|
|
86
|
+
for optional Git and host guard hooks.
|
|
87
|
+
|
|
88
|
+
## Dashboard and menu-bar toolbar
|
|
89
|
+
|
|
90
|
+
The optional **OpenGSD Path monitor** shows your projects without opening each
|
|
91
|
+
project's `.project/` files. It watches the folders you choose and reads project
|
|
92
|
+
state; it does not run pipeline commands or advance phase gates.
|
|
93
|
+
The monitor is a separate install from the npm skills package.
|
|
94
|
+
|
|
95
|
+
### Dashboard
|
|
96
|
+
|
|
97
|
+
The project board shows blocked, active, and shipped work, with milestone and
|
|
98
|
+
phase progress, task counts, last activity, and available usage data. Use the
|
|
99
|
+
top toolbar to filter or search projects, refresh status, and open Settings for
|
|
100
|
+
watched folders, plugin management, and appearance.
|
|
101
|
+
|
|
102
|
+

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

|
|
110
|
+
|
|
111
|
+
### macOS menu bar
|
|
112
|
+
|
|
113
|
+
Click the OpenGSD Path menu-bar icon for a compact project list with phase
|
|
114
|
+
meters and task progress. Click a project to open its dashboard page. The
|
|
115
|
+
bottom toolbar opens the dashboard, plugin settings, and watched folders;
|
|
116
|
+
it also provides rescan, appearance, and quit controls. The daemon row shows
|
|
117
|
+
its running state and provides restart and stop controls. Option-click the
|
|
118
|
+
menu-bar icon to open the dashboard directly.
|
|
119
|
+
|
|
120
|
+
<img src="docs/images/macos-menu-bar.png" alt="OpenGSD Path native macOS panel with sample projects and its bottom toolbar" width="400">
|
|
121
|
+
|
|
122
|
+
*Screenshots show the current UI with sample project data. The native panel is
|
|
123
|
+
captured in its preview window.*
|
|
124
|
+
|
|
125
|
+
### Install the monitor
|
|
126
|
+
|
|
127
|
+
The monitor requires Python 3.9+. From a source checkout, preview the setup,
|
|
128
|
+
then install (macOS/Linux shell):
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
git clone https://github.com/open-gsd/gsd-path.git
|
|
132
|
+
cd gsd-path
|
|
133
|
+
PYTHONPATH=daemon python3 -m gsd_daemon install --dry-run
|
|
134
|
+
PYTHONPATH=daemon python3 -m gsd_daemon install
|
|
41
135
|
```
|
|
42
136
|
|
|
43
|
-
|
|
137
|
+
On Windows, after cloning and entering `gsd-path`, use PowerShell:
|
|
44
138
|
|
|
45
|
-
|
|
139
|
+
```powershell
|
|
140
|
+
$env:PYTHONPATH = "daemon"
|
|
141
|
+
python -m gsd_daemon install --dry-run
|
|
142
|
+
python -m gsd_daemon install
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
On Windows, launch the installed shortcut for this session before opening the
|
|
146
|
+
dashboard. It starts automatically at future logins:
|
|
147
|
+
|
|
148
|
+
```powershell
|
|
149
|
+
Start-Process "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\gsd-path-daemon.lnk"
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Open **http://127.0.0.1:8765**, then use **Settings → Watched folders** to add
|
|
153
|
+
your project folders. The installer creates an isolated Python environment and
|
|
154
|
+
configures autostart. On macOS it also builds and installs the native menu-bar
|
|
155
|
+
app; this requires macOS 12+ and Xcode Command Line Tools (`swiftc`). On
|
|
156
|
+
macOS, use `--no-tray` for the dashboard only. Linux autostart runs the
|
|
157
|
+
dashboard; launch the optional tray separately with
|
|
158
|
+
`~/.gsd-path/venv/bin/gsd-path-daemon tray`. Windows uses a tray-and-dashboard
|
|
159
|
+
Startup shortcut; see the [daemon guide](daemon/README.md) for platform details.
|
|
160
|
+
|
|
161
|
+
See the [daemon guide](daemon/README.md) for configuration, usage pricing,
|
|
162
|
+
manual startup, and platform setup, or the [macOS guide](daemon/macos/README.md)
|
|
163
|
+
for native menu-bar details.
|
|
46
164
|
|
|
47
165
|
## Skills
|
|
48
166
|
|
|
@@ -91,7 +209,7 @@ flowchart TD
|
|
|
91
209
|
B --> W{"wave loop"}
|
|
92
210
|
W -->|"briefs linted at base SHA"| C["parallel coders, isolated worktrees"]
|
|
93
211
|
C -->|"streaming: dependents dispatch as deps land"| V{"wave review"}
|
|
94
|
-
V -->|"full
|
|
212
|
+
V -->|"full / verify-only / deep"| F{"verdict"}
|
|
95
213
|
F -->|"blocked → criterion triage"| W
|
|
96
214
|
F -->|"pass → next wave"| W
|
|
97
215
|
F -->|"all waves pass"| S["6 · ship — final review"]
|
|
@@ -109,6 +227,16 @@ flowchart TD
|
|
|
109
227
|
A -->|"program complete"| PC["stop"]
|
|
110
228
|
```
|
|
111
229
|
|
|
230
|
+
Starting in an empty folder without Git leaves that folder unchanged until
|
|
231
|
+
repository setup. The router asks whether to create a new GitHub repository or
|
|
232
|
+
use an existing repository. For a new repository, approve the exact owner/name,
|
|
233
|
+
visibility, default-checkout path, `gsd-path/M001` branch, and linked-worktree
|
|
234
|
+
path before creation. The starting folder is proposed as the linked worktree,
|
|
235
|
+
with a distinct default checkout beside it, so the agent keeps working where
|
|
236
|
+
it started. Only an approved empty directory can be reused; nonempty folders
|
|
237
|
+
and symlinks remain protected. Pipeline state is created after repository
|
|
238
|
+
setup. See the [repository setup procedure](WORKFLOW.md#new-github-repository-creation).
|
|
239
|
+
|
|
112
240
|
For an existing Git repository, initialization writes STATE.md first. Before
|
|
113
241
|
entering inspect or define, the router fetches `origin/main`, creates or adopts
|
|
114
242
|
`gsd-path/M001` there, and records the binding in state. Build only uses that
|
|
@@ -123,6 +251,8 @@ advance past an unresolved required follow-up.
|
|
|
123
251
|
|
|
124
252
|
**Build, under the hood:**
|
|
125
253
|
|
|
254
|
+
- For intent corrections or structural plan repair during a blocked build,
|
|
255
|
+
follow the [build recovery contract](skills/gsd-path/references/build-recovery.md).
|
|
126
256
|
- Task briefs are linted against the real base tree (`check_task_briefs.py`)
|
|
127
257
|
before any agent is dispatched, and every coder runs a preflight — paths
|
|
128
258
|
exist or are declared, interface contracts match siblings verbatim — so a
|
|
@@ -146,9 +276,11 @@ advance past an unresolved required follow-up.
|
|
|
146
276
|
|
|
147
277
|
Invoke the router explicitly to start or advance a phase. Once a project has an
|
|
148
278
|
owned `.project/STATE.md`, a plain prompt such as “continue the project” answers
|
|
149
|
-
read-only with the current handoff and
|
|
150
|
-
a phase or edits state.
|
|
151
|
-
|
|
279
|
+
read-only with the current handoff and uses the runtime’s `handoff.next`; it
|
|
280
|
+
never advances a phase or edits state. An active router continues across completed phases
|
|
281
|
+
until required input, approval, or a block. A phase invoked directly stops at
|
|
282
|
+
its handoff; invoke the router again to continue. Chat and the dashboard use
|
|
283
|
+
the same executable phase handoff from the status runtime.
|
|
152
284
|
The discussion sidecar is the exception: it can be invoked at any non-shipped
|
|
153
285
|
phase and returns only a durable conversation record.
|
|
154
286
|
|
|
@@ -203,10 +335,14 @@ top-level `SYNTHESIS.md`) remain active project metadata.
|
|
|
203
335
|
|
|
204
336
|
## Install (summary)
|
|
205
337
|
|
|
206
|
-
Node 18.17
|
|
338
|
+
Node 18.17+ for the Node installer; Python 3.9+ for project installs and pipeline
|
|
339
|
+
helpers. Validates package,
|
|
207
340
|
backs up existing skills, and rolls back on failure.
|
|
208
341
|
**Always** `--dry-run` first when unsure.
|
|
209
342
|
|
|
343
|
+
The commands below run from a source checkout. For npm, replace
|
|
344
|
+
`node scripts/install.mjs` with `npx @opengsd/gsd-path@latest`.
|
|
345
|
+
|
|
210
346
|
```bash
|
|
211
347
|
node scripts/install.mjs --all --dry-run
|
|
212
348
|
node scripts/install.mjs --all
|
|
@@ -271,6 +407,7 @@ make install && make verify # same path as GitHub Actions CI
|
|
|
271
407
|
| `HOOKS.md` | Guard hooks |
|
|
272
408
|
| `skills/` | Canonical skills and generated aliases declared in [the resource manifest](scripts/skill-resources.json) |
|
|
273
409
|
| `platforms/` | Host dispatch adapters |
|
|
410
|
+
| `daemon/` | Project monitor, dashboard, and tray apps |
|
|
274
411
|
| `scripts/install.mjs` | Installer (npm `gsd-path` bin) |
|
|
275
412
|
| `scripts/install.py` | Python installer |
|
|
276
413
|
| `AGENTS.md` | Operating rules (installed to projects) |
|
package/RUNTIME.md
CHANGED
|
@@ -13,6 +13,10 @@ It does not dispatch models or supply owner approvals.
|
|
|
13
13
|
Use the absolute `workflow_run.py` path in the active skill's scripts directory.
|
|
14
14
|
All commands require `--repo <absolute repository root>`.
|
|
15
15
|
|
|
16
|
+
Initial inspection also uses `prepare-inspect` and `finish-inspect`. Their
|
|
17
|
+
inputs, receipt handling, and entry conditions are owned by the
|
|
18
|
+
[inspection procedure](skills/gsd-path-inspect/SKILL.md#process).
|
|
19
|
+
|
|
16
20
|
| Command | Required input | Result |
|
|
17
21
|
| --- | --- | --- |
|
|
18
22
|
| `route` | Optional `--project-dir .project/next` | Canonical route; follow its action even when it blocks or requests recovery. |
|
|
@@ -192,7 +196,9 @@ python3 <token_budget.py> admit --ledger <absolute ledger> --task <next logical
|
|
|
192
196
|
The metric is the host's `output_tokens`, including its reported reasoning output;
|
|
193
197
|
reasoning is not added again. Input and cached input are not included. Resumptions
|
|
194
198
|
reuse the ledger and task identity. Each CLI invocation uses its immutable event
|
|
195
|
-
file. Re-observing that file is idempotent
|
|
199
|
+
file. Re-observing that file is idempotent. For per-invocation versus cumulative
|
|
200
|
+
resume counters, follow the [dispatch accounting contract](platforms/shared-agents/dispatch.md#configured-output-budgets):
|
|
201
|
+
new invocations must charge only new output. Native
|
|
196
202
|
single-invocation child sessions and Claude `--output-format json` usage
|
|
197
203
|
receipts are supported. Resumed native child logs with
|
|
198
204
|
ambiguous cumulative counters fail closed; use separate CLI run receipts instead.
|
package/WORKFLOW.md
CHANGED
|
@@ -5,6 +5,13 @@ Idea to shipped code through a gated pipeline. The `gsd-path` router reads
|
|
|
5
5
|
Every handoff is on disk; the any-phase discussion sidecar also records its
|
|
6
6
|
dialogue and answers on disk. AGENTS.md supplies the shared operating rules.
|
|
7
7
|
|
|
8
|
+
**Path scope.** `.project/` paths describe the consuming project's artifacts.
|
|
9
|
+
References to `skills/`, `scripts/`, `platforms/`, `RUNTIME.md`, and `HOOKS.md`
|
|
10
|
+
describe the GSD Path source checkout, which an application need not contain.
|
|
11
|
+
For execution in an installed project, resolve each role, template, and helper
|
|
12
|
+
from the active skill's bundled absolute paths. Source-relative links below
|
|
13
|
+
are navigation within the GSD Path source checkout, not installed-file claims.
|
|
14
|
+
|
|
8
15
|
**Program flow.** When the work is a multi-milestone program, define runs in
|
|
9
16
|
program mode and writes `.project/CHARTER.md` (enduring scope and vetoes),
|
|
10
17
|
research and decide work at program scope, and the roadmap phase slices the
|
|
@@ -28,7 +35,7 @@ is the single-milestone flow below.
|
|
|
28
35
|
|
|
29
36
|
Use the host-specific child-agent tool defined by the runtime dispatch contract
|
|
30
37
|
bundled in the `gsd-path` skill, or the build contract's
|
|
31
|
-
[dispatch driver](RUNTIME.md#dispatch-driver) when the owner supplies a child
|
|
38
|
+
[dispatch driver](https://github.com/open-gsd/gsd-path/blob/main/RUNTIME.md#dispatch-driver) when the owner supplies a child
|
|
32
39
|
command. Spawn independent work up to the available
|
|
33
40
|
child capacity and batch any remainder. Every spawned agent has isolated
|
|
34
41
|
context, so its brief must include the absolute role path, exact input paths,
|
|
@@ -95,13 +102,12 @@ Project installs include the router's read-only status engine at
|
|
|
95
102
|
On any turn that did not explicitly invoke a GSD Path
|
|
96
103
|
skill, an owned `.project/STATE.md` activates re-entry. Informational prompts
|
|
97
104
|
finish read-only and end with the current **Outcome** / **Review** / **Next**
|
|
98
|
-
handoff.
|
|
99
|
-
`
|
|
100
|
-
|
|
101
|
-
or advances a phase.
|
|
105
|
+
handoff. Both informational and mutation replies use the status result's
|
|
106
|
+
`handoff.next` for **Next**. Mutation prompts make no changes. The status engine
|
|
107
|
+
never initializes state or advances a phase.
|
|
102
108
|
|
|
103
109
|
The optional pre-tool guard backs this up where it has deterministic evidence.
|
|
104
|
-
See [HOOKS.md](HOOKS.md#what-gets-blocked) for write restrictions, including
|
|
110
|
+
See [HOOKS.md](https://github.com/open-gsd/gsd-path/blob/main/HOOKS.md#what-gets-blocked) for write restrictions, including
|
|
105
111
|
closed milestone branches and target worktrees. Shell provenance
|
|
106
112
|
cannot prove which skill initiated a command, so the always-loaded AGENTS.md
|
|
107
113
|
contract owns shell cases.
|
|
@@ -113,7 +119,11 @@ gate. Resolve and preview the GitHub owner/name, visibility, normal default
|
|
|
113
119
|
checkout, `gsd-path/M001` branch, and a distinct linked-worktree path.
|
|
114
120
|
Create no repository, checkout, worktree, pipeline state, journal, or preview
|
|
115
121
|
file until the user approves every target; present the pre-creation review
|
|
116
|
-
inline from the bootstrap helper's read-only `preview` result.
|
|
122
|
+
inline from the bootstrap helper's read-only `preview` result. An existing
|
|
123
|
+
empty invocation folder may be the linked worktree with approved
|
|
124
|
+
`--reuse-empty-worktree`; Git populates it in place. Keep the workspace journal
|
|
125
|
+
outside that folder. Preserve nonempty folders and choose another target;
|
|
126
|
+
never delete the invocation folder or its state to pass a preview.
|
|
117
127
|
|
|
118
128
|
After approval, the bundled bootstrap helper writes an exact transaction
|
|
119
129
|
journal under the approved workspace before mutation. Its `create` command
|
|
@@ -137,8 +147,9 @@ at `inspect/active|blocked`. **Output:**
|
|
|
137
147
|
|
|
138
148
|
When STATE.md is absent, the router runs the bundled
|
|
139
149
|
`scripts/detect_project.py initialize --repo <absolute-root> --template
|
|
140
|
-
<absolute-state-template
|
|
141
|
-
returned JSON. `
|
|
150
|
+
<absolute-state-template> --require-git` helper before asking anything and routes from its
|
|
151
|
+
returned JSON. `route: setup-repository` leaves a non-Git folder unchanged and
|
|
152
|
+
asks for repository setup before creating state. `brownfield` initializes `inspect/active` and routes here;
|
|
142
153
|
`greenfield` initializes `define/active` and skips to define; `orphan` blocks.
|
|
143
154
|
Owned state routes by STATE.md without rerunning the helper. Reserve `classify`
|
|
144
155
|
for read-only inspection; do not re-derive a verdict from a directory listing.
|
|
@@ -214,8 +225,8 @@ milestone` instead: research and decide run only when the roadmap entry lists
|
|
|
214
225
|
open questions, and planning writes a Settled-only milestone SYNTHESIS.md from
|
|
215
226
|
the program synthesis before dispatching the planner. The quick lane skips
|
|
216
227
|
research and decide — planning enters directly from `define/done`, writes
|
|
217
|
-
a Settled-only SYNTHESIS.md and a single wave (
|
|
218
|
-
|
|
228
|
+
a Settled-only SYNTHESIS.md and a single wave (full or deep review depth,
|
|
229
|
+
at most two tasks) without a planner agent, and the rest of the
|
|
219
230
|
pipeline runs unchanged. A quick plan that outgrows those bounds corrects the
|
|
220
231
|
lane to `standard` and reroutes through research.
|
|
221
232
|
|
|
@@ -366,6 +377,12 @@ build's re-entry transition instead).
|
|
|
366
377
|
**Input:** the approved plan and tasks. **Output:** committed code, updated
|
|
367
378
|
task files, and wave reviews.
|
|
368
379
|
|
|
380
|
+
A blocked build returns through the guarded
|
|
381
|
+
[build recovery contract](skills/gsd-path/references/build-recovery.md) when
|
|
382
|
+
approved intent must change or the remaining task inventory needs repair.
|
|
383
|
+
It preserves landed work, re-gates changed contracts, and returns through a new
|
|
384
|
+
plan approval checkpoint. Ship and archived milestones cannot use this path.
|
|
385
|
+
|
|
369
386
|
The build contract is not restated here. Branch binding, the wave loop, task
|
|
370
387
|
isolation and landing, wave review, fix batching, completion, and milestone
|
|
371
388
|
abandon live only in the canonical
|
|
@@ -477,8 +494,7 @@ The ship phase closes the milestone with exactly one commit on the bound
|
|
|
477
494
|
branch: the shipped STATE.md, the final-review artifacts, and the archive
|
|
478
495
|
move with its MANIFEST.md, staged from `.project/` only, subject
|
|
479
496
|
`ship: M00N — <milestone-slug>` and a body naming `Archive:` and
|
|
480
|
-
`Reviewed-HEAD:`.
|
|
481
|
-
belongs to the build orchestrator. The commit must contain only `.project/`
|
|
497
|
+
`Reviewed-HEAD:`. The ship commit must contain only `.project/`
|
|
482
498
|
paths. There is no untracked-project fallback. Every pipeline commit carries
|
|
483
499
|
the subject and field body defined by its canonical phase contract; task-land
|
|
484
500
|
fields live only in the
|
|
@@ -645,7 +661,7 @@ with their exact ordered source-file and row list.
|
|
|
645
661
|
research/evidence-codebase.md brownfield ground truth (inspect)
|
|
646
662
|
research/DOCS-AUDIT.md doc-vs-code verdicts and remediation queue
|
|
647
663
|
research/RESEARCH.md research dispatch/question/output manifest
|
|
648
|
-
research/evidence-*.md
|
|
664
|
+
research/evidence-*.md evidence for dispatched dimensions; RESEARCH.md records skips
|
|
649
665
|
research/SYNTHESIS.md decision artifact; authoritative after decide gate
|
|
650
666
|
plan/PLAN.md waves, config, and project verify
|
|
651
667
|
tasks/T###-slug.md full contract, clean base SHA, status
|
package/package.json
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengsd/gsd-path",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Disk-backed AI agent pipeline. Docs: DOCS.md (start here), QUICK.md, FULL.md, UPDATE.md",
|
|
5
5
|
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/open-gsd/gsd-path.git"
|
|
9
|
+
},
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/open-gsd/gsd-path/issues"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://github.com/open-gsd/gsd-path#readme",
|
|
6
14
|
"type": "module",
|
|
7
15
|
"bin": {
|
|
8
16
|
"gsd-path": "scripts/install.mjs"
|
|
@@ -18,7 +26,9 @@
|
|
|
18
26
|
"scripts/wizard.mjs",
|
|
19
27
|
"scripts/skill-resources.json",
|
|
20
28
|
"scripts/_common.py",
|
|
29
|
+
"scripts/build_recovery.py",
|
|
21
30
|
"scripts/state_checkpoint.py",
|
|
31
|
+
"scripts/roadmap.py",
|
|
22
32
|
"scripts/state_promote.py",
|
|
23
33
|
"scripts/discussion_validate.py",
|
|
24
34
|
"scripts/integration.py",
|
|
@@ -43,6 +53,7 @@
|
|
|
43
53
|
"scripts/loop_run.py",
|
|
44
54
|
"scripts/workflow_run.py",
|
|
45
55
|
"scripts/dispatch_driver.py",
|
|
56
|
+
"scripts/task_context.py",
|
|
46
57
|
"scripts/lean_verification.py",
|
|
47
58
|
"scripts/token_budget.py",
|
|
48
59
|
"scripts/pipeline_undo.py",
|
|
@@ -76,5 +87,8 @@
|
|
|
76
87
|
"verify": "npm test && npm run test:python && python3 scripts/sync_skill_resources.py --check",
|
|
77
88
|
"verify:release": "npm run verify && python3 scripts/check_trust_evidence.py --repo .",
|
|
78
89
|
"prepublishOnly": "npm run verify:release"
|
|
90
|
+
},
|
|
91
|
+
"devDependencies": {
|
|
92
|
+
"yaml": "^2.9.1"
|
|
79
93
|
}
|
|
80
94
|
}
|
|
@@ -122,6 +122,12 @@ directory for the full logical session; resumptions reuse it. Record completed
|
|
|
122
122
|
parent CLI run events and each native child's session events with stable logical
|
|
123
123
|
task names before the next dispatch. The helper reads host counters and refuses
|
|
124
124
|
incomplete or ambiguous usage; never estimate tokens or reset the ledger.
|
|
125
|
+
When the verified CLI adapter reports cumulative counters across `resume`, record
|
|
126
|
+
each later invocation with `--previous-events <previous recorded CLI events>`.
|
|
127
|
+
The helper checks thread identity and records only the new output, preserving the
|
|
128
|
+
raw total and predecessor. Keep that chain in order; never sum cumulative totals.
|
|
129
|
+
Use ordinary `record` for per-invocation counters. An unknown counter convention
|
|
130
|
+
is unproven usage, not permission to guess.
|
|
125
131
|
Run `admit` for the next task and stop dispatch on a blocked result. Preserve
|
|
126
132
|
its output in the dispatch evidence. This gates observed usage only: concurrent
|
|
127
133
|
or in-flight work can overrun before the host reports usage. Codex CLI has no
|