* fix(#2589): use --raw/--pick for config/model/verify lookups, drop jq dep The reviewer/workflow config lookups resolved scalars and object fields with a `gsd_run query <cmd> … | jq … 2>/dev/null || <default>` shape. On any machine without jq (the default on Windows/Git-Bash) the jq stage fails with exit 127, the failure is swallowed by 2>/dev/null + the trailing || default, and the variable comes back EMPTY — the configured per-lane model/host/budget is silently dropped and the lane falls back to CLI defaults with no diagnostic. gsd-tools ships native flags that do the same job with no external dep: config-get <key> --raw (strips JSON quotes off a scalar) resolve-model <id> --pick model (descends an object) resolve-execution … --pick <f> (same) verification.status … --pick status Replaced every jq-piped config/model/verify lookup across review.md (×23), plan-phase.md, ship.md, debug.md (incl. the redundant boolean coercion — --raw returns true/false as bare tokens natively), autonomous.md (×2), ai-integration-phase.md (×4), and eval-review.md. The legitimate structured-JSON jq sites that parse HTTP curl responses (.choices[0], jq -rs, jq -n --rawfile) are untouched — only the jq-replaceable lookups moved to the native flags. Adds tests/fix-2589-config-get-no-jq.test.cjs: a source-invariant guard asserting no audited workflow pipes config-get/resolve-model/resolve-execution/verification.status to jq (fails-first on the pre-fix text, passes after). * test(#2589): update autonomous-converge jq assertion to --pick; regen golden fixtures Two test consequences of the workflow-doc edits in the prior commit: 1. tests/autonomous-converge.test.cjs pinned the OLD jq-dependent shape (`verification.status … | jq -r '.status//empty'`) as the canonical routing contract. The test's INTENT is correct (route human validation through canonical verification.status) but it over-specified the MECHANISM (the jq pipe). Updated the assertion to match the new native --pick status shape; the contract being guarded (canonical verification.status read before the human_needed branch) is unchanged. 2. The golden-install-parity fixtures (19 runtimes) record a content hash of every installed workflow .md; the 7 edited workflows changed those hashes. Regenerated via `npm run gen:golden` (the test's own failure message instructs this). Only the 7 edited workflow hashes changed in each fixture. * fix(#2589): declare jq a prerequisite for the lanes that still need it; repair test file Three defects in the first cut of the #2589 fix: 1. tests/autonomous-converge.test.cjs was a JavaScript syntax error. The regex literal /...2>\/dev/null .../ left the second slash unescaped, terminating the literal early and parsing `null` as regex flags: SyntaxError: Invalid regular expression flags The whole file failed to load, so every assertion in it — including the #1522 and #1526 guards — silently stopped running. Replaced with the string-compare form already used at line 202 for the sibling shell-snippet assertion. 2. lint:ci failed. tests/fix-2589-config-get-no-jq.test.cjs buckets into the capped `config` production module via its `config-get-...` effective prefix, making it a novel offender against the 2-file cap. The test is about workflow documents, not the config module, so it is renamed to fix-2589-workflow-jq-dependency.test.cjs (free prefix) rather than growing the allowlist with a module that does not actually need a 5th test file. 3. The fix deleted the repo's only jq-prerequisite declaration. review.md:244 ("install jq if missing") was the anchor plan-review-convergence.md cites by line number, and it went away with the jq pipes — while the ollama, lm_studio, llama_cpp, opencode, and agy lanes still hard-require jq to parse HTTP /v1/chat/completions responses, opencode's JSONL event stream, and agy's conversation cache. On a jq-less host those five lanes swallow exit 127 into empty output: the same silent-degradation class #2589 exists to close. detect_clis now probes jq alongside the other prerequisites and emits jq:available / jq:missing, and the five dependent lanes are treated as undetected when it is absent, with an install hint. The six lanes that do not need jq stay selectable. plan-review-convergence.md now cites the section by name instead of a line number that moves. Regression guards added to the renamed test file: review.md must keep the jq probe and must name all five dependent lanes, and no workflow may cite review.md by line number. Workflow-size baseline and the 19 install-parity goldens regenerated for the review.md / plan-review-convergence.md edits. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015TCwhbMuY37DzRMCfzTABJ * fix(#2589): decide the ship verification gate on a single verification.status read Isolated review finding (medium). Pre-fix, ship.md captured verification.status ONCE into $VERIFICATION and picked status / next_action / next_command off that cached JSON with three jq calls. --pick takes a single dot-path field, so the mechanical conversion issued three separate queries up front: three node spawns that each re-read the phase VERIFICATION.md and re-derive the commit-time vs mtime staleness comparison, on every ship — including the common passing path that never uses the two message fields. It also meant the gate's verdict and the message shown to the user were derived from three reads with no guarantee they observed the same state. The gate now reads `status` once and decides. The two message-only fields are read on the blocking path only, after PHASE_VERIFICATION_INCOMPLETE is already determined — so the passing path costs one query instead of three, and a concurrent write between reads can no longer make the gate and its message disagree, because the block/allow decision no longer depends on them. Adding a multi-field --pick to gsd-tools would have collapsed this to one query, but that changes the flag's output contract and belongs in its own change. Regression guard in tests/fix-2589-workflow-jq-dependency.test.cjs: ship.md must read verification.status exactly three times total, the block decision must follow the status read, and next_action / next_command must both appear after the blocking prose so they cannot drift back onto the passing path. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015TCwhbMuY37DzRMCfzTABJ * docs(#2589): document the jq prerequisite for the five reviewer lanes that need it /gsd-review's ollama, lm_studio, llama_cpp, opencode, and agy lanes parse JSON GSD does not produce (OpenAI-compatible /v1/chat/completions responses, OpenCode's JSONL event stream, Antigravity's conversation cache), so they require jq on PATH. Nothing in docs/ said so. Records which five lanes need it, which six do not, that reading configured models/hosts/budgets no longer requires jq at all, and what /gsd-review now does when jq is absent. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015TCwhbMuY37DzRMCfzTABJ * chore(#2589): backfill changeset pr number (#2673) --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
5
.changeset/2589-config-get-no-jq.md
Normal file
5
.changeset/2589-config-get-no-jq.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: Fixed
|
||||
pr: 2673
|
||||
---
|
||||
**Reviewer/workflow config lookups no longer silently drop the configured value on machines without `jq`** — `review.md`, `plan-phase.md`, `ship.md`, `debug.md`, `autonomous.md`, `ai-integration-phase.md`, and `eval-review.md` now resolve `config-get` scalars with the native `--raw` flag and `resolve-model` / `resolve-execution` / `verification.status` object fields with `--pick`, instead of piping through `jq`. Previously, on a stock Windows/Git-Bash box with no `jq` on PATH, the `… | jq …` stage failed (exit 127), the failure was swallowed by `2>/dev/null || <default>`, and the configured per-lane model/host/budget came back empty — so the lane fell back to CLI defaults (e.g. `~/.codex/config.toml` instead of the configured `review.models.codex`) with no diagnostic, and the `autonomous.md` verify gate could misroute on an empty status. The legitimate structured-JSON `jq` sites that parse HTTP `curl` responses (`.choices[0]`, `jq -rs`, `jq -n --rawfile`) are untouched — only the jq-replaceable config/model/verify lookups moved to the native flags. Because those sites remain, `/gsd-review` now probes for `jq` up front and reports the `ollama`, `lm_studio`, `llama_cpp`, `opencode`, and `antigravity` lanes as unavailable with an install hint when it is missing, instead of running them into empty output; the `gemini`, `claude`, `codex`, `coderabbit`, `qwen`, and `cursor` lanes stay selectable with no `jq` installed. (#2589)
|
||||
@@ -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"]`).
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
```
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
|
||||
201
tests/fix-2589-workflow-jq-dependency.test.cjs
Normal file
201
tests/fix-2589-workflow-jq-dependency.test.cjs
Normal file
@@ -0,0 +1,201 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* #2589 — config-get / resolve-model / verification.status lookups must not
|
||||
* depend on jq.
|
||||
*
|
||||
* The workflows resolved configured scalars / model ids / verify status with a
|
||||
* `gsd_run query <cmd> … | jq … 2>/dev/null || <default>` shape. On any machine
|
||||
* without jq (the default on Windows / Git-Bash) the jq stage fails with exit
|
||||
* 127, that failure is swallowed by `2>/dev/null` and the trailing `|| default`,
|
||||
* so the variable comes back EMPTY — the configured value is silently dropped
|
||||
* and the lane falls back to CLI defaults with no diagnostic.
|
||||
*
|
||||
* gsd-tools ships native flags that do the same job with no external dep:
|
||||
* config-get <key> --raw (strips JSON quotes off a scalar)
|
||||
* resolve-model <id> --pick model (descends an object)
|
||||
* verification.status <dir> --pick status
|
||||
*
|
||||
* This is a SOURCE-INVARIANT test over the shipped workflow documents: the bug
|
||||
* lives in the workflow text, so the regression guard asserts the jq-dependent
|
||||
* shapes never return. Workflow .md files are runtime-loaded config documents,
|
||||
* so reading them with readFileSync + regex is the sanctioned seam here (the
|
||||
* no-source-grep lint targets src/ + bin/lib/, not config/state docs).
|
||||
*/
|
||||
|
||||
const { describe, test } = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
|
||||
const ROOT = path.join(__dirname, '..');
|
||||
const WF = path.join(ROOT, 'gsd-core', 'workflows');
|
||||
|
||||
// The workflows that #2589 audited. Scoped explicitly so a new workflow
|
||||
// introducing the same smell is caught by the general guard below, while these
|
||||
// known-fixed files are checked for the exact offending shapes.
|
||||
const AUDITED = [
|
||||
'review.md',
|
||||
'plan-phase.md',
|
||||
'ship.md',
|
||||
'debug.md',
|
||||
'autonomous.md',
|
||||
'ai-integration-phase.md',
|
||||
'eval-review.md',
|
||||
];
|
||||
|
||||
function readWorkflow(name) {
|
||||
const p = path.join(WF, name);
|
||||
return fs.existsSync(p) ? fs.readFileSync(p, 'utf-8') : null;
|
||||
}
|
||||
|
||||
describe('#2589: config/model/verify lookups do not depend on jq', () => {
|
||||
test('config-get lookups use --raw, not a jq pipe', () => {
|
||||
// Matches: config-get <key> ... | jq (any key, any jq program).
|
||||
// The native --raw flag strips JSON quotes off a scalar with no jq.
|
||||
const re = /config-get\b[^|\n]*\|\s*jq\b/;
|
||||
for (const name of AUDITED) {
|
||||
const content = readWorkflow(name);
|
||||
if (content == null) continue;
|
||||
const matches = content.match(new RegExp(re.source, 'g'));
|
||||
assert.deepEqual(
|
||||
matches || [],
|
||||
[],
|
||||
`${name}: config-get lookups must use --raw, not a jq pipe (found ${JSON.stringify(matches)})`,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('resolve-model lookups use --pick, not a jq pipe', () => {
|
||||
// resolve-model returns an object; the native --pick <field> descends it.
|
||||
const re = /resolve-model\b[^|\n]*\|\s*jq\b/;
|
||||
for (const name of AUDITED) {
|
||||
const content = readWorkflow(name);
|
||||
if (content == null) continue;
|
||||
const matches = content.match(new RegExp(re.source, 'g'));
|
||||
assert.deepEqual(
|
||||
matches || [],
|
||||
[],
|
||||
`${name}: resolve-model lookups must use --pick, not a jq pipe (found ${JSON.stringify(matches)})`,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('verification.status lookups use --pick, not a jq pipe', () => {
|
||||
const re = /verification\.status\b[^|\n]*\|\s*jq\b/;
|
||||
for (const name of AUDITED) {
|
||||
const content = readWorkflow(name);
|
||||
if (content == null) continue;
|
||||
const matches = content.match(new RegExp(re.source, 'g'));
|
||||
assert.deepEqual(
|
||||
matches || [],
|
||||
[],
|
||||
`${name}: verification.status lookups must use --pick, not a jq pipe (found ${JSON.stringify(matches)})`,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('general guard: no audited workflow pipes any gsd_run query to jq', () => {
|
||||
// Belt-and-suspenders: the jq-replaceable query command families. This
|
||||
// catches a future regression on any of them (or a sibling like
|
||||
// resolve-execution, which also supports --pick) without enumerating keys.
|
||||
const re = /gsd_run\s+query\s+(config-get|resolve-model|resolve-execution|verification\.status\b)[^|\n]*\|\s*jq\b/;
|
||||
for (const name of AUDITED) {
|
||||
const content = readWorkflow(name);
|
||||
if (content == null) continue;
|
||||
const matches = content.match(new RegExp(re.source, 'g'));
|
||||
assert.deepEqual(
|
||||
matches || [],
|
||||
[],
|
||||
`${name}: no gsd_run query (config-get|resolve-model|resolve-execution|verification.status) may pipe to jq (found ${JSON.stringify(matches)})`,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('ship.md decides the verification gate on a single verification.status read', () => {
|
||||
// Pre-fix, ship.md captured verification.status ONCE and picked three fields
|
||||
// off the cached JSON with jq. --pick takes a single field, so a naive
|
||||
// conversion issues three queries up front — 3x the spawn cost on the common
|
||||
// passing path, and three reads that are not guaranteed to observe the same
|
||||
// state. The gate must read `status` once and decide; the two message-only
|
||||
// fields belong on the blocking path.
|
||||
const content = readWorkflow('ship.md');
|
||||
assert.ok(content, 'ship.md must exist');
|
||||
|
||||
const statusIdx = content.indexOf('STATUS=$(gsd_run query verification.status');
|
||||
assert.notEqual(statusIdx, -1, 'ship.md must read verification.status --pick status');
|
||||
|
||||
const picks = content.match(/gsd_run query verification\.status "\$\{PHASE_DIR\}" --pick (\w+)/g) || [];
|
||||
assert.deepEqual(
|
||||
picks.length,
|
||||
3,
|
||||
`ship.md should read status once plus the two message fields, found ${picks.length}`,
|
||||
);
|
||||
|
||||
// The gate's own read must come first, and the message-only reads must both
|
||||
// sit after the blocking prose — i.e. they are not on the passing path.
|
||||
const blockIdx = content.indexOf('PHASE_VERIFICATION_INCOMPLETE');
|
||||
assert.ok(blockIdx > statusIdx, 'the block decision must follow the status read');
|
||||
for (const field of ['next_action', 'next_command']) {
|
||||
const idx = content.indexOf(`--pick ${field}`);
|
||||
assert.notEqual(idx, -1, `ship.md must still surface ${field}`);
|
||||
assert.ok(
|
||||
idx > blockIdx,
|
||||
`${field} must be read only on the blocking path, not before the gate decides`,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('review.md still declares jq a prerequisite for the lanes that genuinely need it', () => {
|
||||
// Dropping the jq pipes from the CONFIG lookups must not drop the project's
|
||||
// jq-prerequisite declaration: the ollama / lm_studio / llama_cpp / opencode
|
||||
// / agy lanes parse HTTP + CLI JSON that gsd-tools does not emit, so they
|
||||
// still hard-require jq. Removing the declaration (as the first cut of this
|
||||
// fix did) leaves those lanes silently degrading on a jq-less host — the
|
||||
// exact defect class #2589 exists to close.
|
||||
const content = readWorkflow('review.md');
|
||||
assert.ok(content, 'review.md must exist');
|
||||
assert.match(
|
||||
content,
|
||||
/command -v jq >\/dev\/null 2>&1 && echo "jq:available" \|\| echo "jq:missing"/,
|
||||
'review.md detect_clis must probe jq alongside the other reviewer prerequisites',
|
||||
);
|
||||
for (const lane of ['ollama', 'lm_studio', 'llama_cpp', 'opencode', 'antigravity']) {
|
||||
assert.ok(
|
||||
new RegExp(`jq-dependent reviewer lanes[\\s\\S]*\\b${lane}\\b`).test(content),
|
||||
`review.md must name ${lane} as a jq-dependent lane`,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('no workflow cites the jq prerequisite by a stale review.md line number', () => {
|
||||
// plan-review-convergence.md used to cite "review.md:244". That anchor moved
|
||||
// when the jq pipes were replaced, so cross-references must be by name.
|
||||
for (const name of fs.readdirSync(WF).filter((f) => f.endsWith('.md'))) {
|
||||
const content = readWorkflow(name);
|
||||
if (content == null) continue;
|
||||
const stale = content.match(/review\.md:\d+/g);
|
||||
assert.deepEqual(
|
||||
stale || [],
|
||||
[],
|
||||
`${name}: cite review.md by section name, not a line number (found ${JSON.stringify(stale)})`,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('resolve-execution lookups use --pick, not a jq pipe (sibling of resolve-model)', () => {
|
||||
// resolve-execution returns an object (model/profile/effort/effort_argv_string);
|
||||
// the native --pick <field> descends it — same defect class as resolve-model.
|
||||
const re = /resolve-execution\b[^|\n]*\|\s*jq\b/;
|
||||
for (const name of AUDITED) {
|
||||
const content = readWorkflow(name);
|
||||
if (content == null) continue;
|
||||
const matches = content.match(new RegExp(re.source, 'g'));
|
||||
assert.deepEqual(
|
||||
matches || [],
|
||||
[],
|
||||
`${name}: resolve-execution lookups must use --pick, not a jq pipe (found ${JSON.stringify(matches)})`,
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
16
tests/fixtures/golden-install-parity/claude.json
vendored
16
tests/fixtures/golden-install-parity/claude.json
vendored
@@ -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",
|
||||
|
||||
16
tests/fixtures/golden-install-parity/cline.json
vendored
16
tests/fixtures/golden-install-parity/cline.json
vendored
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
16
tests/fixtures/golden-install-parity/codex.json
vendored
16
tests/fixtures/golden-install-parity/codex.json
vendored
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
16
tests/fixtures/golden-install-parity/cursor.json
vendored
16
tests/fixtures/golden-install-parity/cursor.json
vendored
@@ -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",
|
||||
|
||||
16
tests/fixtures/golden-install-parity/hermes.json
vendored
16
tests/fixtures/golden-install-parity/hermes.json
vendored
@@ -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",
|
||||
|
||||
16
tests/fixtures/golden-install-parity/kilo.json
vendored
16
tests/fixtures/golden-install-parity/kilo.json
vendored
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
16
tests/fixtures/golden-install-parity/kimi.json
vendored
16
tests/fixtures/golden-install-parity/kimi.json
vendored
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
16
tests/fixtures/golden-install-parity/pi.json
vendored
16
tests/fixtures/golden-install-parity/pi.json
vendored
@@ -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",
|
||||
|
||||
16
tests/fixtures/golden-install-parity/qwen.json
vendored
16
tests/fixtures/golden-install-parity/qwen.json
vendored
@@ -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",
|
||||
|
||||
16
tests/fixtures/golden-install-parity/trae.json
vendored
16
tests/fixtures/golden-install-parity/trae.json
vendored
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
16
tests/fixtures/golden-install-parity/zcode.json
vendored
16
tests/fixtures/golden-install-parity/zcode.json
vendored
@@ -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",
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user