fix(#2589): use --raw/--pick for config/model/verify lookups, drop jq dep (#2673)

* fix(#2589): use --raw/--pick for config/model/verify lookups, drop jq dep

The reviewer/workflow config lookups resolved scalars and object fields with a
`gsd_run query <cmd> … | jq … 2>/dev/null || <default>` shape. On any machine
without jq (the default on Windows/Git-Bash) the jq stage fails with exit 127,
the failure is swallowed by 2>/dev/null + the trailing || default, and the
variable comes back EMPTY — the configured per-lane model/host/budget is
silently dropped and the lane falls back to CLI defaults with no diagnostic.

gsd-tools ships native flags that do the same job with no external dep:
  config-get <key> --raw          (strips JSON quotes off a scalar)
  resolve-model <id> --pick model (descends an object)
  resolve-execution … --pick <f>  (same)
  verification.status … --pick status

Replaced every jq-piped config/model/verify lookup across review.md (×23),
plan-phase.md, ship.md, debug.md (incl. the redundant boolean coercion — --raw
returns true/false as bare tokens natively), autonomous.md (×2),
ai-integration-phase.md (×4), and eval-review.md. The legitimate structured-JSON
jq sites that parse HTTP curl responses (.choices[0], jq -rs, jq -n --rawfile)
are untouched — only the jq-replaceable lookups moved to the native flags.

Adds tests/fix-2589-config-get-no-jq.test.cjs: a source-invariant guard asserting
no audited workflow pipes config-get/resolve-model/resolve-execution/verification.status
to jq (fails-first on the pre-fix text, passes after).

* test(#2589): update autonomous-converge jq assertion to --pick; regen golden fixtures

Two test consequences of the workflow-doc edits in the prior commit:

1. tests/autonomous-converge.test.cjs pinned the OLD jq-dependent shape
   (`verification.status … | jq -r '.status//empty'`) as the canonical routing
   contract. The test's INTENT is correct (route human validation through
   canonical verification.status) but it over-specified the MECHANISM (the jq
   pipe). Updated the assertion to match the new native --pick status shape;
   the contract being guarded (canonical verification.status read before the
   human_needed branch) is unchanged.

2. The golden-install-parity fixtures (19 runtimes) record a content hash of
   every installed workflow .md; the 7 edited workflows changed those hashes.
   Regenerated via `npm run gen:golden` (the test's own failure message
   instructs this). Only the 7 edited workflow hashes changed in each fixture.

* fix(#2589): declare jq a prerequisite for the lanes that still need it; repair test file

Three defects in the first cut of the #2589 fix:

1. tests/autonomous-converge.test.cjs was a JavaScript syntax error. The regex
   literal /...2>\/dev/null .../ left the second slash unescaped, terminating the
   literal early and parsing `null` as regex flags:
     SyntaxError: Invalid regular expression flags
   The whole file failed to load, so every assertion in it — including the #1522
   and #1526 guards — silently stopped running. Replaced with the string-compare
   form already used at line 202 for the sibling shell-snippet assertion.

2. lint:ci failed. tests/fix-2589-config-get-no-jq.test.cjs buckets into the
   capped `config` production module via its `config-get-...` effective prefix,
   making it a novel offender against the 2-file cap. The test is about workflow
   documents, not the config module, so it is renamed to
   fix-2589-workflow-jq-dependency.test.cjs (free prefix) rather than growing the
   allowlist with a module that does not actually need a 5th test file.

3. The fix deleted the repo's only jq-prerequisite declaration. review.md:244
   ("install jq if missing") was the anchor plan-review-convergence.md cites by
   line number, and it went away with the jq pipes — while the ollama, lm_studio,
   llama_cpp, opencode, and agy lanes still hard-require jq to parse HTTP
   /v1/chat/completions responses, opencode's JSONL event stream, and agy's
   conversation cache. On a jq-less host those five lanes swallow exit 127 into
   empty output: the same silent-degradation class #2589 exists to close.

   detect_clis now probes jq alongside the other prerequisites and emits
   jq:available / jq:missing, and the five dependent lanes are treated as
   undetected when it is absent, with an install hint. The six lanes that do not
   need jq stay selectable. plan-review-convergence.md now cites the section by
   name instead of a line number that moves.

Regression guards added to the renamed test file: review.md must keep the jq
probe and must name all five dependent lanes, and no workflow may cite review.md
by line number. Workflow-size baseline and the 19 install-parity goldens
regenerated for the review.md / plan-review-convergence.md edits.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015TCwhbMuY37DzRMCfzTABJ

* fix(#2589): decide the ship verification gate on a single verification.status read

Isolated review finding (medium). Pre-fix, ship.md captured verification.status
ONCE into $VERIFICATION and picked status / next_action / next_command off that
cached JSON with three jq calls. --pick takes a single dot-path field, so the
mechanical conversion issued three separate queries up front: three node spawns
that each re-read the phase VERIFICATION.md and re-derive the commit-time vs
mtime staleness comparison, on every ship — including the common passing path
that never uses the two message fields. It also meant the gate's verdict and the
message shown to the user were derived from three reads with no guarantee they
observed the same state.

The gate now reads `status` once and decides. The two message-only fields are
read on the blocking path only, after PHASE_VERIFICATION_INCOMPLETE is already
determined — so the passing path costs one query instead of three, and a
concurrent write between reads can no longer make the gate and its message
disagree, because the block/allow decision no longer depends on them.

Adding a multi-field --pick to gsd-tools would have collapsed this to one query,
but that changes the flag's output contract and belongs in its own change.

Regression guard in tests/fix-2589-workflow-jq-dependency.test.cjs: ship.md must
read verification.status exactly three times total, the block decision must
follow the status read, and next_action / next_command must both appear after
the blocking prose so they cannot drift back onto the passing path.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015TCwhbMuY37DzRMCfzTABJ

* docs(#2589): document the jq prerequisite for the five reviewer lanes that need it

/gsd-review's ollama, lm_studio, llama_cpp, opencode, and agy lanes parse JSON
GSD does not produce (OpenAI-compatible /v1/chat/completions responses,
OpenCode's JSONL event stream, Antigravity's conversation cache), so they require
jq on PATH. Nothing in docs/ said so. Records which five lanes need it, which six
do not, that reading configured models/hosts/budgets no longer requires jq at
all, and what /gsd-review now does when jq is absent.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015TCwhbMuY37DzRMCfzTABJ

* chore(#2589): backfill changeset pr number (#2673)

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Tom Boucher
2026-07-26 16:17:02 -04:00
committed by GitHub
parent 89b673e40d
commit 920a5f3f06
32 changed files with 450 additions and 211 deletions

View File

@@ -0,0 +1,5 @@
---
type: Fixed
pr: 2673
---
**Reviewer/workflow config lookups no longer silently drop the configured value on machines without `jq`** — `review.md`, `plan-phase.md`, `ship.md`, `debug.md`, `autonomous.md`, `ai-integration-phase.md`, and `eval-review.md` now resolve `config-get` scalars with the native `--raw` flag and `resolve-model` / `resolve-execution` / `verification.status` object fields with `--pick`, instead of piping through `jq`. Previously, on a stock Windows/Git-Bash box with no `jq` on PATH, the `… | jq …` stage failed (exit 127), the failure was swallowed by `2>/dev/null || <default>`, and the configured per-lane model/host/budget came back empty — so the lane fell back to CLI defaults (e.g. `~/.codex/config.toml` instead of the configured `review.models.codex`) with no diagnostic, and the `autonomous.md` verify gate could misroute on an empty status. The legitimate structured-JSON `jq` sites that parse HTTP `curl` responses (`.choices[0]`, `jq -rs`, `jq -n --rawfile`) are untouched — only the jq-replaceable config/model/verify lookups moved to the native flags. Because those sites remain, `/gsd-review` now probes for `jq` up front and reports the `ollama`, `lm_studio`, `llama_cpp`, `opencode`, and `antigravity` lanes as unavailable with an install hint when it is missing, instead of running them into empty output; the `gemini`, `claude`, `codex`, `coderabbit`, `qwen`, and `cursor` lanes stay selectable with no `jq` installed. (#2589)

View File

@@ -1453,6 +1453,8 @@ Reviewers are prompted to verify the plan's claims against the actual repository
| `--llama-cpp` | Include llama.cpp server review |
| `--all` | Include all available reviewers (CLI + local model servers) |
**`jq` prerequisite (some lanes only):** `--ollama`, `--lm-studio`, `--llama-cpp`, `--opencode`, and `--agy` parse JSON that GSD does not produce itself — OpenAI-compatible `/v1/chat/completions` responses, OpenCode's JSONL event stream, and Antigravity's conversation cache — so they require [`jq`](https://jqlang.org/download/) on your `PATH`. If `jq` is missing, `/gsd-review` reports those five as unavailable and tells you to install it, rather than running them into an empty review. The other six lanes (`--gemini`, `--claude`, `--codex`, `--coderabbit`, `--qwen`, `--cursor`) need no `jq`. Reading your configured models, hosts, and token budgets never requires `jq`.
**Default reviewer behavior (no flags):**
- If `review.default_reviewers` is **unset**, `/gsd-review` runs all detected reviewers (current default behavior).
- If `review.default_reviewers` is **set**, `/gsd-review` runs only that subset (for example `["gemini","codex"]`).

View File

@@ -33,10 +33,10 @@ Parse JSON for: `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded
Resolve agent models:
```bash
SELECTOR_MODEL=$(gsd_run query resolve-model gsd-framework-selector 2>/dev/null | jq -r '.model' 2>/dev/null || true)
RESEARCHER_MODEL=$(gsd_run query resolve-model gsd-ai-researcher 2>/dev/null | jq -r '.model' 2>/dev/null || true)
DOMAIN_MODEL=$(gsd_run query resolve-model gsd-domain-researcher 2>/dev/null | jq -r '.model' 2>/dev/null || true)
PLANNER_MODEL=$(gsd_run query resolve-model gsd-eval-planner 2>/dev/null | jq -r '.model' 2>/dev/null || true)
SELECTOR_MODEL=$(gsd_run query resolve-model gsd-framework-selector --pick model 2>/dev/null || true)
RESEARCHER_MODEL=$(gsd_run query resolve-model gsd-ai-researcher --pick model 2>/dev/null || true)
DOMAIN_MODEL=$(gsd_run query resolve-model gsd-domain-researcher --pick model 2>/dev/null || true)
PLANNER_MODEL=$(gsd_run query resolve-model gsd-eval-planner --pick model 2>/dev/null || true)
```
Check config:

View File

@@ -490,7 +490,7 @@ Skill(skill="gsd-code-review", args="${PHASE_NUM} --fix --auto")
After execute, read canonical verification:
```bash
VERIFY_STATUS=$(gsd_run query verification.status "${PHASE_DIR}" 2>/dev/null | jq -r '.status//empty')
VERIFY_STATUS=$(gsd_run query verification.status "${PHASE_DIR}" --pick status 2>/dev/null || true)
```
If `PHASE_DIR` is absent, re-fetch `init.phase-op ${PHASE_NUM}` and parse `phase_dir`.
@@ -548,7 +548,7 @@ Skill(skill="gsd-execute-phase", args="${PHASE_NUM} --no-transition")
Re-read verification status:
```bash
VERIFY_STATUS=$(gsd_run query verification.status "${PHASE_DIR}" 2>/dev/null | jq -r '.status//empty')
VERIFY_STATUS=$(gsd_run query verification.status "${PHASE_DIR}" --pick status 2>/dev/null || true)
```
If `passed` or `human_needed`: route normally.

View File

@@ -27,12 +27,12 @@ Extract `commit_docs` and `config.response_language` from init JSON. Extract `de
Resolve debugger model:
```bash
debugger_model=$(gsd_run query resolve-model gsd-debugger 2>/dev/null | jq -r '.model' 2>/dev/null || true)
debugger_model=$(gsd_run query resolve-model gsd-debugger --pick model 2>/dev/null || true)
```
Read TDD mode from config:
```bash
TDD_MODE=$(gsd_run query config-get workflow.tdd_mode 2>/dev/null | jq -r 'if type == "boolean" then tostring else . end' 2>/dev/null || echo "false")
TDD_MODE=$(gsd_run query config-get workflow.tdd_mode --raw 2>/dev/null || echo "false")
```
## 1a. LIST subcommand

View File

@@ -24,7 +24,7 @@ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
Parse: `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `commit_docs`.
```bash
AUDITOR_MODEL=$(gsd_run query resolve-model gsd-eval-auditor 2>/dev/null | jq -r '.model' 2>/dev/null || true)
AUDITOR_MODEL=$(gsd_run query resolve-model gsd-eval-auditor --pick model 2>/dev/null || true)
AGENT_SKILLS_AUDITOR=$(gsd_run query agent-skills gsd-eval-auditor)
```

View File

@@ -1292,7 +1292,7 @@ Skipping bounce step.
**Read pass count:**
```bash
BOUNCE_PASSES=$(gsd_run query config-get workflow.plan_bounce_passes 2>/dev/null || echo "2")
BOUNCE_SCRIPT=$(gsd_run query config-get workflow.plan_bounce_script 2>/dev/null | jq -r '.' 2>/dev/null || true)
BOUNCE_SCRIPT=$(gsd_run query config-get workflow.plan_bounce_script --raw 2>/dev/null || true)
```
Display banner:

View File

@@ -82,8 +82,9 @@ Then re-run: /gsd:plan-review-convergence {PHASE}
if [ -z "$REVIEWER_FLAGS" ]; then
DEFAULT_REVIEWERS_JSON=$(gsd_run query config-get review.default_reviewers 2>/dev/null || echo "")
if ! command -v jq >/dev/null 2>&1; then
# jq is a documented production dependency (review.md:244 — "install jq if
# missing"). If it is absent we cannot inspect the configured default, so
# jq is a documented production dependency (review.md, detect_clis — the
# "jq-dependent reviewer lanes" note). If it is absent we cannot inspect
# the configured default (it is a JSON array, not a --raw/--pick scalar), so
# fail safe with --codex and surface the reason rather than silently
# reproducing the #2315 override under degraded conditions.
echo "WARNING: jq not on PATH — cannot read review.default_reviewers; falling back to --codex (#2315)" >&2

View File

@@ -26,19 +26,44 @@ command -v cursor-agent >/dev/null 2>&1 && echo "cursor:available" || echo "curs
command -v agy >/dev/null 2>&1 && echo "antigravity:available" || echo "antigravity:missing"
# Check local model servers (OpenAI-compatible HTTP API — no CLI binary required)
OLLAMA_HOST=$(gsd_run query config-get review.ollama_host 2>/dev/null | jq -r '.' 2>/dev/null || echo "")
OLLAMA_HOST=$(gsd_run query config-get review.ollama_host --raw 2>/dev/null || echo "")
if [ -z "$OLLAMA_HOST" ] || [ "$OLLAMA_HOST" = "null" ]; then OLLAMA_HOST="http://localhost:11434"; fi
curl -s --max-time 2 "${OLLAMA_HOST}/v1/models" >/dev/null 2>&1 && echo "ollama:available" || echo "ollama:missing"
LM_STUDIO_HOST=$(gsd_run query config-get review.lm_studio_host 2>/dev/null | jq -r '.' 2>/dev/null || echo "")
LM_STUDIO_HOST=$(gsd_run query config-get review.lm_studio_host --raw 2>/dev/null || echo "")
if [ -z "$LM_STUDIO_HOST" ] || [ "$LM_STUDIO_HOST" = "null" ]; then LM_STUDIO_HOST="http://localhost:1234"; fi
curl -s --max-time 2 "${LM_STUDIO_HOST}/v1/models" >/dev/null 2>&1 && echo "lm_studio:available" || echo "lm_studio:missing"
LLAMA_CPP_HOST=$(gsd_run query config-get review.llama_cpp_host 2>/dev/null | jq -r '.' 2>/dev/null || echo "")
LLAMA_CPP_HOST=$(gsd_run query config-get review.llama_cpp_host --raw 2>/dev/null || echo "")
if [ -z "$LLAMA_CPP_HOST" ] || [ "$LLAMA_CPP_HOST" = "null" ]; then LLAMA_CPP_HOST="http://localhost:8080"; fi
curl -s --max-time 2 "${LLAMA_CPP_HOST}/v1/models" >/dev/null 2>&1 && echo "llama_cpp:available" || echo "llama_cpp:missing"
# jq prerequisite (#2589). The config/model/budget lookups in this workflow no
# longer need jq — they use the native --raw/--pick flags. But the lanes listed
# under "jq-dependent reviewer lanes" below parse structured JSON that gsd-tools
# does not emit (OpenAI-compatible /v1/chat/completions responses, opencode's
# JSONL event stream, agy's conversation cache), so they cannot run without jq.
# Probe it here rather than letting each lane swallow exit 127 into empty output.
command -v jq >/dev/null 2>&1 && echo "jq:available" || echo "jq:missing"
```
**jq-dependent reviewer lanes.** `jq` is a production prerequisite for the
`ollama`, `lm_studio`, `llama_cpp`, `opencode`, and `antigravity` lanes only. If
`detect_clis` reports `jq:missing`, treat those five as **undetected** — they
follow the same "known-but-undetected" path as a missing CLI (info note, ignored;
and if they were the only selected reviewers, fail with the actionable message
below rather than producing an empty review). Tell the user to install jq:
```
NOTE: jq is not on PATH — the ollama, lm_studio, llama_cpp, opencode, and
antigravity reviewer lanes are unavailable. Install jq (https://jqlang.org/download/)
or select a lane that does not require it (--gemini, --claude, --codex,
--coderabbit, --qwen, --cursor).
```
The remaining lanes (`gemini`, `claude`, `codex`, `coderabbit`, `qwen`, `cursor`)
do not require jq and must stay selectable on a jq-less host.
Parse flags from `$ARGUMENTS`:
- `--gemini` → include Gemini
- `--claude` → include Claude
@@ -241,20 +266,21 @@ Note: `INSTRUCTIONS_BLOCK_FILE`, `ROADMAP_SECTION_FILE`, and `PHASE_DIR` come fr
Read model preferences from planning config. Null/missing values fall back to CLI defaults.
```bash
# JSON scalars from gsd-tools.cjs query; use jq -r to strip JSON string quotes (install jq if missing)
GEMINI_MODEL=$(gsd_run query config-get review.models.gemini 2>/dev/null | jq -r '.' 2>/dev/null || true)
CLAUDE_MODEL=$(gsd_run query config-get review.models.claude 2>/dev/null | jq -r '.' 2>/dev/null || true)
CODEX_MODEL=$(gsd_run query config-get review.models.codex 2>/dev/null | jq -r '.' 2>/dev/null || true)
OPENCODE_MODEL=$(gsd_run query config-get review.models.opencode 2>/dev/null | jq -r '.' 2>/dev/null || true)
# JSON scalars from gsd-tools.cjs query; --raw strips the JSON quotes natively
# (no jq dependency — jq is absent on stock Windows/Git-Bash, #2589)
GEMINI_MODEL=$(gsd_run query config-get review.models.gemini --raw 2>/dev/null || true)
CLAUDE_MODEL=$(gsd_run query config-get review.models.claude --raw 2>/dev/null || true)
CODEX_MODEL=$(gsd_run query config-get review.models.codex --raw 2>/dev/null || true)
OPENCODE_MODEL=$(gsd_run query config-get review.models.opencode --raw 2>/dev/null || true)
# review.models.agy, when set, is passed to agy as --model (escape hatch for a
# pinned model that 404s server-side); otherwise agy uses its persisted default.
AGY_MODEL=$(gsd_run query config-get review.models.agy 2>/dev/null | jq -r '.' 2>/dev/null || true)
AGY_MODEL=$(gsd_run query config-get review.models.agy --raw 2>/dev/null || true)
# Reasoning effort per reviewer (#2481). Empty unless the host's effortSurface
# axis is `argv`. Pass --attempt N to walk ADR-443's escalation ladder.
CLAUDE_EFFORT_ARGS=$(gsd_run query resolve-execution gsd-plan-checker --host claude 2>/dev/null | jq -r '.effort_argv_string // ""' 2>/dev/null || true)
CODEX_EFFORT_ARGS=$(gsd_run query resolve-execution gsd-plan-checker --host codex 2>/dev/null | jq -r '.effort_argv_string // ""' 2>/dev/null || true)
OPENCODE_EFFORT_ARGS=$(gsd_run query resolve-execution gsd-plan-checker --host opencode 2>/dev/null | jq -r '.effort_argv_string // ""' 2>/dev/null || true)
CLAUDE_EFFORT_ARGS=$(gsd_run query resolve-execution gsd-plan-checker --host claude --pick effort_argv_string 2>/dev/null || true)
CODEX_EFFORT_ARGS=$(gsd_run query resolve-execution gsd-plan-checker --host codex --pick effort_argv_string 2>/dev/null || true)
OPENCODE_EFFORT_ARGS=$(gsd_run query resolve-execution gsd-plan-checker --host opencode --pick effort_argv_string 2>/dev/null || true)
```
**No hook-trust bypass (#2479):** the codex invocations below deliberately pass no
@@ -644,9 +670,9 @@ prepare_trimmed_prompt_for_reviewer() {
}
# Resolve prompt budget for Ollama: per-reviewer override > global default > null
OLLAMA_REVIEWER_BUDGET=$(gsd_run query config-get review.max_prompt_tokens_per_reviewer.ollama 2>/dev/null | jq -r '.' 2>/dev/null || echo "null")
OLLAMA_REVIEWER_BUDGET=$(gsd_run query config-get review.max_prompt_tokens_per_reviewer.ollama --raw 2>/dev/null || echo "null")
if [ -z "$OLLAMA_REVIEWER_BUDGET" ] || [ "$OLLAMA_REVIEWER_BUDGET" = "null" ]; then
OLLAMA_REVIEWER_BUDGET=$(gsd_run query config-get review.max_prompt_tokens 2>/dev/null | jq -r '.' 2>/dev/null || echo "null")
OLLAMA_REVIEWER_BUDGET=$(gsd_run query config-get review.max_prompt_tokens --raw 2>/dev/null || echo "null")
fi
# Apply budget trim for Ollama if a budget is configured
@@ -670,9 +696,9 @@ if [ -n "$OLLAMA_REVIEWER_BUDGET" ] && [ "$OLLAMA_REVIEWER_BUDGET" != "null" ] &
fi
if [ "$OLLAMA_SKIP" != "1" ]; then
OLLAMA_HOST=$(gsd_run query config-get review.ollama_host 2>/dev/null | jq -r '.' 2>/dev/null || echo "")
OLLAMA_HOST=$(gsd_run query config-get review.ollama_host --raw 2>/dev/null || echo "")
if [ -z "$OLLAMA_HOST" ] || [ "$OLLAMA_HOST" = "null" ]; then OLLAMA_HOST="http://localhost:11434"; fi
OLLAMA_MODEL=$(gsd_run query config-get review.models.ollama 2>/dev/null | jq -r '.' 2>/dev/null || echo "")
OLLAMA_MODEL=$(gsd_run query config-get review.models.ollama --raw 2>/dev/null || echo "")
if [ -z "$OLLAMA_MODEL" ] || [ "$OLLAMA_MODEL" = "null" ]; then
OLLAMA_MODEL=$(curl -s --max-time 2 "${OLLAMA_HOST}/v1/models" 2>/dev/null | jq -r '.data[0].id // "llama3"' 2>/dev/null || echo "llama3")
fi
@@ -692,9 +718,9 @@ fi
**LM Studio (local, OpenAI-compatible):**
```bash
# Resolve prompt budget for LM Studio: per-reviewer override > global default > null
LM_STUDIO_REVIEWER_BUDGET=$(gsd_run query config-get review.max_prompt_tokens_per_reviewer.lm_studio 2>/dev/null | jq -r '.' 2>/dev/null || echo "null")
LM_STUDIO_REVIEWER_BUDGET=$(gsd_run query config-get review.max_prompt_tokens_per_reviewer.lm_studio --raw 2>/dev/null || echo "null")
if [ -z "$LM_STUDIO_REVIEWER_BUDGET" ] || [ "$LM_STUDIO_REVIEWER_BUDGET" = "null" ]; then
LM_STUDIO_REVIEWER_BUDGET=$(gsd_run query config-get review.max_prompt_tokens 2>/dev/null | jq -r '.' 2>/dev/null || echo "null")
LM_STUDIO_REVIEWER_BUDGET=$(gsd_run query config-get review.max_prompt_tokens --raw 2>/dev/null || echo "null")
fi
# Apply budget trim for LM Studio if a budget is configured
@@ -718,9 +744,9 @@ if [ -n "$LM_STUDIO_REVIEWER_BUDGET" ] && [ "$LM_STUDIO_REVIEWER_BUDGET" != "nul
fi
if [ "$LM_STUDIO_SKIP" != "1" ]; then
LM_STUDIO_HOST=$(gsd_run query config-get review.lm_studio_host 2>/dev/null | jq -r '.' 2>/dev/null || echo "")
LM_STUDIO_HOST=$(gsd_run query config-get review.lm_studio_host --raw 2>/dev/null || echo "")
if [ -z "$LM_STUDIO_HOST" ] || [ "$LM_STUDIO_HOST" = "null" ]; then LM_STUDIO_HOST="http://localhost:1234"; fi
LM_STUDIO_MODEL=$(gsd_run query config-get review.models.lm_studio 2>/dev/null | jq -r '.' 2>/dev/null || echo "")
LM_STUDIO_MODEL=$(gsd_run query config-get review.models.lm_studio --raw 2>/dev/null || echo "")
if [ -z "$LM_STUDIO_MODEL" ] || [ "$LM_STUDIO_MODEL" = "null" ]; then
LM_STUDIO_MODEL=$(curl -s --max-time 2 "${LM_STUDIO_HOST}/v1/models" 2>/dev/null | jq -r '.data[0].id // "local-model"' 2>/dev/null || echo "local-model")
fi
@@ -745,9 +771,9 @@ fi
**llama.cpp (local, OpenAI-compatible):**
```bash
# Resolve prompt budget for llama.cpp: per-reviewer override > global default > null
LLAMA_CPP_REVIEWER_BUDGET=$(gsd_run query config-get review.max_prompt_tokens_per_reviewer.llama_cpp 2>/dev/null | jq -r '.' 2>/dev/null || echo "null")
LLAMA_CPP_REVIEWER_BUDGET=$(gsd_run query config-get review.max_prompt_tokens_per_reviewer.llama_cpp --raw 2>/dev/null || echo "null")
if [ -z "$LLAMA_CPP_REVIEWER_BUDGET" ] || [ "$LLAMA_CPP_REVIEWER_BUDGET" = "null" ]; then
LLAMA_CPP_REVIEWER_BUDGET=$(gsd_run query config-get review.max_prompt_tokens 2>/dev/null | jq -r '.' 2>/dev/null || echo "null")
LLAMA_CPP_REVIEWER_BUDGET=$(gsd_run query config-get review.max_prompt_tokens --raw 2>/dev/null || echo "null")
fi
# Apply budget trim for llama.cpp if a budget is configured
@@ -771,9 +797,9 @@ if [ -n "$LLAMA_CPP_REVIEWER_BUDGET" ] && [ "$LLAMA_CPP_REVIEWER_BUDGET" != "nul
fi
if [ "$LLAMA_CPP_SKIP" != "1" ]; then
LLAMA_CPP_HOST=$(gsd_run query config-get review.llama_cpp_host 2>/dev/null | jq -r '.' 2>/dev/null || echo "")
LLAMA_CPP_HOST=$(gsd_run query config-get review.llama_cpp_host --raw 2>/dev/null || echo "")
if [ -z "$LLAMA_CPP_HOST" ] || [ "$LLAMA_CPP_HOST" = "null" ]; then LLAMA_CPP_HOST="http://localhost:8080"; fi
LLAMA_CPP_MODEL=$(gsd_run query config-get review.models.llama_cpp 2>/dev/null | jq -r '.' 2>/dev/null || echo "")
LLAMA_CPP_MODEL=$(gsd_run query config-get review.models.llama_cpp --raw 2>/dev/null || echo "")
if [ -z "$LLAMA_CPP_MODEL" ] || [ "$LLAMA_CPP_MODEL" = "null" ]; then
LLAMA_CPP_MODEL=$(curl -s --max-time 2 "${LLAMA_CPP_HOST}/v1/models" 2>/dev/null | jq -r '.data[0].id // "local-model"' 2>/dev/null || echo "local-model")
fi

View File

@@ -52,12 +52,19 @@ Verify the work is ready to ship:
1. **Verification passed?**
```bash
VERIFICATION=$(gsd_run query verification.status "${PHASE_DIR}" 2>/dev/null)
STATUS=$(printf '%s' "$VERIFICATION" | jq -r '.status' 2>/dev/null || echo "")
NEXT_ACTION=$(printf '%s' "$VERIFICATION" | jq -r '.next_action' 2>/dev/null || echo "")
NEXT_COMMAND=$(printf '%s' "$VERIFICATION" | jq -r '.next_command' 2>/dev/null || echo "")
# The gate decides on ONE read. --pick takes a single field, so the two
# human-facing fields are read only on the blocking path below — never on the
# passing path — rather than issuing three queries up front (#2589).
STATUS=$(gsd_run query verification.status "${PHASE_DIR}" --pick status 2>/dev/null || echo "")
```
Only `passed` may ship. If `$STATUS` is `passed`, verification is complete — continue to the next preflight check. Any other value (including `gaps_found`, `human_needed`, `missing`, and `unknown`) blocks with `PHASE_VERIFICATION_INCOMPLETE`: present `$NEXT_ACTION` to the user and, when `$NEXT_COMMAND` is non-empty, show it as the command to run next. The query already handles missing files and unexpected values, so no per-status arm is needed.
Only `passed` may ship. If `$STATUS` is `passed`, verification is complete — continue to the next preflight check; do not read any further verification field.
Any other value (including `gaps_found`, `human_needed`, `missing`, and `unknown`) blocks with `PHASE_VERIFICATION_INCOMPLETE`. Only then, read the two message fields:
```bash
NEXT_ACTION=$(gsd_run query verification.status "${PHASE_DIR}" --pick next_action 2>/dev/null || echo "")
NEXT_COMMAND=$(gsd_run query verification.status "${PHASE_DIR}" --pick next_command 2>/dev/null || echo "")
```
Present `$NEXT_ACTION` to the user and, when `$NEXT_COMMAND` is non-empty, show it as the command to run next. These two are message text only — the block/allow decision has already been made from `$STATUS`, so a concurrent write between the reads cannot change the gate's verdict. The query already handles missing files and unexpected values, so no per-status arm is needed.
2. **Clean working tree?**
```bash
@@ -346,7 +353,7 @@ Report: "PR #{number} created: {url}"
Before prompting the user, check if an external review command is configured:
```bash
REVIEW_CMD=$(gsd_run query config-get workflow.code_review_command 2>/dev/null | jq -r '.' 2>/dev/null || echo "")
REVIEW_CMD=$(gsd_run query config-get workflow.code_review_command --raw 2>/dev/null || echo "")
```
If `REVIEW_CMD` is non-empty and not `"null"`, run the external review:

View File

@@ -174,15 +174,12 @@ describe('autonomous verification deferral contract', () => {
assert.ok(waitIdx !== -1, 'workflow must document the post-execution verification read');
assert.ok(humanNeededIdx > waitIdx, 'human_needed branch must follow verification status read');
assert.ok(promoteIdx > humanNeededIdx, 'human_needed branch must contain the promotion action');
assert.match(
section,
/VERIFY_STATUS=\$\(gsd_run query verification\.status "\$\{PHASE_DIR\}" 2>\/dev\/null \| jq -r '\.status\/\/empty'\)/,
'autonomous must route human validation through canonical verification.status',
);
assert.match(
section,
/jq -r '\.status\/\/empty'/,
'autonomous must parse the projected canonical status value',
// #2589: the verification read uses the native --pick flag (no jq dependency).
// String-based check (not a regex literal) so the assertion stays robust to
// shell metacharacters in the snippet and parses cleanly under espree.
assert.ok(
section.includes('VERIFY_STATUS=$(gsd_run query verification.status "${PHASE_DIR}" --pick status 2>/dev/null || true)'),
'autonomous must route human validation through canonical verification.status via the native --pick flag',
);
assert.doesNotMatch(
section,

View File

@@ -0,0 +1,201 @@
'use strict';
/**
* #2589 — config-get / resolve-model / verification.status lookups must not
* depend on jq.
*
* The workflows resolved configured scalars / model ids / verify status with a
* `gsd_run query <cmd> … | jq … 2>/dev/null || <default>` shape. On any machine
* without jq (the default on Windows / Git-Bash) the jq stage fails with exit
* 127, that failure is swallowed by `2>/dev/null` and the trailing `|| default`,
* so the variable comes back EMPTY — the configured value is silently dropped
* and the lane falls back to CLI defaults with no diagnostic.
*
* gsd-tools ships native flags that do the same job with no external dep:
* config-get <key> --raw (strips JSON quotes off a scalar)
* resolve-model <id> --pick model (descends an object)
* verification.status <dir> --pick status
*
* This is a SOURCE-INVARIANT test over the shipped workflow documents: the bug
* lives in the workflow text, so the regression guard asserts the jq-dependent
* shapes never return. Workflow .md files are runtime-loaded config documents,
* so reading them with readFileSync + regex is the sanctioned seam here (the
* no-source-grep lint targets src/ + bin/lib/, not config/state docs).
*/
const { describe, test } = require('node:test');
const assert = require('node:assert/strict');
const fs = require('node:fs');
const path = require('node:path');
const ROOT = path.join(__dirname, '..');
const WF = path.join(ROOT, 'gsd-core', 'workflows');
// The workflows that #2589 audited. Scoped explicitly so a new workflow
// introducing the same smell is caught by the general guard below, while these
// known-fixed files are checked for the exact offending shapes.
const AUDITED = [
'review.md',
'plan-phase.md',
'ship.md',
'debug.md',
'autonomous.md',
'ai-integration-phase.md',
'eval-review.md',
];
function readWorkflow(name) {
const p = path.join(WF, name);
return fs.existsSync(p) ? fs.readFileSync(p, 'utf-8') : null;
}
describe('#2589: config/model/verify lookups do not depend on jq', () => {
test('config-get lookups use --raw, not a jq pipe', () => {
// Matches: config-get <key> ... | jq (any key, any jq program).
// The native --raw flag strips JSON quotes off a scalar with no jq.
const re = /config-get\b[^|\n]*\|\s*jq\b/;
for (const name of AUDITED) {
const content = readWorkflow(name);
if (content == null) continue;
const matches = content.match(new RegExp(re.source, 'g'));
assert.deepEqual(
matches || [],
[],
`${name}: config-get lookups must use --raw, not a jq pipe (found ${JSON.stringify(matches)})`,
);
}
});
test('resolve-model lookups use --pick, not a jq pipe', () => {
// resolve-model returns an object; the native --pick <field> descends it.
const re = /resolve-model\b[^|\n]*\|\s*jq\b/;
for (const name of AUDITED) {
const content = readWorkflow(name);
if (content == null) continue;
const matches = content.match(new RegExp(re.source, 'g'));
assert.deepEqual(
matches || [],
[],
`${name}: resolve-model lookups must use --pick, not a jq pipe (found ${JSON.stringify(matches)})`,
);
}
});
test('verification.status lookups use --pick, not a jq pipe', () => {
const re = /verification\.status\b[^|\n]*\|\s*jq\b/;
for (const name of AUDITED) {
const content = readWorkflow(name);
if (content == null) continue;
const matches = content.match(new RegExp(re.source, 'g'));
assert.deepEqual(
matches || [],
[],
`${name}: verification.status lookups must use --pick, not a jq pipe (found ${JSON.stringify(matches)})`,
);
}
});
test('general guard: no audited workflow pipes any gsd_run query to jq', () => {
// Belt-and-suspenders: the jq-replaceable query command families. This
// catches a future regression on any of them (or a sibling like
// resolve-execution, which also supports --pick) without enumerating keys.
const re = /gsd_run\s+query\s+(config-get|resolve-model|resolve-execution|verification\.status\b)[^|\n]*\|\s*jq\b/;
for (const name of AUDITED) {
const content = readWorkflow(name);
if (content == null) continue;
const matches = content.match(new RegExp(re.source, 'g'));
assert.deepEqual(
matches || [],
[],
`${name}: no gsd_run query (config-get|resolve-model|resolve-execution|verification.status) may pipe to jq (found ${JSON.stringify(matches)})`,
);
}
});
test('ship.md decides the verification gate on a single verification.status read', () => {
// Pre-fix, ship.md captured verification.status ONCE and picked three fields
// off the cached JSON with jq. --pick takes a single field, so a naive
// conversion issues three queries up front — 3x the spawn cost on the common
// passing path, and three reads that are not guaranteed to observe the same
// state. The gate must read `status` once and decide; the two message-only
// fields belong on the blocking path.
const content = readWorkflow('ship.md');
assert.ok(content, 'ship.md must exist');
const statusIdx = content.indexOf('STATUS=$(gsd_run query verification.status');
assert.notEqual(statusIdx, -1, 'ship.md must read verification.status --pick status');
const picks = content.match(/gsd_run query verification\.status "\$\{PHASE_DIR\}" --pick (\w+)/g) || [];
assert.deepEqual(
picks.length,
3,
`ship.md should read status once plus the two message fields, found ${picks.length}`,
);
// The gate's own read must come first, and the message-only reads must both
// sit after the blocking prose — i.e. they are not on the passing path.
const blockIdx = content.indexOf('PHASE_VERIFICATION_INCOMPLETE');
assert.ok(blockIdx > statusIdx, 'the block decision must follow the status read');
for (const field of ['next_action', 'next_command']) {
const idx = content.indexOf(`--pick ${field}`);
assert.notEqual(idx, -1, `ship.md must still surface ${field}`);
assert.ok(
idx > blockIdx,
`${field} must be read only on the blocking path, not before the gate decides`,
);
}
});
test('review.md still declares jq a prerequisite for the lanes that genuinely need it', () => {
// Dropping the jq pipes from the CONFIG lookups must not drop the project's
// jq-prerequisite declaration: the ollama / lm_studio / llama_cpp / opencode
// / agy lanes parse HTTP + CLI JSON that gsd-tools does not emit, so they
// still hard-require jq. Removing the declaration (as the first cut of this
// fix did) leaves those lanes silently degrading on a jq-less host — the
// exact defect class #2589 exists to close.
const content = readWorkflow('review.md');
assert.ok(content, 'review.md must exist');
assert.match(
content,
/command -v jq >\/dev\/null 2>&1 && echo "jq:available" \|\| echo "jq:missing"/,
'review.md detect_clis must probe jq alongside the other reviewer prerequisites',
);
for (const lane of ['ollama', 'lm_studio', 'llama_cpp', 'opencode', 'antigravity']) {
assert.ok(
new RegExp(`jq-dependent reviewer lanes[\\s\\S]*\\b${lane}\\b`).test(content),
`review.md must name ${lane} as a jq-dependent lane`,
);
}
});
test('no workflow cites the jq prerequisite by a stale review.md line number', () => {
// plan-review-convergence.md used to cite "review.md:244". That anchor moved
// when the jq pipes were replaced, so cross-references must be by name.
for (const name of fs.readdirSync(WF).filter((f) => f.endsWith('.md'))) {
const content = readWorkflow(name);
if (content == null) continue;
const stale = content.match(/review\.md:\d+/g);
assert.deepEqual(
stale || [],
[],
`${name}: cite review.md by section name, not a line number (found ${JSON.stringify(stale)})`,
);
}
});
test('resolve-execution lookups use --pick, not a jq pipe (sibling of resolve-model)', () => {
// resolve-execution returns an object (model/profile/effort/effort_argv_string);
// the native --pick <field> descends it — same defect class as resolve-model.
const re = /resolve-execution\b[^|\n]*\|\s*jq\b/;
for (const name of AUDITED) {
const content = readWorkflow(name);
if (content == null) continue;
const matches = content.match(new RegExp(re.source, 'g'));
assert.deepEqual(
matches || [],
[],
`${name}: resolve-execution lookups must use --pick, not a jq pipe (found ${JSON.stringify(matches)})`,
);
}
});
});

View File

@@ -215,18 +215,18 @@
"gsd-core/workflows/add-phase.md": "820572da6367308c",
"gsd-core/workflows/add-tests.md": "6eb1897c448bbd21",
"gsd-core/workflows/add-todo.md": "69af1e11021d6765",
"gsd-core/workflows/ai-integration-phase.md": "fe881bd1429758df",
"gsd-core/workflows/ai-integration-phase.md": "95585dbc4065f09c",
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
"gsd-core/workflows/audit-fix.md": "fa1c3b3cb96b9031",
"gsd-core/workflows/audit-milestone.md": "15f452aa6848dcce",
"gsd-core/workflows/audit-uat.md": "ea8ddd910ed16ba4",
"gsd-core/workflows/autonomous.md": "603ce2019835f00e",
"gsd-core/workflows/autonomous.md": "4c772d7c708706d1",
"gsd-core/workflows/check-todos.md": "d0c7e3e4df580256",
"gsd-core/workflows/cleanup.md": "260c5e46afc1c174",
"gsd-core/workflows/code-review-fix.md": "6898f3a043ad67f6",
"gsd-core/workflows/code-review.md": "df18d974eb510930",
"gsd-core/workflows/complete-milestone.md": "f54214679be6a98a",
"gsd-core/workflows/debug.md": "d573ab06cf0fb93c",
"gsd-core/workflows/debug.md": "ac800460012dc18a",
"gsd-core/workflows/diagnose-issues.md": "1a70a1bcd3b98511",
"gsd-core/workflows/discovery-phase.md": "222887a5b2094a50",
"gsd-core/workflows/discuss-phase-assumptions.md": "51e0f07b1676fc70",
@@ -247,7 +247,7 @@
"gsd-core/workflows/do.md": "6be997df35e9e82b",
"gsd-core/workflows/docs-update.md": "0b3023a3caa2123f",
"gsd-core/workflows/edit-phase.md": "fc932e82ba1f585a",
"gsd-core/workflows/eval-review.md": "9e8b169c05098b57",
"gsd-core/workflows/eval-review.md": "610775f4968f7807",
"gsd-core/workflows/execute-phase.md": "8c0521b091bbc1b5",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "1832b97d0923fa67",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "0404bcd32f47715e",
@@ -287,11 +287,11 @@
"gsd-core/workflows/onboard.md": "af12b0573b14ce7f",
"gsd-core/workflows/pause-work.md": "564de32981a24337",
"gsd-core/workflows/plan-milestone-gaps.md": "dd6a4b3a8b05ab6e",
"gsd-core/workflows/plan-phase.md": "7c75d6eaccd0d393",
"gsd-core/workflows/plan-phase.md": "165e3fcee7184009",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "ab0b22244c3389aa",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "e9de7a96bbfff261",
"gsd-core/workflows/plan-review-convergence.md": "b06546c4bf47e521",
"gsd-core/workflows/plan-review-convergence.md": "bd6f71b3c63a2411",
"gsd-core/workflows/plant-seed.md": "1dddbafe892d8cf3",
"gsd-core/workflows/pr-branch.md": "dc5598ae8accdecd",
"gsd-core/workflows/profile-user.md": "3a3f8e417de0074c",
@@ -301,14 +301,14 @@
"gsd-core/workflows/remove-phase.md": "23b9eb0858a2535e",
"gsd-core/workflows/remove-workspace.md": "1058d1d3160eb120",
"gsd-core/workflows/resume-project.md": "98e2cf8908e73a52",
"gsd-core/workflows/review.md": "b6a91a893a94b56b",
"gsd-core/workflows/review.md": "8ca65b75fb2aa8e2",
"gsd-core/workflows/scan.md": "46c5a73f6f682023",
"gsd-core/workflows/secure-phase.md": "9564c529052d1d36",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "6d25100a9de15b31",
"gsd-core/workflows/settings-integrations.md": "e1fda52e8c9afa5f",
"gsd-core/workflows/settings.md": "9b7e0a34f4f41a80",
"gsd-core/workflows/ship.md": "86a7a14b72ed27c4",
"gsd-core/workflows/ship.md": "165bed31823086e0",
"gsd-core/workflows/sketch-wrap-up.md": "0f842a609851a401",
"gsd-core/workflows/sketch.md": "c42d993c1e9a6240",
"gsd-core/workflows/smart-entry.md": "6d887ca5d9df9185",

View File

@@ -286,18 +286,18 @@
"gsd-core/workflows/add-phase.md": "ac43883e2d8e34d8",
"gsd-core/workflows/add-tests.md": "7e7268602f9e1b2a",
"gsd-core/workflows/add-todo.md": "5dc04cfaa0b6b072",
"gsd-core/workflows/ai-integration-phase.md": "0d6d7183ae189fbe",
"gsd-core/workflows/ai-integration-phase.md": "308378c9044a52e1",
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
"gsd-core/workflows/audit-fix.md": "7650bcb334e622a6",
"gsd-core/workflows/audit-milestone.md": "2beceadd10d8d9b1",
"gsd-core/workflows/audit-uat.md": "fcfbec501620b564",
"gsd-core/workflows/autonomous.md": "7e5683728ef33707",
"gsd-core/workflows/autonomous.md": "aed5e67104346cc2",
"gsd-core/workflows/check-todos.md": "c484e472cff0e4e3",
"gsd-core/workflows/cleanup.md": "df79d1dc7b84d736",
"gsd-core/workflows/code-review-fix.md": "5c4fe9921dcd9939",
"gsd-core/workflows/code-review.md": "926565c83e9b9f67",
"gsd-core/workflows/complete-milestone.md": "8f98d7b05793cf4a",
"gsd-core/workflows/debug.md": "35b63fca942d3e7d",
"gsd-core/workflows/debug.md": "b2232823c619cc63",
"gsd-core/workflows/diagnose-issues.md": "7ec385c89a3672d4",
"gsd-core/workflows/discovery-phase.md": "0aa8d8d872b53858",
"gsd-core/workflows/discuss-phase-assumptions.md": "cbc8ea4ddc4553fb",
@@ -318,7 +318,7 @@
"gsd-core/workflows/do.md": "90df4f1fe248cdf3",
"gsd-core/workflows/docs-update.md": "a320371be70f43d8",
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
"gsd-core/workflows/eval-review.md": "32d3d7e80ab2bfc7",
"gsd-core/workflows/eval-review.md": "c2933259ff7fb6ac",
"gsd-core/workflows/execute-phase.md": "fcc3181bc5593f8f",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "f7782680c2b8ad6b",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "ab70374e44eb85cd",
@@ -358,11 +358,11 @@
"gsd-core/workflows/onboard.md": "f29c4fbef3b473fd",
"gsd-core/workflows/pause-work.md": "f2b33bba5593d422",
"gsd-core/workflows/plan-milestone-gaps.md": "852f6d7c0c4299dc",
"gsd-core/workflows/plan-phase.md": "7487bfc69d75cdfa",
"gsd-core/workflows/plan-phase.md": "4dfd63c95b80741a",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "49f58c3f75be3eb5",
"gsd-core/workflows/plan-review-convergence.md": "1c31d4905c1556c8",
"gsd-core/workflows/plan-review-convergence.md": "db69460dd4df0d29",
"gsd-core/workflows/plant-seed.md": "9596db80ab282c6f",
"gsd-core/workflows/pr-branch.md": "c87db7ac8c28be1b",
"gsd-core/workflows/profile-user.md": "59e5066c5c66572a",
@@ -372,14 +372,14 @@
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
"gsd-core/workflows/remove-workspace.md": "f67860c795fb4bfe",
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
"gsd-core/workflows/review.md": "cc0125d717a29c25",
"gsd-core/workflows/review.md": "0e440626c82bd1d9",
"gsd-core/workflows/scan.md": "e1c12d542e61720d",
"gsd-core/workflows/secure-phase.md": "fda2361739e511ee",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "414db4dbea97ba44",
"gsd-core/workflows/settings-integrations.md": "effcef778d4a855f",
"gsd-core/workflows/settings.md": "85ceb482dc713169",
"gsd-core/workflows/ship.md": "69abfd9013f0f207",
"gsd-core/workflows/ship.md": "65a7fd84d4657a5e",
"gsd-core/workflows/sketch-wrap-up.md": "5f5ebb6a80d610c6",
"gsd-core/workflows/sketch.md": "efc5a794b4bd6e78",
"gsd-core/workflows/smart-entry.md": "004b4060eab97cb9",

View File

@@ -285,18 +285,18 @@
"gsd-core/workflows/add-phase.md": "b3c61dc9b4d799ed",
"gsd-core/workflows/add-tests.md": "040ed419b025f233",
"gsd-core/workflows/add-todo.md": "5f85e6eb5b1136d2",
"gsd-core/workflows/ai-integration-phase.md": "82085726efcdd3b9",
"gsd-core/workflows/ai-integration-phase.md": "bb2ea9e09ffee8a2",
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
"gsd-core/workflows/audit-fix.md": "25fee59ee209ec62",
"gsd-core/workflows/audit-milestone.md": "06f3bbe4578f4839",
"gsd-core/workflows/audit-uat.md": "1c4a02a8c1ab930f",
"gsd-core/workflows/autonomous.md": "6adf957e64518d15",
"gsd-core/workflows/autonomous.md": "e2cfff95bc98501c",
"gsd-core/workflows/check-todos.md": "d36898ef5423b4ee",
"gsd-core/workflows/cleanup.md": "8490f912cd609049",
"gsd-core/workflows/code-review-fix.md": "cebe2ea7da350b22",
"gsd-core/workflows/code-review.md": "460976795665bb3e",
"gsd-core/workflows/complete-milestone.md": "529119d0ff9664d9",
"gsd-core/workflows/debug.md": "c3c05b35337ec488",
"gsd-core/workflows/debug.md": "df85786f6b7c0b5b",
"gsd-core/workflows/diagnose-issues.md": "517bc4b60d4b81c4",
"gsd-core/workflows/discovery-phase.md": "6d691c38a911e27d",
"gsd-core/workflows/discuss-phase-assumptions.md": "4b8e75593d5abe6f",
@@ -317,7 +317,7 @@
"gsd-core/workflows/do.md": "0f7b639ff37660b5",
"gsd-core/workflows/docs-update.md": "7aef1019ce141558",
"gsd-core/workflows/edit-phase.md": "dbbb6191f5a8b65e",
"gsd-core/workflows/eval-review.md": "11620e0dc4a003dd",
"gsd-core/workflows/eval-review.md": "c0cf2d0c5dd9df36",
"gsd-core/workflows/execute-phase.md": "abebe1ef79aa5786",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "9a1f3deffb4dab14",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "ea0ebff5ac00fee6",
@@ -357,11 +357,11 @@
"gsd-core/workflows/onboard.md": "f7d0dbcfd94ab130",
"gsd-core/workflows/pause-work.md": "da902807d2213204",
"gsd-core/workflows/plan-milestone-gaps.md": "7679fac068d1009d",
"gsd-core/workflows/plan-phase.md": "06016fe9285bf9db",
"gsd-core/workflows/plan-phase.md": "b4f63c7f924f915d",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "b810f9f2374e23a5",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "e9de7a96bbfff261",
"gsd-core/workflows/plan-review-convergence.md": "7db990f90908a5e4",
"gsd-core/workflows/plan-review-convergence.md": "df545a376a37f33d",
"gsd-core/workflows/plant-seed.md": "727991ecd521b617",
"gsd-core/workflows/pr-branch.md": "513f6cff722eff2d",
"gsd-core/workflows/profile-user.md": "7a7786eb43efda0d",
@@ -371,14 +371,14 @@
"gsd-core/workflows/remove-phase.md": "8effc8742d58a11a",
"gsd-core/workflows/remove-workspace.md": "64b73daff58b9aec",
"gsd-core/workflows/resume-project.md": "af9761bcec0f6fe9",
"gsd-core/workflows/review.md": "145646378b6243ec",
"gsd-core/workflows/review.md": "9c3ca42e01b7eb72",
"gsd-core/workflows/scan.md": "686e787d3704db90",
"gsd-core/workflows/secure-phase.md": "a7272ff8163a61ac",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "94d61da368e9f85b",
"gsd-core/workflows/settings-integrations.md": "9e0108e01e78832c",
"gsd-core/workflows/settings.md": "a1a35e58da33b23b",
"gsd-core/workflows/ship.md": "09f11bb3ebf6253f",
"gsd-core/workflows/ship.md": "fc19b46dee6e0354",
"gsd-core/workflows/sketch-wrap-up.md": "d52a5462bafda830",
"gsd-core/workflows/sketch.md": "9bc12018344f8110",
"gsd-core/workflows/smart-entry.md": "70445afde3a9ead6",

View File

@@ -214,18 +214,18 @@
"gsd-core/workflows/add-phase.md": "b2c06b7ed648658c",
"gsd-core/workflows/add-tests.md": "5168c1de6321484c",
"gsd-core/workflows/add-todo.md": "1841baacd58b7593",
"gsd-core/workflows/ai-integration-phase.md": "2c7e009d64dea436",
"gsd-core/workflows/ai-integration-phase.md": "164ed8e703474267",
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
"gsd-core/workflows/audit-fix.md": "7650bcb334e622a6",
"gsd-core/workflows/audit-milestone.md": "72a79876d97da5c1",
"gsd-core/workflows/audit-uat.md": "e11db0d74c2a7405",
"gsd-core/workflows/autonomous.md": "722397c04272dfaa",
"gsd-core/workflows/autonomous.md": "b26d23f3eb102969",
"gsd-core/workflows/check-todos.md": "166cc8d4f308b064",
"gsd-core/workflows/cleanup.md": "df79d1dc7b84d736",
"gsd-core/workflows/code-review-fix.md": "6639daf911771bbf",
"gsd-core/workflows/code-review.md": "28c98880c09fc89c",
"gsd-core/workflows/complete-milestone.md": "c3798c50670f6801",
"gsd-core/workflows/debug.md": "b01d76b258ee5e72",
"gsd-core/workflows/debug.md": "e1fea0a6465e55eb",
"gsd-core/workflows/diagnose-issues.md": "4a22064390778eab",
"gsd-core/workflows/discovery-phase.md": "89a3084e40430039",
"gsd-core/workflows/discuss-phase-assumptions.md": "32b06def681647aa",
@@ -246,7 +246,7 @@
"gsd-core/workflows/do.md": "97a456ceda9d4513",
"gsd-core/workflows/docs-update.md": "ea47bd2d5a0d1d85",
"gsd-core/workflows/edit-phase.md": "8323bfe10faa0c0a",
"gsd-core/workflows/eval-review.md": "7c2f5ff8cc4d06e5",
"gsd-core/workflows/eval-review.md": "02cefe2dbdd0af52",
"gsd-core/workflows/execute-phase.md": "f88215925dc01075",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "d2020c5e01c7bd7f",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "ab70374e44eb85cd",
@@ -286,11 +286,11 @@
"gsd-core/workflows/onboard.md": "0f0af11294d31715",
"gsd-core/workflows/pause-work.md": "5716362557f44ce4",
"gsd-core/workflows/plan-milestone-gaps.md": "1b43d12812f7bc1e",
"gsd-core/workflows/plan-phase.md": "b83d7c220f132cc9",
"gsd-core/workflows/plan-phase.md": "52940b65ba6655b8",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "e9de7a96bbfff261",
"gsd-core/workflows/plan-review-convergence.md": "35fd32d839a2e4ba",
"gsd-core/workflows/plan-review-convergence.md": "ddfd8e3ba2bdd974",
"gsd-core/workflows/plant-seed.md": "3dd79b65ad08e456",
"gsd-core/workflows/pr-branch.md": "ab157cd8e49621dd",
"gsd-core/workflows/profile-user.md": "84fff69a630033ed",
@@ -300,14 +300,14 @@
"gsd-core/workflows/remove-phase.md": "ada8a0546c686483",
"gsd-core/workflows/remove-workspace.md": "015cde237c75be39",
"gsd-core/workflows/resume-project.md": "7f8dc986f0f35d96",
"gsd-core/workflows/review.md": "4d4975c16d79515d",
"gsd-core/workflows/review.md": "4e1ee8ab952db2dc",
"gsd-core/workflows/scan.md": "a71e3009998cfc57",
"gsd-core/workflows/secure-phase.md": "ba807b4862d7f3c9",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "339def28c34b0797",
"gsd-core/workflows/settings-integrations.md": "9c9db643112b2371",
"gsd-core/workflows/settings.md": "d3f05e22f21bfb3a",
"gsd-core/workflows/ship.md": "61531360b6ac5a80",
"gsd-core/workflows/ship.md": "cb11a33217e0fc45",
"gsd-core/workflows/sketch-wrap-up.md": "121ed4b8127abf04",
"gsd-core/workflows/sketch.md": "ac7a5265c6970bdf",
"gsd-core/workflows/smart-entry.md": "99c73236890605a1",

View File

@@ -218,18 +218,18 @@
"gsd-core/workflows/add-phase.md": "2558614a81b9e977",
"gsd-core/workflows/add-tests.md": "0dd47f73dd3ca32a",
"gsd-core/workflows/add-todo.md": "13a465fa41ba5aec",
"gsd-core/workflows/ai-integration-phase.md": "7794d0223c23f396",
"gsd-core/workflows/ai-integration-phase.md": "670b0a143b1ccf98",
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
"gsd-core/workflows/audit-fix.md": "3db85a39cd17e98c",
"gsd-core/workflows/audit-milestone.md": "6af8e2b59dc092f0",
"gsd-core/workflows/audit-uat.md": "1fb7b2ab9d587c8f",
"gsd-core/workflows/autonomous.md": "cc5217b1b2238a4c",
"gsd-core/workflows/autonomous.md": "dbdbc526853b4a7f",
"gsd-core/workflows/check-todos.md": "5f6b887a365ce692",
"gsd-core/workflows/cleanup.md": "6ed44dc47fd9972b",
"gsd-core/workflows/code-review-fix.md": "5d2b23be4d1d850b",
"gsd-core/workflows/code-review.md": "c8db2eccd1ca9cc5",
"gsd-core/workflows/complete-milestone.md": "85be65035bcd4e41",
"gsd-core/workflows/debug.md": "7dedb4c3d1efaf5e",
"gsd-core/workflows/debug.md": "cc34bc7fa35c5d75",
"gsd-core/workflows/diagnose-issues.md": "873902ec4e4bf869",
"gsd-core/workflows/discovery-phase.md": "0fa751163960abc2",
"gsd-core/workflows/discuss-phase-assumptions.md": "3aa5692386943399",
@@ -250,7 +250,7 @@
"gsd-core/workflows/do.md": "6b3cad91b3bd1419",
"gsd-core/workflows/docs-update.md": "7eb7095ca86d506f",
"gsd-core/workflows/edit-phase.md": "9c9fadc047c61d74",
"gsd-core/workflows/eval-review.md": "17fc9b4c4f7e1c74",
"gsd-core/workflows/eval-review.md": "f67caf4dba0586d1",
"gsd-core/workflows/execute-phase.md": "769064cfeb1baf4a",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "1b3558cb8f41b65a",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "e01459552d587863",
@@ -290,11 +290,11 @@
"gsd-core/workflows/onboard.md": "f29c4fbef3b473fd",
"gsd-core/workflows/pause-work.md": "3530607514b0ac00",
"gsd-core/workflows/plan-milestone-gaps.md": "bafdc6945cd2bd87",
"gsd-core/workflows/plan-phase.md": "acb779981626bef8",
"gsd-core/workflows/plan-phase.md": "36c8d7bf34528c6c",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "4b0a2cb0f4f28179",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "090c31e22b1508fe",
"gsd-core/workflows/plan-review-convergence.md": "cb03bd703057f395",
"gsd-core/workflows/plan-review-convergence.md": "47193d4e29b3f64a",
"gsd-core/workflows/plant-seed.md": "94b54ead506385d3",
"gsd-core/workflows/pr-branch.md": "9923878a4f6a2d91",
"gsd-core/workflows/profile-user.md": "4c51320e7caa09ca",
@@ -304,14 +304,14 @@
"gsd-core/workflows/remove-phase.md": "e336350f8113a328",
"gsd-core/workflows/remove-workspace.md": "79d3669cc9eb0b10",
"gsd-core/workflows/resume-project.md": "e23981178fa37b3d",
"gsd-core/workflows/review.md": "eb0a2e4e10bf92ab",
"gsd-core/workflows/review.md": "5f9ffdb708203c27",
"gsd-core/workflows/scan.md": "f0bd2f64f5530598",
"gsd-core/workflows/secure-phase.md": "1a2e389991fc6263",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "69f3a19bf2c61160",
"gsd-core/workflows/settings-integrations.md": "a2682897e663fec4",
"gsd-core/workflows/settings.md": "17a5de032a64eb22",
"gsd-core/workflows/ship.md": "358433c2e3412069",
"gsd-core/workflows/ship.md": "9c0b622da71862f4",
"gsd-core/workflows/sketch-wrap-up.md": "1f44789553180d84",
"gsd-core/workflows/sketch.md": "fadc2cbe6763c010",
"gsd-core/workflows/smart-entry.md": "22ef18e897b67907",

View File

@@ -286,18 +286,18 @@
"gsd-core/workflows/add-phase.md": "ac43883e2d8e34d8",
"gsd-core/workflows/add-tests.md": "7e7268602f9e1b2a",
"gsd-core/workflows/add-todo.md": "5dc04cfaa0b6b072",
"gsd-core/workflows/ai-integration-phase.md": "0d6d7183ae189fbe",
"gsd-core/workflows/ai-integration-phase.md": "308378c9044a52e1",
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
"gsd-core/workflows/audit-fix.md": "7650bcb334e622a6",
"gsd-core/workflows/audit-milestone.md": "2beceadd10d8d9b1",
"gsd-core/workflows/audit-uat.md": "fcfbec501620b564",
"gsd-core/workflows/autonomous.md": "7e5683728ef33707",
"gsd-core/workflows/autonomous.md": "aed5e67104346cc2",
"gsd-core/workflows/check-todos.md": "c484e472cff0e4e3",
"gsd-core/workflows/cleanup.md": "df79d1dc7b84d736",
"gsd-core/workflows/code-review-fix.md": "5c4fe9921dcd9939",
"gsd-core/workflows/code-review.md": "926565c83e9b9f67",
"gsd-core/workflows/complete-milestone.md": "8f98d7b05793cf4a",
"gsd-core/workflows/debug.md": "35b63fca942d3e7d",
"gsd-core/workflows/debug.md": "b2232823c619cc63",
"gsd-core/workflows/diagnose-issues.md": "8219a1e1213f498e",
"gsd-core/workflows/discovery-phase.md": "0aa8d8d872b53858",
"gsd-core/workflows/discuss-phase-assumptions.md": "cbc8ea4ddc4553fb",
@@ -318,7 +318,7 @@
"gsd-core/workflows/do.md": "90df4f1fe248cdf3",
"gsd-core/workflows/docs-update.md": "a320371be70f43d8",
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
"gsd-core/workflows/eval-review.md": "32d3d7e80ab2bfc7",
"gsd-core/workflows/eval-review.md": "c2933259ff7fb6ac",
"gsd-core/workflows/execute-phase.md": "79e703c637e2d7b1",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "f7782680c2b8ad6b",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "ab70374e44eb85cd",
@@ -358,11 +358,11 @@
"gsd-core/workflows/onboard.md": "f29c4fbef3b473fd",
"gsd-core/workflows/pause-work.md": "f2b33bba5593d422",
"gsd-core/workflows/plan-milestone-gaps.md": "852f6d7c0c4299dc",
"gsd-core/workflows/plan-phase.md": "ad8c507f0c8910ad",
"gsd-core/workflows/plan-phase.md": "9242c6d8c447afa8",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "49f58c3f75be3eb5",
"gsd-core/workflows/plan-review-convergence.md": "1c31d4905c1556c8",
"gsd-core/workflows/plan-review-convergence.md": "db69460dd4df0d29",
"gsd-core/workflows/plant-seed.md": "9596db80ab282c6f",
"gsd-core/workflows/pr-branch.md": "c87db7ac8c28be1b",
"gsd-core/workflows/profile-user.md": "1419f1dad1853da0",
@@ -372,14 +372,14 @@
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
"gsd-core/workflows/remove-workspace.md": "f67860c795fb4bfe",
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
"gsd-core/workflows/review.md": "cc0125d717a29c25",
"gsd-core/workflows/review.md": "0e440626c82bd1d9",
"gsd-core/workflows/scan.md": "e1c12d542e61720d",
"gsd-core/workflows/secure-phase.md": "fda2361739e511ee",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "414db4dbea97ba44",
"gsd-core/workflows/settings-integrations.md": "effcef778d4a855f",
"gsd-core/workflows/settings.md": "85ceb482dc713169",
"gsd-core/workflows/ship.md": "69abfd9013f0f207",
"gsd-core/workflows/ship.md": "65a7fd84d4657a5e",
"gsd-core/workflows/sketch-wrap-up.md": "2aba89ecd8f41a0d",
"gsd-core/workflows/sketch.md": "2913d90416a3c0f0",
"gsd-core/workflows/smart-entry.md": "004b4060eab97cb9",

View File

@@ -321,18 +321,18 @@
"gsd-core/workflows/add-phase.md": "d7a401b48271964f",
"gsd-core/workflows/add-tests.md": "f2f30978099144d3",
"gsd-core/workflows/add-todo.md": "fc26decc33e3e6a4",
"gsd-core/workflows/ai-integration-phase.md": "0954a83ab8315cc3",
"gsd-core/workflows/ai-integration-phase.md": "e83102e5bd9b7c50",
"gsd-core/workflows/analyze-dependencies.md": "f799abc00907377f",
"gsd-core/workflows/audit-fix.md": "677638d4081117c5",
"gsd-core/workflows/audit-milestone.md": "803d30eefb11b5ae",
"gsd-core/workflows/audit-uat.md": "2564078edb15b5e9",
"gsd-core/workflows/autonomous.md": "92f08626d4aea668",
"gsd-core/workflows/autonomous.md": "47bf003aefcf806b",
"gsd-core/workflows/check-todos.md": "a9a6c39859451fa7",
"gsd-core/workflows/cleanup.md": "2f7d77d1b13d0410",
"gsd-core/workflows/code-review-fix.md": "90ad86d4781b00ff",
"gsd-core/workflows/code-review.md": "d4cf8c064cd81229",
"gsd-core/workflows/complete-milestone.md": "bd3d10386edf1121",
"gsd-core/workflows/debug.md": "bc148322c56b3dc6",
"gsd-core/workflows/debug.md": "e8f19fa60b96e516",
"gsd-core/workflows/diagnose-issues.md": "1ee3c02cf691c1db",
"gsd-core/workflows/discovery-phase.md": "ae93d9d808c8c018",
"gsd-core/workflows/discuss-phase-assumptions.md": "b10e736af63ef213",
@@ -353,7 +353,7 @@
"gsd-core/workflows/do.md": "b30d5b8eca60ef79",
"gsd-core/workflows/docs-update.md": "bf32efe90219d3dd",
"gsd-core/workflows/edit-phase.md": "e592a4d85ce5380f",
"gsd-core/workflows/eval-review.md": "c89a63285ead961e",
"gsd-core/workflows/eval-review.md": "4d367d1e028629bd",
"gsd-core/workflows/execute-phase.md": "7bcc0a33f91336c7",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "cd8678d082d6e191",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "ab70374e44eb85cd",
@@ -393,11 +393,11 @@
"gsd-core/workflows/onboard.md": "f022a379ede13512",
"gsd-core/workflows/pause-work.md": "a217770ecafcb2e0",
"gsd-core/workflows/plan-milestone-gaps.md": "73d46f77c50a0690",
"gsd-core/workflows/plan-phase.md": "7302646bb14b5326",
"gsd-core/workflows/plan-phase.md": "c6c3a4faf0b2aa2c",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "d838b87563feedf6",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "f10975692cbd036e",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "f5edc589cab52a7b",
"gsd-core/workflows/plan-review-convergence.md": "6f904fb1befa8991",
"gsd-core/workflows/plan-review-convergence.md": "b4e8d6a46e62d68a",
"gsd-core/workflows/plant-seed.md": "25b0c824f7eff40e",
"gsd-core/workflows/pr-branch.md": "d13e1cc81de40896",
"gsd-core/workflows/profile-user.md": "6d23d0594082c78a",
@@ -407,14 +407,14 @@
"gsd-core/workflows/remove-phase.md": "9ee0fddd11a0d9d4",
"gsd-core/workflows/remove-workspace.md": "d0160c5d05bcb2bb",
"gsd-core/workflows/resume-project.md": "9965f87eb278f7f8",
"gsd-core/workflows/review.md": "b8108a114467fafe",
"gsd-core/workflows/review.md": "b16cb18b657562ae",
"gsd-core/workflows/scan.md": "dcd6aac25ef39251",
"gsd-core/workflows/secure-phase.md": "3ba89719288dd3f3",
"gsd-core/workflows/session-report.md": "dd8fa011c9394075",
"gsd-core/workflows/settings-advanced.md": "2431433811616f76",
"gsd-core/workflows/settings-integrations.md": "d6d222af8690d09b",
"gsd-core/workflows/settings.md": "3c8bd45b123b5db6",
"gsd-core/workflows/ship.md": "afaf8471951f9786",
"gsd-core/workflows/ship.md": "f2c6d7991e23623f",
"gsd-core/workflows/sketch-wrap-up.md": "07724a390fbb43f6",
"gsd-core/workflows/sketch.md": "3f6ed885d2ee5528",
"gsd-core/workflows/smart-entry.md": "2914f9d54d365931",

View File

@@ -216,18 +216,18 @@
"gsd-core/workflows/add-phase.md": "f4fbfad54be5d46f",
"gsd-core/workflows/add-tests.md": "bc656e055e09138d",
"gsd-core/workflows/add-todo.md": "0f6cdf522df6c87e",
"gsd-core/workflows/ai-integration-phase.md": "eaf002dfaa8e33e3",
"gsd-core/workflows/ai-integration-phase.md": "beba57424c9b358c",
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
"gsd-core/workflows/audit-fix.md": "8658bba76328a84f",
"gsd-core/workflows/audit-milestone.md": "57d7fdc4687a451e",
"gsd-core/workflows/audit-uat.md": "5ea0e30548ed0933",
"gsd-core/workflows/autonomous.md": "dd972ddde9663295",
"gsd-core/workflows/autonomous.md": "39dbe19d74c14e75",
"gsd-core/workflows/check-todos.md": "333b04e0d144596b",
"gsd-core/workflows/cleanup.md": "90d4119b70f32fce",
"gsd-core/workflows/code-review-fix.md": "af3bc2b68165ca44",
"gsd-core/workflows/code-review.md": "cb452c4a36c37353",
"gsd-core/workflows/complete-milestone.md": "c3d961cc123a7492",
"gsd-core/workflows/debug.md": "ba9a2139851faf2a",
"gsd-core/workflows/debug.md": "3673587bd99c5fa7",
"gsd-core/workflows/diagnose-issues.md": "8311fee5f2d6f3b5",
"gsd-core/workflows/discovery-phase.md": "c97943b1f3d3db96",
"gsd-core/workflows/discuss-phase-assumptions.md": "e3aee2fdbf145e42",
@@ -248,7 +248,7 @@
"gsd-core/workflows/do.md": "ba9dd204343ab48b",
"gsd-core/workflows/docs-update.md": "f64b067d0d729f04",
"gsd-core/workflows/edit-phase.md": "8667c28b22b1599f",
"gsd-core/workflows/eval-review.md": "1ae2d3d3fbf72893",
"gsd-core/workflows/eval-review.md": "6fd7f2b0770b48f1",
"gsd-core/workflows/execute-phase.md": "d9ad04be8e897208",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "ca37f91f7bd6f05c",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "e0ec3d9748a0fed9",
@@ -288,11 +288,11 @@
"gsd-core/workflows/onboard.md": "357b7ae1367560dd",
"gsd-core/workflows/pause-work.md": "9ce66367be6c40db",
"gsd-core/workflows/plan-milestone-gaps.md": "5cf589802d08bdf3",
"gsd-core/workflows/plan-phase.md": "4bf4ae1e25fc3a11",
"gsd-core/workflows/plan-phase.md": "7159628ad9cf76a9",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "bb052483744f0a6d",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "e9de7a96bbfff261",
"gsd-core/workflows/plan-review-convergence.md": "0afd8eb4b0689bc9",
"gsd-core/workflows/plan-review-convergence.md": "972d475548d48809",
"gsd-core/workflows/plant-seed.md": "aac7ffbbec7e7a22",
"gsd-core/workflows/pr-branch.md": "2833905f119b5722",
"gsd-core/workflows/profile-user.md": "e2135bdd20e17620",
@@ -302,14 +302,14 @@
"gsd-core/workflows/remove-phase.md": "e262654e319d1bc4",
"gsd-core/workflows/remove-workspace.md": "e7e5b5b1e0cc9d81",
"gsd-core/workflows/resume-project.md": "40db7f350f5866d8",
"gsd-core/workflows/review.md": "49d74c87b31abce8",
"gsd-core/workflows/review.md": "eaafaf8ba23f356e",
"gsd-core/workflows/scan.md": "76aad4e70281c364",
"gsd-core/workflows/secure-phase.md": "d60aa4053154e52f",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "230a658de9c017a6",
"gsd-core/workflows/settings-integrations.md": "58acee11162b4a4e",
"gsd-core/workflows/settings.md": "876e954acd64cb18",
"gsd-core/workflows/ship.md": "268aa7019ac36c6a",
"gsd-core/workflows/ship.md": "b523ad905d1e1f0d",
"gsd-core/workflows/sketch-wrap-up.md": "f2590cb6ddbfad94",
"gsd-core/workflows/sketch.md": "9cbf5860b6a005e5",
"gsd-core/workflows/smart-entry.md": "93f90cd7a12dbbc7",

View File

@@ -286,18 +286,18 @@
"gsd-core/workflows/add-phase.md": "b2c06b7ed648658c",
"gsd-core/workflows/add-tests.md": "100349c1d23af47f",
"gsd-core/workflows/add-todo.md": "8f2b65d7ce28e4fd",
"gsd-core/workflows/ai-integration-phase.md": "ed2ca9b215566e8e",
"gsd-core/workflows/ai-integration-phase.md": "6d4a309d7176d5d5",
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
"gsd-core/workflows/audit-fix.md": "7650bcb334e622a6",
"gsd-core/workflows/audit-milestone.md": "72a79876d97da5c1",
"gsd-core/workflows/audit-uat.md": "e11db0d74c2a7405",
"gsd-core/workflows/autonomous.md": "4b20eda9a0b587ce",
"gsd-core/workflows/autonomous.md": "409a340e36b90331",
"gsd-core/workflows/check-todos.md": "18a405fea9a842dc",
"gsd-core/workflows/cleanup.md": "c0c243aa070b993b",
"gsd-core/workflows/code-review-fix.md": "716d0967b023eec0",
"gsd-core/workflows/code-review.md": "4389abffb5fbb520",
"gsd-core/workflows/complete-milestone.md": "2281ee0a53264ca5",
"gsd-core/workflows/debug.md": "1f1105c4a62977a9",
"gsd-core/workflows/debug.md": "46922b963895362a",
"gsd-core/workflows/diagnose-issues.md": "1b6787debfcb8c56",
"gsd-core/workflows/discovery-phase.md": "13393233272db9b6",
"gsd-core/workflows/discuss-phase-assumptions.md": "33a6038c7fea05f9",
@@ -318,7 +318,7 @@
"gsd-core/workflows/do.md": "53839c6429ae1234",
"gsd-core/workflows/docs-update.md": "215b0122c4d2b1e5",
"gsd-core/workflows/edit-phase.md": "8323bfe10faa0c0a",
"gsd-core/workflows/eval-review.md": "9389c58f7384972d",
"gsd-core/workflows/eval-review.md": "e8a7646e1699a17d",
"gsd-core/workflows/execute-phase.md": "e8ddb24f9cdca5f0",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "d2020c5e01c7bd7f",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "06b54ecd4015c64c",
@@ -358,11 +358,11 @@
"gsd-core/workflows/onboard.md": "7d0c7449b84c7997",
"gsd-core/workflows/pause-work.md": "5716362557f44ce4",
"gsd-core/workflows/plan-milestone-gaps.md": "1b43d12812f7bc1e",
"gsd-core/workflows/plan-phase.md": "aaf2a8f5851b9d62",
"gsd-core/workflows/plan-phase.md": "862053b9255b27d5",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "e06ccd4d4c0703fb",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "3bed01c3c906ac52",
"gsd-core/workflows/plan-review-convergence.md": "68139431c21ef46d",
"gsd-core/workflows/plan-review-convergence.md": "b2783918bccc0e27",
"gsd-core/workflows/plant-seed.md": "3c36a48064aa98d1",
"gsd-core/workflows/pr-branch.md": "c67d90c65da47168",
"gsd-core/workflows/profile-user.md": "e1a6ec04051931f7",
@@ -372,14 +372,14 @@
"gsd-core/workflows/remove-phase.md": "ada8a0546c686483",
"gsd-core/workflows/remove-workspace.md": "0572a83d71650937",
"gsd-core/workflows/resume-project.md": "7f8dc986f0f35d96",
"gsd-core/workflows/review.md": "837e0cba258335b5",
"gsd-core/workflows/review.md": "f2f9f47f6b9a7c88",
"gsd-core/workflows/scan.md": "a71e3009998cfc57",
"gsd-core/workflows/secure-phase.md": "b008216148d2afac",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "bf8ea69c8f7ae019",
"gsd-core/workflows/settings-integrations.md": "37d4212d83664224",
"gsd-core/workflows/settings.md": "f90f106a9490c7c9",
"gsd-core/workflows/ship.md": "c9ba58b7ae7ea07e",
"gsd-core/workflows/ship.md": "9ed024a87a8cb7bc",
"gsd-core/workflows/sketch-wrap-up.md": "5be73b7bdf96b539",
"gsd-core/workflows/sketch.md": "64543e59b00637d4",
"gsd-core/workflows/smart-entry.md": "fdc5113754223df8",

View File

@@ -215,18 +215,18 @@
"gsd-core/workflows/add-phase.md": "2a6452fc51339b9c",
"gsd-core/workflows/add-tests.md": "beaec899e9a70b0e",
"gsd-core/workflows/add-todo.md": "aa7be08f52478922",
"gsd-core/workflows/ai-integration-phase.md": "3906d579a47aaa52",
"gsd-core/workflows/ai-integration-phase.md": "fc161460e4eb193b",
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
"gsd-core/workflows/audit-fix.md": "7e1d184ffde7aa34",
"gsd-core/workflows/audit-milestone.md": "26b787036f929200",
"gsd-core/workflows/audit-uat.md": "86d9131fccabf2ad",
"gsd-core/workflows/autonomous.md": "853dd93846332743",
"gsd-core/workflows/autonomous.md": "b1d848b753564dad",
"gsd-core/workflows/check-todos.md": "ab38b0c7190b93c4",
"gsd-core/workflows/cleanup.md": "c811970042bc4ff1",
"gsd-core/workflows/code-review-fix.md": "29845842cbddf628",
"gsd-core/workflows/code-review.md": "472dd42214f11979",
"gsd-core/workflows/complete-milestone.md": "e87bf463430945d6",
"gsd-core/workflows/debug.md": "4f2d70fd94f2215a",
"gsd-core/workflows/debug.md": "261f6b3f28143cea",
"gsd-core/workflows/diagnose-issues.md": "bc0dd9eb0fc5195a",
"gsd-core/workflows/discovery-phase.md": "56d07842d140f388",
"gsd-core/workflows/discuss-phase-assumptions.md": "57d27108a75835c7",
@@ -247,7 +247,7 @@
"gsd-core/workflows/do.md": "b30d1efcb0297580",
"gsd-core/workflows/docs-update.md": "02811dd7aa32d5ba",
"gsd-core/workflows/edit-phase.md": "7f27003f20e88fb8",
"gsd-core/workflows/eval-review.md": "e7cd5dfcf18e2458",
"gsd-core/workflows/eval-review.md": "6d1c9c167f91b0f8",
"gsd-core/workflows/execute-phase.md": "fcf5f258a1e2aeea",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "9b2193de25506b3b",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "4dfefdd56d814d06",
@@ -287,11 +287,11 @@
"gsd-core/workflows/onboard.md": "0f0af11294d31715",
"gsd-core/workflows/pause-work.md": "ae2d5789a95f70fe",
"gsd-core/workflows/plan-milestone-gaps.md": "c86cdc1964256b98",
"gsd-core/workflows/plan-phase.md": "0e72c03f10c29c7e",
"gsd-core/workflows/plan-phase.md": "17b40d35982556f3",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "9607e6d03e93c1c2",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "62f8e4f3b475fe5f",
"gsd-core/workflows/plan-review-convergence.md": "d9c282754c05eb81",
"gsd-core/workflows/plan-review-convergence.md": "3e6356a922e4fe77",
"gsd-core/workflows/plant-seed.md": "4643bc78faaf9005",
"gsd-core/workflows/pr-branch.md": "ecabd55e4eabf229",
"gsd-core/workflows/profile-user.md": "877c2c9b3ab8742c",
@@ -301,14 +301,14 @@
"gsd-core/workflows/remove-phase.md": "fce799aae3ab2715",
"gsd-core/workflows/remove-workspace.md": "42029a7559f1d8fb",
"gsd-core/workflows/resume-project.md": "a0443839f1f83c2d",
"gsd-core/workflows/review.md": "0ba5a89b6b164971",
"gsd-core/workflows/review.md": "5d8751246d8c9dc2",
"gsd-core/workflows/scan.md": "5c2370d6a8118b6c",
"gsd-core/workflows/secure-phase.md": "c087131f1dd12901",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "49be159144d7f426",
"gsd-core/workflows/settings-integrations.md": "75405795c8462a8a",
"gsd-core/workflows/settings.md": "41c0f737bfd311fd",
"gsd-core/workflows/ship.md": "15df621a87671c53",
"gsd-core/workflows/ship.md": "f89f774fe4a4ce7b",
"gsd-core/workflows/sketch-wrap-up.md": "f1ece50ac65ea281",
"gsd-core/workflows/sketch.md": "592283400d70317b",
"gsd-core/workflows/smart-entry.md": "4dc50d4af659c651",

View File

@@ -286,18 +286,18 @@
"gsd-core/workflows/add-phase.md": "b2c06b7ed648658c",
"gsd-core/workflows/add-tests.md": "cb6e4492adfcc5d4",
"gsd-core/workflows/add-todo.md": "edd50462079c77d0",
"gsd-core/workflows/ai-integration-phase.md": "9b26b4b7b6f7f51f",
"gsd-core/workflows/ai-integration-phase.md": "5c0eac04bd0ad2d6",
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
"gsd-core/workflows/audit-fix.md": "677638d4081117c5",
"gsd-core/workflows/audit-milestone.md": "e228bb0e5ee5b402",
"gsd-core/workflows/audit-uat.md": "e11db0d74c2a7405",
"gsd-core/workflows/autonomous.md": "73f429f7472c9949",
"gsd-core/workflows/autonomous.md": "fa2e85a195c98636",
"gsd-core/workflows/check-todos.md": "27ab86858d04c7a9",
"gsd-core/workflows/cleanup.md": "1c669fc358db3e19",
"gsd-core/workflows/code-review-fix.md": "a05d2defb5d25b4e",
"gsd-core/workflows/code-review.md": "82a00defcb48a15e",
"gsd-core/workflows/complete-milestone.md": "e507b10f26188186",
"gsd-core/workflows/debug.md": "b422705db07e38cf",
"gsd-core/workflows/debug.md": "764cfa8a2fed9b52",
"gsd-core/workflows/diagnose-issues.md": "b64b0ba4ab7716e4",
"gsd-core/workflows/discovery-phase.md": "af5ec483093bcede",
"gsd-core/workflows/discuss-phase-assumptions.md": "59da42e4aa72f52b",
@@ -318,7 +318,7 @@
"gsd-core/workflows/do.md": "ea068f5a797f2178",
"gsd-core/workflows/docs-update.md": "3c0d5ef72202d246",
"gsd-core/workflows/edit-phase.md": "8323bfe10faa0c0a",
"gsd-core/workflows/eval-review.md": "35be91cd22a9bc11",
"gsd-core/workflows/eval-review.md": "fb3b8244d66972ee",
"gsd-core/workflows/execute-phase.md": "e41ab56e1388afc8",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "b1e6588cd32a6f08",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "ab70374e44eb85cd",
@@ -358,11 +358,11 @@
"gsd-core/workflows/onboard.md": "c8d9795021d4fce6",
"gsd-core/workflows/pause-work.md": "a6e5336c409fdc8b",
"gsd-core/workflows/plan-milestone-gaps.md": "1b43d12812f7bc1e",
"gsd-core/workflows/plan-phase.md": "a149455c8d3a293c",
"gsd-core/workflows/plan-phase.md": "05b86da6954ee8dd",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "f10975692cbd036e",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "e9de7a96bbfff261",
"gsd-core/workflows/plan-review-convergence.md": "232c93a9aed224fe",
"gsd-core/workflows/plan-review-convergence.md": "2057c9018cdb6d20",
"gsd-core/workflows/plant-seed.md": "107bfe8f5b2a7843",
"gsd-core/workflows/pr-branch.md": "ab157cd8e49621dd",
"gsd-core/workflows/profile-user.md": "645f81d80c4775c4",
@@ -372,14 +372,14 @@
"gsd-core/workflows/remove-phase.md": "ada8a0546c686483",
"gsd-core/workflows/remove-workspace.md": "f5dc82bb63e2efa4",
"gsd-core/workflows/resume-project.md": "7f8dc986f0f35d96",
"gsd-core/workflows/review.md": "e86d4d7ac6b8a025",
"gsd-core/workflows/review.md": "c1152ff4aa9e52a4",
"gsd-core/workflows/scan.md": "c039d3e40d26b606",
"gsd-core/workflows/secure-phase.md": "5a8fbf603d218100",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "edd858cd6cfddaf1",
"gsd-core/workflows/settings-integrations.md": "3ec4f77c421b87b4",
"gsd-core/workflows/settings.md": "0e3cf91e952b48a2",
"gsd-core/workflows/ship.md": "3182bcbe41c54fcf",
"gsd-core/workflows/ship.md": "02e8f7ae72c344e4",
"gsd-core/workflows/sketch-wrap-up.md": "888c0548e63197b3",
"gsd-core/workflows/sketch.md": "75ffbd233fd9a762",
"gsd-core/workflows/smart-entry.md": "2ad5b63a9deea0ce",

View File

@@ -243,18 +243,18 @@
"gsd-core/workflows/add-phase.md": "ac43883e2d8e34d8",
"gsd-core/workflows/add-tests.md": "7e7268602f9e1b2a",
"gsd-core/workflows/add-todo.md": "5dc04cfaa0b6b072",
"gsd-core/workflows/ai-integration-phase.md": "0d6d7183ae189fbe",
"gsd-core/workflows/ai-integration-phase.md": "308378c9044a52e1",
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
"gsd-core/workflows/audit-fix.md": "7650bcb334e622a6",
"gsd-core/workflows/audit-milestone.md": "2beceadd10d8d9b1",
"gsd-core/workflows/audit-uat.md": "fcfbec501620b564",
"gsd-core/workflows/autonomous.md": "7e5683728ef33707",
"gsd-core/workflows/autonomous.md": "aed5e67104346cc2",
"gsd-core/workflows/check-todos.md": "c484e472cff0e4e3",
"gsd-core/workflows/cleanup.md": "df79d1dc7b84d736",
"gsd-core/workflows/code-review-fix.md": "5c4fe9921dcd9939",
"gsd-core/workflows/code-review.md": "926565c83e9b9f67",
"gsd-core/workflows/complete-milestone.md": "8f98d7b05793cf4a",
"gsd-core/workflows/debug.md": "35b63fca942d3e7d",
"gsd-core/workflows/debug.md": "b2232823c619cc63",
"gsd-core/workflows/diagnose-issues.md": "8a93b2aece3d79f0",
"gsd-core/workflows/discovery-phase.md": "0aa8d8d872b53858",
"gsd-core/workflows/discuss-phase-assumptions.md": "cbc8ea4ddc4553fb",
@@ -275,7 +275,7 @@
"gsd-core/workflows/do.md": "90df4f1fe248cdf3",
"gsd-core/workflows/docs-update.md": "a320371be70f43d8",
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
"gsd-core/workflows/eval-review.md": "32d3d7e80ab2bfc7",
"gsd-core/workflows/eval-review.md": "c2933259ff7fb6ac",
"gsd-core/workflows/execute-phase.md": "6a663b8755ed216e",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "f7782680c2b8ad6b",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "ab70374e44eb85cd",
@@ -315,11 +315,11 @@
"gsd-core/workflows/onboard.md": "f29c4fbef3b473fd",
"gsd-core/workflows/pause-work.md": "f2b33bba5593d422",
"gsd-core/workflows/plan-milestone-gaps.md": "852f6d7c0c4299dc",
"gsd-core/workflows/plan-phase.md": "2809df9f75f00676",
"gsd-core/workflows/plan-phase.md": "8c25006c81b99eed",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "49f58c3f75be3eb5",
"gsd-core/workflows/plan-review-convergence.md": "1c31d4905c1556c8",
"gsd-core/workflows/plan-review-convergence.md": "db69460dd4df0d29",
"gsd-core/workflows/plant-seed.md": "9596db80ab282c6f",
"gsd-core/workflows/pr-branch.md": "c87db7ac8c28be1b",
"gsd-core/workflows/profile-user.md": "37af07833c81a0bd",
@@ -329,14 +329,14 @@
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
"gsd-core/workflows/remove-workspace.md": "f67860c795fb4bfe",
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
"gsd-core/workflows/review.md": "cc0125d717a29c25",
"gsd-core/workflows/review.md": "0e440626c82bd1d9",
"gsd-core/workflows/scan.md": "e1c12d542e61720d",
"gsd-core/workflows/secure-phase.md": "fda2361739e511ee",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "414db4dbea97ba44",
"gsd-core/workflows/settings-integrations.md": "effcef778d4a855f",
"gsd-core/workflows/settings.md": "85ceb482dc713169",
"gsd-core/workflows/ship.md": "69abfd9013f0f207",
"gsd-core/workflows/ship.md": "65a7fd84d4657a5e",
"gsd-core/workflows/sketch-wrap-up.md": "b767a1d3db129a8a",
"gsd-core/workflows/sketch.md": "5f0a7d3640cdff54",
"gsd-core/workflows/smart-entry.md": "004b4060eab97cb9",

View File

@@ -279,18 +279,18 @@
"gsd-core/workflows/add-phase.md": "ac43883e2d8e34d8",
"gsd-core/workflows/add-tests.md": "7e7268602f9e1b2a",
"gsd-core/workflows/add-todo.md": "5dc04cfaa0b6b072",
"gsd-core/workflows/ai-integration-phase.md": "0d6d7183ae189fbe",
"gsd-core/workflows/ai-integration-phase.md": "308378c9044a52e1",
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
"gsd-core/workflows/audit-fix.md": "7650bcb334e622a6",
"gsd-core/workflows/audit-milestone.md": "2beceadd10d8d9b1",
"gsd-core/workflows/audit-uat.md": "fcfbec501620b564",
"gsd-core/workflows/autonomous.md": "7e5683728ef33707",
"gsd-core/workflows/autonomous.md": "aed5e67104346cc2",
"gsd-core/workflows/check-todos.md": "c484e472cff0e4e3",
"gsd-core/workflows/cleanup.md": "df79d1dc7b84d736",
"gsd-core/workflows/code-review-fix.md": "5c4fe9921dcd9939",
"gsd-core/workflows/code-review.md": "926565c83e9b9f67",
"gsd-core/workflows/complete-milestone.md": "8f98d7b05793cf4a",
"gsd-core/workflows/debug.md": "35b63fca942d3e7d",
"gsd-core/workflows/debug.md": "b2232823c619cc63",
"gsd-core/workflows/diagnose-issues.md": "232f9e87bf60d8b4",
"gsd-core/workflows/discovery-phase.md": "0aa8d8d872b53858",
"gsd-core/workflows/discuss-phase-assumptions.md": "cbc8ea4ddc4553fb",
@@ -311,7 +311,7 @@
"gsd-core/workflows/do.md": "90df4f1fe248cdf3",
"gsd-core/workflows/docs-update.md": "a320371be70f43d8",
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
"gsd-core/workflows/eval-review.md": "32d3d7e80ab2bfc7",
"gsd-core/workflows/eval-review.md": "c2933259ff7fb6ac",
"gsd-core/workflows/execute-phase.md": "df8c032fb91cedbd",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "f7782680c2b8ad6b",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "ab70374e44eb85cd",
@@ -351,11 +351,11 @@
"gsd-core/workflows/onboard.md": "f29c4fbef3b473fd",
"gsd-core/workflows/pause-work.md": "f2b33bba5593d422",
"gsd-core/workflows/plan-milestone-gaps.md": "852f6d7c0c4299dc",
"gsd-core/workflows/plan-phase.md": "2809df9f75f00676",
"gsd-core/workflows/plan-phase.md": "8c25006c81b99eed",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "49f58c3f75be3eb5",
"gsd-core/workflows/plan-review-convergence.md": "1c31d4905c1556c8",
"gsd-core/workflows/plan-review-convergence.md": "db69460dd4df0d29",
"gsd-core/workflows/plant-seed.md": "9596db80ab282c6f",
"gsd-core/workflows/pr-branch.md": "c87db7ac8c28be1b",
"gsd-core/workflows/profile-user.md": "37af07833c81a0bd",
@@ -365,14 +365,14 @@
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
"gsd-core/workflows/remove-workspace.md": "f67860c795fb4bfe",
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
"gsd-core/workflows/review.md": "cc0125d717a29c25",
"gsd-core/workflows/review.md": "0e440626c82bd1d9",
"gsd-core/workflows/scan.md": "e1c12d542e61720d",
"gsd-core/workflows/secure-phase.md": "fda2361739e511ee",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "414db4dbea97ba44",
"gsd-core/workflows/settings-integrations.md": "effcef778d4a855f",
"gsd-core/workflows/settings.md": "85ceb482dc713169",
"gsd-core/workflows/ship.md": "69abfd9013f0f207",
"gsd-core/workflows/ship.md": "65a7fd84d4657a5e",
"gsd-core/workflows/sketch-wrap-up.md": "b767a1d3db129a8a",
"gsd-core/workflows/sketch.md": "5f0a7d3640cdff54",
"gsd-core/workflows/smart-entry.md": "004b4060eab97cb9",

View File

@@ -286,18 +286,18 @@
"gsd-core/workflows/add-phase.md": "739e34f6122e1e61",
"gsd-core/workflows/add-tests.md": "582b03df9cb71fe0",
"gsd-core/workflows/add-todo.md": "2ccd1c97a3636c36",
"gsd-core/workflows/ai-integration-phase.md": "be951047fcdf6f67",
"gsd-core/workflows/ai-integration-phase.md": "95afc8120daf3828",
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
"gsd-core/workflows/audit-fix.md": "0085e65548706996",
"gsd-core/workflows/audit-milestone.md": "86c4dcd30648322f",
"gsd-core/workflows/audit-uat.md": "c800099fab1e1c1b",
"gsd-core/workflows/autonomous.md": "6cb0c014f5f56965",
"gsd-core/workflows/autonomous.md": "0757a088361be372",
"gsd-core/workflows/check-todos.md": "527cfab62417c719",
"gsd-core/workflows/cleanup.md": "9d510a45aec81ba1",
"gsd-core/workflows/code-review-fix.md": "2c16f549e4e46553",
"gsd-core/workflows/code-review.md": "5262146d89e12bfa",
"gsd-core/workflows/complete-milestone.md": "9482dadd0f8902d2",
"gsd-core/workflows/debug.md": "5e9ba9e7328902fe",
"gsd-core/workflows/debug.md": "c1ea3f073fca8777",
"gsd-core/workflows/diagnose-issues.md": "1e7c760973276b57",
"gsd-core/workflows/discovery-phase.md": "0ef23f38adfb0e6e",
"gsd-core/workflows/discuss-phase-assumptions.md": "c59dc0a63fb83b46",
@@ -318,7 +318,7 @@
"gsd-core/workflows/do.md": "532afe82bbf9f775",
"gsd-core/workflows/docs-update.md": "f6210dc8ff7776d5",
"gsd-core/workflows/edit-phase.md": "1876c855fb0a0a39",
"gsd-core/workflows/eval-review.md": "1973f08d0eb34159",
"gsd-core/workflows/eval-review.md": "4f932c3ea3eb807b",
"gsd-core/workflows/execute-phase.md": "78169e590b406fa8",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "a15993affd62f4bf",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "f74ce2de21b2d252",
@@ -358,11 +358,11 @@
"gsd-core/workflows/onboard.md": "ca3a59a2e36b829a",
"gsd-core/workflows/pause-work.md": "70c72beca55c080a",
"gsd-core/workflows/plan-milestone-gaps.md": "0a9dacd422cd9533",
"gsd-core/workflows/plan-phase.md": "8cc195c679a9349a",
"gsd-core/workflows/plan-phase.md": "e6004345ec4c8129",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "3a09141de7f3dedb",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "e9de7a96bbfff261",
"gsd-core/workflows/plan-review-convergence.md": "f91c297dce1253a2",
"gsd-core/workflows/plan-review-convergence.md": "216a41c2c24844f7",
"gsd-core/workflows/plant-seed.md": "ac8bbe2d9d52f2c1",
"gsd-core/workflows/pr-branch.md": "929b7cb0c99c7b9e",
"gsd-core/workflows/profile-user.md": "9275d5895237b801",
@@ -372,14 +372,14 @@
"gsd-core/workflows/remove-phase.md": "dea4661e8f89596f",
"gsd-core/workflows/remove-workspace.md": "21a8581add5f31ae",
"gsd-core/workflows/resume-project.md": "ad9f06a10bab8cc0",
"gsd-core/workflows/review.md": "65770618edc68d3f",
"gsd-core/workflows/review.md": "1b3bf694dcace23e",
"gsd-core/workflows/scan.md": "cbfb79df855e5e61",
"gsd-core/workflows/secure-phase.md": "ef09f40dfd4d2424",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "252b0d3edc315339",
"gsd-core/workflows/settings-integrations.md": "1c3997dc6953e7eb",
"gsd-core/workflows/settings.md": "a244850ce2f7b8dd",
"gsd-core/workflows/ship.md": "8c78011cb1597092",
"gsd-core/workflows/ship.md": "0476cabbfb2d9be3",
"gsd-core/workflows/sketch-wrap-up.md": "681800323681c5c6",
"gsd-core/workflows/sketch.md": "da82c9be7074545c",
"gsd-core/workflows/smart-entry.md": "c4c780d3aa2124f8",

View File

@@ -182,18 +182,18 @@
"gsd-core/workflows/add-phase.md": "ac43883e2d8e34d8",
"gsd-core/workflows/add-tests.md": "7e7268602f9e1b2a",
"gsd-core/workflows/add-todo.md": "5dc04cfaa0b6b072",
"gsd-core/workflows/ai-integration-phase.md": "0d6d7183ae189fbe",
"gsd-core/workflows/ai-integration-phase.md": "308378c9044a52e1",
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
"gsd-core/workflows/audit-fix.md": "7650bcb334e622a6",
"gsd-core/workflows/audit-milestone.md": "2beceadd10d8d9b1",
"gsd-core/workflows/audit-uat.md": "fcfbec501620b564",
"gsd-core/workflows/autonomous.md": "7e5683728ef33707",
"gsd-core/workflows/autonomous.md": "aed5e67104346cc2",
"gsd-core/workflows/check-todos.md": "c484e472cff0e4e3",
"gsd-core/workflows/cleanup.md": "df79d1dc7b84d736",
"gsd-core/workflows/code-review-fix.md": "5c4fe9921dcd9939",
"gsd-core/workflows/code-review.md": "926565c83e9b9f67",
"gsd-core/workflows/complete-milestone.md": "8f98d7b05793cf4a",
"gsd-core/workflows/debug.md": "35b63fca942d3e7d",
"gsd-core/workflows/debug.md": "b2232823c619cc63",
"gsd-core/workflows/diagnose-issues.md": "324b8a085cdb07e2",
"gsd-core/workflows/discovery-phase.md": "0aa8d8d872b53858",
"gsd-core/workflows/discuss-phase-assumptions.md": "cbc8ea4ddc4553fb",
@@ -214,7 +214,7 @@
"gsd-core/workflows/do.md": "90df4f1fe248cdf3",
"gsd-core/workflows/docs-update.md": "a320371be70f43d8",
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
"gsd-core/workflows/eval-review.md": "32d3d7e80ab2bfc7",
"gsd-core/workflows/eval-review.md": "c2933259ff7fb6ac",
"gsd-core/workflows/execute-phase.md": "4eddcc41c823db8b",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "f7782680c2b8ad6b",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "ab70374e44eb85cd",
@@ -254,11 +254,11 @@
"gsd-core/workflows/onboard.md": "f29c4fbef3b473fd",
"gsd-core/workflows/pause-work.md": "f2b33bba5593d422",
"gsd-core/workflows/plan-milestone-gaps.md": "852f6d7c0c4299dc",
"gsd-core/workflows/plan-phase.md": "4c9670c21445ef15",
"gsd-core/workflows/plan-phase.md": "1044f21a80a6ddc6",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "49f58c3f75be3eb5",
"gsd-core/workflows/plan-review-convergence.md": "1c31d4905c1556c8",
"gsd-core/workflows/plan-review-convergence.md": "db69460dd4df0d29",
"gsd-core/workflows/plant-seed.md": "9596db80ab282c6f",
"gsd-core/workflows/pr-branch.md": "c87db7ac8c28be1b",
"gsd-core/workflows/profile-user.md": "e5c0e0a0dc54dccb",
@@ -268,14 +268,14 @@
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
"gsd-core/workflows/remove-workspace.md": "f67860c795fb4bfe",
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
"gsd-core/workflows/review.md": "cc0125d717a29c25",
"gsd-core/workflows/review.md": "0e440626c82bd1d9",
"gsd-core/workflows/scan.md": "e1c12d542e61720d",
"gsd-core/workflows/secure-phase.md": "fda2361739e511ee",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "414db4dbea97ba44",
"gsd-core/workflows/settings-integrations.md": "effcef778d4a855f",
"gsd-core/workflows/settings.md": "85ceb482dc713169",
"gsd-core/workflows/ship.md": "69abfd9013f0f207",
"gsd-core/workflows/ship.md": "65a7fd84d4657a5e",
"gsd-core/workflows/sketch-wrap-up.md": "838c701bd072ae73",
"gsd-core/workflows/sketch.md": "70df86d9d8eeba0f",
"gsd-core/workflows/smart-entry.md": "004b4060eab97cb9",

View File

@@ -215,18 +215,18 @@
"gsd-core/workflows/add-phase.md": "395fb0f9f0385073",
"gsd-core/workflows/add-tests.md": "1f95484dbcd26015",
"gsd-core/workflows/add-todo.md": "38dc89ce5080120f",
"gsd-core/workflows/ai-integration-phase.md": "6b6cdfae4c2e9968",
"gsd-core/workflows/ai-integration-phase.md": "81f16f3b6d5ef91a",
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
"gsd-core/workflows/audit-fix.md": "7228bc0ab0c21c75",
"gsd-core/workflows/audit-milestone.md": "5caebfe62a70c0ae",
"gsd-core/workflows/audit-uat.md": "97d441d07e7972b3",
"gsd-core/workflows/autonomous.md": "3014ff90115f0daf",
"gsd-core/workflows/autonomous.md": "edd128e7fcbc2027",
"gsd-core/workflows/check-todos.md": "dbc9c401c0922d92",
"gsd-core/workflows/cleanup.md": "48aa7291ace5d413",
"gsd-core/workflows/code-review-fix.md": "085c9fc820114060",
"gsd-core/workflows/code-review.md": "5a374f27e65b1f11",
"gsd-core/workflows/complete-milestone.md": "69925bcfd955d31e",
"gsd-core/workflows/debug.md": "737784dab3f4eba3",
"gsd-core/workflows/debug.md": "80af3825ce0e3279",
"gsd-core/workflows/diagnose-issues.md": "2ae0a1917a9a8a99",
"gsd-core/workflows/discovery-phase.md": "6ad9da4779d7b6b0",
"gsd-core/workflows/discuss-phase-assumptions.md": "59e306227f2fe6a2",
@@ -247,7 +247,7 @@
"gsd-core/workflows/do.md": "2e784b2d6a02ea94",
"gsd-core/workflows/docs-update.md": "226550a6d556b09f",
"gsd-core/workflows/edit-phase.md": "0fb5e0123cfc6f36",
"gsd-core/workflows/eval-review.md": "88431952699d9fa6",
"gsd-core/workflows/eval-review.md": "57a5eaade256fee4",
"gsd-core/workflows/execute-phase.md": "da1e79f7407090a9",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "0e0949db56deebeb",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "2ca3c7397d44613f",
@@ -287,11 +287,11 @@
"gsd-core/workflows/onboard.md": "0f0af11294d31715",
"gsd-core/workflows/pause-work.md": "be33f84dc1d4822f",
"gsd-core/workflows/plan-milestone-gaps.md": "d98e98486123eb97",
"gsd-core/workflows/plan-phase.md": "4ba6968762e95ac6",
"gsd-core/workflows/plan-phase.md": "ae220eaa7d90e137",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "c22ff5ea46de665a",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "d050d8d551ed1756",
"gsd-core/workflows/plan-review-convergence.md": "7b887180677f11ac",
"gsd-core/workflows/plan-review-convergence.md": "0b3451886cd307c3",
"gsd-core/workflows/plant-seed.md": "6b7375b5d52be7c7",
"gsd-core/workflows/pr-branch.md": "cef0f65b16d500b4",
"gsd-core/workflows/profile-user.md": "bb02367a5fc8653c",
@@ -301,14 +301,14 @@
"gsd-core/workflows/remove-phase.md": "e8ae4fbbfac700f0",
"gsd-core/workflows/remove-workspace.md": "ae520235f4d1f4a5",
"gsd-core/workflows/resume-project.md": "7f20769f302e5427",
"gsd-core/workflows/review.md": "0c0037cacbee532f",
"gsd-core/workflows/review.md": "7412a3b9ff1b0291",
"gsd-core/workflows/scan.md": "b7efd0d381a3b8a5",
"gsd-core/workflows/secure-phase.md": "f7bfa7175102af31",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "5e05212fb5cba531",
"gsd-core/workflows/settings-integrations.md": "c9fb71d26fd93527",
"gsd-core/workflows/settings.md": "83a13de5926ead14",
"gsd-core/workflows/ship.md": "abd52f1aebca6128",
"gsd-core/workflows/ship.md": "c60788a84581ac11",
"gsd-core/workflows/sketch-wrap-up.md": "89e0eab2af946b04",
"gsd-core/workflows/sketch.md": "6e68bbff5c1e6db0",
"gsd-core/workflows/smart-entry.md": "072ac6efe8aafc38",

View File

@@ -215,18 +215,18 @@
"gsd-core/workflows/add-phase.md": "7403cf0bc93a9699",
"gsd-core/workflows/add-tests.md": "0eb1496a1afdff33",
"gsd-core/workflows/add-todo.md": "bc8dcc0faf1e46f8",
"gsd-core/workflows/ai-integration-phase.md": "a94affaaeba7a2c2",
"gsd-core/workflows/ai-integration-phase.md": "a45f85a616295092",
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
"gsd-core/workflows/audit-fix.md": "04ca2d8293c07725",
"gsd-core/workflows/audit-milestone.md": "bb5d1831ce8635b5",
"gsd-core/workflows/audit-uat.md": "6e768b1c208a787a",
"gsd-core/workflows/autonomous.md": "c482645c5d1ead46",
"gsd-core/workflows/autonomous.md": "e7702a642488473e",
"gsd-core/workflows/check-todos.md": "31a2b2a5a28a409a",
"gsd-core/workflows/cleanup.md": "ad625e9596e04cda",
"gsd-core/workflows/code-review-fix.md": "1d178e04d0cda764",
"gsd-core/workflows/code-review.md": "49161f95934679d5",
"gsd-core/workflows/complete-milestone.md": "98951eb5783fe72c",
"gsd-core/workflows/debug.md": "e94e12fc47107af5",
"gsd-core/workflows/debug.md": "7092bcfbb0b05fe0",
"gsd-core/workflows/diagnose-issues.md": "207dcdb85650d239",
"gsd-core/workflows/discovery-phase.md": "7644e2d890a21212",
"gsd-core/workflows/discuss-phase-assumptions.md": "0c185a487ce7a202",
@@ -247,7 +247,7 @@
"gsd-core/workflows/do.md": "6b56aa4a44ca61fc",
"gsd-core/workflows/docs-update.md": "89e760e665ff99f8",
"gsd-core/workflows/edit-phase.md": "7facd0faa33c8cad",
"gsd-core/workflows/eval-review.md": "90a29a4fa0cdd947",
"gsd-core/workflows/eval-review.md": "263c8971520f632e",
"gsd-core/workflows/execute-phase.md": "67f3aaa7eae674e2",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "296b812e8d0e9ce8",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "c1d6db937a51d433",
@@ -287,11 +287,11 @@
"gsd-core/workflows/onboard.md": "015695a7e9cf59bc",
"gsd-core/workflows/pause-work.md": "c20d267e28ce92f0",
"gsd-core/workflows/plan-milestone-gaps.md": "26db7b9329b7ddc8",
"gsd-core/workflows/plan-phase.md": "199e9ac7147cdafb",
"gsd-core/workflows/plan-phase.md": "89eb12b0d0561bcc",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "e06ccd4d4c0703fb",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "778b73a8db6f7c32",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "619946c879f33b9d",
"gsd-core/workflows/plan-review-convergence.md": "610d816af89b1b16",
"gsd-core/workflows/plan-review-convergence.md": "ce4685ee46d343d2",
"gsd-core/workflows/plant-seed.md": "622f246ea8e163fa",
"gsd-core/workflows/pr-branch.md": "79fd55b88ea2db9c",
"gsd-core/workflows/profile-user.md": "aa0737531d487f10",
@@ -301,14 +301,14 @@
"gsd-core/workflows/remove-phase.md": "a46c2fe853bf4e86",
"gsd-core/workflows/remove-workspace.md": "8ddc5f04f7c48d6c",
"gsd-core/workflows/resume-project.md": "f242e4c8aba18ea2",
"gsd-core/workflows/review.md": "db77e672b2312bba",
"gsd-core/workflows/review.md": "96deafef432bef80",
"gsd-core/workflows/scan.md": "3b14bcb51d3a4de8",
"gsd-core/workflows/secure-phase.md": "267393d5b02b5334",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "39e66386f6c48025",
"gsd-core/workflows/settings-integrations.md": "8bb1c2bdebbc56e6",
"gsd-core/workflows/settings.md": "db6121276c6f63a4",
"gsd-core/workflows/ship.md": "2a03bf15d123106d",
"gsd-core/workflows/ship.md": "c6f64de23299425c",
"gsd-core/workflows/sketch-wrap-up.md": "dbec602d104cb951",
"gsd-core/workflows/sketch.md": "6a6e543f2b667278",
"gsd-core/workflows/smart-entry.md": "5631e2e70b02abba",

View File

@@ -215,18 +215,18 @@
"gsd-core/workflows/add-phase.md": "78cca7f86793f7f8",
"gsd-core/workflows/add-tests.md": "4a244c69af35ede3",
"gsd-core/workflows/add-todo.md": "21cdcf699aac8c64",
"gsd-core/workflows/ai-integration-phase.md": "ead319c879215ec7",
"gsd-core/workflows/ai-integration-phase.md": "eab19bf009d39266",
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
"gsd-core/workflows/audit-fix.md": "fd8ba9db9c56dd81",
"gsd-core/workflows/audit-milestone.md": "4737b1e182366d2f",
"gsd-core/workflows/audit-uat.md": "d496e39402e160de",
"gsd-core/workflows/autonomous.md": "fe7bb7c978f305a2",
"gsd-core/workflows/autonomous.md": "c6638fb24a9f9024",
"gsd-core/workflows/check-todos.md": "c72eec15c87fa877",
"gsd-core/workflows/cleanup.md": "da44b987853e1a74",
"gsd-core/workflows/code-review-fix.md": "d019b6339f25c95c",
"gsd-core/workflows/code-review.md": "5bd0d7e7a5dad521",
"gsd-core/workflows/complete-milestone.md": "3324ec6da5856f21",
"gsd-core/workflows/debug.md": "e6237b0cecfb8fdc",
"gsd-core/workflows/debug.md": "e6e1b5963b969eb8",
"gsd-core/workflows/diagnose-issues.md": "3991fb0ec18050e2",
"gsd-core/workflows/discovery-phase.md": "313c3a5213449309",
"gsd-core/workflows/discuss-phase-assumptions.md": "b065ff2ee57fe847",
@@ -247,7 +247,7 @@
"gsd-core/workflows/do.md": "c2ee0bb845bc1cf1",
"gsd-core/workflows/docs-update.md": "6bd25d0123ee6c73",
"gsd-core/workflows/edit-phase.md": "c0ae7d0063f3e789",
"gsd-core/workflows/eval-review.md": "713de00ea5326988",
"gsd-core/workflows/eval-review.md": "26051580110e6217",
"gsd-core/workflows/execute-phase.md": "043544b7a948cae5",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "3194ecd382690755",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "becb931701890353",
@@ -287,11 +287,11 @@
"gsd-core/workflows/onboard.md": "7d0c7449b84c7997",
"gsd-core/workflows/pause-work.md": "93fcc1c845da6396",
"gsd-core/workflows/plan-milestone-gaps.md": "7880866ee1caf923",
"gsd-core/workflows/plan-phase.md": "a47b8a4e649fbc14",
"gsd-core/workflows/plan-phase.md": "746b22884b1dda55",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "e06ccd4d4c0703fb",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "80b1ba493a9a967f",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "3fed4740a91d0443",
"gsd-core/workflows/plan-review-convergence.md": "27dcce3dbca22e3d",
"gsd-core/workflows/plan-review-convergence.md": "d9700b18dfb71452",
"gsd-core/workflows/plant-seed.md": "caa8fef75821b24c",
"gsd-core/workflows/pr-branch.md": "acd59f915d018ad4",
"gsd-core/workflows/profile-user.md": "33b150468a6789db",
@@ -301,14 +301,14 @@
"gsd-core/workflows/remove-phase.md": "e7a6af429b36e77b",
"gsd-core/workflows/remove-workspace.md": "30ca05fe4a3efc25",
"gsd-core/workflows/resume-project.md": "82cfe1b8cb17c085",
"gsd-core/workflows/review.md": "8e345b36846e11e3",
"gsd-core/workflows/review.md": "2d067a516e323db9",
"gsd-core/workflows/scan.md": "4a910da5e34f2685",
"gsd-core/workflows/secure-phase.md": "d5d811bc468ce7f2",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "2f86ec7b998f9485",
"gsd-core/workflows/settings-integrations.md": "159d0ae32b511129",
"gsd-core/workflows/settings.md": "26fff45b86d827aa",
"gsd-core/workflows/ship.md": "91942daa93056112",
"gsd-core/workflows/ship.md": "aa9adf13460077cf",
"gsd-core/workflows/sketch-wrap-up.md": "10063f56c2c7f141",
"gsd-core/workflows/sketch.md": "c15716376df41c97",
"gsd-core/workflows/smart-entry.md": "3fed94530109124b",

View File

@@ -286,18 +286,18 @@
"gsd-core/workflows/add-phase.md": "ac43883e2d8e34d8",
"gsd-core/workflows/add-tests.md": "7e7268602f9e1b2a",
"gsd-core/workflows/add-todo.md": "5dc04cfaa0b6b072",
"gsd-core/workflows/ai-integration-phase.md": "0d6d7183ae189fbe",
"gsd-core/workflows/ai-integration-phase.md": "308378c9044a52e1",
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
"gsd-core/workflows/audit-fix.md": "7650bcb334e622a6",
"gsd-core/workflows/audit-milestone.md": "2beceadd10d8d9b1",
"gsd-core/workflows/audit-uat.md": "fcfbec501620b564",
"gsd-core/workflows/autonomous.md": "7e5683728ef33707",
"gsd-core/workflows/autonomous.md": "aed5e67104346cc2",
"gsd-core/workflows/check-todos.md": "c484e472cff0e4e3",
"gsd-core/workflows/cleanup.md": "df79d1dc7b84d736",
"gsd-core/workflows/code-review-fix.md": "5c4fe9921dcd9939",
"gsd-core/workflows/code-review.md": "926565c83e9b9f67",
"gsd-core/workflows/complete-milestone.md": "8f98d7b05793cf4a",
"gsd-core/workflows/debug.md": "35b63fca942d3e7d",
"gsd-core/workflows/debug.md": "b2232823c619cc63",
"gsd-core/workflows/diagnose-issues.md": "9a1591d7b17ed778",
"gsd-core/workflows/discovery-phase.md": "0aa8d8d872b53858",
"gsd-core/workflows/discuss-phase-assumptions.md": "cbc8ea4ddc4553fb",
@@ -318,7 +318,7 @@
"gsd-core/workflows/do.md": "90df4f1fe248cdf3",
"gsd-core/workflows/docs-update.md": "a320371be70f43d8",
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
"gsd-core/workflows/eval-review.md": "32d3d7e80ab2bfc7",
"gsd-core/workflows/eval-review.md": "c2933259ff7fb6ac",
"gsd-core/workflows/execute-phase.md": "1fb281c6e0511e2a",
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "f7782680c2b8ad6b",
"gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md": "ab70374e44eb85cd",
@@ -358,11 +358,11 @@
"gsd-core/workflows/onboard.md": "f29c4fbef3b473fd",
"gsd-core/workflows/pause-work.md": "f2b33bba5593d422",
"gsd-core/workflows/plan-milestone-gaps.md": "852f6d7c0c4299dc",
"gsd-core/workflows/plan-phase.md": "c5ef714f47d857dc",
"gsd-core/workflows/plan-phase.md": "c0a589a39100d6f8",
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072",
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2",
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "49f58c3f75be3eb5",
"gsd-core/workflows/plan-review-convergence.md": "1c31d4905c1556c8",
"gsd-core/workflows/plan-review-convergence.md": "db69460dd4df0d29",
"gsd-core/workflows/plant-seed.md": "9596db80ab282c6f",
"gsd-core/workflows/pr-branch.md": "c87db7ac8c28be1b",
"gsd-core/workflows/profile-user.md": "74005f062c870393",
@@ -372,14 +372,14 @@
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
"gsd-core/workflows/remove-workspace.md": "f67860c795fb4bfe",
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
"gsd-core/workflows/review.md": "cc0125d717a29c25",
"gsd-core/workflows/review.md": "0e440626c82bd1d9",
"gsd-core/workflows/scan.md": "e1c12d542e61720d",
"gsd-core/workflows/secure-phase.md": "fda2361739e511ee",
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
"gsd-core/workflows/settings-advanced.md": "414db4dbea97ba44",
"gsd-core/workflows/settings-integrations.md": "effcef778d4a855f",
"gsd-core/workflows/settings.md": "85ceb482dc713169",
"gsd-core/workflows/ship.md": "69abfd9013f0f207",
"gsd-core/workflows/ship.md": "65a7fd84d4657a5e",
"gsd-core/workflows/sketch-wrap-up.md": "86db87b16548117e",
"gsd-core/workflows/sketch.md": "fcd52f8d9076e183",
"gsd-core/workflows/smart-entry.md": "004b4060eab97cb9",

View File

@@ -3,18 +3,18 @@
"add-phase.md": 7578,
"add-tests.md": 17247,
"add-todo.md": 11020,
"ai-integration-phase.md": 15420,
"ai-integration-phase.md": 15356,
"analyze-dependencies.md": 3887,
"audit-fix.md": 12329,
"audit-milestone.md": 19034,
"audit-uat.md": 7469,
"autonomous.md": 42474,
"autonomous.md": 42468,
"check-todos.md": 9771,
"cleanup.md": 10319,
"code-review-fix.md": 24906,
"code-review.md": 33110,
"complete-milestone.md": 31436,
"debug.md": 20253,
"debug.md": 20175,
"diagnose-issues.md": 13444,
"discovery-phase.md": 13543,
"discuss-phase-assumptions.md": 28253,
@@ -23,7 +23,7 @@
"do.md": 10731,
"docs-update.md": 56494,
"edit-phase.md": 12927,
"eval-review.md": 10332,
"eval-review.md": 10316,
"execute-phase.md": 90143,
"execute-plan.md": 35143,
"explore.md": 11127,
@@ -53,8 +53,8 @@
"onboard.md": 8877,
"pause-work.md": 14441,
"plan-milestone-gaps.md": 11809,
"plan-phase.md": 94445,
"plan-review-convergence.md": 26285,
"plan-phase.md": 94427,
"plan-review-convergence.md": 26363,
"plant-seed.md": 12150,
"pr-branch.md": 15963,
"profile-user.md": 21624,
@@ -64,14 +64,14 @@
"remove-phase.md": 8513,
"remove-workspace.md": 7916,
"resume-project.md": 17270,
"review.md": 52964,
"review.md": 54036,
"scan.md": 8314,
"secure-phase.md": 14627,
"session-report.md": 4044,
"settings-advanced.md": 40019,
"settings-integrations.md": 16257,
"settings.md": 33832,
"ship.md": 29367,
"ship.md": 29834,
"sketch-wrap-up.md": 14267,
"sketch.md": 20369,
"smart-entry.md": 11489,