diff --git a/.changeset/2589-config-get-no-jq.md b/.changeset/2589-config-get-no-jq.md new file mode 100644 index 000000000..507a92acd --- /dev/null +++ b/.changeset/2589-config-get-no-jq.md @@ -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 || `, 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) diff --git a/docs/COMMANDS.md b/docs/COMMANDS.md index a5798ca05..ab019c9e7 100644 --- a/docs/COMMANDS.md +++ b/docs/COMMANDS.md @@ -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"]`). diff --git a/gsd-core/workflows/ai-integration-phase.md b/gsd-core/workflows/ai-integration-phase.md index 742c704a4..2351ee4ae 100644 --- a/gsd-core/workflows/ai-integration-phase.md +++ b/gsd-core/workflows/ai-integration-phase.md @@ -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: diff --git a/gsd-core/workflows/autonomous.md b/gsd-core/workflows/autonomous.md index 958ac94e7..7a4f91c93 100644 --- a/gsd-core/workflows/autonomous.md +++ b/gsd-core/workflows/autonomous.md @@ -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. diff --git a/gsd-core/workflows/debug.md b/gsd-core/workflows/debug.md index 99943ff80..3eef7b474 100644 --- a/gsd-core/workflows/debug.md +++ b/gsd-core/workflows/debug.md @@ -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 diff --git a/gsd-core/workflows/eval-review.md b/gsd-core/workflows/eval-review.md index 70aeeea0d..c2577fed1 100644 --- a/gsd-core/workflows/eval-review.md +++ b/gsd-core/workflows/eval-review.md @@ -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) ``` diff --git a/gsd-core/workflows/plan-phase.md b/gsd-core/workflows/plan-phase.md index c3136c29a..8d446b4e7 100644 --- a/gsd-core/workflows/plan-phase.md +++ b/gsd-core/workflows/plan-phase.md @@ -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: diff --git a/gsd-core/workflows/plan-review-convergence.md b/gsd-core/workflows/plan-review-convergence.md index 396032e1e..6ddcd83bc 100644 --- a/gsd-core/workflows/plan-review-convergence.md +++ b/gsd-core/workflows/plan-review-convergence.md @@ -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 diff --git a/gsd-core/workflows/review.md b/gsd-core/workflows/review.md index 45c9c8bb5..410a0e892 100644 --- a/gsd-core/workflows/review.md +++ b/gsd-core/workflows/review.md @@ -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 diff --git a/gsd-core/workflows/ship.md b/gsd-core/workflows/ship.md index ed7b2ebbe..d739c514c 100644 --- a/gsd-core/workflows/ship.md +++ b/gsd-core/workflows/ship.md @@ -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: diff --git a/tests/autonomous-converge.test.cjs b/tests/autonomous-converge.test.cjs index ca398e70b..95a3e34cb 100644 --- a/tests/autonomous-converge.test.cjs +++ b/tests/autonomous-converge.test.cjs @@ -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, diff --git a/tests/fix-2589-workflow-jq-dependency.test.cjs b/tests/fix-2589-workflow-jq-dependency.test.cjs new file mode 100644 index 000000000..e866cbfd7 --- /dev/null +++ b/tests/fix-2589-workflow-jq-dependency.test.cjs @@ -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 … | jq … 2>/dev/null || ` 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 --raw (strips JSON quotes off a scalar) + * resolve-model --pick model (descends an object) + * verification.status --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 ... | 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 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 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)})`, + ); + } + }); +}); diff --git a/tests/fixtures/golden-install-parity/antigravity.json b/tests/fixtures/golden-install-parity/antigravity.json index f3827ef42..b2df66e25 100644 --- a/tests/fixtures/golden-install-parity/antigravity.json +++ b/tests/fixtures/golden-install-parity/antigravity.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/augment.json b/tests/fixtures/golden-install-parity/augment.json index 96f5968f5..28fe28801 100644 --- a/tests/fixtures/golden-install-parity/augment.json +++ b/tests/fixtures/golden-install-parity/augment.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/claude-local.json b/tests/fixtures/golden-install-parity/claude-local.json index e508c8acf..436eee65b 100644 --- a/tests/fixtures/golden-install-parity/claude-local.json +++ b/tests/fixtures/golden-install-parity/claude-local.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/claude.json b/tests/fixtures/golden-install-parity/claude.json index c5e737b05..737e39f10 100644 --- a/tests/fixtures/golden-install-parity/claude.json +++ b/tests/fixtures/golden-install-parity/claude.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/cline.json b/tests/fixtures/golden-install-parity/cline.json index b7d9fc472..72f476b38 100644 --- a/tests/fixtures/golden-install-parity/cline.json +++ b/tests/fixtures/golden-install-parity/cline.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/codebuddy.json b/tests/fixtures/golden-install-parity/codebuddy.json index a9df20ed4..a84e188e8 100644 --- a/tests/fixtures/golden-install-parity/codebuddy.json +++ b/tests/fixtures/golden-install-parity/codebuddy.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/codex.json b/tests/fixtures/golden-install-parity/codex.json index 1f6199621..37455cefa 100644 --- a/tests/fixtures/golden-install-parity/codex.json +++ b/tests/fixtures/golden-install-parity/codex.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/copilot.json b/tests/fixtures/golden-install-parity/copilot.json index 4bb5d3df9..d63f047a6 100644 --- a/tests/fixtures/golden-install-parity/copilot.json +++ b/tests/fixtures/golden-install-parity/copilot.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/cursor.json b/tests/fixtures/golden-install-parity/cursor.json index 76a4cfe71..e002fbc20 100644 --- a/tests/fixtures/golden-install-parity/cursor.json +++ b/tests/fixtures/golden-install-parity/cursor.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/hermes.json b/tests/fixtures/golden-install-parity/hermes.json index 94805fff5..74292e9d9 100644 --- a/tests/fixtures/golden-install-parity/hermes.json +++ b/tests/fixtures/golden-install-parity/hermes.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/kilo.json b/tests/fixtures/golden-install-parity/kilo.json index d6f947e8b..e399017e5 100644 --- a/tests/fixtures/golden-install-parity/kilo.json +++ b/tests/fixtures/golden-install-parity/kilo.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/kimi-code.json b/tests/fixtures/golden-install-parity/kimi-code.json index 82d95d75d..44147e7f3 100644 --- a/tests/fixtures/golden-install-parity/kimi-code.json +++ b/tests/fixtures/golden-install-parity/kimi-code.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/kimi.json b/tests/fixtures/golden-install-parity/kimi.json index 20edb907e..4b8489575 100644 --- a/tests/fixtures/golden-install-parity/kimi.json +++ b/tests/fixtures/golden-install-parity/kimi.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/opencode.json b/tests/fixtures/golden-install-parity/opencode.json index 4bf370b70..fef9dbd01 100644 --- a/tests/fixtures/golden-install-parity/opencode.json +++ b/tests/fixtures/golden-install-parity/opencode.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/pi.json b/tests/fixtures/golden-install-parity/pi.json index ec1246631..1e393030c 100644 --- a/tests/fixtures/golden-install-parity/pi.json +++ b/tests/fixtures/golden-install-parity/pi.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/qwen.json b/tests/fixtures/golden-install-parity/qwen.json index 72e11227e..0bc745ed7 100644 --- a/tests/fixtures/golden-install-parity/qwen.json +++ b/tests/fixtures/golden-install-parity/qwen.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/trae.json b/tests/fixtures/golden-install-parity/trae.json index ac49b0e59..99ee46c34 100644 --- a/tests/fixtures/golden-install-parity/trae.json +++ b/tests/fixtures/golden-install-parity/trae.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/windsurf.json b/tests/fixtures/golden-install-parity/windsurf.json index 695c3f9c8..5a37a1851 100644 --- a/tests/fixtures/golden-install-parity/windsurf.json +++ b/tests/fixtures/golden-install-parity/windsurf.json @@ -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", diff --git a/tests/fixtures/golden-install-parity/zcode.json b/tests/fixtures/golden-install-parity/zcode.json index c9a67bce2..fb57cd52d 100644 --- a/tests/fixtures/golden-install-parity/zcode.json +++ b/tests/fixtures/golden-install-parity/zcode.json @@ -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", diff --git a/tests/workflow-size-baseline.json b/tests/workflow-size-baseline.json index 424971eb3..7e7c82fad 100644 --- a/tests/workflow-size-baseline.json +++ b/tests/workflow-size-baseline.json @@ -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,