@opengsd/gsd-path 1.4.0 → 1.5.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/CHANGELOG.md +325 -344
- package/DOCS.md +12 -2
- package/FULL.md +3 -2
- package/HOOKS.md +95 -8
- package/QUICK.md +1 -1
- package/README.md +78 -110
- package/RUNTIME.md +1 -1
- package/UPDATE.md +4 -3
- package/WORKFLOW.md +22 -1
- package/package.json +5 -2
- package/platforms/shared-agents/dispatch.md +13 -0
- package/scripts/_common.py +149 -1
- package/scripts/archive_milestone.py +14 -13
- package/scripts/build_recovery.py +96 -31
- package/scripts/build_state.py +79 -3
- package/scripts/check_docs_audit.py +77 -4
- package/scripts/check_handoffs.py +546 -30
- package/scripts/check_task_briefs.py +279 -23
- package/scripts/detect_project.py +243 -18
- package/scripts/discussion_validate.py +86 -29
- package/scripts/dispatch_driver.py +392 -22
- package/scripts/git_guard.py +3 -3
- package/scripts/guard_hook.py +1416 -165
- package/scripts/install.mjs +23 -8
- package/scripts/install.py +49 -9
- package/scripts/integration.py +146 -1
- package/scripts/isolation.py +392 -60
- package/scripts/loop_run.py +16 -4
- package/scripts/members.py +11 -9
- package/scripts/path_config.py +3 -3
- package/scripts/pipeline_git.py +63 -12
- package/scripts/pipeline_state.py +111 -33
- package/scripts/pipeline_undo.py +101 -8
- package/scripts/runtime_store.py +20 -2
- package/scripts/skill-resources.json +9 -2
- package/scripts/state_checkpoint.py +9 -27
- package/scripts/status_runtime.py +22 -4
- package/scripts/task_context.py +12 -3
- package/scripts/wizard.mjs +1 -0
- package/scripts/workflow_run.py +5 -2
- package/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path/DEFINE.md +28 -3
- package/skills/gsd-path/PLAN.md +11 -3
- package/skills/gsd-path/RESEARCH.md +11 -0
- package/skills/gsd-path/SHIP.md +6 -1
- package/skills/gsd-path/references/build-native.md +16 -1
- package/skills/gsd-path/references/dispatch.md +13 -0
- package/skills/gsd-path/references/docs-auditor.md +5 -0
- package/skills/gsd-path/references/planner.md +14 -4
- package/skills/gsd-path/references/reviewer-final.md +20 -2
- package/skills/gsd-path/references/reviewer-wave.md +15 -4
- package/skills/gsd-path/references/reviewer.md +3 -1
- package/skills/gsd-path/references/spec-probes.md +150 -0
- package/skills/gsd-path/scripts/_common.py +149 -1
- package/skills/gsd-path/scripts/archive_milestone.py +14 -13
- package/skills/gsd-path/scripts/build_recovery.py +96 -31
- package/skills/gsd-path/scripts/build_state.py +79 -3
- package/skills/gsd-path/scripts/check_docs_audit.py +77 -4
- package/skills/gsd-path/scripts/check_handoffs.py +546 -30
- package/skills/gsd-path/scripts/check_task_briefs.py +279 -23
- package/skills/gsd-path/scripts/detect_project.py +243 -18
- package/skills/gsd-path/scripts/discussion_validate.py +86 -29
- package/skills/gsd-path/scripts/dispatch_driver.py +392 -22
- package/skills/gsd-path/scripts/git_guard.py +3 -3
- package/skills/gsd-path/scripts/integration.py +146 -1
- package/skills/gsd-path/scripts/isolation.py +392 -60
- package/skills/gsd-path/scripts/loop_run.py +16 -4
- package/skills/gsd-path/scripts/members.py +11 -9
- package/skills/gsd-path/scripts/path_config.py +3 -3
- package/skills/gsd-path/scripts/pipeline_git.py +63 -12
- package/skills/gsd-path/scripts/pipeline_state.py +111 -33
- package/skills/gsd-path/scripts/state_checkpoint.py +9 -27
- package/skills/gsd-path/scripts/status_runtime.py +22 -4
- package/skills/gsd-path/scripts/task_context.py +12 -3
- package/skills/gsd-path/scripts/workflow_run.py +5 -2
- package/skills/gsd-path/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path/templates/docs-audit.md +5 -1
- package/skills/gsd-path/templates/final-review.md +11 -2
- package/skills/gsd-path/templates/intent.md +30 -0
- package/skills/gsd-path/templates/patch-findings.md +3 -3
- package/skills/gsd-path/templates/plan.md +17 -2
- package/skills/gsd-path/templates/research-handoff.md +14 -3
- package/skills/gsd-path/templates/state.md +1 -1
- package/skills/gsd-path/templates/wave-review.md +16 -6
- package/skills/gsd-path-build/references/build-native.md +16 -1
- package/skills/gsd-path-build/references/dispatch.md +13 -0
- package/skills/gsd-path-build/references/reviewer-final.md +20 -2
- package/skills/gsd-path-build/references/reviewer-wave.md +15 -4
- package/skills/gsd-path-build/references/reviewer.md +3 -1
- package/skills/gsd-path-build/references/spec-probes.md +150 -0
- package/skills/gsd-path-build/scripts/_common.py +149 -1
- package/skills/gsd-path-build/scripts/archive_milestone.py +14 -13
- package/skills/gsd-path-build/scripts/build_recovery.py +96 -31
- package/skills/gsd-path-build/scripts/build_state.py +79 -3
- package/skills/gsd-path-build/scripts/check_handoffs.py +546 -30
- package/skills/gsd-path-build/scripts/check_task_briefs.py +279 -23
- package/skills/gsd-path-build/scripts/detect_project.py +243 -18
- package/skills/gsd-path-build/scripts/discussion_validate.py +86 -29
- package/skills/gsd-path-build/scripts/dispatch_driver.py +392 -22
- package/skills/gsd-path-build/scripts/integration.py +146 -1
- package/skills/gsd-path-build/scripts/isolation.py +392 -60
- package/skills/gsd-path-build/scripts/loop_run.py +16 -4
- package/skills/gsd-path-build/scripts/members.py +11 -9
- package/skills/gsd-path-build/scripts/path_config.py +3 -3
- package/skills/gsd-path-build/scripts/pipeline_git.py +63 -12
- package/skills/gsd-path-build/scripts/pipeline_state.py +111 -33
- package/skills/gsd-path-build/scripts/state_checkpoint.py +9 -27
- package/skills/gsd-path-build/scripts/task_context.py +12 -3
- package/skills/gsd-path-build/scripts/workflow_run.py +5 -2
- package/skills/gsd-path-build/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path-build/templates/wave-review.md +16 -6
- package/skills/gsd-path-decide/references/dispatch.md +13 -0
- package/skills/gsd-path-decide/scripts/_common.py +149 -1
- package/skills/gsd-path-decide/scripts/archive_milestone.py +14 -13
- package/skills/gsd-path-decide/scripts/build_recovery.py +96 -31
- package/skills/gsd-path-decide/scripts/check_handoffs.py +546 -30
- package/skills/gsd-path-decide/scripts/check_task_briefs.py +279 -23
- package/skills/gsd-path-decide/scripts/detect_project.py +243 -18
- package/skills/gsd-path-decide/scripts/discussion_validate.py +86 -29
- package/skills/gsd-path-decide/scripts/integration.py +146 -1
- package/skills/gsd-path-decide/scripts/isolation.py +392 -60
- package/skills/gsd-path-decide/scripts/loop_run.py +16 -4
- package/skills/gsd-path-decide/scripts/members.py +11 -9
- package/skills/gsd-path-decide/scripts/path_config.py +3 -3
- package/skills/gsd-path-decide/scripts/pipeline_git.py +63 -12
- package/skills/gsd-path-decide/scripts/pipeline_state.py +111 -33
- package/skills/gsd-path-decide/scripts/state_checkpoint.py +9 -27
- package/skills/gsd-path-decide/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path-define/SKILL.md +28 -3
- package/skills/gsd-path-define/references/spec-probes.md +150 -0
- package/skills/gsd-path-define/scripts/_common.py +149 -1
- package/skills/gsd-path-define/scripts/archive_milestone.py +14 -13
- package/skills/gsd-path-define/scripts/build_recovery.py +96 -31
- package/skills/gsd-path-define/scripts/check_handoffs.py +546 -30
- package/skills/gsd-path-define/scripts/check_task_briefs.py +279 -23
- package/skills/gsd-path-define/scripts/detect_project.py +243 -18
- package/skills/gsd-path-define/scripts/discussion_validate.py +86 -29
- package/skills/gsd-path-define/scripts/integration.py +146 -1
- package/skills/gsd-path-define/scripts/isolation.py +392 -60
- package/skills/gsd-path-define/scripts/loop_run.py +16 -4
- package/skills/gsd-path-define/scripts/members.py +11 -9
- package/skills/gsd-path-define/scripts/path_config.py +3 -3
- package/skills/gsd-path-define/scripts/pipeline_git.py +63 -12
- package/skills/gsd-path-define/scripts/pipeline_state.py +111 -33
- package/skills/gsd-path-define/scripts/state_checkpoint.py +9 -27
- package/skills/gsd-path-define/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path-define/templates/intent.md +30 -0
- package/skills/gsd-path-define/templates/state.md +1 -1
- package/skills/gsd-path-discuss/scripts/_common.py +149 -1
- package/skills/gsd-path-discuss/scripts/loop_run.py +16 -4
- package/skills/gsd-path-discuss/scripts/path_config.py +3 -3
- package/skills/gsd-path-discuss/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path-docs-audit/references/dispatch.md +13 -0
- package/skills/gsd-path-docs-audit/references/docs-auditor.md +5 -0
- package/skills/gsd-path-docs-audit/scripts/_common.py +149 -1
- package/skills/gsd-path-docs-audit/scripts/archive_milestone.py +14 -13
- package/skills/gsd-path-docs-audit/scripts/build_recovery.py +96 -31
- package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +77 -4
- package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +546 -30
- package/skills/gsd-path-docs-audit/scripts/check_task_briefs.py +279 -23
- package/skills/gsd-path-docs-audit/scripts/detect_project.py +243 -18
- package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +86 -29
- package/skills/gsd-path-docs-audit/scripts/integration.py +146 -1
- package/skills/gsd-path-docs-audit/scripts/isolation.py +392 -60
- package/skills/gsd-path-docs-audit/scripts/loop_run.py +16 -4
- package/skills/gsd-path-docs-audit/scripts/members.py +11 -9
- package/skills/gsd-path-docs-audit/scripts/path_config.py +3 -3
- package/skills/gsd-path-docs-audit/scripts/pipeline_git.py +63 -12
- package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +111 -33
- package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +9 -27
- package/skills/gsd-path-docs-audit/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path-docs-audit/templates/docs-audit.md +5 -1
- package/skills/gsd-path-forensics/scripts/_common.py +149 -1
- package/skills/gsd-path-forensics/scripts/loop_run.py +16 -4
- package/skills/gsd-path-forensics/scripts/path_config.py +3 -3
- package/skills/gsd-path-forensics/scripts/pipeline_undo.py +101 -8
- package/skills/gsd-path-forensics/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path-inspect/references/dispatch.md +13 -0
- package/skills/gsd-path-inspect/references/docs-auditor.md +5 -0
- package/skills/gsd-path-inspect/scripts/_common.py +149 -1
- package/skills/gsd-path-inspect/scripts/archive_milestone.py +14 -13
- package/skills/gsd-path-inspect/scripts/build_recovery.py +96 -31
- package/skills/gsd-path-inspect/scripts/check_docs_audit.py +77 -4
- package/skills/gsd-path-inspect/scripts/check_handoffs.py +546 -30
- package/skills/gsd-path-inspect/scripts/check_task_briefs.py +279 -23
- package/skills/gsd-path-inspect/scripts/detect_project.py +243 -18
- package/skills/gsd-path-inspect/scripts/discussion_validate.py +86 -29
- package/skills/gsd-path-inspect/scripts/integration.py +146 -1
- package/skills/gsd-path-inspect/scripts/isolation.py +392 -60
- package/skills/gsd-path-inspect/scripts/loop_run.py +16 -4
- package/skills/gsd-path-inspect/scripts/members.py +11 -9
- package/skills/gsd-path-inspect/scripts/path_config.py +3 -3
- package/skills/gsd-path-inspect/scripts/pipeline_git.py +63 -12
- package/skills/gsd-path-inspect/scripts/pipeline_state.py +111 -33
- package/skills/gsd-path-inspect/scripts/state_checkpoint.py +9 -27
- package/skills/gsd-path-inspect/scripts/workflow_run.py +5 -2
- package/skills/gsd-path-inspect/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path-inspect/templates/docs-audit.md +5 -1
- package/skills/gsd-path-inspect/templates/state.md +1 -1
- package/skills/gsd-path-loop/scripts/_common.py +149 -1
- package/skills/gsd-path-loop/scripts/loop_run.py +16 -4
- package/skills/gsd-path-loop/scripts/path_config.py +3 -3
- package/skills/gsd-path-loop/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path-migrate/scripts/_common.py +149 -1
- package/skills/gsd-path-migrate/scripts/loop_run.py +16 -4
- package/skills/gsd-path-migrate/scripts/path_config.py +3 -3
- package/skills/gsd-path-plan/SKILL.md +11 -3
- package/skills/gsd-path-plan/references/dispatch.md +13 -0
- package/skills/gsd-path-plan/references/planner.md +14 -4
- package/skills/gsd-path-plan/references/spec-probes.md +150 -0
- package/skills/gsd-path-plan/scripts/_common.py +149 -1
- package/skills/gsd-path-plan/scripts/archive_milestone.py +14 -13
- package/skills/gsd-path-plan/scripts/build_recovery.py +96 -31
- package/skills/gsd-path-plan/scripts/check_handoffs.py +546 -30
- package/skills/gsd-path-plan/scripts/check_task_briefs.py +279 -23
- package/skills/gsd-path-plan/scripts/detect_project.py +243 -18
- package/skills/gsd-path-plan/scripts/discussion_validate.py +86 -29
- package/skills/gsd-path-plan/scripts/integration.py +146 -1
- package/skills/gsd-path-plan/scripts/isolation.py +392 -60
- package/skills/gsd-path-plan/scripts/loop_run.py +16 -4
- package/skills/gsd-path-plan/scripts/members.py +11 -9
- package/skills/gsd-path-plan/scripts/path_config.py +3 -3
- package/skills/gsd-path-plan/scripts/pipeline_git.py +63 -12
- package/skills/gsd-path-plan/scripts/pipeline_state.py +111 -33
- package/skills/gsd-path-plan/scripts/state_checkpoint.py +9 -27
- package/skills/gsd-path-plan/scripts/workflow_run.py +5 -2
- package/skills/gsd-path-plan/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path-plan/templates/patch-findings.md +3 -3
- package/skills/gsd-path-plan/templates/plan.md +17 -2
- package/skills/gsd-path-research/SKILL.md +11 -0
- package/skills/gsd-path-research/references/dispatch.md +13 -0
- package/skills/gsd-path-research/scripts/_common.py +149 -1
- package/skills/gsd-path-research/scripts/archive_milestone.py +14 -13
- package/skills/gsd-path-research/scripts/build_recovery.py +96 -31
- package/skills/gsd-path-research/scripts/check_handoffs.py +546 -30
- package/skills/gsd-path-research/scripts/check_task_briefs.py +279 -23
- package/skills/gsd-path-research/scripts/detect_project.py +243 -18
- package/skills/gsd-path-research/scripts/discussion_validate.py +86 -29
- package/skills/gsd-path-research/scripts/integration.py +146 -1
- package/skills/gsd-path-research/scripts/isolation.py +392 -60
- package/skills/gsd-path-research/scripts/loop_run.py +16 -4
- package/skills/gsd-path-research/scripts/members.py +11 -9
- package/skills/gsd-path-research/scripts/path_config.py +3 -3
- package/skills/gsd-path-research/scripts/pipeline_git.py +63 -12
- package/skills/gsd-path-research/scripts/pipeline_state.py +111 -33
- package/skills/gsd-path-research/scripts/state_checkpoint.py +9 -27
- package/skills/gsd-path-research/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path-research/templates/research-handoff.md +14 -3
- package/skills/gsd-path-roadmap/references/dispatch.md +13 -0
- package/skills/gsd-path-roadmap/scripts/_common.py +149 -1
- package/skills/gsd-path-roadmap/scripts/archive_milestone.py +14 -13
- package/skills/gsd-path-roadmap/scripts/build_recovery.py +96 -31
- package/skills/gsd-path-roadmap/scripts/check_handoffs.py +546 -30
- package/skills/gsd-path-roadmap/scripts/check_task_briefs.py +279 -23
- package/skills/gsd-path-roadmap/scripts/detect_project.py +243 -18
- package/skills/gsd-path-roadmap/scripts/discussion_validate.py +86 -29
- package/skills/gsd-path-roadmap/scripts/integration.py +146 -1
- package/skills/gsd-path-roadmap/scripts/isolation.py +392 -60
- package/skills/gsd-path-roadmap/scripts/loop_run.py +16 -4
- package/skills/gsd-path-roadmap/scripts/members.py +11 -9
- package/skills/gsd-path-roadmap/scripts/path_config.py +3 -3
- package/skills/gsd-path-roadmap/scripts/pipeline_git.py +63 -12
- package/skills/gsd-path-roadmap/scripts/pipeline_state.py +111 -33
- package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +9 -27
- package/skills/gsd-path-roadmap/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path-ship/SKILL.md +6 -1
- package/skills/gsd-path-ship/references/dispatch.md +13 -0
- package/skills/gsd-path-ship/references/reviewer-final.md +20 -2
- package/skills/gsd-path-ship/references/reviewer-wave.md +15 -4
- package/skills/gsd-path-ship/references/reviewer.md +3 -1
- package/skills/gsd-path-ship/references/spec-probes.md +150 -0
- package/skills/gsd-path-ship/scripts/_common.py +149 -1
- package/skills/gsd-path-ship/scripts/archive_milestone.py +14 -13
- package/skills/gsd-path-ship/scripts/build_recovery.py +96 -31
- package/skills/gsd-path-ship/scripts/build_state.py +79 -3
- package/skills/gsd-path-ship/scripts/check_handoffs.py +546 -30
- package/skills/gsd-path-ship/scripts/check_task_briefs.py +279 -23
- package/skills/gsd-path-ship/scripts/detect_project.py +243 -18
- package/skills/gsd-path-ship/scripts/discussion_validate.py +86 -29
- package/skills/gsd-path-ship/scripts/integration.py +146 -1
- package/skills/gsd-path-ship/scripts/isolation.py +392 -60
- package/skills/gsd-path-ship/scripts/loop_run.py +16 -4
- package/skills/gsd-path-ship/scripts/members.py +11 -9
- package/skills/gsd-path-ship/scripts/path_config.py +3 -3
- package/skills/gsd-path-ship/scripts/pipeline_git.py +63 -12
- package/skills/gsd-path-ship/scripts/pipeline_state.py +111 -33
- package/skills/gsd-path-ship/scripts/state_checkpoint.py +9 -27
- package/skills/gsd-path-ship/scripts/workflow_run.py +5 -2
- package/skills/gsd-path-ship/scripts/worktree_paths.py +54 -2
- package/skills/gsd-path-ship/templates/final-review.md +11 -2
- package/skills/gsd-path-ship/templates/patch-findings.md +3 -3
- package/skills/gsd-path-ship/templates/wave-review.md +16 -6
- package/skills/gsd-path-undo/scripts/_common.py +149 -1
- package/skills/gsd-path-undo/scripts/loop_run.py +16 -4
- package/skills/gsd-path-undo/scripts/path_config.py +3 -3
- package/skills/gsd-path-undo/scripts/pipeline_undo.py +101 -8
- package/skills/gsd-path-undo/scripts/worktree_paths.py +54 -2
- package/skills/path/DEFINE.md +28 -3
- package/skills/path/PLAN.md +11 -3
- package/skills/path/RESEARCH.md +11 -0
- package/skills/path/SHIP.md +6 -1
- package/skills/path/references/build-native.md +16 -1
- package/skills/path/references/dispatch.md +13 -0
- package/skills/path/references/docs-auditor.md +5 -0
- package/skills/path/references/planner.md +14 -4
- package/skills/path/references/reviewer-final.md +20 -2
- package/skills/path/references/reviewer-wave.md +15 -4
- package/skills/path/references/reviewer.md +3 -1
- package/skills/path/references/spec-probes.md +150 -0
- package/skills/path/scripts/_common.py +149 -1
- package/skills/path/scripts/archive_milestone.py +14 -13
- package/skills/path/scripts/build_recovery.py +96 -31
- package/skills/path/scripts/build_state.py +79 -3
- package/skills/path/scripts/check_docs_audit.py +77 -4
- package/skills/path/scripts/check_handoffs.py +546 -30
- package/skills/path/scripts/check_task_briefs.py +279 -23
- package/skills/path/scripts/detect_project.py +243 -18
- package/skills/path/scripts/discussion_validate.py +86 -29
- package/skills/path/scripts/dispatch_driver.py +392 -22
- package/skills/path/scripts/git_guard.py +3 -3
- package/skills/path/scripts/integration.py +146 -1
- package/skills/path/scripts/isolation.py +392 -60
- package/skills/path/scripts/loop_run.py +16 -4
- package/skills/path/scripts/members.py +11 -9
- package/skills/path/scripts/path_config.py +3 -3
- package/skills/path/scripts/pipeline_git.py +63 -12
- package/skills/path/scripts/pipeline_state.py +111 -33
- package/skills/path/scripts/state_checkpoint.py +9 -27
- package/skills/path/scripts/status_runtime.py +22 -4
- package/skills/path/scripts/task_context.py +12 -3
- package/skills/path/scripts/workflow_run.py +5 -2
- package/skills/path/scripts/worktree_paths.py +54 -2
- package/skills/path/templates/docs-audit.md +5 -1
- package/skills/path/templates/final-review.md +11 -2
- package/skills/path/templates/intent.md +30 -0
- package/skills/path/templates/patch-findings.md +3 -3
- package/skills/path/templates/plan.md +17 -2
- package/skills/path/templates/research-handoff.md +14 -3
- package/skills/path/templates/state.md +1 -1
- package/skills/path/templates/wave-review.md +16 -6
- 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-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-inspect/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-plan/scripts/__pycache__/_common.cpython-312.pyc +0 -0
- package/skills/gsd-path-ship/scripts/__pycache__/_common.cpython-312.pyc +0 -0
package/DOCS.md
CHANGED
|
@@ -247,8 +247,10 @@ resolved Git common directory and primary path, so separate clones and
|
|
|
247
247
|
primary folders do not share a location.
|
|
248
248
|
|
|
249
249
|
The first allocation pins the workspace location in
|
|
250
|
-
`<git-common-dir>/gsd-path/workspaces/<workspace-id>.json`.
|
|
251
|
-
changes do not move it
|
|
250
|
+
`<git-common-dir>/gsd-path/workspaces/<workspace-id>.json`. Environment
|
|
251
|
+
changes do not move it while a linked worktree remains. When a sidecar is
|
|
252
|
+
retired and no linked worktree remains, Path removes the pin, and the next
|
|
253
|
+
allocation reads `GSD_PATH_WORKTREE_ROOT` again. Existing sibling worktrees remain at their original
|
|
252
254
|
paths and retain the same recovery and cleanup checks. These folders contain
|
|
253
255
|
active work and evidence; they are not a disposable cache. Relocation needs
|
|
254
256
|
a separate migration; do not edit placement records or move folders manually.
|
|
@@ -397,6 +399,14 @@ the supplied package's runtime and its compatible status launcher. Review those
|
|
|
397
399
|
configuration changes before committing them. Existing versions remain available
|
|
398
400
|
for other projects and branches.
|
|
399
401
|
|
|
402
|
+
To record where a patched runtime came from, add `--runtime-provenance-source`,
|
|
403
|
+
`--runtime-provenance-patch`, or `--runtime-provenance-note` to
|
|
404
|
+
`--runtime-upgrade`. The values are written to the `provenance` object
|
|
405
|
+
(`source`, `patch_ref`, `note`) in `.gsd-path/runtime.json`. Without a patch
|
|
406
|
+
value, a source root that is a Git checkout records its `HEAD` commit. A later
|
|
407
|
+
upgrade without these flags keeps the object only when the digest is unchanged.
|
|
408
|
+
Provenance is a record only; it does not change the digest or runtime validation.
|
|
409
|
+
|
|
400
410
|
A new machine needs the selected runtime installed before status and guards can
|
|
401
411
|
run. `gsd-path --runtime-restore --project /absolute/project --source-root
|
|
402
412
|
/path/to/matching/package` restores that exact version without changing project
|
package/FULL.md
CHANGED
|
@@ -106,7 +106,7 @@ node scripts/install.mjs --codex --claude --cursor
|
|
|
106
106
|
|
|
107
107
|
| Flag | Skills root |
|
|
108
108
|
| --- | --- |
|
|
109
|
-
| `--codex`, `--zed` | `~/.agents/skills` (shared bundle) |
|
|
109
|
+
| `--codex`, `--zed`, `--muse` | `~/.agents/skills` (shared bundle) |
|
|
110
110
|
| `--claude` | `~/.claude/skills` |
|
|
111
111
|
| `--grok` | `~/.grok/skills` |
|
|
112
112
|
| `--opencode` | OpenCode config `skills/` |
|
|
@@ -176,7 +176,7 @@ also print a one-line update notice (24h cache, fail-silent).
|
|
|
176
176
|
- Validates synchronized package before writing
|
|
177
177
|
- Uses the [managed-skill backup and collision rules](UPDATE.md#what-auto-updates)
|
|
178
178
|
- Rolls back **all** selected targets if any one fails
|
|
179
|
-
- Codex, Antigravity, and
|
|
179
|
+
- Codex, Antigravity, Zed, and Muse share one local physical root — installed once
|
|
180
180
|
with a shared host-aware bundle
|
|
181
181
|
|
|
182
182
|
Restart the host session after install if skills do not appear.
|
|
@@ -432,6 +432,7 @@ your skills:
|
|
|
432
432
|
| Antigravity | `invoke_subagent` | |
|
|
433
433
|
| Cursor | `Task` | installed `gsd-path` subagent |
|
|
434
434
|
| Zed | `spawn_agent` | |
|
|
435
|
+
| Muse Code | `muse.subagent_spawn` | trusted workspace required |
|
|
435
436
|
| Kiro | subagent facility | |
|
|
436
437
|
| Kimi | `Agent` | `coder` child type |
|
|
437
438
|
|
package/HOOKS.md
CHANGED
|
@@ -133,7 +133,8 @@ See [UPDATE.md](UPDATE.md).
|
|
|
133
133
|
`git checkout -- .`/`git restore .`
|
|
134
134
|
- shell writes (redirections, `tee`, `cp`, `mv`, `rm`, `sed -i`, ...) that
|
|
135
135
|
target a routing control (`.git`, `.project/STATE.md`, `.project/next`,
|
|
136
|
-
`.gsd-path`) while `.project/STATE.md` exists
|
|
136
|
+
`.gsd-path`) while `.project/STATE.md` exists, or target a product file
|
|
137
|
+
outside the routed build phase (same rule as direct file-edit tools)
|
|
137
138
|
- repeated assignments to the same shell variable within one command; split
|
|
138
139
|
these into separate tool calls so write targets can be resolved
|
|
139
140
|
- copies whose destinations, including nested recursive-copy entries, resolve
|
|
@@ -145,7 +146,8 @@ See [UPDATE.md](UPDATE.md).
|
|
|
145
146
|
source trees containing directory symlinks are denied; use literal directory
|
|
146
147
|
paths and copy directory links separately
|
|
147
148
|
- shell commands that reference the archive unless the whole command is a
|
|
148
|
-
recognized standalone read
|
|
149
|
+
recognized standalone read, a pipeline in which each segment is a recognized
|
|
150
|
+
read, or a single-command invocation of the bundled
|
|
149
151
|
`pipeline_state.py` / `archive_milestone.py` helper, resolved to a regular file
|
|
150
152
|
inside the verified runtime selected by `.gsd-path/runtime.json` (legacy projects use `.gsd-path/runtime/` beside `guard_hook.py`
|
|
151
153
|
in the repository layout), using exactly `python` or `python3` with optional
|
|
@@ -161,11 +163,93 @@ See [UPDATE.md](UPDATE.md).
|
|
|
161
163
|
- deletion or move commands outside a single simple segment, including command
|
|
162
164
|
chains, pipes, newlines, grouping, directory changes, and command substitution
|
|
163
165
|
- deletion or move commands with any argument outside the literal-path character
|
|
164
|
-
set: ASCII letters, digits, `.`, `_`, `-`, and
|
|
165
|
-
backslashes on Windows). One matching
|
|
166
|
-
|
|
167
|
-
quoted. This also applies to
|
|
166
|
+
set: ASCII letters, digits, `.`, `_`, `-`, `/`, and ASCII spaces inside one
|
|
167
|
+
shell unit (plus a drive prefix and backslashes on Windows). One matching
|
|
168
|
+
pair of surrounding quotes is allowed; parameters, wildcards, braces, and
|
|
169
|
+
tilde paths are denied even when quoted. This also applies to
|
|
170
|
+
`find -delete` and supported destructive aliases
|
|
168
171
|
- destructive Git commands nested in supported shell and command wrappers
|
|
172
|
+
- Git arguments that contain a shell parameter. Only plain `$name` and
|
|
173
|
+
`${name}` expansions pass, and only inside plain double-quoted spans of
|
|
174
|
+
read-only subcommands (`status`, `log`, `diff`, `show`, and the other
|
|
175
|
+
inspection commands) that the guard parses directly, such as
|
|
176
|
+
`git log --format="$t %H"` or `git show "HEAD:$f"`, because only double
|
|
177
|
+
quoting prevents word-splitting into options. A parameter outside double
|
|
178
|
+
quotes (`$x`, `HEAD:$f`, `--format=$x`, `"a b"$x`) is denied because its
|
|
179
|
+
expansion can split into a write option such as `--output`. Every other
|
|
180
|
+
parameter form (`${=x}`, `${(z)x}`, `${x:-y}`, `$x[@]`, `$1`, `$@`, `$*`,
|
|
181
|
+
`$#`, and the unbraced zsh flags `$=x`, `$~x`, `$^x`, `$+x`) is denied even
|
|
182
|
+
inside double quotes, because it can expand to more than one word; a
|
|
183
|
+
backslash-escaped marker (`"\$t"`) is likewise denied, because the shell
|
|
184
|
+
executes the literal text while the argument still shows the bare marker.
|
|
185
|
+
The same four zsh flags are denied in a `git -C` directory. A literal `$`
|
|
186
|
+
that starts no expansion (a regex anchor such as `--grep='fix$'`) passes.
|
|
187
|
+
A `-c`/`--config` key whose value git executes as a program —
|
|
188
|
+
`core.fsmonitor`, editors and pagers, `core.sshCommand`,
|
|
189
|
+
`core.askPass`, `filter.*` clean/smudge/process, `diff.*`
|
|
190
|
+
textconv/external/command, `merge.*` drivers, `core.gitProxy`,
|
|
191
|
+
`interactive.diffFilter`,
|
|
192
|
+
`remote.*` uploadpack/receivepack, `gpg.program` and `gpg.*.program`, `credential.helper` and
|
|
193
|
+
`credential.*.helper`, each `pager.<cmd>` key — is denied with a literal
|
|
194
|
+
value as with a parameter, because git runs it during an otherwise
|
|
195
|
+
read-only subcommand. A disabling form of such a key passes: the bare key,
|
|
196
|
+
an empty value, or `false`. A `--config-env` form is always denied, because
|
|
197
|
+
its value comes from the environment. A key through which git loads code —
|
|
198
|
+
`core.hooksPath`, `include.path`, `includeIf.*.path`, `url.*.insteadOf`,
|
|
199
|
+
`url.*.pushInsteadOf` — is denied with each value. `git config` is denied
|
|
200
|
+
when it sets one of these keys; to read or unset the key stays allowed.
|
|
201
|
+
A redirection at the end of a read (`git config <key> 2>/dev/null`) is not
|
|
202
|
+
a value. A separate digit before a redirection (`5 >/dev/null`), a word of two
|
|
203
|
+
or more digits (`12>/dev/null`) and a quoted operator are values, so they
|
|
204
|
+
make a set.
|
|
205
|
+
Each `git config` argument must be a plain literal word, bare or in one
|
|
206
|
+
pair of quotes: a backslash, mixed quotes, an unquoted glob (`*`, `?`, `[`),
|
|
207
|
+
an unquoted brace list or range (`{a,b}`, `{1..3}`) or a line continuation
|
|
208
|
+
in the word or one that joins it to the next word is denied, because the shell can make a different
|
|
209
|
+
argument list from it.
|
|
210
|
+
An unquoted word that starts with `#` among the `git config` arguments
|
|
211
|
+
is denied, because the shell reads it and the words after it as a comment.
|
|
212
|
+
The git subcommand word must be a plain literal word in each git command:
|
|
213
|
+
`git {config,...}` and a subcommand split by a line continuation are denied.
|
|
214
|
+
A program that runs the command in its arguments (`nice`, `nohup`,
|
|
215
|
+
`timeout`, `sudo`, `watch`, `time`, `env`, `stdbuf`, `setsid`) is
|
|
216
|
+
unwrapped: the guard skips the options of the program and checks the
|
|
217
|
+
command that it runs, so `nice git -c core.fsmonitor=/abs/h.sh status` is
|
|
218
|
+
denied by the git rule and `sudo apt install git` passes. A runner
|
|
219
|
+
option that writes, edits or enters a file or directory by itself is
|
|
220
|
+
denied (`time -o`, `sudo -e`, `sudo -D`, `sudo -R`, `watch -s`). The
|
|
221
|
+
`timeout` duration and the `watch` interval must be literal numbers, and
|
|
222
|
+
each runner option word must be a literal word; only a separate option
|
|
223
|
+
value can be a parameter in double quotes (`sudo -u "$USER" ls`). A short
|
|
224
|
+
option word is read as getopt reads it, so the attached value in
|
|
225
|
+
`sudo -upostgres psql` is not taken as more options. With an archive working directory a command runner is not
|
|
226
|
+
unwrapped and is denied as an unknown program. Other command
|
|
227
|
+
runners (`doas`, `ionice`, `noglob`) are not unwrapped, and `watch` with
|
|
228
|
+
the command in one quoted word is not checked.
|
|
229
|
+
Each git global option word, and the value word of `-c`, `-C`,
|
|
230
|
+
`--git-dir`, `--work-tree`, `--namespace` and `--config-env`, must resolve
|
|
231
|
+
to one word: a backslash, an unquoted glob or an unquoted brace list or
|
|
232
|
+
range in it is denied (`git -c {core.fsmonitor=/abs/h.sh,status}`,
|
|
233
|
+
`git -{p,c} core.fsmonitor=/abs/h.sh status`). A parameter in such a value
|
|
234
|
+
is denied also when no subcommand follows (`git -c $x`). Plain quoted parts
|
|
235
|
+
pass (`git -c user.name='A B' log`).
|
|
236
|
+
`git config` section renames and removals (`--rename-section`,
|
|
237
|
+
`--remove-section`) and `--edit` are denied, because a rename can move a
|
|
238
|
+
key into an executed section and `--edit` starts an editor.
|
|
239
|
+
Command substitution output, a parameter that starts an
|
|
240
|
+
argument, and a parameter in the value of an option that git writes to or
|
|
241
|
+
runs as a command (`--output`, `--upload-pack`, `--receive-pack`, `--exec`,
|
|
242
|
+
`-c`, `--config-env`, or a `<transport>::<address>` remote) are denied in
|
|
243
|
+
every form. These option names match by prefix (`--upload-pa`, `--exe`),
|
|
244
|
+
because git accepts abbreviated long options; in archive context the same
|
|
245
|
+
prefix match applies to `--output`, `--ext-diff`, and `--textconv`. The
|
|
246
|
+
exact read-only option `--text` is not an abbreviation and stays allowed. Any
|
|
247
|
+
other quoting construct in the command (`$'...'`, `$"..."`, quotes inside `${...}`, quotes or
|
|
248
|
+
backslashes in a comment, here-documents and here-strings) disables the
|
|
249
|
+
exception, so every parameter in a git argument of that command is denied.
|
|
250
|
+
The exception applies only to commands the guard parses directly, never
|
|
251
|
+
inside wrapped shell strings (`eval`, `bash -c`, `sh -c`, PowerShell or
|
|
252
|
+
`cmd` command strings), where the outer shell expands the parameter first
|
|
169
253
|
- archive glob/brace expansions and execution-capable read options such as
|
|
170
254
|
`rg --pre`
|
|
171
255
|
- direct write, edit, and patch tool calls targeting `.project/STATE.md`,
|
|
@@ -265,9 +349,12 @@ writes nor verifies that wiring. To add it yourself, register
|
|
|
265
349
|
| Antigravity | `.agents/hooks.json` `PreToolUse` | [Antigravity hooks](https://antigravity.google/docs/hooks) |
|
|
266
350
|
| OpenCode | JS plugin `tool.execute.before` | [OpenCode plugins](https://opencode.ai/docs/plugins/) |
|
|
267
351
|
| Zed | no hook API — git hooks only | — |
|
|
352
|
+
| Muse Code | no GSD Path hook integration — git hooks only | — |
|
|
268
353
|
|
|
269
|
-
**Caveats:** The hook cannot prove which skill initiated a
|
|
270
|
-
build
|
|
354
|
+
**Caveats:** The hook cannot prove which skill initiated a build-phase edit
|
|
355
|
+
when the routed build phase is already active. Shell product writes use the
|
|
356
|
+
same phase gate as file-edit tools; AGENTS.md still owns plain-prompt re-entry
|
|
357
|
+
when no `.project/STATE.md` exists. Grok and Kimi
|
|
271
358
|
fail-open on hook errors by design. Copilot, Kimi, Kiro, and Antigravity may
|
|
272
359
|
not intercept subagent tools — treat coverage as orchestrator-level.
|
|
273
360
|
|
package/QUICK.md
CHANGED
|
@@ -14,7 +14,7 @@ One router skill drives a gated pipeline: inspect → define → research → de
|
|
|
14
14
|
plan → build → ship. Every handoff lives in `.project/` so any session can resume from disk.
|
|
15
15
|
|
|
16
16
|
**Hosts:** Codex, Claude Code, Grok, OpenCode, Copilot CLI, Qwen, Antigravity,
|
|
17
|
-
Cursor, Zed, Kiro, Kimi Code.
|
|
17
|
+
Cursor, Zed, Kiro, Kimi Code, Muse Code.
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
package/README.md
CHANGED
|
@@ -10,20 +10,20 @@ parallel under `.project/next/` (lookahead); a building milestone can also be
|
|
|
10
10
|
abandoned on an explicit ruling, archiving its partial work for a re-slice.
|
|
11
11
|
|
|
12
12
|
**Supported hosts:** Codex, Claude Code, Grok, OpenCode, GitHub Copilot CLI,
|
|
13
|
-
Qwen Code, Antigravity CLI, Cursor, Zed, Kiro, and
|
|
13
|
+
Qwen Code, Antigravity CLI, Cursor, Zed, Kiro, Kimi Code, and Muse Code.
|
|
14
14
|
Support means the installer and dispatch contract exist. See the
|
|
15
15
|
[host trust matrix](https://github.com/open-gsd/gsd-path/blob/main/docs/trust-validation/HOST-MATRIX.md) for live milestone
|
|
16
16
|
proof and each host's guard tier.
|
|
17
17
|
|
|
18
18
|
<!-- release-docs -->
|
|
19
|
-
**Latest npm release:** [@opengsd/gsd-path@1.
|
|
19
|
+
**Latest npm release:** [@opengsd/gsd-path@1.5.0](https://www.npmjs.com/package/@opengsd/gsd-path/v/1.5.0) — [release notes](CHANGELOG.md#150---2026-10-09)
|
|
20
20
|
|
|
21
21
|
**Recent highlights**
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
22
|
+
- record runtime hotfix provenance on the declaration
|
|
23
|
+
- add signed self-update
|
|
24
|
+
- add the Skills, Stats, Settings, and Environment pages and the setup wizard
|
|
25
|
+
- register the hosts, project operation, and env routes
|
|
26
|
+
- add project setup operations for the app
|
|
27
27
|
|
|
28
28
|
<!-- /release-docs -->
|
|
29
29
|
|
|
@@ -40,37 +40,31 @@ proof and each host's guard tier.
|
|
|
40
40
|
| [WORKFLOW.md](WORKFLOW.md) | Phase-by-phase agent SOP |
|
|
41
41
|
| [HOOKS.md](HOOKS.md) | Optional archive/git guard hooks |
|
|
42
42
|
| [Jev screening](skills/gsd-path/references/jev-review.md) | Optional evidence screening; disabled by default, no SDK required |
|
|
43
|
-
| [daemon/README.md](daemon/README.md) |
|
|
44
|
-
| [
|
|
43
|
+
| [daemon/app/README.md](daemon/app/README.md) | Desktop app: develop, release, and updates |
|
|
44
|
+
| [daemon/README.md](daemon/README.md) | Monitor daemon: routes, configuration, and manual setup |
|
|
45
|
+
| [CHANGELOG.md](CHANGELOG.md) | npm package release notes |
|
|
46
|
+
| [daemon/app/CHANGELOG.md](daemon/app/CHANGELOG.md) | Desktop app release notes |
|
|
45
47
|
| [RELEASE.md](RELEASE.md) | Maintainer CI and npm release cycle |
|
|
46
48
|
| [GUIDE.md](GUIDE.md) | Pointer to the guides above |
|
|
47
49
|
|
|
48
|
-
## What's new —
|
|
50
|
+
## What's new — October 2, 2026
|
|
49
51
|
|
|
50
52
|
These changes are merged into the source checkout; npm installs use the latest
|
|
51
53
|
published release.
|
|
52
54
|
|
|
53
|
-
- **
|
|
54
|
-
|
|
55
|
-
[
|
|
56
|
-
- **
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
- **Clearer project updates:** the dashboard shows project runtime versions and
|
|
67
|
-
update results. After verified integration, ordinary branches can resume
|
|
68
|
-
product work while archived milestones remain protected. See
|
|
69
|
-
[update guidance](UPDATE.md#update-the-project-runtime-and-guard-hooks).
|
|
70
|
-
- **Optional Jev screening:** reviewers can request advisory checks of selected
|
|
71
|
-
criteria and evidence. It is disabled by default and never replaces recorded
|
|
72
|
-
verification or review gates. See
|
|
73
|
-
[Jev screening](skills/gsd-path/references/jev-review.md).
|
|
55
|
+
- **Desktop app (pre-release):** one app for macOS, Windows, and Linux shows
|
|
56
|
+
your projects, manages skills in each coding agent, and updates itself. See
|
|
57
|
+
[Desktop app](#desktop-app).
|
|
58
|
+
- **Skills from the published release:** the monitor installs skills from the
|
|
59
|
+
npm release, checks the download against the registry's sha512, and refuses
|
|
60
|
+
one that does not match. A release picker lets you stay on an older version.
|
|
61
|
+
- **Safer monitor writes:** a monitor started by the app accepts changes only
|
|
62
|
+
with the app's local token, so another web page cannot change your setup.
|
|
63
|
+
- **Environment editor:** edit a project's `.env` files with values masked and
|
|
64
|
+
a diff before each save.
|
|
65
|
+
- **Usage charts:** tokens and cost per day, time per phase, tasks per wave,
|
|
66
|
+
and verify history. Missing data shows as missing, never as zero.
|
|
67
|
+
- **Muse Code** is a supported host.
|
|
74
68
|
|
|
75
69
|
## Install from npm
|
|
76
70
|
|
|
@@ -157,65 +151,52 @@ project settings. Dashboard users can open **Settings → Path settings** for th
|
|
|
157
151
|
same shipping, model/effort, and future review-panel controls. See
|
|
158
152
|
[Path settings](skills/gsd-path/references/config.md) for precedence and locks.
|
|
159
153
|
|
|
160
|
-
##
|
|
161
|
-
|
|
162
|
-
The
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
it also provides rescan, appearance, and quit controls. The daemon row shows
|
|
207
|
-
its running state and provides restart and stop controls. Option-click the
|
|
208
|
-
menu-bar icon to open the dashboard directly.
|
|
209
|
-
|
|
210
|
-
<img src="docs/images/macos-menu-bar.png" alt="OpenGSD Path native macOS panel with sample projects and its bottom toolbar" width="400">
|
|
211
|
-
|
|
212
|
-
*The native panel screenshot uses sample project data and was captured in its
|
|
213
|
-
preview window; the current folder layout may differ.*
|
|
214
|
-
|
|
215
|
-
### Install the monitor
|
|
216
|
-
|
|
217
|
-
The monitor requires Python 3.9+. From a source checkout, preview the setup,
|
|
218
|
-
then install (macOS/Linux shell):
|
|
154
|
+
## Desktop app
|
|
155
|
+
|
|
156
|
+
The **OpenGSD Path app** shows your projects without opening each project's
|
|
157
|
+
`.project/` files, and manages the Path setup on your computer. It is a
|
|
158
|
+
pre-release for testers.
|
|
159
|
+
|
|
160
|
+
**Get it:** download the installer for your system from the newest `app-v`
|
|
161
|
+
entry on the [releases page](https://github.com/open-gsd/gsd-path/releases):
|
|
162
|
+
`.dmg` (macOS, Apple Silicon or Intel), `.msi` (Windows), `.deb` or AppImage
|
|
163
|
+
(Linux). The app needs Python 3.9+ and Git; its first screen checks for both
|
|
164
|
+
and shows the fix when one is missing.
|
|
165
|
+
|
|
166
|
+
macOS builds are signed with a Developer ID and notarized by Apple from 0.1.1
|
|
167
|
+
on, so they open without an approval in Privacy & Security. Windows builds have
|
|
168
|
+
no code signature yet: SmartScreen shows a warning; choose **More info → Run
|
|
169
|
+
anyway**.
|
|
170
|
+
|
|
171
|
+
What the app does:
|
|
172
|
+
|
|
173
|
+
- **Projects:** blocked, active, and shipped work with milestone and phase
|
|
174
|
+
progress, tasks, last activity, and usage. A project page shows its
|
|
175
|
+
roadmap, tasks, success criteria, reviews, verification history, files at
|
|
176
|
+
any Git version, and full recorded evidence.
|
|
177
|
+
- **Skills:** which coding agents have Path skills, at which version, with
|
|
178
|
+
preview, install, update, and uninstall. Every write shows a preview or a
|
|
179
|
+
plan first.
|
|
180
|
+
- **Project setup:** runtime version, guard hooks, health check, and, for a
|
|
181
|
+
multi-repo coordinator, member hooks and marker repair.
|
|
182
|
+
- **Settings:** updates, Path settings (shipping mode, models, review panel),
|
|
183
|
+
watched folders, model prices, launch at login, and appearance.
|
|
184
|
+
- **Stats** and the per-project **Environment** editor.
|
|
185
|
+
- **Tray:** a compact project list, items that need attention, and controls
|
|
186
|
+
to start, restart, and quit.
|
|
187
|
+
|
|
188
|
+
The app only watches and sets up. It never advances a phase; approvals and
|
|
189
|
+
rulings stay in your agent. It updates itself: it checks a signed update file,
|
|
190
|
+
asks before it installs, and refuses an update whose signature does not match.
|
|
191
|
+
|
|
192
|
+
Background monitoring is read-only. The app starts a local monitor (the
|
|
193
|
+
daemon) and stops it on quit. See the [app guide](daemon/app/README.md) and the
|
|
194
|
+
[daemon guide](daemon/README.md).
|
|
195
|
+
|
|
196
|
+
### Manual monitor (without the app)
|
|
197
|
+
|
|
198
|
+
From a source checkout you can still run the monitor and its browser
|
|
199
|
+
dashboard without the app. It requires Python 3.9+:
|
|
219
200
|
|
|
220
201
|
```bash
|
|
221
202
|
git clone https://github.com/open-gsd/gsd-path.git
|
|
@@ -224,33 +205,20 @@ PYTHONPATH=daemon python3 -m gsd_daemon install --dry-run
|
|
|
224
205
|
PYTHONPATH=daemon python3 -m gsd_daemon install
|
|
225
206
|
```
|
|
226
207
|
|
|
227
|
-
On Windows,
|
|
208
|
+
On Windows, use PowerShell in the `gsd-path` folder. The last command starts
|
|
209
|
+
the monitor for this session; it starts by itself at later logins:
|
|
228
210
|
|
|
229
211
|
```powershell
|
|
230
212
|
$env:PYTHONPATH = "daemon"
|
|
231
213
|
python -m gsd_daemon install --dry-run
|
|
232
214
|
python -m gsd_daemon install
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
On Windows, launch the installed shortcut for this session before opening the
|
|
236
|
-
dashboard. It starts automatically at future logins:
|
|
237
|
-
|
|
238
|
-
```powershell
|
|
239
215
|
Start-Process "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\gsd-path-daemon.lnk"
|
|
240
216
|
```
|
|
241
217
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
macOS, use `--no-tray` for the dashboard only. Linux autostart runs the
|
|
247
|
-
dashboard; launch the optional tray separately with
|
|
248
|
-
`~/.gsd-path/venv/bin/gsd-path-daemon tray`. Windows uses a tray-and-dashboard
|
|
249
|
-
Startup shortcut; see the [daemon guide](daemon/README.md) for platform details.
|
|
250
|
-
|
|
251
|
-
See the [daemon guide](daemon/README.md) for configuration, usage pricing,
|
|
252
|
-
manual startup, and platform setup, or the [macOS guide](daemon/macos/README.md)
|
|
253
|
-
for native menu-bar details.
|
|
218
|
+
Then open **http://127.0.0.1:8765**. The first launch of the desktop app
|
|
219
|
+
removes this older autostart entry so only one monitor runs. See the
|
|
220
|
+
[daemon guide](daemon/README.md) for platform details, configuration, and
|
|
221
|
+
usage pricing.
|
|
254
222
|
|
|
255
223
|
## Skills
|
|
256
224
|
|
|
@@ -474,7 +442,7 @@ node scripts/install.mjs --all --update --project /path/to/project # refresh .
|
|
|
474
442
|
|
|
475
443
|
| Flag | User skills root | Invoke |
|
|
476
444
|
| --- | --- | --- |
|
|
477
|
-
| `--codex`, `--zed` | `~/.agents/skills` | Codex: `$path` or `$gsd-path`; Zed: `/path` or `/gsd-path` |
|
|
445
|
+
| `--codex`, `--zed`, `--muse` | `~/.agents/skills` | Codex: `$path` or `$gsd-path`; Zed, Muse: `/path` or `/gsd-path` |
|
|
478
446
|
| `--claude` | `~/.claude/skills` | `/path` or `/gsd-path` |
|
|
479
447
|
| `--cursor` | `~/.cursor/skills` (+ subagent) | `/path` or `/gsd-path` |
|
|
480
448
|
| `--grok` | `~/.grok/skills` | `/path` or `/gsd-path` |
|
package/RUNTIME.md
CHANGED
|
@@ -91,7 +91,7 @@ argument slots defined in the dispatch model policy.
|
|
|
91
91
|
calls. In `round`, an unfinished earlier wave blocks dispatch before the bookkeeping
|
|
92
92
|
checkpoint. Child completion is recorded in `exit.json`; the parent alone
|
|
93
93
|
writes `state.json`.
|
|
94
|
-
For `review`, `panel`, and `skeptics`, when the child process is gone and `finished_at` is
|
|
94
|
+
For `round`, `review`, `panel`, and `skeptics`, when the child process is gone and `finished_at` is
|
|
95
95
|
unset, the driver rereads that attempt's state and exit receipt before
|
|
96
96
|
collecting the result or blocking with
|
|
97
97
|
`child wrapper exited without recording a result`.
|
package/UPDATE.md
CHANGED
|
@@ -176,9 +176,10 @@ a global update does not update project runtimes. Use the project's **Update**
|
|
|
176
176
|
button to refresh its runtime and existing guards. Install and update actions
|
|
177
177
|
show progress, success or failure, and installer output.
|
|
178
178
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
local
|
|
179
|
+
Project Update refreshes the daemon's plugin source first. With the
|
|
180
|
+
[git source](daemon/README.md#plugin-lifecycle), a clone that has local changes
|
|
181
|
+
is used as that local build, and the result says so. It does not pull remote
|
|
182
|
+
changes over local edits.
|
|
182
183
|
|
|
183
184
|
Older unstamped installs show **Unknown — version metadata unavailable**.
|
|
184
185
|
This does not establish that their runtime is outdated or broken. **Update**
|
package/WORKFLOW.md
CHANGED
|
@@ -223,6 +223,20 @@ vetoes and corrections verbatim. Unresolved items remain tagged `RESEARCH` or
|
|
|
223
223
|
first and presented as settled coverage for correction; the interview covers
|
|
224
224
|
only its gaps and contradictions.
|
|
225
225
|
|
|
226
|
+
Once the success criteria are drafted, define runs the spec-reach probes
|
|
227
|
+
([spec-probes.md](skills/gsd-path/references/spec-probes.md)). The edge probe
|
|
228
|
+
walks each criterion through a closed edge taxonomy (boundary, adjacency,
|
|
229
|
+
empty, encoding, ordering, precision, idempotency, concurrency) and records
|
|
230
|
+
the user's ruling per applicable edge in INTENT.md `## Edge coverage`:
|
|
231
|
+
`criterion SCn` (stated in a success criterion), `held-out` (a named test
|
|
232
|
+
pins it), or `dismissed` with a reason. The prohibition probe asks what each
|
|
233
|
+
criterion must never silently become and records kept items in
|
|
234
|
+
`## Prohibitions` as `criterion SCn`, `judgment`, or `dismissed`. Define
|
|
235
|
+
never rules on an edge itself. `scripts/check_handoffs.py intent` checks
|
|
236
|
+
both tables before every approval question, and the `define/done` transition
|
|
237
|
+
refuses an intent whose tables are incomplete. An INTENT.md without these
|
|
238
|
+
sections predates the probes and is not rechecked.
|
|
239
|
+
|
|
226
240
|
At approval define classifies the milestone lane in INTENT.md: `quick`
|
|
227
241
|
when scope fits at most two deliverable-sized tasks in one wave with no open
|
|
228
242
|
questions and no cross-wave risk; otherwise `standard`. Milestone mode — a
|
|
@@ -343,6 +357,9 @@ by — which that task must own, in the same wave as the capability behind it.
|
|
|
343
357
|
`check_handoffs.py final` then requires each of those criteria to name its
|
|
344
358
|
surface in FINAL.md with the walkthrough as its Check, so a surface criterion
|
|
345
359
|
cannot be marked `met` on internal test output.
|
|
360
|
+
Every `held-out` edge gets a PLAN.md `## Held-out checks` row naming the task
|
|
361
|
+
and test file; that test is in the task's files, its Verify runs it, and its
|
|
362
|
+
Acceptance criteria state the edge id and ruling.
|
|
346
363
|
`scripts/check_handoffs.py plan` gates the table; `wave` and `final`
|
|
347
364
|
require a verdict per owned SC id. Acceptance criteria,
|
|
348
365
|
owned SCs, and Verify are the contract; the coder owns
|
|
@@ -417,7 +434,11 @@ surface walkthroughs, in its existing review. The runtime proves freshness and
|
|
|
417
434
|
generates FINAL.md from that record. Dispatch an integration reviewer only when
|
|
418
435
|
that proof is incomplete or stale; dispatch gap reviewers only for uncovered
|
|
419
436
|
cross-wave risks through the shared capacity-aware contract. The integration reviewer marks each success
|
|
420
|
-
criterion `met`, `not-met`, or `unverifiable` with checked evidence.
|
|
437
|
+
criterion `met`, `not-met`, or `unverifiable` with checked evidence. A criterion
|
|
438
|
+
tagged by a `held-out` edge or `judgment` prohibition is `met` only when its
|
|
439
|
+
evidence cites every tag id; otherwise the reviewer records `unverifiable`
|
|
440
|
+
(insufficient spec evidence) and `check_handoffs.py final` refuses a `met`
|
|
441
|
+
that skips a tag. Each gap
|
|
421
442
|
reviewer records `pass` or `blocked` for its assigned end-to-end or cross-wave
|
|
422
443
|
risk. List only genuine
|
|
423
444
|
risks that could plausibly fail; never pad the list. The runtime
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengsd/gsd-path",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Disk-backed AI agent pipeline. Docs: DOCS.md (start here), QUICK.md, FULL.md, UPDATE.md",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -77,7 +77,9 @@
|
|
|
77
77
|
"skills/",
|
|
78
78
|
"platforms/",
|
|
79
79
|
"AGENTS.md",
|
|
80
|
-
"WORKFLOW.md"
|
|
80
|
+
"WORKFLOW.md",
|
|
81
|
+
"!**/__pycache__/**",
|
|
82
|
+
"!**/*.pyc"
|
|
81
83
|
],
|
|
82
84
|
"engines": {
|
|
83
85
|
"node": ">=18.17"
|
|
@@ -85,6 +87,7 @@
|
|
|
85
87
|
"scripts": {
|
|
86
88
|
"install:ci": "npm ci",
|
|
87
89
|
"check:prereqs": "node scripts/dev/check-prereqs.mjs",
|
|
90
|
+
"check:locks": "node scripts/dev/py.mjs scripts/check_lock_usage.py",
|
|
88
91
|
"test": "node tests/run-node-tests.mjs",
|
|
89
92
|
"test:smoke": "npm test",
|
|
90
93
|
"test:integration": "npm run test:python",
|
|
@@ -44,6 +44,19 @@ use exactly one matching branch:
|
|
|
44
44
|
create another worktree. Encode task dependencies explicitly; launch
|
|
45
45
|
independent children concurrently up to the host's advertised
|
|
46
46
|
concurrent-subagent capacity.
|
|
47
|
+
- A `muse.subagent_spawn` tool (with `muse.subagent_wait`,
|
|
48
|
+
`muse.subagent_read_result`, and `muse.subagent_send_message` siblings) is
|
|
49
|
+
Muse Code. Omit `subagent_type` (general-purpose, full capability), pass the
|
|
50
|
+
logical task name as `task_name` and `role`, and the complete brief as
|
|
51
|
+
`objective`. Never set `worktree_isolation`. Keep the returned
|
|
52
|
+
`subagent_id`; send a correction to a still-live child with
|
|
53
|
+
`muse.subagent_send_message` mode `followup` and the complete new prompt,
|
|
54
|
+
otherwise start a fresh child. Collect with `muse.subagent_wait`
|
|
55
|
+
(`wait_for: task_terminal`) then `muse.subagent_read_result`; on
|
|
56
|
+
`root_capacity_exhausted`, wait for a child to finish and retry. Spawn has no
|
|
57
|
+
model or effort argument, so record no such capability. If only
|
|
58
|
+
`muse.workflow` is exposed (untrusted workspace), do not script or inline
|
|
59
|
+
the work; stop and report that the workspace must be trusted.
|
|
47
60
|
|
|
48
61
|
For every branch:
|
|
49
62
|
|