Adds --raw to config-get workflow.build_command|test_command reads in the post-merge, regression, verify-phase, and audit-fix gates so an unset key is a genuinely empty string, not the literal "" — restoring the auto-detect cascade and graceful skip instead of a false exit-127 failure. Regression guard sweeps all four gate files. Fixes #2350.
This commit is contained in:
5
.changeset/vivid-badgers-gather.md
Normal file
5
.changeset/vivid-badgers-gather.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: Fixed
|
||||
pr: 2399
|
||||
---
|
||||
**Build/test gates no longer report a false failure on repos with no detectable build/test tooling** — the post-merge, regression, verify-phase, and audit-fix gates read `config-get workflow.build_command`/`workflow.test_command` without `--raw`, so an unset key returned the literal 2-byte string `""` rather than empty output. The `[ -z "$CMD" ]` guard then saw a non-empty value, skipped the Makefile/Cargo/go.mod/package.json auto-detection cascade, and executed the literal `""` as a command → exit 127, misread as a build/test failure (docs-only or planning-only repos, or any repo before its first build file). All of these reads now pass `--raw`, restoring the intended "no command detected — skip" no-op. (#2350)
|
||||
@@ -106,7 +106,7 @@ Agent(
|
||||
|
||||
**b. Run tests:**
|
||||
```bash
|
||||
AUDIT_TEST_CMD=$(gsd_run query config-get workflow.test_command --default "" 2>/dev/null || true)
|
||||
AUDIT_TEST_CMD=$(gsd_run query config-get workflow.test_command --default "" --raw 2>/dev/null || true)
|
||||
if [ -z "$AUDIT_TEST_CMD" ]; then
|
||||
if [ -f "Makefile" ] && grep -q "^test:" Makefile; then
|
||||
AUDIT_TEST_CMD="make test"
|
||||
|
||||
@@ -10,7 +10,7 @@ detect.
|
||||
```bash
|
||||
_GSD_SHIM_NAME="gsd-tools.cjs"; _GSD_RUNTIME_ROOT="${RUNTIME_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"; GSD_TOOLS="${_GSD_RUNTIME_ROOT}/gsd-core/bin/${_GSD_SHIM_NAME}"; if [ -f "$GSD_TOOLS" ]; then gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${_GSD_RUNTIME_ROOT}/.claude/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${_GSD_RUNTIME_ROOT}/.claude/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${_GSD_RUNTIME_ROOT}/.codex/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${_GSD_RUNTIME_ROOT}/.codex/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif command -v gsd-tools >/dev/null 2>&1; then GSD_TOOLS="$(command -v gsd-tools)"; gsd_run() { "$GSD_TOOLS" "$@"; }; elif [ -f "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${HERMES_HOME:-$HOME/.hermes}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${HERMES_HOME:-$HOME/.hermes}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${CURSOR_CONFIG_DIR:-$HOME/.cursor}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${CURSOR_CONFIG_DIR:-$HOME/.cursor}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${CODEX_HOME:-$HOME/.codex}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${CODEX_HOME:-$HOME/.codex}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${GEMINI_CONFIG_DIR:-$HOME/.gemini}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${GEMINI_CONFIG_DIR:-$HOME/.gemini}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${COPILOT_CONFIG_DIR:-$HOME/.copilot}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${COPILOT_CONFIG_DIR:-$HOME/.copilot}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${WINDSURF_CONFIG_DIR:-$HOME/.codeium/windsurf}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${WINDSURF_CONFIG_DIR:-$HOME/.codeium/windsurf}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${AUGMENT_CONFIG_DIR:-$HOME/.augment}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${AUGMENT_CONFIG_DIR:-$HOME/.augment}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${TRAE_CONFIG_DIR:-$HOME/.trae}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${TRAE_CONFIG_DIR:-$HOME/.trae}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${QWEN_CONFIG_DIR:-$HOME/.qwen}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${QWEN_CONFIG_DIR:-$HOME/.qwen}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${CODEBUDDY_CONFIG_DIR:-$HOME/.codebuddy}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${CODEBUDDY_CONFIG_DIR:-$HOME/.codebuddy}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${CLINE_CONFIG_DIR:-$HOME/.cline}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${CLINE_CONFIG_DIR:-$HOME/.cline}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${GROK_AGENTS_HOME:-$HOME/.agents}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${GROK_AGENTS_HOME:-$HOME/.agents}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${ANTIGRAVITY_CONFIG_DIR:-$HOME/.gemini/antigravity}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${ANTIGRAVITY_CONFIG_DIR:-$HOME/.gemini/antigravity}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${OPENCODE_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/opencode}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${OPENCODE_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/opencode}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${KILO_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/kilo}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${KILO_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/kilo}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; else echo "ERROR: gsd-tools.cjs not found at $GSD_TOOLS and gsd-tools is not on PATH. Run: npx -y @opengsd/gsd-core@latest --claude --local" >&2; exit 1; fi; if [ -n "${CLAUDE_ENV_FILE:-}" ] && [ -n "${GSD_TOOLS:-}" ]; then printf "export PATH='%s':\"\$PATH\"\n" "${GSD_TOOLS%/*}" >> "$CLAUDE_ENV_FILE" 2>/dev/null || true; fi
|
||||
# Resolve build command: project config > Xcode > Makefile > language sniff
|
||||
BUILD_CMD=$(gsd_run query config-get workflow.build_command --default "" 2>/dev/null || true)
|
||||
BUILD_CMD=$(gsd_run query config-get workflow.build_command --default "" --raw 2>/dev/null || true)
|
||||
if [ -z "$BUILD_CMD" ]; then
|
||||
XCODEPROJ=$(find . -maxdepth 2 -name "*.xcodeproj" -not -path "*/node_modules/*" 2>/dev/null | head -1)
|
||||
if [ -n "$XCODEPROJ" ]; then
|
||||
@@ -64,7 +64,7 @@ fi
|
||||
|
||||
```bash
|
||||
# Resolve test command: project config > Xcode > Makefile > language sniff
|
||||
TEST_CMD=$(gsd_run query config-get workflow.test_command --default "" 2>/dev/null || true)
|
||||
TEST_CMD=$(gsd_run query config-get workflow.test_command --default "" --raw 2>/dev/null || true)
|
||||
if [ -z "$TEST_CMD" ]; then
|
||||
XCODEPROJ=$(find . -maxdepth 2 -name "*.xcodeproj" -not -path "*/node_modules/*" 2>/dev/null | head -1)
|
||||
if [ -n "$XCODEPROJ" ]; then
|
||||
|
||||
@@ -10,7 +10,7 @@ Expects `REGRESSION_FILES` (from the prior step) in scope for the pytest branch.
|
||||
```bash
|
||||
_GSD_SHIM_NAME="gsd-tools.cjs"; _GSD_RUNTIME_ROOT="${RUNTIME_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"; GSD_TOOLS="${_GSD_RUNTIME_ROOT}/gsd-core/bin/${_GSD_SHIM_NAME}"; if [ -f "$GSD_TOOLS" ]; then gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${_GSD_RUNTIME_ROOT}/.claude/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${_GSD_RUNTIME_ROOT}/.claude/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${_GSD_RUNTIME_ROOT}/.codex/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${_GSD_RUNTIME_ROOT}/.codex/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif command -v gsd-tools >/dev/null 2>&1; then GSD_TOOLS="$(command -v gsd-tools)"; gsd_run() { "$GSD_TOOLS" "$@"; }; elif [ -f "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${HERMES_HOME:-$HOME/.hermes}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${HERMES_HOME:-$HOME/.hermes}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${CURSOR_CONFIG_DIR:-$HOME/.cursor}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${CURSOR_CONFIG_DIR:-$HOME/.cursor}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${CODEX_HOME:-$HOME/.codex}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${CODEX_HOME:-$HOME/.codex}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${GEMINI_CONFIG_DIR:-$HOME/.gemini}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${GEMINI_CONFIG_DIR:-$HOME/.gemini}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${COPILOT_CONFIG_DIR:-$HOME/.copilot}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${COPILOT_CONFIG_DIR:-$HOME/.copilot}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${WINDSURF_CONFIG_DIR:-$HOME/.codeium/windsurf}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${WINDSURF_CONFIG_DIR:-$HOME/.codeium/windsurf}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${AUGMENT_CONFIG_DIR:-$HOME/.augment}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${AUGMENT_CONFIG_DIR:-$HOME/.augment}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${TRAE_CONFIG_DIR:-$HOME/.trae}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${TRAE_CONFIG_DIR:-$HOME/.trae}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${QWEN_CONFIG_DIR:-$HOME/.qwen}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${QWEN_CONFIG_DIR:-$HOME/.qwen}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${CODEBUDDY_CONFIG_DIR:-$HOME/.codebuddy}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${CODEBUDDY_CONFIG_DIR:-$HOME/.codebuddy}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${CLINE_CONFIG_DIR:-$HOME/.cline}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${CLINE_CONFIG_DIR:-$HOME/.cline}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${GROK_AGENTS_HOME:-$HOME/.agents}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${GROK_AGENTS_HOME:-$HOME/.agents}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${ANTIGRAVITY_CONFIG_DIR:-$HOME/.gemini/antigravity}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${ANTIGRAVITY_CONFIG_DIR:-$HOME/.gemini/antigravity}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${OPENCODE_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/opencode}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${OPENCODE_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/opencode}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${KILO_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/kilo}/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${KILO_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/kilo}/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; else echo "ERROR: gsd-tools.cjs not found at $GSD_TOOLS and gsd-tools is not on PATH. Run: npx -y @opengsd/gsd-core@latest --claude --local" >&2; exit 1; fi; if [ -n "${CLAUDE_ENV_FILE:-}" ] && [ -n "${GSD_TOOLS:-}" ]; then printf "export PATH='%s':\"\$PATH\"\n" "${GSD_TOOLS%/*}" >> "$CLAUDE_ENV_FILE" 2>/dev/null || true; fi
|
||||
# Resolve test command: project config > Makefile > language sniff
|
||||
REG_TEST_CMD=$(gsd_run query config-get workflow.test_command --default "" 2>/dev/null || true)
|
||||
REG_TEST_CMD=$(gsd_run query config-get workflow.test_command --default "" --raw 2>/dev/null || true)
|
||||
if [ -z "$REG_TEST_CMD" ]; then
|
||||
if [ -f "Makefile" ] && grep -q "^test:" Makefile; then
|
||||
REG_TEST_CMD="make test"
|
||||
|
||||
@@ -269,7 +269,7 @@ inspecting static artifacts.
|
||||
|
||||
```bash
|
||||
# Resolve test command: project config > Makefile > language sniff
|
||||
TEST_CMD=$(gsd_run query config-get workflow.test_command --default "" 2>/dev/null || true)
|
||||
TEST_CMD=$(gsd_run query config-get workflow.test_command --default "" --raw 2>/dev/null || true)
|
||||
if [ -z "$TEST_CMD" ]; then
|
||||
if [ -f "Makefile" ] && grep -q "^test:" Makefile; then
|
||||
TEST_CMD="make test"
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "e410a72c168e43c0",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "22f5466085c47c00",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "3ecffffe78021e0a",
|
||||
"gsd-core/workflows/audit-fix.md": "582e9a31df15dd8b",
|
||||
"gsd-core/workflows/audit-milestone.md": "280cd85908dd45cb",
|
||||
"gsd-core/workflows/audit-uat.md": "ea8ddd910ed16ba4",
|
||||
"gsd-core/workflows/autonomous.md": "603ce2019835f00e",
|
||||
@@ -238,8 +238,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "a349bfdfcdf2c011",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "55d0706e80a2554a",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "9b7107b31b60a3b9",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "e0fa99178ae544f0",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "5e9635a80ca6c3a5",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "3c66870732e77709",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "dea5df2e142f66bd",
|
||||
"gsd-core/workflows/explore.md": "934c00f9f216dbdb",
|
||||
@@ -311,7 +311,7 @@
|
||||
"gsd-core/workflows/undo.md": "6ab639d1fc7e0721",
|
||||
"gsd-core/workflows/update.md": "2c58df5e21c41c31",
|
||||
"gsd-core/workflows/validate-phase.md": "ae3f0180a2316fcd",
|
||||
"gsd-core/workflows/verify-phase.md": "0eefbb6bb1b0bed6",
|
||||
"gsd-core/workflows/verify-phase.md": "20503ec39197757b",
|
||||
"gsd-core/workflows/verify-work.md": "59276d94999ee022",
|
||||
"hooks/gsd-check-update-worker.js": "fa301e6366270d5f",
|
||||
"hooks/gsd-check-update.js": "4617a98bf529e4c3",
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "953314cdfef56bc4",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "40c217869a06981f",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
||||
"gsd-core/workflows/audit-fix.md": "eedb2da4bffb7575",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "3835762c3147a927",
|
||||
"gsd-core/workflows/audit-uat.md": "fcfbec501620b564",
|
||||
"gsd-core/workflows/autonomous.md": "7e5683728ef33707",
|
||||
@@ -309,8 +309,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "42bb004d479f7706",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "4e265392b3f2ba0e",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "811b6d8489571581",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "8ccc16a6c7cf6000",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "09ea1680a375b979",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "5f24c5ad58c2518f",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "7bc87fa99a1f9b0e",
|
||||
"gsd-core/workflows/explore.md": "6c04f2e658d93261",
|
||||
@@ -382,7 +382,7 @@
|
||||
"gsd-core/workflows/undo.md": "96d2775f008b3a85",
|
||||
"gsd-core/workflows/update.md": "fd160e13f8b7e83c",
|
||||
"gsd-core/workflows/validate-phase.md": "ce9890f21c6e5607",
|
||||
"gsd-core/workflows/verify-phase.md": "22f18492581f1da5",
|
||||
"gsd-core/workflows/verify-phase.md": "499a0ade5e21fe6f",
|
||||
"gsd-core/workflows/verify-work.md": "63b3f680d8f0a6f3",
|
||||
"hooks/gsd-check-update-worker.js": "cc1ef5f840f9dfc9",
|
||||
"hooks/gsd-check-update.js": "7b3a7983d5f1f5d3",
|
||||
|
||||
@@ -274,7 +274,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "0a0f4d718ea50bea",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "3503f52a7356caf0",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "816c71b0ef2d8c1d",
|
||||
"gsd-core/workflows/audit-fix.md": "b441993d57cf83bc",
|
||||
"gsd-core/workflows/audit-milestone.md": "ae8605b4ecc37c0b",
|
||||
"gsd-core/workflows/audit-uat.md": "1c4a02a8c1ab930f",
|
||||
"gsd-core/workflows/autonomous.md": "6adf957e64518d15",
|
||||
@@ -308,8 +308,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "a0f26f223218812d",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "6d38bfd540030da4",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "611b2be3bd133eb1",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "016ac9c7c02b1438",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "e5d65c3a0ae0ed2a",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "ccd95645902f57af",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "e81d3476290ef292",
|
||||
"gsd-core/workflows/explore.md": "95e463d4bdd6dadd",
|
||||
@@ -381,7 +381,7 @@
|
||||
"gsd-core/workflows/undo.md": "d759702f84e308fa",
|
||||
"gsd-core/workflows/update.md": "2a59b4edf4a3c8c7",
|
||||
"gsd-core/workflows/validate-phase.md": "3150904744b4a1bd",
|
||||
"gsd-core/workflows/verify-phase.md": "6ae6f159be75dcdd",
|
||||
"gsd-core/workflows/verify-phase.md": "05f5370a02941f39",
|
||||
"gsd-core/workflows/verify-work.md": "de14acdc8e925338",
|
||||
"hooks/gsd-check-update-worker.js": "a530efdb5fdc0da3",
|
||||
"hooks/gsd-check-update.js": "25cde66a12d6b886",
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "2c5176263ad4ae8f",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "a898d99b8d844215",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "eedb2da4bffb7575",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "9f8ec364e58d5710",
|
||||
"gsd-core/workflows/audit-uat.md": "e11db0d74c2a7405",
|
||||
"gsd-core/workflows/autonomous.md": "722397c04272dfaa",
|
||||
@@ -237,8 +237,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "a5ca7da9e551bf4c",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "facb0e816d87a0c7",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "811b6d8489571581",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "8ccc16a6c7cf6000",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "09ea1680a375b979",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "5f24c5ad58c2518f",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "2cddec7d1b197e48",
|
||||
"gsd-core/workflows/explore.md": "b9eea1bac358c9ce",
|
||||
@@ -310,7 +310,7 @@
|
||||
"gsd-core/workflows/undo.md": "791e0bf96d9a057f",
|
||||
"gsd-core/workflows/update.md": "f9e7d8a760d0d3c8",
|
||||
"gsd-core/workflows/validate-phase.md": "7a3db6ab8ce9f380",
|
||||
"gsd-core/workflows/verify-phase.md": "e0957e153788a222",
|
||||
"gsd-core/workflows/verify-phase.md": "b321551a82bc7c2f",
|
||||
"gsd-core/workflows/verify-work.md": "c8ffee621e7319de",
|
||||
"hooks/gsd-check-update-worker.js": "a530efdb5fdc0da3",
|
||||
"hooks/gsd-check-update.js": "25cde66a12d6b886",
|
||||
|
||||
@@ -207,7 +207,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "aa89018230c87f13",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "5159c6bdf102f74b",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
||||
"gsd-core/workflows/audit-fix.md": "9bb427cd3b4075d5",
|
||||
"gsd-core/workflows/audit-fix.md": "d6a41fc6879424f8",
|
||||
"gsd-core/workflows/audit-milestone.md": "202b726748604c93",
|
||||
"gsd-core/workflows/audit-uat.md": "1fb7b2ab9d587c8f",
|
||||
"gsd-core/workflows/autonomous.md": "cc5217b1b2238a4c",
|
||||
@@ -241,8 +241,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "7cafa358f645936a",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "67ebc93f51968cb6",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "82e6cfe1e1b1ec0e",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "36b463d72d3e11c5",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "27505ecd7d5b4e57",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "91eac50d2e1f5a2f",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "7f186055a0246932",
|
||||
"gsd-core/workflows/explore.md": "e83af8ceae314cf9",
|
||||
@@ -314,7 +314,7 @@
|
||||
"gsd-core/workflows/undo.md": "96d2775f008b3a85",
|
||||
"gsd-core/workflows/update.md": "165beec33490bd28",
|
||||
"gsd-core/workflows/validate-phase.md": "706627c190ae11aa",
|
||||
"gsd-core/workflows/verify-phase.md": "a4f918c92c927268",
|
||||
"gsd-core/workflows/verify-phase.md": "377fa009ccf04cbe",
|
||||
"gsd-core/workflows/verify-work.md": "3fb282f2bce34a79",
|
||||
"scripts/changeset/README.md": "86ff89331dfd94b2",
|
||||
"scripts/changeset/cli.cjs": "68f92a344b199271",
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "953314cdfef56bc4",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "40c217869a06981f",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
||||
"gsd-core/workflows/audit-fix.md": "eedb2da4bffb7575",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "3835762c3147a927",
|
||||
"gsd-core/workflows/audit-uat.md": "fcfbec501620b564",
|
||||
"gsd-core/workflows/autonomous.md": "7e5683728ef33707",
|
||||
@@ -309,8 +309,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "4d6f9e033792619a",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "4e265392b3f2ba0e",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "811b6d8489571581",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "8ccc16a6c7cf6000",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "09ea1680a375b979",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "5f24c5ad58c2518f",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "90cfc1e6e677d43f",
|
||||
"gsd-core/workflows/explore.md": "6c04f2e658d93261",
|
||||
@@ -382,7 +382,7 @@
|
||||
"gsd-core/workflows/undo.md": "96d2775f008b3a85",
|
||||
"gsd-core/workflows/update.md": "5ff1f77222977648",
|
||||
"gsd-core/workflows/validate-phase.md": "ce9890f21c6e5607",
|
||||
"gsd-core/workflows/verify-phase.md": "22f18492581f1da5",
|
||||
"gsd-core/workflows/verify-phase.md": "499a0ade5e21fe6f",
|
||||
"gsd-core/workflows/verify-work.md": "63b3f680d8f0a6f3",
|
||||
"hooks/gsd-check-update-worker.js": "bdc9324a2f080ddd",
|
||||
"hooks/gsd-check-update.js": "b7669f605631e506",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "776e554602e3d1b7",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "1dfa15d8f28c022d",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "f799abc00907377f",
|
||||
"gsd-core/workflows/audit-fix.md": "eedb2da4bffb7575",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "5f362cead97ceaca",
|
||||
"gsd-core/workflows/audit-uat.md": "2564078edb15b5e9",
|
||||
"gsd-core/workflows/autonomous.md": "92f08626d4aea668",
|
||||
@@ -344,8 +344,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "8176e734cd927891",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "f4cacd27d37bac65",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "811b6d8489571581",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "8ccc16a6c7cf6000",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "09ea1680a375b979",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "5f24c5ad58c2518f",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "89dda78cf3c1f1b7",
|
||||
"gsd-core/workflows/explore.md": "2ef10d17c8864a04",
|
||||
@@ -417,7 +417,7 @@
|
||||
"gsd-core/workflows/undo.md": "5ff7d63b0a2f46d5",
|
||||
"gsd-core/workflows/update.md": "5c35c0ec0f462ea6",
|
||||
"gsd-core/workflows/validate-phase.md": "6d6d10fe53f6b1d0",
|
||||
"gsd-core/workflows/verify-phase.md": "2e12c3cb97a9122a",
|
||||
"gsd-core/workflows/verify-phase.md": "9ceb46a60cb6608b",
|
||||
"gsd-core/workflows/verify-work.md": "5b348e73fc0d0829",
|
||||
"hooks/gsd-check-update.js": "ef48957eb6ac6a10",
|
||||
"hooks/gsd-context-monitor.js": "ec76b23f45d29b02",
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "f86f4efa25a5d0d6",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "ef0c2474cee76b00",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "9fdfe8a7fbcd1417",
|
||||
"gsd-core/workflows/audit-fix.md": "646fc39302300887",
|
||||
"gsd-core/workflows/audit-milestone.md": "258e4dfd259ab13f",
|
||||
"gsd-core/workflows/audit-uat.md": "5ea0e30548ed0933",
|
||||
"gsd-core/workflows/autonomous.md": "dd972ddde9663295",
|
||||
@@ -239,8 +239,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "75bc8795af213c29",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "63b712920f21a40f",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "1b73ab2fc47c9dbf",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "b26edeee455481a7",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "1963079fe27412c6",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "bce45e41bc6802e8",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "66879e62abcc33ae",
|
||||
"gsd-core/workflows/explore.md": "5fd91a8510e1114b",
|
||||
@@ -312,7 +312,7 @@
|
||||
"gsd-core/workflows/undo.md": "ba1ef7aa80bef6bd",
|
||||
"gsd-core/workflows/update.md": "f444a7cfcd246cfb",
|
||||
"gsd-core/workflows/validate-phase.md": "e7aa423ebdd6a230",
|
||||
"gsd-core/workflows/verify-phase.md": "5c72780e34214e27",
|
||||
"gsd-core/workflows/verify-phase.md": "dd76fff851c66df5",
|
||||
"gsd-core/workflows/verify-work.md": "c966971a3cbd1d71",
|
||||
"hooks/gsd-session.json": "3382597f61e3a559",
|
||||
"scripts/changeset/README.md": "86ff89331dfd94b2",
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "1ee0525664fb062f",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "b79f320d59a68773",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "eedb2da4bffb7575",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "9f8ec364e58d5710",
|
||||
"gsd-core/workflows/audit-uat.md": "e11db0d74c2a7405",
|
||||
"gsd-core/workflows/autonomous.md": "4b20eda9a0b587ce",
|
||||
@@ -309,8 +309,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "f67b5d55c3e7dc4b",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "facb0e816d87a0c7",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "811b6d8489571581",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "8ccc16a6c7cf6000",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "09ea1680a375b979",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "5f24c5ad58c2518f",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "a57ce521a92348ef",
|
||||
"gsd-core/workflows/explore.md": "b9eea1bac358c9ce",
|
||||
@@ -382,7 +382,7 @@
|
||||
"gsd-core/workflows/undo.md": "18dec684fb1076f9",
|
||||
"gsd-core/workflows/update.md": "23e294ba707c3580",
|
||||
"gsd-core/workflows/validate-phase.md": "d03a94b7b807be12",
|
||||
"gsd-core/workflows/verify-phase.md": "e0957e153788a222",
|
||||
"gsd-core/workflows/verify-phase.md": "b321551a82bc7c2f",
|
||||
"gsd-core/workflows/verify-work.md": "e7e7e900c4874490",
|
||||
"hooks/gsd-cursor-post-tool.js": "019d503aee8b4a3f",
|
||||
"hooks/gsd-cursor-pre-tool.js": "fe274720781fcbb5",
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "8ba173153be63a40",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "ddab2912d025db65",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "2f21bd575bcedaf1",
|
||||
"gsd-core/workflows/audit-fix.md": "bf84c94d2ccdacbf",
|
||||
"gsd-core/workflows/audit-milestone.md": "b96a78c6bd2e7690",
|
||||
"gsd-core/workflows/audit-uat.md": "86d9131fccabf2ad",
|
||||
"gsd-core/workflows/autonomous.md": "853dd93846332743",
|
||||
@@ -238,8 +238,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "3205cca9fe364951",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "14a27cc0828f59d3",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "26ee34c543926402",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "c9ad17d6cc6dfe45",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "5a78d5dfea6a911a",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "5d3a54df40320dbf",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "1ec347a324814b1d",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "274b22f8e53c88d1",
|
||||
"gsd-core/workflows/explore.md": "d931b4d85a74c795",
|
||||
@@ -311,7 +311,7 @@
|
||||
"gsd-core/workflows/undo.md": "791e0bf96d9a057f",
|
||||
"gsd-core/workflows/update.md": "7499bb4cb2a3ce6f",
|
||||
"gsd-core/workflows/validate-phase.md": "24be83176c7db9f9",
|
||||
"gsd-core/workflows/verify-phase.md": "5c8d1305b47fbef4",
|
||||
"gsd-core/workflows/verify-phase.md": "d2a254cc06eb2e84",
|
||||
"gsd-core/workflows/verify-work.md": "3847a7ccd4bd88a8",
|
||||
"hooks/gsd-check-update-worker.js": "7989cc2bedd1138d",
|
||||
"hooks/gsd-check-update.js": "25f5ad726f76fc11",
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "31bc520d77b14139",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "c85c6afdc64f0da6",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "eedb2da4bffb7575",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "9f8ec364e58d5710",
|
||||
"gsd-core/workflows/audit-uat.md": "e11db0d74c2a7405",
|
||||
"gsd-core/workflows/autonomous.md": "73f429f7472c9949",
|
||||
@@ -309,8 +309,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "4babf365129ad14b",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "facb0e816d87a0c7",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "811b6d8489571581",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "8ccc16a6c7cf6000",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "09ea1680a375b979",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "5f24c5ad58c2518f",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "21c1dc158588803a",
|
||||
"gsd-core/workflows/explore.md": "14242d36d4822df6",
|
||||
@@ -382,7 +382,7 @@
|
||||
"gsd-core/workflows/undo.md": "7cd2153f8b15e30d",
|
||||
"gsd-core/workflows/update.md": "07dc2fba78ad1865",
|
||||
"gsd-core/workflows/validate-phase.md": "52b9fa8a9533b444",
|
||||
"gsd-core/workflows/verify-phase.md": "e0957e153788a222",
|
||||
"gsd-core/workflows/verify-phase.md": "b321551a82bc7c2f",
|
||||
"gsd-core/workflows/verify-work.md": "9fc717845828c6e3",
|
||||
"kilo.json": "13151e97ff23c1aa",
|
||||
"plugins/gsd-core.js": "931ca839dc9eb7f1",
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "953314cdfef56bc4",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "40c217869a06981f",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
||||
"gsd-core/workflows/audit-fix.md": "eedb2da4bffb7575",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "3835762c3147a927",
|
||||
"gsd-core/workflows/audit-uat.md": "fcfbec501620b564",
|
||||
"gsd-core/workflows/autonomous.md": "7e5683728ef33707",
|
||||
@@ -302,8 +302,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "2629630eb4a94a6b",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "4e265392b3f2ba0e",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "811b6d8489571581",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "8ccc16a6c7cf6000",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "09ea1680a375b979",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "5f24c5ad58c2518f",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "3c4310c2dd9ef0ad",
|
||||
"gsd-core/workflows/explore.md": "6c04f2e658d93261",
|
||||
@@ -375,7 +375,7 @@
|
||||
"gsd-core/workflows/undo.md": "96d2775f008b3a85",
|
||||
"gsd-core/workflows/update.md": "6718e0632bba26ca",
|
||||
"gsd-core/workflows/validate-phase.md": "ce9890f21c6e5607",
|
||||
"gsd-core/workflows/verify-phase.md": "22f18492581f1da5",
|
||||
"gsd-core/workflows/verify-phase.md": "499a0ade5e21fe6f",
|
||||
"gsd-core/workflows/verify-work.md": "63b3f680d8f0a6f3",
|
||||
"scripts/changeset/README.md": "86ff89331dfd94b2",
|
||||
"scripts/changeset/cli.cjs": "68f92a344b199271",
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "36b6d7fec9631ec7",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "90e5f97018715b18",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "2871c5d0a4b671fa",
|
||||
"gsd-core/workflows/audit-fix.md": "20d2c2a6c49e750b",
|
||||
"gsd-core/workflows/audit-milestone.md": "8bd0b730de08d1a8",
|
||||
"gsd-core/workflows/audit-uat.md": "c800099fab1e1c1b",
|
||||
"gsd-core/workflows/autonomous.md": "6cb0c014f5f56965",
|
||||
@@ -309,8 +309,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "895f8e910b32ebd4",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "1804215577f1ad35",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "baa2c401af10a80a",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "b86ca98268dd3705",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "01c2fe9e5bcb57be",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "86b8a7f50115162f",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "cdd49ac15770c9d1",
|
||||
"gsd-core/workflows/explore.md": "7f5f9231cfd3089b",
|
||||
@@ -382,7 +382,7 @@
|
||||
"gsd-core/workflows/undo.md": "0bba5e7f6196c894",
|
||||
"gsd-core/workflows/update.md": "71b6cd852f38b4bc",
|
||||
"gsd-core/workflows/validate-phase.md": "434d9927c65f2bba",
|
||||
"gsd-core/workflows/verify-phase.md": "126be1d026900102",
|
||||
"gsd-core/workflows/verify-phase.md": "763485e1b7547cdb",
|
||||
"gsd-core/workflows/verify-work.md": "ae07b3fa8b6f864e",
|
||||
"hooks/gsd-check-update-worker.js": "385fb7c67810baf6",
|
||||
"hooks/gsd-check-update.js": "4549451414ffa7d7",
|
||||
|
||||
8
tests/fixtures/golden-install-parity/pi.json
vendored
8
tests/fixtures/golden-install-parity/pi.json
vendored
@@ -171,7 +171,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "953314cdfef56bc4",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "40c217869a06981f",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
||||
"gsd-core/workflows/audit-fix.md": "eedb2da4bffb7575",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "3835762c3147a927",
|
||||
"gsd-core/workflows/audit-uat.md": "fcfbec501620b564",
|
||||
"gsd-core/workflows/autonomous.md": "7e5683728ef33707",
|
||||
@@ -205,8 +205,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "353711104c33d19f",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "4e265392b3f2ba0e",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "811b6d8489571581",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "8ccc16a6c7cf6000",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "09ea1680a375b979",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "5f24c5ad58c2518f",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "d797619290e91120",
|
||||
"gsd-core/workflows/explore.md": "6c04f2e658d93261",
|
||||
@@ -278,7 +278,7 @@
|
||||
"gsd-core/workflows/undo.md": "96d2775f008b3a85",
|
||||
"gsd-core/workflows/update.md": "7e69d278375a2493",
|
||||
"gsd-core/workflows/validate-phase.md": "ce9890f21c6e5607",
|
||||
"gsd-core/workflows/verify-phase.md": "22f18492581f1da5",
|
||||
"gsd-core/workflows/verify-phase.md": "499a0ade5e21fe6f",
|
||||
"gsd-core/workflows/verify-work.md": "63b3f680d8f0a6f3",
|
||||
"hooks/gsd-check-update-worker.js": "55376b5b9335a580",
|
||||
"hooks/gsd-check-update.js": "a89562537a41f83d",
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "83426131a56b8e77",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "afdc7c15f03a95fc",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "aaa1b74e001322b6",
|
||||
"gsd-core/workflows/audit-fix.md": "fe2e5a89d158f9eb",
|
||||
"gsd-core/workflows/audit-milestone.md": "78dbc1e8c4499d7d",
|
||||
"gsd-core/workflows/audit-uat.md": "97d441d07e7972b3",
|
||||
"gsd-core/workflows/autonomous.md": "3014ff90115f0daf",
|
||||
@@ -238,8 +238,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "840ce6d4ff582aed",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "36af8d91e4ae8b9c",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "98db1ba4c39cd784",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "56fc78db4de210df",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "94765e9fc206efbf",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "463e4e1b57b22b24",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "79410db4a6bb5a46",
|
||||
"gsd-core/workflows/explore.md": "e1a83a8982532e5b",
|
||||
@@ -311,7 +311,7 @@
|
||||
"gsd-core/workflows/undo.md": "791e0bf96d9a057f",
|
||||
"gsd-core/workflows/update.md": "b34cb866152d4de3",
|
||||
"gsd-core/workflows/validate-phase.md": "dfb9bd178ee1b67b",
|
||||
"gsd-core/workflows/verify-phase.md": "0dc52b9e629a5f5a",
|
||||
"gsd-core/workflows/verify-phase.md": "683719ec1ee82e38",
|
||||
"gsd-core/workflows/verify-work.md": "3355ddc14f052fff",
|
||||
"hooks/gsd-check-update-worker.js": "4bb354044e0dff91",
|
||||
"hooks/gsd-check-update.js": "d2065cb3e725a42a",
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "fefa923ed596225f",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "d469eb120e52de0f",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "76607add3257cb37",
|
||||
"gsd-core/workflows/audit-fix.md": "2d4d783caf51f781",
|
||||
"gsd-core/workflows/audit-milestone.md": "ebec95af8f68f2ed",
|
||||
"gsd-core/workflows/audit-uat.md": "6e768b1c208a787a",
|
||||
"gsd-core/workflows/autonomous.md": "c482645c5d1ead46",
|
||||
@@ -238,8 +238,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "cadbd19b2a828111",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "c985a30317a1aa6b",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "0a9e915170c7121c",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "4b00ef3484a84954",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "06f115a379580094",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "9d58274a5a1b14f5",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "feae1e61007feab2",
|
||||
"gsd-core/workflows/explore.md": "8a5437aa0c239c38",
|
||||
@@ -311,7 +311,7 @@
|
||||
"gsd-core/workflows/undo.md": "59b8baa54efc4110",
|
||||
"gsd-core/workflows/update.md": "1f935251fca1f276",
|
||||
"gsd-core/workflows/validate-phase.md": "58fd1a0a679d7115",
|
||||
"gsd-core/workflows/verify-phase.md": "a151ed36eb51813b",
|
||||
"gsd-core/workflows/verify-phase.md": "40047a62ab2da6b2",
|
||||
"gsd-core/workflows/verify-work.md": "dde2a42a56c27c4e",
|
||||
"scripts/changeset/README.md": "86ff89331dfd94b2",
|
||||
"scripts/changeset/cli.cjs": "68f92a344b199271",
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "50d17053c6cfbc31",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "8948988717506320",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "aa052e15623d759d",
|
||||
"gsd-core/workflows/audit-fix.md": "fe4d636f2dca6d74",
|
||||
"gsd-core/workflows/audit-milestone.md": "868db5a8f5d55040",
|
||||
"gsd-core/workflows/audit-uat.md": "d496e39402e160de",
|
||||
"gsd-core/workflows/autonomous.md": "fe7bb7c978f305a2",
|
||||
@@ -238,8 +238,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "46a363f3f33cc596",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "47ae5482f8e64100",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "15bca39a75c664be",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "02324a66cb42fae3",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "003c6a0f21a4aa61",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "e469e777fb8e7fbb",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "403c53e3148033a3",
|
||||
"gsd-core/workflows/explore.md": "04e461ff8159a24e",
|
||||
@@ -311,7 +311,7 @@
|
||||
"gsd-core/workflows/undo.md": "18dec684fb1076f9",
|
||||
"gsd-core/workflows/update.md": "79aaf4b8f1f83045",
|
||||
"gsd-core/workflows/validate-phase.md": "bf16fd7ff71286b2",
|
||||
"gsd-core/workflows/verify-phase.md": "f961cdb3ef03ff05",
|
||||
"gsd-core/workflows/verify-phase.md": "8b7122e986853576",
|
||||
"gsd-core/workflows/verify-work.md": "cce8ae44b30957f1",
|
||||
"hooks/gsd-windsurf-pre-command.js": "7467a8a63e354aad",
|
||||
"hooks/gsd-windsurf-pre-write.js": "1c8a776d7ae2dcce",
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
"gsd-core/workflows/add-todo.md": "953314cdfef56bc4",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "40c217869a06981f",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
||||
"gsd-core/workflows/audit-fix.md": "eedb2da4bffb7575",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "3835762c3147a927",
|
||||
"gsd-core/workflows/audit-uat.md": "fcfbec501620b564",
|
||||
"gsd-core/workflows/autonomous.md": "7e5683728ef33707",
|
||||
@@ -309,8 +309,8 @@
|
||||
"gsd-core/workflows/execute-phase.md": "4bd16cf990e3ee63",
|
||||
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "4e265392b3f2ba0e",
|
||||
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "811b6d8489571581",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "8ccc16a6c7cf6000",
|
||||
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "09ea1680a375b979",
|
||||
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "5f24c5ad58c2518f",
|
||||
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
||||
"gsd-core/workflows/execute-plan.md": "4614bb2145a7f737",
|
||||
"gsd-core/workflows/explore.md": "6c04f2e658d93261",
|
||||
@@ -382,7 +382,7 @@
|
||||
"gsd-core/workflows/undo.md": "96d2775f008b3a85",
|
||||
"gsd-core/workflows/update.md": "dc580dee13f881a6",
|
||||
"gsd-core/workflows/validate-phase.md": "ce9890f21c6e5607",
|
||||
"gsd-core/workflows/verify-phase.md": "22f18492581f1da5",
|
||||
"gsd-core/workflows/verify-phase.md": "499a0ade5e21fe6f",
|
||||
"gsd-core/workflows/verify-work.md": "63b3f680d8f0a6f3",
|
||||
"scripts/changeset/README.md": "86ff89331dfd94b2",
|
||||
"scripts/changeset/cli.cjs": "68f92a344b199271",
|
||||
|
||||
@@ -91,3 +91,43 @@ describe('#1857: test gates normalize to one-shot and bound with a timeout', ()
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// #2350: `config-get KEY --default ""` WITHOUT `--raw` prints the JSON-encoded
|
||||
// empty string (the 2-byte literal `""`) for an unset key, so a `[ -z "$CMD" ]`
|
||||
// guard sees a non-empty string, SKIPS the whole Makefile/Cargo/go/npm/…
|
||||
// auto-detection cascade, and runs the literal `""` as a command → exit 127,
|
||||
// reported as a false build/test failure on any repo with no override and no
|
||||
// detectable tooling (docs-only / planning-only repos, or any repo before its
|
||||
// first build file). Every gate that resolves a build/test command this way MUST
|
||||
// pass `--raw` so an unset key is a genuinely empty bash string the `-z` guard
|
||||
// catches. This is a defect CLASS — post-merge-gate.md was the reported instance,
|
||||
// but regression-gate.md, verify-phase.md, and audit-fix.md shared it, so the
|
||||
// guard sweeps all of them (a single-file check gave false confidence). config-get's
|
||||
// own `--raw` behaviour is covered in config-get-default.test.cjs.
|
||||
describe('#2350: every gate resolves build/test commands with --raw', () => {
|
||||
// Each gate file that reads workflow.build_command / workflow.test_command to
|
||||
// build a shell command it then runs. Add new gates here as they appear.
|
||||
const GATE_FILES = [
|
||||
['post-merge gate', POST_MERGE_GATE],
|
||||
['regression gate', REGRESSION_GATE],
|
||||
['verify-phase gate', VERIFY_PHASE],
|
||||
['audit-fix gate', AUDIT_FIX],
|
||||
];
|
||||
|
||||
for (const [label, file] of GATE_FILES) {
|
||||
test(`${label}: no build/test_command config-get line is left without --raw`, () => {
|
||||
const lines = read(file)
|
||||
.split('\n')
|
||||
.filter((l) => /config-get\s+workflow\.(build|test)_command\s+--default\s+""/.test(l));
|
||||
// The gate must actually resolve a command this way (guards against the file
|
||||
// being renamed/refactored out from under this test without notice).
|
||||
assert.ok(lines.length > 0, `${label} (${path.basename(file)}) should resolve a build/test command via config-get`);
|
||||
const offending = lines.filter((l) => !/--raw/.test(l));
|
||||
assert.deepStrictEqual(
|
||||
offending,
|
||||
[],
|
||||
`${label}: every build/test_command config-get must pass --raw so an unset key is empty, not the literal ""; offending: ${offending.join(' | ')}`,
|
||||
);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"add-todo.md": 10734,
|
||||
"ai-integration-phase.md": 14805,
|
||||
"analyze-dependencies.md": 3887,
|
||||
"audit-fix.md": 11717,
|
||||
"audit-fix.md": 11723,
|
||||
"audit-milestone.md": 18448,
|
||||
"audit-uat.md": 7469,
|
||||
"autonomous.md": 42474,
|
||||
@@ -88,6 +88,6 @@
|
||||
"undo.md": 10431,
|
||||
"update.md": 20914,
|
||||
"validate-phase.md": 10849,
|
||||
"verify-phase.md": 40923,
|
||||
"verify-phase.md": 40929,
|
||||
"verify-work.md": 40247
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user