@opengsd/gsd-core 1.17.0 → 1.19.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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +2 -1
- package/.opencode/plugins/gsd-core.js +2 -3
- package/agents/gsd-advisor-researcher.compact.md +1 -1
- package/agents/gsd-advisor-researcher.md +1 -1
- package/agents/gsd-assumptions-analyzer.compact.md +1 -1
- package/agents/gsd-assumptions-analyzer.md +1 -1
- package/agents/gsd-code-fixer.compact.md +3 -3
- package/agents/gsd-code-fixer.md +5 -4
- package/agents/gsd-code-reviewer.compact.md +1 -1
- package/agents/gsd-code-reviewer.md +1 -1
- package/agents/gsd-codebase-mapper.compact.md +1 -1
- package/agents/gsd-codebase-mapper.md +1 -1
- package/agents/gsd-debugger.md +1 -1
- package/agents/gsd-doc-verifier.compact.md +4 -4
- package/agents/gsd-doc-verifier.md +4 -3
- package/agents/gsd-doc-writer.compact.md +23 -5
- package/agents/gsd-doc-writer.md +19 -6
- package/agents/gsd-eval-auditor.compact.md +1 -1
- package/agents/gsd-eval-auditor.md +1 -1
- package/agents/gsd-executor.md +7 -3
- package/agents/gsd-integration-checker.compact.md +1 -1
- package/agents/gsd-integration-checker.md +1 -1
- package/agents/gsd-nyquist-auditor.compact.md +1 -1
- package/agents/gsd-nyquist-auditor.md +1 -1
- package/agents/gsd-phase-researcher.md +1 -1
- package/agents/gsd-plan-checker.md +2 -1
- package/agents/gsd-planner.md +5 -4
- package/agents/gsd-project-researcher.compact.md +1 -1
- package/agents/gsd-project-researcher.md +1 -1
- package/agents/gsd-research-synthesizer.compact.md +5 -5
- package/agents/gsd-research-synthesizer.md +5 -5
- package/agents/gsd-roadmapper.compact.md +1 -1
- package/agents/gsd-roadmapper.md +1 -1
- package/agents/gsd-security-auditor.compact.md +1 -1
- package/agents/gsd-security-auditor.md +1 -1
- package/agents/gsd-ui-auditor.compact.md +1 -1
- package/agents/gsd-ui-auditor.md +1 -1
- package/agents/gsd-ui-checker.compact.md +1 -1
- package/agents/gsd-ui-checker.md +1 -1
- package/agents/gsd-ui-researcher.compact.md +13 -1
- package/agents/gsd-ui-researcher.md +28 -1
- package/agents/gsd-verifier.md +2 -2
- package/bin/install.js +460 -105
- package/commands/gsd/code-review.md +8 -0
- package/commands/gsd/pause-work.md +1 -1
- package/gsd-core/bin/gsd-tools.cjs +124 -18
- package/gsd-core/bin/lib/agent-install-check.cjs +29 -3
- package/gsd-core/bin/lib/args-terminator.cjs +114 -0
- package/gsd-core/bin/lib/broken-windows.cjs +59 -1
- package/gsd-core/bin/lib/capability-ledger.cjs +25 -0
- package/gsd-core/bin/lib/capability-lock.cjs +41 -8
- package/gsd-core/bin/lib/capability-registry.cjs +162 -74
- package/gsd-core/bin/lib/capability-source.cjs +3 -1
- package/gsd-core/bin/lib/capability-state.cjs +20 -11
- package/gsd-core/bin/lib/capability-validator.cjs +23 -4
- package/gsd-core/bin/lib/commands.cjs +5 -1
- package/gsd-core/bin/lib/config-loader.cjs +13 -3
- package/gsd-core/bin/lib/config.cjs +256 -58
- package/gsd-core/bin/lib/core-utils.cjs +34 -0
- package/gsd-core/bin/lib/decision-coverage-support.cjs +93 -0
- package/gsd-core/bin/lib/gate-context-drift.cjs +8 -3
- package/gsd-core/bin/lib/gate-decision-coverage-plan.cjs +21 -1
- package/gsd-core/bin/lib/gate-decision-coverage-verify.cjs +19 -1
- package/gsd-core/bin/lib/gate-evaluation-scope.cjs +134 -13
- package/gsd-core/bin/lib/gate-predicate-evaluator.cjs +23 -3
- package/gsd-core/bin/lib/gate-predicate.cjs +8 -12
- package/gsd-core/bin/lib/gate-tdd-review-checkpoint.cjs +114 -18
- package/gsd-core/bin/lib/gate-ui-safety.cjs +23 -5
- package/gsd-core/bin/lib/git-info-exclude.cjs +57 -0
- package/gsd-core/bin/lib/health-diagnostic-rules/phase-structure.cjs +18 -3
- package/gsd-core/bin/lib/health-diagnostic-types.cjs +4 -0
- package/gsd-core/bin/lib/health-diagnostic.cjs +52 -1
- package/gsd-core/bin/lib/host-integration.cjs +13 -6
- package/gsd-core/bin/lib/init.cjs +76 -5
- package/gsd-core/bin/lib/install-effort-resolver.cjs +2 -2
- package/gsd-core/bin/lib/install-engine.cjs +246 -32
- package/gsd-core/bin/lib/install-model-override-resolver.cjs +4 -3
- package/gsd-core/bin/lib/install-profiles.cjs +14 -7
- package/gsd-core/bin/lib/installer-migration-report.cjs +2 -0
- package/gsd-core/bin/lib/markdown-line-diff.cjs +147 -0
- package/gsd-core/bin/lib/markdown-sectionizer.cjs +113 -0
- package/gsd-core/bin/lib/milestone-lock.cjs +8 -1
- package/gsd-core/bin/lib/milestone-release-map.cjs +244 -0
- package/gsd-core/bin/lib/milestone-release-tags.cjs +440 -0
- package/gsd-core/bin/lib/milestone.cjs +43 -1
- package/gsd-core/bin/lib/model-catalog.cjs +8 -0
- package/gsd-core/bin/lib/normalize-test-command.cjs +67 -0
- package/gsd-core/bin/lib/phase-id.cjs +21 -4
- package/gsd-core/bin/lib/phase-lifecycle.cjs +37 -4
- package/gsd-core/bin/lib/phase.cjs +235 -37
- package/gsd-core/bin/lib/planning-snapshot.cjs +3 -1
- package/gsd-core/bin/lib/planning-workspace.cjs +18 -0
- package/gsd-core/bin/lib/pristine-baseline.cjs +11 -3
- package/gsd-core/bin/lib/read-only-git-env.cjs +58 -0
- package/gsd-core/bin/lib/report-parser.cjs +57 -1
- package/gsd-core/bin/lib/review-lane-descriptor.cjs +35 -2
- package/gsd-core/bin/lib/review-lane-invocation.cjs +40 -0
- package/gsd-core/bin/lib/review-lane-runner.cjs +33 -4
- package/gsd-core/bin/lib/review-reviewer-selection.cjs +20 -1
- package/gsd-core/bin/lib/roadmap-parser.cjs +12 -0
- package/gsd-core/bin/lib/roadmap-upgrade.cjs +39 -2
- package/gsd-core/bin/lib/roadmap.cjs +89 -30
- package/gsd-core/bin/lib/runtime-artifact-conversion.cjs +428 -16
- package/gsd-core/bin/lib/runtime-artifact-layout.cjs +8 -4
- package/gsd-core/bin/lib/runtime-homes.cjs +18 -0
- package/gsd-core/bin/lib/runtime-hooks-surface.cjs +60 -16
- package/gsd-core/bin/lib/shell-command-projection.cjs +123 -16
- package/gsd-core/bin/lib/smart-entry.cjs +37 -16
- package/gsd-core/bin/lib/state-contract.cjs +29 -9
- package/gsd-core/bin/lib/state-document.cjs +47 -5
- package/gsd-core/bin/lib/state-transition.cjs +150 -34
- package/gsd-core/bin/lib/state.cjs +140 -88
- package/gsd-core/bin/lib/surface.cjs +9 -0
- package/gsd-core/bin/lib/task-command-router.cjs +7 -28
- package/gsd-core/bin/lib/task-content-resolution.cjs +46 -1
- package/gsd-core/bin/lib/tdd-red-evidence.cjs +5 -0
- package/gsd-core/bin/lib/tdd-test-files.cjs +42 -0
- package/gsd-core/bin/lib/verification.cjs +96 -9
- package/gsd-core/bin/lib/verify.cjs +38 -1
- package/gsd-core/bin/lib/worktree-safety.cjs +22 -1
- package/gsd-core/bin/shared/config-defaults.manifest.json +1 -0
- package/gsd-core/bin/shared/config-schema.manifest.json +1 -0
- package/gsd-core/references/agent-contracts.md +1 -1
- package/gsd-core/references/agent-skills-bootstrap.md +26 -7
- package/gsd-core/references/git-integration.md +14 -3
- package/gsd-core/references/loop-hook-dispatch.md +13 -6
- package/gsd-core/references/planner-reversibility.md +18 -4
- package/gsd-core/references/planner-verify-command-grounding.md +18 -0
- package/gsd-core/references/planning-config.md +2 -0
- package/gsd-core/references/tdd.md +5 -4
- package/gsd-core/references/verifier-phase-gates.md +8 -1
- package/gsd-core/templates/DEBUG.md +16 -0
- package/gsd-core/templates/config.json +2 -1
- package/gsd-core/templates/verification-report.md +1 -1
- package/gsd-core/workflows/add-backlog.md +10 -2
- package/gsd-core/workflows/add-phase.md +5 -1
- package/gsd-core/workflows/add-tests.md +5 -1
- package/gsd-core/workflows/add-todo.md +5 -1
- package/gsd-core/workflows/ai-integration-phase.md +5 -1
- package/gsd-core/workflows/audit-fix.md +2 -1
- package/gsd-core/workflows/audit-milestone.md +21 -9
- package/gsd-core/workflows/autonomous/templates/minimal-context.md +41 -0
- package/gsd-core/workflows/autonomous.md +52 -64
- package/gsd-core/workflows/check-todos.md +5 -1
- package/gsd-core/workflows/code-review/steps/structural-pre-pass.md +10 -1
- package/gsd-core/workflows/code-review-fix.md +5 -1
- package/gsd-core/workflows/code-review.md +66 -8
- package/gsd-core/workflows/complete-milestone/detail/elaboration.md +5 -1
- package/gsd-core/workflows/complete-milestone/steps/project-md-evolution-review.md +145 -0
- package/gsd-core/workflows/complete-milestone/steps/release-map.md +80 -0
- package/gsd-core/workflows/complete-milestone.md +64 -157
- package/gsd-core/workflows/debug.md +5 -1
- package/gsd-core/workflows/diagnose-issues.md +34 -6
- package/gsd-core/workflows/discuss-phase/modes/chain.md +5 -1
- package/gsd-core/workflows/discuss-phase/modes/power.md +1 -1
- package/gsd-core/workflows/discuss-phase-assumptions.md +44 -5
- package/gsd-core/workflows/discuss-phase-power.md +19 -2
- package/gsd-core/workflows/discuss-phase.md +11 -11
- package/gsd-core/workflows/docs-update/detail/elaboration.md +7 -6
- package/gsd-core/workflows/docs-update.md +27 -5
- package/gsd-core/workflows/edit-phase.md +5 -1
- package/gsd-core/workflows/eval-review.md +11 -3
- package/gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md +5 -1
- package/gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md +13 -7
- package/gsd-core/workflows/execute-phase/steps/post-merge-gate.md +19 -8
- package/gsd-core/workflows/execute-phase/steps/regression-gate-run.md +21 -3
- package/gsd-core/workflows/execute-phase/steps/regression-gate.md +18 -1
- package/gsd-core/workflows/execute-phase/steps/verify-phase-goal.md +7 -3
- package/gsd-core/workflows/execute-phase/steps/wave-post-gate-hooks.md +11 -2
- package/gsd-core/workflows/execute-phase.md +46 -11
- package/gsd-core/workflows/execute-plan.md +8 -4
- package/gsd-core/workflows/extract-learnings.md +6 -2
- package/gsd-core/workflows/forensics.md +5 -1
- package/gsd-core/workflows/health.md +2 -1
- package/gsd-core/workflows/import.md +6 -2
- package/gsd-core/workflows/insert-phase.md +5 -1
- package/gsd-core/workflows/manager.md +10 -2
- package/gsd-core/workflows/map-codebase.md +5 -1
- package/gsd-core/workflows/milestone-summary.md +10 -2
- package/gsd-core/workflows/new-milestone.md +13 -5
- package/gsd-core/workflows/new-project.md +9 -5
- package/gsd-core/workflows/next.md +8 -4
- package/gsd-core/workflows/pause-work.md +3 -3
- package/gsd-core/workflows/plan-phase/steps/auto-advance-check.md +70 -0
- package/gsd-core/workflows/plan-phase/steps/chunked-planning-mode.md +7 -3
- package/gsd-core/workflows/plan-phase/steps/closed-phase-gate.md +6 -2
- package/gsd-core/workflows/plan-phase.md +54 -86
- package/gsd-core/workflows/plan-review-convergence.md +17 -5
- package/gsd-core/workflows/plant-seed.md +8 -4
- package/gsd-core/workflows/progress.md +6 -2
- package/gsd-core/workflows/quick/steps/plan-checker-loop.md +1 -1
- package/gsd-core/workflows/quick/steps/worktree-pre-dispatch-commit.md +8 -1
- package/gsd-core/workflows/quick-batch/steps/plan-checker-loop.md +2 -1
- package/gsd-core/workflows/quick-batch.md +5 -1
- package/gsd-core/workflows/quick.md +23 -8
- package/gsd-core/workflows/remove-phase.md +5 -1
- package/gsd-core/workflows/resume-project.md +5 -1
- package/gsd-core/workflows/review.md +22 -15
- package/gsd-core/workflows/scan.md +5 -1
- package/gsd-core/workflows/section-manifest.json +5 -0
- package/gsd-core/workflows/secure-phase.md +6 -2
- package/gsd-core/workflows/settings.md +4 -3
- package/gsd-core/workflows/ship.md +16 -14
- package/gsd-core/workflows/spec-phase.md +3 -6
- package/gsd-core/workflows/thread.md +10 -2
- package/gsd-core/workflows/transition.md +5 -1
- package/gsd-core/workflows/ui-phase.md +5 -1
- package/gsd-core/workflows/ui-review.md +6 -2
- package/gsd-core/workflows/ultraplan-phase.md +5 -1
- package/gsd-core/workflows/update.md +5 -1
- package/gsd-core/workflows/validate-phase.md +6 -2
- package/gsd-core/workflows/verify-work/detail/elaboration.md +1 -1
- package/gsd-core/workflows/verify-work/steps/mvp-uat-framing.md +5 -1
- package/gsd-core/workflows/verify-work.md +15 -6
- package/hooks/dist/gsd-agent-isolation-guard.js +14 -2
- package/hooks/dist/gsd-cursor-subagent-start.js +8 -3
- package/hooks/dist/gsd-path-export.js +95 -0
- package/hooks/dist/gsd-secret-read-guard.js +244 -53
- package/hooks/dist/gsd-statusline.js +35 -2
- package/hooks/dist/gsd-validate-commit.sh +27 -5
- package/hooks/dist/gsd-windsurf-pre-write.js +28 -1
- package/hooks/dist/gsd-workflow-guard.js +1 -1
- package/hooks/dist/gsd-worktree-path-guard.js +28 -1
- package/hooks/dist/lib/isolation-sentinel.js +44 -0
- package/hooks/dist/managed-hooks-registry.cjs +1 -0
- package/hooks/gsd-agent-isolation-guard.js +14 -2
- package/hooks/gsd-cursor-subagent-start.js +8 -3
- package/hooks/gsd-path-export.js +95 -0
- package/hooks/gsd-secret-read-guard.js +244 -53
- package/hooks/gsd-statusline.js +35 -2
- package/hooks/gsd-validate-commit.sh +27 -5
- package/hooks/gsd-windsurf-pre-write.js +28 -1
- package/hooks/gsd-workflow-guard.js +1 -1
- package/hooks/gsd-worktree-path-guard.js +28 -1
- package/hooks/hooks.json +1 -0
- package/hooks/lib/isolation-sentinel.js +44 -0
- package/hooks/managed-hooks-registry.cjs +1 -0
- package/package.json +13 -6
- package/pi/gsd.cjs +1047 -10
- package/pi/package-agents/gsd-advisor-researcher.md +113 -0
- package/pi/package-agents/gsd-ai-researcher.md +111 -0
- package/pi/package-agents/gsd-assumptions-analyzer.md +110 -0
- package/pi/package-agents/gsd-code-fixer.md +769 -0
- package/pi/package-agents/gsd-code-reviewer.md +402 -0
- package/pi/package-agents/gsd-codebase-mapper.md +850 -0
- package/pi/package-agents/gsd-debug-session-manager.md +416 -0
- package/pi/package-agents/gsd-debugger.md +1274 -0
- package/pi/package-agents/gsd-doc-classifier.md +269 -0
- package/pi/package-agents/gsd-doc-synthesizer.md +259 -0
- package/pi/package-agents/gsd-doc-verifier.md +212 -0
- package/pi/package-agents/gsd-doc-writer.md +626 -0
- package/pi/package-agents/gsd-dom-verifier.md +164 -0
- package/pi/package-agents/gsd-domain-researcher.md +144 -0
- package/pi/package-agents/gsd-eval-auditor.md +185 -0
- package/pi/package-agents/gsd-eval-planner.md +149 -0
- package/pi/package-agents/gsd-executor.md +894 -0
- package/pi/package-agents/gsd-framework-selector.md +159 -0
- package/pi/package-agents/gsd-integration-checker.md +476 -0
- package/pi/package-agents/gsd-intel-updater.md +338 -0
- package/pi/package-agents/gsd-mempalace-curator.md +49 -0
- package/pi/package-agents/gsd-nyquist-auditor.md +200 -0
- package/pi/package-agents/gsd-pattern-mapper.md +340 -0
- package/pi/package-agents/gsd-phase-researcher.md +897 -0
- package/pi/package-agents/gsd-plan-checker.md +1077 -0
- package/pi/package-agents/gsd-planner.md +1003 -0
- package/pi/package-agents/gsd-project-researcher.md +611 -0
- package/pi/package-agents/gsd-research-synthesizer.md +259 -0
- package/pi/package-agents/gsd-roadmapper.md +779 -0
- package/pi/package-agents/gsd-security-auditor.md +171 -0
- package/pi/package-agents/gsd-ui-auditor.md +581 -0
- package/pi/package-agents/gsd-ui-checker.md +417 -0
- package/pi/package-agents/gsd-ui-researcher.md +469 -0
- package/pi/package-agents/gsd-user-profiler.md +174 -0
- package/pi/package-agents/gsd-verifier.md +963 -0
- package/pi/package-agents/manifest.json +39 -0
- package/pi/package-skills/gsd-add-tests/SKILL.md +39 -0
- package/pi/package-skills/gsd-ai-integration-phase/SKILL.md +36 -0
- package/pi/package-skills/gsd-audit-fix/SKILL.md +34 -0
- package/pi/package-skills/gsd-audit-milestone/SKILL.md +40 -0
- package/pi/package-skills/gsd-audit-uat/SKILL.md +26 -0
- package/pi/package-skills/gsd-autonomous/SKILL.md +52 -0
- package/pi/package-skills/gsd-capture/SKILL.md +68 -0
- package/pi/package-skills/gsd-cleanup/SKILL.md +25 -0
- package/pi/package-skills/gsd-code-review/SKILL.md +71 -0
- package/pi/package-skills/gsd-complete-milestone/SKILL.md +147 -0
- package/pi/package-skills/gsd-config/SKILL.md +60 -0
- package/pi/package-skills/gsd-debug/SKILL.md +64 -0
- package/pi/package-skills/gsd-discuss-phase/SKILL.md +74 -0
- package/pi/package-skills/gsd-docs-update/SKILL.md +50 -0
- package/pi/package-skills/gsd-eval-review/SKILL.md +35 -0
- package/pi/package-skills/gsd-execute-phase/SKILL.md +62 -0
- package/pi/package-skills/gsd-explore/SKILL.md +26 -0
- package/pi/package-skills/gsd-extract-learnings/SKILL.md +25 -0
- package/pi/package-skills/gsd-fast/SKILL.md +33 -0
- package/pi/package-skills/gsd-forensics/SKILL.md +59 -0
- package/pi/package-skills/gsd-graphify/SKILL.md +210 -0
- package/pi/package-skills/gsd-health/SKILL.md +36 -0
- package/pi/package-skills/gsd-help/SKILL.md +37 -0
- package/pi/package-skills/gsd-import/SKILL.md +46 -0
- package/pi/package-skills/gsd-inbox/SKILL.md +42 -0
- package/pi/package-skills/gsd-ingest-docs/SKILL.md +43 -0
- package/pi/package-skills/gsd-manager/SKILL.md +46 -0
- package/pi/package-skills/gsd-map-codebase/SKILL.md +85 -0
- package/pi/package-skills/gsd-mempalace-capture/SKILL.md +111 -0
- package/pi/package-skills/gsd-mempalace-recall/SKILL.md +111 -0
- package/pi/package-skills/gsd-milestone-summary/SKILL.md +54 -0
- package/pi/package-skills/gsd-mvp-phase/SKILL.md +45 -0
- package/pi/package-skills/gsd-new-milestone/SKILL.md +49 -0
- package/pi/package-skills/gsd-new-project/SKILL.md +49 -0
- package/pi/package-skills/gsd-next/SKILL.md +34 -0
- package/pi/package-skills/gsd-ns-context/SKILL.md +31 -0
- package/pi/package-skills/gsd-ns-ideate/SKILL.md +30 -0
- package/pi/package-skills/gsd-ns-manage/SKILL.md +42 -0
- package/pi/package-skills/gsd-ns-project/SKILL.md +34 -0
- package/pi/package-skills/gsd-ns-review/SKILL.md +35 -0
- package/pi/package-skills/gsd-ns-workflow/SKILL.md +44 -0
- package/pi/package-skills/gsd-onboard/SKILL.md +46 -0
- package/pi/package-skills/gsd-pause-work/SKILL.md +48 -0
- package/pi/package-skills/gsd-phase/SKILL.md +61 -0
- package/pi/package-skills/gsd-plan-phase/SKILL.md +62 -0
- package/pi/package-skills/gsd-plan-review-convergence/SKILL.md +63 -0
- package/pi/package-skills/gsd-pr-branch/SKILL.md +31 -0
- package/pi/package-skills/gsd-profile-user/SKILL.md +48 -0
- package/pi/package-skills/gsd-progress/SKILL.md +51 -0
- package/pi/package-skills/gsd-quick/SKILL.md +179 -0
- package/pi/package-skills/gsd-quick-batch/SKILL.md +114 -0
- package/pi/package-skills/gsd-resume-work/SKILL.md +31 -0
- package/pi/package-skills/gsd-review/SKILL.md +50 -0
- package/pi/package-skills/gsd-review-backlog/SKILL.md +65 -0
- package/pi/package-skills/gsd-secure-phase/SKILL.md +37 -0
- package/pi/package-skills/gsd-settings/SKILL.md +30 -0
- package/pi/package-skills/gsd-ship/SKILL.md +27 -0
- package/pi/package-skills/gsd-sketch/SKILL.md +56 -0
- package/pi/package-skills/gsd-spec-phase/SKILL.md +63 -0
- package/pi/package-skills/gsd-spike/SKILL.md +53 -0
- package/pi/package-skills/gsd-stats/SKILL.md +22 -0
- package/pi/package-skills/gsd-surface/SKILL.md +177 -0
- package/pi/package-skills/gsd-thread/SKILL.md +29 -0
- package/pi/package-skills/gsd-ui-phase/SKILL.md +35 -0
- package/pi/package-skills/gsd-ui-review/SKILL.md +35 -0
- package/pi/package-skills/gsd-ultraplan-phase/SKILL.md +38 -0
- package/pi/package-skills/gsd-undo/SKILL.md +38 -0
- package/pi/package-skills/gsd-update/SKILL.md +51 -0
- package/pi/package-skills/gsd-validate-phase/SKILL.md +37 -0
- package/pi/package-skills/gsd-verify-work/SKILL.md +41 -0
- package/pi/package-skills/gsd-workspace/SKILL.md +57 -0
- package/pi/package-skills/gsd-workstreams/SKILL.md +73 -0
- package/scripts/audit-workflow-script-paths.cjs +1 -1
- package/scripts/build-hooks.js +4 -0
- package/scripts/command-contract-helpers.cjs +1 -1
- package/scripts/diagnose-windows-spawn-watcher.cjs +317 -0
- package/scripts/docs-guard-registry.cjs +22 -7
- package/scripts/gen-health-docs.cjs +13 -1
- package/scripts/gen-pi-package-skills.cjs +217 -0
- package/scripts/lib/macos-conformance-tier.generated.cjs +19 -0
- package/scripts/lib/platform-conformance-tier.generated.cjs +41 -0
- package/scripts/lint-docs-guard-registration.exempt-baseline.cjs +3 -3
- package/scripts/lint-phase-arg-assignment.cjs +2 -2
- package/scripts/lint-retired-runtime-name.cjs +5 -0
- package/scripts/lint-workflow-shellcheck-baseline.json +16 -16
- package/scripts/npm-audit-baseline.cjs +41 -7
- package/scripts/release-tarball-smoke.cjs +1 -0
- package/scripts/reviewed-or-maintainer-policy.cjs +181 -0
- package/scripts/select-docs-guards.cjs +1 -1
- package/scripts/self-test-report-policy.cjs +350 -0
- package/skills/gsd-code-review/SKILL.md +8 -0
- package/skills/gsd-pause-work/SKILL.md +1 -1
- package/vscode/package.json +1 -1
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
module.exports = {
|
|
8
8
|
MACOS_CONFORMANCE_TIER_FILES: [
|
|
9
|
+
"tests/5100-win32-bare-bash-sentinel.property.test.cjs",
|
|
9
10
|
"tests/active-workstream-store.unit.test.cjs",
|
|
10
11
|
"tests/adr-612-bracket-phase-counting.test.cjs",
|
|
11
12
|
"tests/adr-index-gate.test.cjs",
|
|
@@ -16,6 +17,7 @@ module.exports = {
|
|
|
16
17
|
"tests/agent-skills.test.cjs",
|
|
17
18
|
"tests/api-coverage-gate-e2e.test.cjs",
|
|
18
19
|
"tests/api-coverage.test.cjs",
|
|
20
|
+
"tests/args-terminator-nonce.test.cjs",
|
|
19
21
|
"tests/ask-user-questions-fallback.test.cjs",
|
|
20
22
|
"tests/audit-command-cutover.test.cjs",
|
|
21
23
|
"tests/broken-windows.test.cjs",
|
|
@@ -38,6 +40,7 @@ module.exports = {
|
|
|
38
40
|
"tests/check-ui-safety-gate.test.cjs",
|
|
39
41
|
"tests/check-update-config-dir.test.cjs",
|
|
40
42
|
"tests/chunked-planning-parallel.test.cjs",
|
|
43
|
+
"tests/ci-conformance-pr-gating.test.cjs",
|
|
41
44
|
"tests/ci-docs-guard-registry.test.cjs",
|
|
42
45
|
"tests/ci-test-scope.test.cjs",
|
|
43
46
|
"tests/cline-install.test.cjs",
|
|
@@ -46,6 +49,7 @@ module.exports = {
|
|
|
46
49
|
"tests/codex-config-hooks.test.cjs",
|
|
47
50
|
"tests/codex-config-install.test.cjs",
|
|
48
51
|
"tests/codex-config.test.cjs",
|
|
52
|
+
"tests/command-arguments-block.test.cjs",
|
|
49
53
|
"tests/commands.platform.test.cjs",
|
|
50
54
|
"tests/commit-docs-bypass.test.cjs",
|
|
51
55
|
"tests/commit-files-deletion.test.cjs",
|
|
@@ -71,6 +75,7 @@ module.exports = {
|
|
|
71
75
|
"tests/execute-phase-decimal-arithmetic.test.cjs",
|
|
72
76
|
"tests/executed-plan.test.cjs",
|
|
73
77
|
"tests/executor-mvp-tdd-section.test.cjs",
|
|
78
|
+
"tests/executor-sequential-linked-worktree.test.cjs",
|
|
74
79
|
"tests/external-job.test.cjs",
|
|
75
80
|
"tests/failing-direction.test.cjs",
|
|
76
81
|
"tests/fallow-runner.test.cjs",
|
|
@@ -80,6 +85,8 @@ module.exports = {
|
|
|
80
85
|
"tests/gap-checker.property.test.cjs",
|
|
81
86
|
"tests/gate-api-coverage-verify-pre-escape.test.cjs",
|
|
82
87
|
"tests/gate-codebase-drift.unit.test.cjs",
|
|
88
|
+
"tests/gate-evaluation-scope.test.cjs",
|
|
89
|
+
"tests/gate-predicate.unit.test.cjs",
|
|
83
90
|
"tests/gate-tdd-red-evidence-containment.test.cjs",
|
|
84
91
|
"tests/gate-ui-plan.unit.test.cjs",
|
|
85
92
|
"tests/gate-verify-command-paths.unit.test.cjs",
|
|
@@ -90,6 +97,7 @@ module.exports = {
|
|
|
90
97
|
"tests/graphify-query.test.cjs",
|
|
91
98
|
"tests/graphify-visualization.test.cjs",
|
|
92
99
|
"tests/gsd-agent-isolation-guard.test.cjs",
|
|
100
|
+
"tests/gsd-path-export-hook.test.cjs",
|
|
93
101
|
"tests/gsd-secret-read-guard.test.cjs",
|
|
94
102
|
"tests/gsd-settings-advanced.test.cjs",
|
|
95
103
|
"tests/gsd-statusline.test.cjs",
|
|
@@ -131,6 +139,7 @@ module.exports = {
|
|
|
131
139
|
"tests/markdown-sectionizer.test.cjs",
|
|
132
140
|
"tests/mcp-catalog.test.cjs",
|
|
133
141
|
"tests/milestone-archive.test.cjs",
|
|
142
|
+
"tests/milestone-release-tags.test.cjs",
|
|
134
143
|
"tests/milestone-window-single-owner.test.cjs",
|
|
135
144
|
"tests/model-catalog.unit.test.cjs",
|
|
136
145
|
"tests/model-resolver.test.cjs",
|
|
@@ -159,6 +168,9 @@ module.exports = {
|
|
|
159
168
|
"tests/phase-status.test.cjs",
|
|
160
169
|
"tests/phase.platform.test.cjs",
|
|
161
170
|
"tests/phase.test.cjs",
|
|
171
|
+
"tests/pi-dispatch.test.cjs",
|
|
172
|
+
"tests/pi-package.test.cjs",
|
|
173
|
+
"tests/plan-authoring-verification-gaps.test.cjs",
|
|
162
174
|
"tests/plan-count-single-owner.test.cjs",
|
|
163
175
|
"tests/plan-document.test.cjs",
|
|
164
176
|
"tests/plan-phase-stall-detection.test.cjs",
|
|
@@ -181,6 +193,7 @@ module.exports = {
|
|
|
181
193
|
"tests/quick-batch-command-router.stdin.test.cjs",
|
|
182
194
|
"tests/quick-batch.test.cjs",
|
|
183
195
|
"tests/quick-branching.test.cjs",
|
|
196
|
+
"tests/quick-commit-boundary.test.cjs",
|
|
184
197
|
"tests/quick-research.test.cjs",
|
|
185
198
|
"tests/reapply-verify-hunks.test.cjs",
|
|
186
199
|
"tests/refactor-1390-t3-characterization.test.cjs",
|
|
@@ -188,11 +201,13 @@ module.exports = {
|
|
|
188
201
|
"tests/response-language-coverage.test.cjs",
|
|
189
202
|
"tests/retired-artifact-cleanup.test.cjs",
|
|
190
203
|
"tests/review-build-prompt-optional-sections.test.cjs",
|
|
204
|
+
"tests/review-lane-invocation.test.cjs",
|
|
191
205
|
"tests/review-lane-runner.test.cjs",
|
|
192
206
|
"tests/review-lane-windows-spawn-resolution.test.cjs",
|
|
193
207
|
"tests/review-parallel-lanes.test.cjs",
|
|
194
208
|
"tests/review-plan-coverage-manifest.test.cjs",
|
|
195
209
|
"tests/review-reviewer-selection.test.cjs",
|
|
210
|
+
"tests/reviewed-or-maintainer-policy.test.cjs",
|
|
196
211
|
"tests/reviewer-manifest-body.test.cjs",
|
|
197
212
|
"tests/reviewer-step-dispatch.test.cjs",
|
|
198
213
|
"tests/roadmap-mode-field.test.cjs",
|
|
@@ -207,15 +222,19 @@ module.exports = {
|
|
|
207
222
|
"tests/runtime-launcher-parity.test.cjs",
|
|
208
223
|
"tests/runtime-name-policy.test.cjs",
|
|
209
224
|
"tests/security.test.cjs",
|
|
225
|
+
"tests/self-test-report-policy.test.cjs",
|
|
210
226
|
"tests/settings-jsonc.test.cjs",
|
|
211
227
|
"tests/shared-hooks-dir-resolution.test.cjs",
|
|
212
228
|
"tests/shell-command-projection-dispatch.test.cjs",
|
|
229
|
+
"tests/shell-command-projection-md-normalize.test.cjs",
|
|
213
230
|
"tests/shipped-reference-cites.test.cjs",
|
|
231
|
+
"tests/skill-manifest.test.cjs",
|
|
214
232
|
"tests/spawn-liveness-banner.test.cjs",
|
|
215
233
|
"tests/state-document.test.cjs",
|
|
216
234
|
"tests/state-transition.test.cjs",
|
|
217
235
|
"tests/state.platform.test.cjs",
|
|
218
236
|
"tests/state.test.cjs",
|
|
237
|
+
"tests/tdd-mode.platform.test.cjs",
|
|
219
238
|
"tests/todos-workstream-scope.test.cjs",
|
|
220
239
|
"tests/tracer-bullet.test.cjs",
|
|
221
240
|
"tests/uat-complete-session.test.cjs",
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
module.exports = {
|
|
5
5
|
CONFORMANCE_TIER_FILES: [
|
|
6
|
+
"tests/5100-win32-bare-bash-sentinel.property.test.cjs",
|
|
6
7
|
"tests/adr-index-gate.test.cjs",
|
|
7
8
|
"tests/adr857-core-without-capabilities.test.cjs",
|
|
8
9
|
"tests/agent-install-check.test.cjs",
|
|
@@ -11,6 +12,7 @@ module.exports = {
|
|
|
11
12
|
"tests/antigravity-upgrades.test.cjs",
|
|
12
13
|
"tests/api-coverage-gate-e2e.test.cjs",
|
|
13
14
|
"tests/api-coverage.test.cjs",
|
|
15
|
+
"tests/args-terminator-nonce.test.cjs",
|
|
14
16
|
"tests/assumption-delta-checkpoint-e2e.test.cjs",
|
|
15
17
|
"tests/assumption-delta.test.cjs",
|
|
16
18
|
"tests/audit-command-cutover.test.cjs",
|
|
@@ -24,6 +26,7 @@ module.exports = {
|
|
|
24
26
|
"tests/capability-ledger.test.cjs",
|
|
25
27
|
"tests/capability-lifecycle.test.cjs",
|
|
26
28
|
"tests/capability-loader.test.cjs",
|
|
29
|
+
"tests/capability-lock-lazy-self-probe-5327.test.cjs",
|
|
27
30
|
"tests/capability-lock-mkdir-failure-3987.test.cjs",
|
|
28
31
|
"tests/capability-probe-fallback.test.cjs",
|
|
29
32
|
"tests/capability-source.test.cjs",
|
|
@@ -41,6 +44,7 @@ module.exports = {
|
|
|
41
44
|
"tests/check-update-config-dir.test.cjs",
|
|
42
45
|
"tests/check-update-fail-open.test.cjs",
|
|
43
46
|
"tests/chunked-planning-parallel.test.cjs",
|
|
47
|
+
"tests/ci-conformance-pr-gating.test.cjs",
|
|
44
48
|
"tests/ci-docs-guard-registry.test.cjs",
|
|
45
49
|
"tests/ci-rebase-check.test.cjs",
|
|
46
50
|
"tests/ci-test-scope.test.cjs",
|
|
@@ -59,12 +63,14 @@ module.exports = {
|
|
|
59
63
|
"tests/codex-config.test.cjs",
|
|
60
64
|
"tests/codex-inherit-smoke.test.cjs",
|
|
61
65
|
"tests/codex-windows-shim-node-resolution.test.cjs",
|
|
66
|
+
"tests/command-arguments-block.test.cjs",
|
|
62
67
|
"tests/command-routing-hub.test.cjs",
|
|
63
68
|
"tests/commands.platform.test.cjs",
|
|
64
69
|
"tests/commit-files-deletion.test.cjs",
|
|
65
70
|
"tests/commit-files-pathspec.test.cjs",
|
|
66
71
|
"tests/commonjs-marker.test.cjs",
|
|
67
72
|
"tests/compact-content-4139.test.cjs",
|
|
73
|
+
"tests/complete-milestone-release-map-routing.test.cjs",
|
|
68
74
|
"tests/completion-ratio-scope-withholding.test.cjs",
|
|
69
75
|
"tests/config-defaults-runtime-exclusion.test.cjs",
|
|
70
76
|
"tests/config-get-default.test.cjs",
|
|
@@ -81,6 +87,8 @@ module.exports = {
|
|
|
81
87
|
"tests/cursor-hooks.test.cjs",
|
|
82
88
|
"tests/cursor-subagent-isolation.test.cjs",
|
|
83
89
|
"tests/debug-session-management.test.cjs",
|
|
90
|
+
"tests/defaults-json-fallback.test.cjs",
|
|
91
|
+
"tests/diagnose-windows-spawn-watcher.test.cjs",
|
|
84
92
|
"tests/dispatch-identity.test.cjs",
|
|
85
93
|
"tests/dispatcher.test.cjs",
|
|
86
94
|
"tests/drift-detection.test.cjs",
|
|
@@ -93,12 +101,14 @@ module.exports = {
|
|
|
93
101
|
"tests/emitted-provenance.test.cjs",
|
|
94
102
|
"tests/ensure-runtime-build.test.cjs",
|
|
95
103
|
"tests/eslint-rules.test.cjs",
|
|
104
|
+
"tests/execute-phase-cross-block-state.test.cjs",
|
|
96
105
|
"tests/execute-phase-decimal-arithmetic.test.cjs",
|
|
97
106
|
"tests/execute-phase-worktree-guard.test.cjs",
|
|
98
107
|
"tests/execute-plan-update-codebase-map-diff-base.test.cjs",
|
|
99
108
|
"tests/execute-wave-post-gate-pipeline-e2e.test.cjs",
|
|
100
109
|
"tests/executed-plan.test.cjs",
|
|
101
110
|
"tests/executor-mvp-tdd-section.test.cjs",
|
|
111
|
+
"tests/executor-sequential-linked-worktree.test.cjs",
|
|
102
112
|
"tests/external-descriptor-confinement.test.cjs",
|
|
103
113
|
"tests/failing-direction.test.cjs",
|
|
104
114
|
"tests/fallow-runner.test.cjs",
|
|
@@ -111,9 +121,11 @@ module.exports = {
|
|
|
111
121
|
"tests/gate-consumer-exit-awareness.test.cjs",
|
|
112
122
|
"tests/gate-decision-coverage-verify-stderr.test.cjs",
|
|
113
123
|
"tests/gate-exit.test.cjs",
|
|
124
|
+
"tests/gate-predicate.unit.test.cjs",
|
|
114
125
|
"tests/gate-tdd-red-evidence-containment.test.cjs",
|
|
115
126
|
"tests/gate-tdd-review-checkpoint-hardening.test.cjs",
|
|
116
127
|
"tests/gate-tdd-review-checkpoint.unit.test.cjs",
|
|
128
|
+
"tests/gate-tdd-review-order-5275.test.cjs",
|
|
117
129
|
"tests/gate-ui-plan.unit.test.cjs",
|
|
118
130
|
"tests/gate-ui-safety.unit.test.cjs",
|
|
119
131
|
"tests/gate-verify-command-paths.unit.test.cjs",
|
|
@@ -122,6 +134,7 @@ module.exports = {
|
|
|
122
134
|
"tests/gen-health-docs.test.cjs",
|
|
123
135
|
"tests/gen-section-manifest.test.cjs",
|
|
124
136
|
"tests/git-base-branch.test.cjs",
|
|
137
|
+
"tests/git-optional-locks-parity.test.cjs",
|
|
125
138
|
"tests/golden-install-tree.test.cjs",
|
|
126
139
|
"tests/graphify-graph-path.test.cjs",
|
|
127
140
|
"tests/graphify-visualization.test.cjs",
|
|
@@ -130,6 +143,7 @@ module.exports = {
|
|
|
130
143
|
"tests/gsd-check-update-worker-atomic-cache.test.cjs",
|
|
131
144
|
"tests/gsd-check-update-worker-platform-gate.test.cjs",
|
|
132
145
|
"tests/gsd-mcp-server-bin.test.cjs",
|
|
146
|
+
"tests/gsd-path-export-hook.test.cjs",
|
|
133
147
|
"tests/gsd-statusline.test.cjs",
|
|
134
148
|
"tests/gsd-validate-commit-crash-policy.test.cjs",
|
|
135
149
|
"tests/gsd-validate-commit-sigpipe.test.cjs",
|
|
@@ -145,6 +159,8 @@ module.exports = {
|
|
|
145
159
|
"tests/hooks-crash-policy.test.cjs",
|
|
146
160
|
"tests/hooks-opt-in.test.cjs",
|
|
147
161
|
"tests/host-integration.test.cjs",
|
|
162
|
+
"tests/in-tier-msys-fork-stress.test.cjs",
|
|
163
|
+
"tests/in-tier-sh-pipeline-timing.test.cjs",
|
|
148
164
|
"tests/init-manager.test.cjs",
|
|
149
165
|
"tests/install-minimal-hooks.test.cjs",
|
|
150
166
|
"tests/install-nested-layout.test.cjs",
|
|
@@ -153,6 +169,7 @@ module.exports = {
|
|
|
153
169
|
"tests/install-runtime-artifacts.test.cjs",
|
|
154
170
|
"tests/install-write-confinement.test.cjs",
|
|
155
171
|
"tests/install.test.cjs",
|
|
172
|
+
"tests/installer-first-install-user-skill-5522.test.cjs",
|
|
156
173
|
"tests/installer-migration-antigravity-retire-confighome-artifacts.test.cjs",
|
|
157
174
|
"tests/installer-migration-config-root-marker.test.cjs",
|
|
158
175
|
"tests/installer-migration-pi-retire-hooks-dir.test.cjs",
|
|
@@ -162,6 +179,7 @@ module.exports = {
|
|
|
162
179
|
"tests/intel.test.cjs",
|
|
163
180
|
"tests/inventory-nested-families.test.cjs",
|
|
164
181
|
"tests/io.test.cjs",
|
|
182
|
+
"tests/isolation-aged-none-sentinel.test.cjs",
|
|
165
183
|
"tests/isolation-sentinel.test.cjs",
|
|
166
184
|
"tests/kilo-upgrades.test.cjs",
|
|
167
185
|
"tests/kimi-agent-converter.test.cjs",
|
|
@@ -179,7 +197,11 @@ module.exports = {
|
|
|
179
197
|
"tests/mcp-catalog.property.test.cjs",
|
|
180
198
|
"tests/mcp-catalog.test.cjs",
|
|
181
199
|
"tests/milestone-archive.test.cjs",
|
|
200
|
+
"tests/milestone-lock.test.cjs",
|
|
201
|
+
"tests/milestone-release-map-archive.test.cjs",
|
|
202
|
+
"tests/milestone-release-tags.test.cjs",
|
|
182
203
|
"tests/milestone-window-single-owner.test.cjs",
|
|
204
|
+
"tests/milestone.test.cjs",
|
|
183
205
|
"tests/model-resolver.test.cjs",
|
|
184
206
|
"tests/mutation-workflow-base-ref.test.cjs",
|
|
185
207
|
"tests/new-milestone-clear-phases.test.cjs",
|
|
@@ -194,10 +216,12 @@ module.exports = {
|
|
|
194
216
|
"tests/no-unbounded-spawn.test.cjs",
|
|
195
217
|
"tests/no-unguarded-nonportable-exec.rule.test.cjs",
|
|
196
218
|
"tests/node-compile-cache.test.cjs",
|
|
219
|
+
"tests/npm-audit-baseline-safe-directory-5659.test.cjs",
|
|
197
220
|
"tests/npm-audit-baseline.test.cjs",
|
|
198
221
|
"tests/npm-integrity-gate.test.cjs",
|
|
199
222
|
"tests/nsegment-phase-grammar.test.cjs",
|
|
200
223
|
"tests/onboard-command.test.cjs",
|
|
224
|
+
"tests/opencode-advisory-stderr.test.cjs",
|
|
201
225
|
"tests/opencode-command-dir-plural.test.cjs",
|
|
202
226
|
"tests/opencode-config-jsonc.test.cjs",
|
|
203
227
|
"tests/opencode-generations.smoke.test.cjs",
|
|
@@ -218,6 +242,10 @@ module.exports = {
|
|
|
218
242
|
"tests/phase.platform.test.cjs",
|
|
219
243
|
"tests/phase6-capstone-conformance.test.cjs",
|
|
220
244
|
"tests/pi-config-dir-env-override.test.cjs",
|
|
245
|
+
"tests/pi-dispatch-install.test.cjs",
|
|
246
|
+
"tests/pi-dispatch.test.cjs",
|
|
247
|
+
"tests/pi-hook-bridge.test.cjs",
|
|
248
|
+
"tests/pi-package.test.cjs",
|
|
221
249
|
"tests/plan-count-single-owner.test.cjs",
|
|
222
250
|
"tests/plan-phase-stall-detection.test.cjs",
|
|
223
251
|
"tests/plan-pre-hook-e2e.test.cjs",
|
|
@@ -245,6 +273,7 @@ module.exports = {
|
|
|
245
273
|
"tests/quick-batch-command-router.stdin.test.cjs",
|
|
246
274
|
"tests/quick-batch.test.cjs",
|
|
247
275
|
"tests/quick-branching.test.cjs",
|
|
276
|
+
"tests/quick-commit-boundary.test.cjs",
|
|
248
277
|
"tests/quick-research.test.cjs",
|
|
249
278
|
"tests/quick-review-scope-tip-bound.test.cjs",
|
|
250
279
|
"tests/read-guard.test.cjs",
|
|
@@ -258,6 +287,9 @@ module.exports = {
|
|
|
258
287
|
"tests/retired-artifact-cleanup.test.cjs",
|
|
259
288
|
"tests/review-build-prompt-optional-sections.test.cjs",
|
|
260
289
|
"tests/review-default-reviewers-config.test.cjs",
|
|
290
|
+
"tests/review-lane-availability.test.cjs",
|
|
291
|
+
"tests/review-lane-invocation.test.cjs",
|
|
292
|
+
"tests/review-lane-no-redirect-5433.test.cjs",
|
|
261
293
|
"tests/review-lane-runner.test.cjs",
|
|
262
294
|
"tests/review-lane-windows-spawn-resolution.test.cjs",
|
|
263
295
|
"tests/review-model-config.test.cjs",
|
|
@@ -268,6 +300,7 @@ module.exports = {
|
|
|
268
300
|
"tests/revision-remediation-binding.test.cjs",
|
|
269
301
|
"tests/roadmap-parser.test.cjs",
|
|
270
302
|
"tests/roadmap-upgrade-bracket.test.cjs",
|
|
303
|
+
"tests/roadmap-upgrade.test.cjs",
|
|
271
304
|
"tests/roadmap.test.cjs",
|
|
272
305
|
"tests/run-tests-accounting.test.cjs",
|
|
273
306
|
"tests/run-tests-harness.test.cjs",
|
|
@@ -281,11 +314,14 @@ module.exports = {
|
|
|
281
314
|
"tests/runtime-identity.test.cjs",
|
|
282
315
|
"tests/runtime-launcher-parity.test.cjs",
|
|
283
316
|
"tests/schema-drift.test.cjs",
|
|
317
|
+
"tests/section-manifest-init-facts.test.cjs",
|
|
284
318
|
"tests/security.test.cjs",
|
|
319
|
+
"tests/self-test-report-policy.test.cjs",
|
|
285
320
|
"tests/settings-jsonc.test.cjs",
|
|
286
321
|
"tests/sh-hook-paths.test.cjs",
|
|
287
322
|
"tests/shared-hooks-dir-resolution.test.cjs",
|
|
288
323
|
"tests/shell-command-projection-dispatch.test.cjs",
|
|
324
|
+
"tests/shell-command-projection-md-normalize.test.cjs",
|
|
289
325
|
"tests/shell-command-projection-path-sep.test.cjs",
|
|
290
326
|
"tests/ship-notes-wedged-pr.test.cjs",
|
|
291
327
|
"tests/shipped-reference-cites.test.cjs",
|
|
@@ -293,6 +329,9 @@ module.exports = {
|
|
|
293
329
|
"tests/slug-derivation-drift-guard.test.cjs",
|
|
294
330
|
"tests/state-todos-render.test.cjs",
|
|
295
331
|
"tests/state.platform.test.cjs",
|
|
332
|
+
"tests/subject-first-line.platform.test.cjs",
|
|
333
|
+
"tests/tdd-mode.platform.test.cjs",
|
|
334
|
+
"tests/tdd-review-checkpoint-cross-plan.test.cjs",
|
|
296
335
|
"tests/teams-status.test.cjs",
|
|
297
336
|
"tests/test-gate-watch-mode.test.cjs",
|
|
298
337
|
"tests/todos-workstream-scope.test.cjs",
|
|
@@ -306,6 +345,7 @@ module.exports = {
|
|
|
306
345
|
"tests/unusable-input.test.cjs",
|
|
307
346
|
"tests/update-custom-backup.test.cjs",
|
|
308
347
|
"tests/user-artifact-staging.test.cjs",
|
|
348
|
+
"tests/user-home-isolation-5594.test.cjs",
|
|
309
349
|
"tests/verification-append-audit.test.cjs",
|
|
310
350
|
"tests/verification-status.test.cjs",
|
|
311
351
|
"tests/verify-archive-dirs-live-path.test.cjs",
|
|
@@ -321,6 +361,7 @@ module.exports = {
|
|
|
321
361
|
"tests/workstream.test.cjs",
|
|
322
362
|
"tests/worktree-cleanup.test.cjs",
|
|
323
363
|
"tests/worktree-safety.test.cjs",
|
|
364
|
+
"tests/worktree-subdir-effective-root-4885.test.cjs",
|
|
324
365
|
"tests/worktree.test.cjs",
|
|
325
366
|
],
|
|
326
367
|
};
|
|
@@ -122,10 +122,10 @@ const DOCS_GUARD_EXEMPT_DOCS_PATHS = {
|
|
|
122
122
|
// reads that (or any) docs/ file.
|
|
123
123
|
'capability-validator-task-content-resolver.test.cjs': ['docs/adr/3646-per-task-content-resolution-seam.md'],
|
|
124
124
|
'ci-docs-guard-registry.test.cjs': [
|
|
125
|
-
'docs/
|
|
125
|
+
'docs/COMMANDS.md', 'docs/INVENTORY.md', 'docs/a.md', 'docs/adr',
|
|
126
126
|
'docs/adr/0001-example.md', 'docs/adrenaline.md', 'docs/bar.md', 'docs/foo.md', 'docs/how-to/foo.md',
|
|
127
|
-
'docs/how-to/some-unrelated-guide.md', 'docs/how-to/x.md', 'docs/
|
|
128
|
-
'docs/totally-unrelated.md',
|
|
127
|
+
'docs/how-to/some-unrelated-guide.md', 'docs/how-to/x.md', 'docs/reference/agents.md',
|
|
128
|
+
'docs/some-unrelated-file.md', 'docs/totally-unrelated.md',
|
|
129
129
|
],
|
|
130
130
|
// #4641: cites docs/adr/4641-windows-selector-consolidation.md in an
|
|
131
131
|
// explanatory comment describing why the retired `windows` scope must not
|
|
@@ -93,10 +93,10 @@ const SHELL_INFO_STRINGS = new Set(['bash', 'sh', 'shell']);
|
|
|
93
93
|
const CANONICAL_FORMS = Object.freeze({
|
|
94
94
|
/** `/gsd:secure-phase 4` — the phase is the whole argument string, minus a `--ws <name>` pair. */
|
|
95
95
|
positional:
|
|
96
|
-
'PHASE_ARG=$(echo "$
|
|
96
|
+
'PHASE_ARG=$(echo "$GSD_ARGS" | sed -E \'s/--ws[[:space:]]+[A-Za-z0-9._-]+//g\' | xargs)',
|
|
97
97
|
/** `/gsd:review --phase 4 --codex` — the phase is the value of a named flag. */
|
|
98
98
|
phaseFlag:
|
|
99
|
-
'PHASE_ARG=$(echo "$
|
|
99
|
+
'PHASE_ARG=$(echo "$GSD_ARGS" | sed -nE \'s/.*--phase[[:space:]]+([A-Za-z0-9._-]+).*/\\1/p\')',
|
|
100
100
|
/** Skill dispatch passes the phase as `$1` (`Skill(skill="gsd-code-review", args="4")`). */
|
|
101
101
|
firstPositional: 'PHASE_ARG="${1}"',
|
|
102
102
|
});
|
|
@@ -234,6 +234,11 @@ const ALLOWLIST_OCCURRENCES = new Map([
|
|
|
234
234
|
{ snippet: 'Google (Gemini)', reason: 'model-provider choice, not a GSD runtime' },
|
|
235
235
|
{ snippet: 'Committed to Gemini / Google Cloud / Vertex AI', reason: 'the same menu entry\'s description' },
|
|
236
236
|
]],
|
|
237
|
+
['pi/package-agents/gsd-framework-selector.md', [
|
|
238
|
+
// Generated copy of agents/gsd-framework-selector.md for the Pi package (#5569).
|
|
239
|
+
{ snippet: 'Google (Gemini)', reason: 'model-provider choice, not a GSD runtime' },
|
|
240
|
+
{ snippet: 'Committed to Gemini / Google Cloud / Vertex AI', reason: 'the same menu entry\'s description' },
|
|
241
|
+
]],
|
|
237
242
|
['agents/gsd-framework-selector.compact.md', [
|
|
238
243
|
{ snippet: 'Google (Gemini)', reason: 'model-provider choice, not a GSD runtime' },
|
|
239
244
|
]],
|
|
@@ -384,6 +384,21 @@
|
|
|
384
384
|
"code": "2086",
|
|
385
385
|
"message": "Double quote to prevent globbing and word splitting."
|
|
386
386
|
},
|
|
387
|
+
{
|
|
388
|
+
"file": "gsd-core/workflows/execute-phase/steps/code-review-disposition.md",
|
|
389
|
+
"code": "2317",
|
|
390
|
+
"message": "Command appears to be unreachable. Check usage (or ignore if invoked indirectly)."
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"file": "gsd-core/workflows/execute-phase/steps/code-review-disposition.md",
|
|
394
|
+
"code": "2317",
|
|
395
|
+
"message": "Command appears to be unreachable. Check usage (or ignore if invoked indirectly)."
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"file": "gsd-core/workflows/execute-phase/steps/code-review-disposition.md",
|
|
399
|
+
"code": "2317",
|
|
400
|
+
"message": "Command appears to be unreachable. Check usage (or ignore if invoked indirectly)."
|
|
401
|
+
},
|
|
387
402
|
{
|
|
388
403
|
"file": "gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md",
|
|
389
404
|
"code": "2016",
|
|
@@ -690,7 +705,7 @@
|
|
|
690
705
|
"message": "Double quote to prevent globbing and word splitting."
|
|
691
706
|
},
|
|
692
707
|
{
|
|
693
|
-
"file": "gsd-core/workflows/plan-phase.md",
|
|
708
|
+
"file": "gsd-core/workflows/plan-phase/steps/auto-advance-check.md",
|
|
694
709
|
"code": "2235",
|
|
695
710
|
"message": "Use { ..; } instead of (..) to avoid subshell overhead."
|
|
696
711
|
},
|
|
@@ -1108,20 +1123,5 @@
|
|
|
1108
1123
|
"file": "gsd-core/workflows/verify-work/steps/mvp-uat-framing.md",
|
|
1109
1124
|
"code": "2086",
|
|
1110
1125
|
"message": "Double quote to prevent globbing and word splitting."
|
|
1111
|
-
},
|
|
1112
|
-
{
|
|
1113
|
-
"file": "gsd-core/workflows/execute-phase/steps/code-review-disposition.md",
|
|
1114
|
-
"code": "2317",
|
|
1115
|
-
"message": "Command appears to be unreachable. Check usage (or ignore if invoked indirectly)."
|
|
1116
|
-
},
|
|
1117
|
-
{
|
|
1118
|
-
"file": "gsd-core/workflows/execute-phase/steps/code-review-disposition.md",
|
|
1119
|
-
"code": "2317",
|
|
1120
|
-
"message": "Command appears to be unreachable. Check usage (or ignore if invoked indirectly)."
|
|
1121
|
-
},
|
|
1122
|
-
{
|
|
1123
|
-
"file": "gsd-core/workflows/execute-phase/steps/code-review-disposition.md",
|
|
1124
|
-
"code": "2317",
|
|
1125
|
-
"message": "Command appears to be unreachable. Check usage (or ignore if invoked indirectly)."
|
|
1126
1126
|
}
|
|
1127
1127
|
]
|
|
@@ -252,6 +252,39 @@ function runInstalledTreeAudit(cwd, opts = {}) {
|
|
|
252
252
|
return runNpmAuditWithRetry(cwd, ['audit', '--omit=dev', '--json'], opts);
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
+
/**
|
|
256
|
+
* `-c safe.directory=<repoRoot>` for the baseline's git calls (#5659). On the gsd-test bench the
|
|
257
|
+
* checkout is owned by a different uid than the one running the tests, so git refuses every command
|
|
258
|
+
* ("detected dubious ownership") and the baseline silently resolved to nothing, which sent the
|
|
259
|
+
* integrity tests to their zero-tolerance fallback. git honors `safe.directory` from the command line
|
|
260
|
+
* only; scoping it to the audited repo root (never `*`, never global config) trusts exactly the
|
|
261
|
+
* checkout being audited. Same precedent as scripts/lint-compiled-artifact-sync.cjs.
|
|
262
|
+
*/
|
|
263
|
+
function safeDirectoryArgs(repoRoot) {
|
|
264
|
+
// git compares safe.directory against its forward-slash path, also on Windows.
|
|
265
|
+
return ['-c', `safe.directory=${String(repoRoot).replace(/\\/g, '/')}`];
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* One line saying why no baseline resolved (#5659), for the integrity gate's zero-tolerance message.
|
|
270
|
+
* Without it a git refusal (ownership, a missing git, a broken checkout) is indistinguishable from a
|
|
271
|
+
* checkout that simply has no `origin/next`, which is how the ownership problem hid. Only the first
|
|
272
|
+
* line git printed is kept.
|
|
273
|
+
*/
|
|
274
|
+
function explainNoBaseline(repoRoot, { execFileSyncImpl = execFileSync } = {}) {
|
|
275
|
+
try {
|
|
276
|
+
execFileSyncImpl('git', [...safeDirectoryArgs(repoRoot), 'rev-parse', '--git-dir'], {
|
|
277
|
+
cwd: repoRoot,
|
|
278
|
+
encoding: 'utf-8',
|
|
279
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
280
|
+
});
|
|
281
|
+
} catch (error) {
|
|
282
|
+
const detail = String((error && (error.stderr || error.message)) || '').trim().split(/\r?\n/)[0];
|
|
283
|
+
return `git could not read ${repoRoot}${detail ? `: ${detail}` : ''}`;
|
|
284
|
+
}
|
|
285
|
+
return 'no baseline ref (origin/next, next) resolved, or it lacks package.json / package-lock.json';
|
|
286
|
+
}
|
|
287
|
+
|
|
255
288
|
/**
|
|
256
289
|
* Extracts package.json + package-lock.json (optionally under `subdir`,
|
|
257
290
|
* e.g. 'sdk') from `ref` at git object level into a fresh temp directory --
|
|
@@ -260,17 +293,17 @@ function runInstalledTreeAudit(cwd, opts = {}) {
|
|
|
260
293
|
* clone that never fetched it) or either file is absent at that ref --
|
|
261
294
|
* callers treat `null` as "no baseline available", not an error.
|
|
262
295
|
*/
|
|
263
|
-
function extractBaselineTree(ref, repoRoot, subdir = '') {
|
|
296
|
+
function extractBaselineTree(ref, repoRoot, subdir = '', { execFileSyncImpl = execFileSync } = {}) {
|
|
264
297
|
const rel = (name) => (subdir ? path.posix.join(subdir, name) : name);
|
|
265
298
|
let pkgJson;
|
|
266
299
|
let lockJson;
|
|
267
300
|
try {
|
|
268
|
-
pkgJson =
|
|
301
|
+
pkgJson = execFileSyncImpl('git', [...safeDirectoryArgs(repoRoot), 'show', `${ref}:${rel('package.json')}`], {
|
|
269
302
|
cwd: repoRoot,
|
|
270
303
|
encoding: 'utf-8',
|
|
271
304
|
stdio: ['ignore', 'pipe', 'ignore'],
|
|
272
305
|
});
|
|
273
|
-
lockJson =
|
|
306
|
+
lockJson = execFileSyncImpl('git', [...safeDirectoryArgs(repoRoot), 'show', `${ref}:${rel('package-lock.json')}`], {
|
|
274
307
|
cwd: repoRoot,
|
|
275
308
|
encoding: 'utf-8',
|
|
276
309
|
stdio: ['ignore', 'pipe', 'ignore'],
|
|
@@ -322,12 +355,12 @@ const NULL_SHA = '0000000000000000000000000000000000000000';
|
|
|
322
355
|
* Returns '' if none resolve -- callers fall back to strict zero-tolerance
|
|
323
356
|
* rather than silently skipping the gate.
|
|
324
357
|
*/
|
|
325
|
-
function resolveBaselineRef(repoRoot) {
|
|
358
|
+
function resolveBaselineRef(repoRoot, { execFileSyncImpl = execFileSync } = {}) {
|
|
326
359
|
if (process.env.AUDIT_BASELINE_REF) return process.env.AUDIT_BASELINE_REF;
|
|
327
360
|
if (process.env.GITHUB_BASE_REF) return `origin/${process.env.GITHUB_BASE_REF}`;
|
|
328
361
|
if (process.env.GITHUB_EVENT_NAME === 'push') {
|
|
329
362
|
try {
|
|
330
|
-
const parent =
|
|
363
|
+
const parent = execFileSyncImpl('git', [...safeDirectoryArgs(repoRoot), 'rev-parse', '--verify', 'HEAD~1'], {
|
|
331
364
|
cwd: repoRoot,
|
|
332
365
|
encoding: 'utf-8',
|
|
333
366
|
stdio: ['ignore', 'pipe', 'ignore'],
|
|
@@ -338,7 +371,7 @@ function resolveBaselineRef(repoRoot) {
|
|
|
338
371
|
}
|
|
339
372
|
}
|
|
340
373
|
try {
|
|
341
|
-
|
|
374
|
+
execFileSyncImpl('git', [...safeDirectoryArgs(repoRoot), 'rev-parse', '--verify', 'origin/next'], {
|
|
342
375
|
cwd: repoRoot,
|
|
343
376
|
stdio: 'ignore',
|
|
344
377
|
});
|
|
@@ -347,7 +380,7 @@ function resolveBaselineRef(repoRoot) {
|
|
|
347
380
|
// fall through to a plain local branch
|
|
348
381
|
}
|
|
349
382
|
try {
|
|
350
|
-
|
|
383
|
+
execFileSyncImpl('git', [...safeDirectoryArgs(repoRoot), 'rev-parse', '--verify', 'next'], {
|
|
351
384
|
cwd: repoRoot,
|
|
352
385
|
stdio: 'ignore',
|
|
353
386
|
});
|
|
@@ -366,6 +399,7 @@ module.exports = {
|
|
|
366
399
|
runNpmAuditWithRetry,
|
|
367
400
|
extractBaselineTree,
|
|
368
401
|
resolveBaselineRef,
|
|
402
|
+
explainNoBaseline,
|
|
369
403
|
isTimeoutKill,
|
|
370
404
|
buildTimeoutKillError,
|
|
371
405
|
sleepSyncMs,
|
|
@@ -703,6 +703,7 @@ function runSmoke({
|
|
|
703
703
|
...effectiveNpmEnv,
|
|
704
704
|
HOME: runtimeHome,
|
|
705
705
|
USERPROFILE: runtimeHome,
|
|
706
|
+
GSD_HOME: runtimeHome, // #5017: the defaults store root follows HOME
|
|
706
707
|
// Same reason as the init check above: install.js skips its main()
|
|
707
708
|
// block when GSD_TEST_MODE is set and would exit 0 writing nothing.
|
|
708
709
|
GSD_TEST_MODE: '',
|