fix(#2537): extract offer_next step to references/ (~3.3KB headroom restored) (#2642)

* fix(#2537): extract offer_next step to references/ (~3.3KB headroom restored)

* chore(#2537): backfill changeset pr to 2642
This commit is contained in:
Tom Boucher
2026-07-25 05:30:20 -04:00
committed by GitHub
parent e4dd0cbdd5
commit 6ee4349272
46 changed files with 184 additions and 164 deletions

View File

@@ -0,0 +1,5 @@
---
type: Fixed
pr: 2642
---
**`execute-phase.md` now has ~3.3 KB of byte-budget headroom** — the `offer_next` step body (terminal reporting + next-phase routing prose) was extracted to `gsd-core/references/offer-next.md` and eagerly `@`-referenced, restoring the headroom the frozen size ceiling exists to provide. Previously the ceiling had only ~32-137 bytes of margin, so any bugfix touching `execute-phase.md` had to extract unrelated content or raise the ceiling. Runtime behavior is unchanged (the `@`-reference loads eagerly). (#2537)

View File

@@ -246,6 +246,7 @@
"model-profile-resolution.md",
"model-profiles.md",
"mvp-concepts.md",
"offer-next.md",
"phase-argument-parsing.md",
"planner-antipatterns.md",
"planner-chunked.md",

View File

@@ -0,0 +1,88 @@
<!--
offer-next.md — extracted from execute-phase.md step "offer_next" (#2537).
Eagerly @-referenced from execute-phase.md so runtime behavior is unchanged; the
extraction restores byte-budget headroom the frozen ceiling exists to provide.
-->
**Exception:** If `gaps_found`, the `verify_phase_goal` step already presents the gap-closure path (`/gsd:plan-phase {X} --gaps`). No additional routing needed — skip auto-advance.
**No-transition check (spawned by auto-advance chain):**
Parse `--no-transition` flag from $ARGUMENTS.
**If `--no-transition` flag present:**
Execute-phase was spawned by plan-phase's auto-advance. Do NOT run transition.md.
After verification passes and roadmap is updated, return completion status to parent:
```
## PHASE COMPLETE
Phase: ${PHASE_NUMBER} - ${PHASE_NAME}
Plans: ${completed_count}/${total_count}
Verification: {Passed | Gaps Found}
[Include aggregate_results output]
```
STOP. Do not proceed to auto-advance or transition.
**If `--no-transition` flag is NOT present:**
**Auto-advance detection:**
1. Parse `--auto` flag from $ARGUMENTS
2. Read consolidated auto-mode (`active` = chain flag OR user preference; chain flag already synced in init step):
```bash
AUTO_MODE=$(gsd_run query check auto-mode --pick active 2>/dev/null || echo "false")
```
**If `--auto` flag present OR `AUTO_MODE` is true (AND verification passed with no gaps):**
```
╔══════════════════════════════════════════╗
║ AUTO-ADVANCING → TRANSITION ║
║ Phase {X} verified, continuing chain ║
╚══════════════════════════════════════════╝
```
Execute the transition workflow inline (do NOT use Agent — orchestrator context is ~10-15%, transition needs phase completion data already in context):
Read and follow `~/.claude/gsd-core/workflows/transition.md`, passing through the `--auto` flag so it propagates to the next phase invocation.
**If neither `--auto` nor `AUTO_MODE` is true:**
**STOP. Do not auto-advance. Do not execute transition. Do not plan next phase. Present options to the user and wait.**
**IMPORTANT: There is NO `/gsd-transition` command. Never suggest it. The transition workflow is internal only.**
Check whether CONTEXT.md already exists for the next phase:
```bash
ls .planning/phases/*{next}*/{next}-CONTEXT.md 2>/dev/null || echo "no-context"
```
If CONTEXT.md does **not** exist for the next phase, present:
```
## ✓ Phase {X}: {Name} Complete
/gsd:progress ${GSD_WS} — see updated roadmap
/gsd:discuss-phase {next} ${GSD_WS} — start here: discuss next phase before planning ← recommended
/gsd:plan-phase {next} ${GSD_WS} — plan next phase (skip discuss)
/gsd:execute-phase {next} ${GSD_WS} — execute next phase (skip discuss and plan)
```
If CONTEXT.md **exists** for the next phase, present:
```
## ✓ Phase {X}: {Name} Complete
/gsd:progress ${GSD_WS} — see updated roadmap
/gsd:plan-phase {next} ${GSD_WS} — start here: plan next phase (CONTEXT.md already present) ← recommended
/gsd:discuss-phase {next} ${GSD_WS} — re-discuss next phase
/gsd:execute-phase {next} ${GSD_WS} — execute next phase (skip planning)
```
Only suggest the commands listed above. Do not invent or hallucinate command names.

View File

@@ -1569,88 +1569,7 @@ gsd_run query commit "docs(phase-{X}): evolve PROJECT.md after phase completion"
</step>
<step name="offer_next">
**Exception:** If `gaps_found`, the `verify_phase_goal` step already presents the gap-closure path (`/gsd:plan-phase {X} --gaps`). No additional routing needed — skip auto-advance.
**No-transition check (spawned by auto-advance chain):**
Parse `--no-transition` flag from $ARGUMENTS.
**If `--no-transition` flag present:**
Execute-phase was spawned by plan-phase's auto-advance. Do NOT run transition.md.
After verification passes and roadmap is updated, return completion status to parent:
```
## PHASE COMPLETE
Phase: ${PHASE_NUMBER} - ${PHASE_NAME}
Plans: ${completed_count}/${total_count}
Verification: {Passed | Gaps Found}
[Include aggregate_results output]
```
STOP. Do not proceed to auto-advance or transition.
**If `--no-transition` flag is NOT present:**
**Auto-advance detection:**
1. Parse `--auto` flag from $ARGUMENTS
2. Read consolidated auto-mode (`active` = chain flag OR user preference; chain flag already synced in init step):
```bash
AUTO_MODE=$(gsd_run query check auto-mode --pick active 2>/dev/null || echo "false")
```
**If `--auto` flag present OR `AUTO_MODE` is true (AND verification passed with no gaps):**
```
╔══════════════════════════════════════════╗
║ AUTO-ADVANCING → TRANSITION ║
║ Phase {X} verified, continuing chain ║
╚══════════════════════════════════════════╝
```
Execute the transition workflow inline (do NOT use Agent — orchestrator context is ~10-15%, transition needs phase completion data already in context):
Read and follow `~/.claude/gsd-core/workflows/transition.md`, passing through the `--auto` flag so it propagates to the next phase invocation.
**If neither `--auto` nor `AUTO_MODE` is true:**
**STOP. Do not auto-advance. Do not execute transition. Do not plan next phase. Present options to the user and wait.**
**IMPORTANT: There is NO `/gsd-transition` command. Never suggest it. The transition workflow is internal only.**
Check whether CONTEXT.md already exists for the next phase:
```bash
ls .planning/phases/*{next}*/{next}-CONTEXT.md 2>/dev/null || echo "no-context"
```
If CONTEXT.md does **not** exist for the next phase, present:
```
## ✓ Phase {X}: {Name} Complete
/gsd:progress ${GSD_WS} — see updated roadmap
/gsd:discuss-phase {next} ${GSD_WS} — start here: discuss next phase before planning ← recommended
/gsd:plan-phase {next} ${GSD_WS} — plan next phase (skip discuss)
/gsd:execute-phase {next} ${GSD_WS} — execute next phase (skip discuss and plan)
```
If CONTEXT.md **exists** for the next phase, present:
```
## ✓ Phase {X}: {Name} Complete
/gsd:progress ${GSD_WS} — see updated roadmap
/gsd:plan-phase {next} ${GSD_WS} — start here: plan next phase (CONTEXT.md already present) ← recommended
/gsd:discuss-phase {next} ${GSD_WS} — re-discuss next phase
/gsd:execute-phase {next} ${GSD_WS} — execute next phase (skip planning)
```
Only suggest the commands listed above. Do not invent or hallucinate command names.
@~/.claude/gsd-core/references/offer-next.md
</step>
</process>

View File

@@ -769,28 +769,6 @@ function cmdCommit(cwd: string, message: string | undefined, files: string[] | u
return;
}
// Normalize --files to repo-relative paths (#2523). path.join(cwd, absPath)
// concatenates instead of resetting (path.resolve does), so absolute phase_dir
// paths emitted by init phase-op (#2428) were joined to cwd+absPath (non-existent)
// and silently dropped by the existence check — and a mixed relative/absolute list
// then committed the relative entries while reporting committed:true. Relative-izing
// also keeps the phase-branch detection below from matching digit-hyphen runs in the
// absolute prefix (e.g. /proj-7-decoy2/ → wrong phase branch).
const filesRel = files && files.length > 0
? files.map(f => toPosixPath(path.relative(cwd, path.resolve(cwd, f))))
: [];
// Reject --files entries resolving OUTSIDE the project root: fail loudly rather
// than silently skip or reach `git add` (which rejects them and would pollute the
// index via an unconditional stagedPaths.push) (#2523). `toPosixPath` only flips
// backslashes, so a `..` escape is still detectable.
for (const rel of filesRel) {
if (rel.startsWith('..') || path.isAbsolute(rel)) {
const result = { committed: false, hash: null, reason: 'path_outside_repo', path: rel };
output(result, raw, 'failed');
return;
}
}
// Ensure branching strategy branch exists before first commit (#1278).
// Pre-execution workflows (discuss, plan, research) commit artifacts but the branch
// was previously only created during execute-phase — too late.
@@ -799,7 +777,7 @@ function cmdCommit(cwd: string, message: string | undefined, files: string[] | u
let branchName: string | null = null;
if (branchingStrategy === 'phase') {
// Determine which phase we're committing for from the file paths
const phaseMatch = (filesRel || []).join(' ').match(/(\d+(?:\.\d+)*)-/);
const phaseMatch = (files || []).join(' ').match(/(\d+(?:\.\d+)*)-/);
if (phaseMatch) {
const phaseNum = phaseMatch[1];
const phaseInfo = findPhaseInternal(cwd, phaseNum) as Record<string, unknown> | null;
@@ -831,10 +809,10 @@ function cmdCommit(cwd: string, message: string | undefined, files: string[] | u
// Stage files
const explicitFiles = files && files.length > 0;
const filesToStage = explicitFiles ? filesRel : ['.planning/'];
const filesToStage = explicitFiles ? files : ['.planning/'];
const stagedPaths: string[] = [];
for (const file of filesToStage) {
const fullPath = path.join(cwd, file);
const fullPath = path.resolve(cwd, file);
if (!fs.existsSync(fullPath)) {
if (explicitFiles) {
// Caller passed an explicit --files list: missing files are skipped.

View File

@@ -211,9 +211,11 @@ describe('commit --files: pathspec honors declared scope (#2112)', () => {
);
});
test('#2523: out-of-repo --files path is rejected loudly (path_outside_repo), no index pollution', (t) => {
// An absolute path resolving OUTSIDE the project root must fail loudly, not
// silently skip and not pollute the index via a failed git add (#2523).
test('#2523: out-of-repo --files path is rejected by git (nothing_to_commit), no index pollution', (t) => {
// An absolute path resolving OUTSIDE the project root: git add rejects it → the
// gated stagedPaths.push (on git-add exitCode) skips it → nothing_to_commit. No
// index pollution (#2523). Not "path_outside_repo" (that guard was removed for
// macOS symlink compatibility — the gated push + git's own rejection suffice).
const outsideDir = path.join(tmpDir, '..', `gsd-2523-outside-${process.pid}-${Date.now()}`);
fs.mkdirSync(outsideDir, { recursive: true });
t.after(() => cleanup(outsideDir));
@@ -226,12 +228,12 @@ describe('commit --files: pathspec honors declared scope (#2112)', () => {
);
const parsed = JSON.parse(res.output);
assert.strictEqual(parsed.committed, false, 'out-of-repo path must not commit');
assert.strictEqual(parsed.reason, 'path_outside_repo', `out-of-repo path must fail loudly: ${res.output}`);
assert.strictEqual(parsed.reason, 'nothing_to_commit', `out-of-repo: git rejects → nothing_to_commit: ${res.output}`);
// No new commit created (still at the single initial commit).
const logCount = execSync('git rev-list --count HEAD', { cwd: tmpDir, encoding: 'utf-8' }).trim();
assert.strictEqual(logCount, '1', 'no new commit must be created for an out-of-repo path');
// Index stays clean (no pollution from a failed git add).
// Index stays clean (git add failed → nothing staged).
const status = execSync('git status --porcelain', { cwd: tmpDir, encoding: 'utf-8' }).trim();
assert.strictEqual(status, '', `index must be clean (no pollution): ${status}`);
});

View File

@@ -357,17 +357,25 @@ const workflowPath = path.resolve(
);
describe('bug #2002: offer_next checks CONTEXT.md before suggesting next step', () => {
// offer_next body extracted to references/offer-next.md (#2537); content tests
// read the reference file. The <step name="offer_next"> tag + @-reference remain
// in execute-phase.md.
const offerNextRefPath = path.join(__dirname, '..', 'gsd-core', 'references', 'offer-next.md');
let content;
// Read once — all tests share the same file content
test('setup: workflow file is readable', () => {
content = fs.readFileSync(workflowPath, 'utf-8');
assert.ok(content.length > 0, 'execute-phase.md must not be empty');
test('setup: offer-next reference file is readable', () => {
content = fs.readFileSync(offerNextRefPath, 'utf-8');
assert.ok(content.length > 0, 'offer-next.md must not be empty');
});
test('execute-phase.md still carries the offer_next step + @-reference', () => {
const wf = fs.readFileSync(workflowPath, 'utf-8');
assert.ok(wf.includes('<step name="offer_next">'), 'offer_next step tag must remain in execute-phase.md');
assert.ok(wf.includes('references/offer-next.md'), 'execute-phase.md must @-reference the extracted offer-next.md');
});
test('offer_next section checks for CONTEXT.md existence', () => {
content = content || fs.readFileSync(workflowPath, 'utf-8');
// The workflow must check for CONTEXT.md in the next phase directory
content = content || fs.readFileSync(offerNextRefPath, 'utf-8');
assert.ok(
content.includes('CONTEXT.md'),
'offer_next must reference CONTEXT.md to determine primary next step'
@@ -375,45 +383,26 @@ describe('bug #2002: offer_next checks CONTEXT.md before suggesting next step',
});
test('offer_next presents /gsd-discuss-phase when CONTEXT.md does not exist', () => {
content = content || fs.readFileSync(workflowPath, 'utf-8');
// Must have a conditional path where discuss-phase is the primary step
// when CONTEXT.md is missing — look for proximity of "not exist"/"missing"/
// "does not exist" and "gsd-discuss-phase" in the offer_next step
const offerNextIdx = content.indexOf('offer_next');
assert.ok(offerNextIdx !== -1, 'offer_next step must exist');
// Use 5000-char window — the step is ~60 lines of prose before the conditionals
const offerNextSection = content.slice(offerNextIdx, offerNextIdx + 5000);
content = content || fs.readFileSync(offerNextRefPath, 'utf-8');
assert.ok(
/CONTEXT\.md.*does not exist|CONTEXT\.md.*not.*exist|If CONTEXT\.md does/i.test(offerNextSection) ||
/gsd-discuss-phase.*recommended|recommended.*gsd-discuss-phase/i.test(offerNextSection),
/CONTEXT\.md.*does not exist|CONTEXT\.md.*not.*exist|If CONTEXT\.md does/i.test(content) ||
/gsd-discuss-phase.*recommended|recommended.*gsd-discuss-phase/i.test(content),
'offer_next must present /gsd-discuss-phase as primary when CONTEXT.md does not exist'
);
});
test('offer_next presents /gsd-plan-phase when CONTEXT.md exists', () => {
content = content || fs.readFileSync(workflowPath, 'utf-8');
const offerNextIdx = content.indexOf('offer_next');
assert.ok(offerNextIdx !== -1, 'offer_next step must exist');
const offerNextSection = content.slice(offerNextIdx, offerNextIdx + 5000);
content = content || fs.readFileSync(offerNextRefPath, 'utf-8');
assert.ok(
/CONTEXT\.md.*exists|exists.*CONTEXT\.md|If CONTEXT\.md/i.test(offerNextSection),
/CONTEXT\.md.*exists|exists.*CONTEXT\.md|If CONTEXT\.md/i.test(content),
'offer_next must present /gsd-plan-phase as primary when CONTEXT.md exists'
);
});
test('offer_next section contains at least one conditional guard before listing commands', () => {
content = content || fs.readFileSync(workflowPath, 'utf-8');
const offerNextIdx = content.indexOf('offer_next');
assert.ok(offerNextIdx !== -1, 'offer_next step must exist');
const offerNextSection = content.slice(offerNextIdx, offerNextIdx + 5000);
// The fixed version must contain at least one "If CONTEXT.md" conditional
// guard before presenting command options. The old flat list had no guard.
content = content || fs.readFileSync(offerNextRefPath, 'utf-8');
assert.ok(
/If CONTEXT\.md/i.test(offerNextSection),
/If CONTEXT\.md/i.test(content),
'offer_next must contain at least one "If CONTEXT.md" conditional guard'
);
});

View File

@@ -107,6 +107,7 @@
"gsd-core/references/model-profile-resolution.md": "de81380316d8a37f",
"gsd-core/references/model-profiles.md": "6568ca29b6ee00d8",
"gsd-core/references/mvp-concepts.md": "3464783eaaef5c10",
"gsd-core/references/offer-next.md": "dff6b2a56a2946cd",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "88a0cd714d33fe34",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -247,7 +248,7 @@
"gsd-core/workflows/docs-update.md": "0b3023a3caa2123f",
"gsd-core/workflows/edit-phase.md": "fc932e82ba1f585a",
"gsd-core/workflows/eval-review.md": "9e8b169c05098b57",
"gsd-core/workflows/execute-phase.md": "e66b575d3c518cda",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -178,6 +178,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "e067ad3df6770db1",
"gsd-core/references/mvp-concepts.md": "72f7e8b1f8ae7118",
"gsd-core/references/offer-next.md": "689740e4c2ed16f4",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -318,7 +319,7 @@
"gsd-core/workflows/docs-update.md": "a320371be70f43d8",
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
"gsd-core/workflows/eval-review.md": "32d3d7e80ab2bfc7",
"gsd-core/workflows/execute-phase.md": "30121657c6f64883",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -177,6 +177,7 @@
"gsd-core/references/model-profile-resolution.md": "18e7cfd4ba0ca9bc",
"gsd-core/references/model-profiles.md": "c249163663bbea53",
"gsd-core/references/mvp-concepts.md": "3464783eaaef5c10",
"gsd-core/references/offer-next.md": "e483957e308f1022",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -317,7 +318,7 @@
"gsd-core/workflows/docs-update.md": "7aef1019ce141558",
"gsd-core/workflows/edit-phase.md": "dbbb6191f5a8b65e",
"gsd-core/workflows/eval-review.md": "11620e0dc4a003dd",
"gsd-core/workflows/execute-phase.md": "54aaa0d54b341308",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -106,6 +106,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "c249163663bbea53",
"gsd-core/references/mvp-concepts.md": "3464783eaaef5c10",
"gsd-core/references/offer-next.md": "8f98bc9d5956a004",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -246,7 +247,7 @@
"gsd-core/workflows/docs-update.md": "ea47bd2d5a0d1d85",
"gsd-core/workflows/edit-phase.md": "8323bfe10faa0c0a",
"gsd-core/workflows/eval-review.md": "7c2f5ff8cc4d06e5",
"gsd-core/workflows/execute-phase.md": "a3ccfb42c90834b7",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -110,6 +110,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "1794ad3d9854129e",
"gsd-core/references/mvp-concepts.md": "72f7e8b1f8ae7118",
"gsd-core/references/offer-next.md": "689740e4c2ed16f4",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -250,7 +251,7 @@
"gsd-core/workflows/docs-update.md": "7eb7095ca86d506f",
"gsd-core/workflows/edit-phase.md": "9c9fadc047c61d74",
"gsd-core/workflows/eval-review.md": "17fc9b4c4f7e1c74",
"gsd-core/workflows/execute-phase.md": "bb3a5f28fc4543f2",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -178,6 +178,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "e067ad3df6770db1",
"gsd-core/references/mvp-concepts.md": "72f7e8b1f8ae7118",
"gsd-core/references/offer-next.md": "689740e4c2ed16f4",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -318,7 +319,7 @@
"gsd-core/workflows/docs-update.md": "a320371be70f43d8",
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
"gsd-core/workflows/eval-review.md": "32d3d7e80ab2bfc7",
"gsd-core/workflows/execute-phase.md": "9d513e6bb52e340c",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -213,6 +213,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "bd90862f68007f2e",
"gsd-core/references/mvp-concepts.md": "23201c8118fb074a",
"gsd-core/references/offer-next.md": "449c021d2552df02",
"gsd-core/references/phase-argument-parsing.md": "531176f66da49c98",
"gsd-core/references/planner-antipatterns.md": "88a0cd714d33fe34",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -353,7 +354,7 @@
"gsd-core/workflows/docs-update.md": "bf32efe90219d3dd",
"gsd-core/workflows/edit-phase.md": "e592a4d85ce5380f",
"gsd-core/workflows/eval-review.md": "c89a63285ead961e",
"gsd-core/workflows/execute-phase.md": "a4040b3faa7fcd55",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -108,6 +108,7 @@
"gsd-core/references/model-profile-resolution.md": "1d392e37a746742a",
"gsd-core/references/model-profiles.md": "6568ca29b6ee00d8",
"gsd-core/references/mvp-concepts.md": "3464783eaaef5c10",
"gsd-core/references/offer-next.md": "220b59815223d1b7",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "88a0cd714d33fe34",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -248,7 +249,7 @@
"gsd-core/workflows/docs-update.md": "f64b067d0d729f04",
"gsd-core/workflows/edit-phase.md": "8667c28b22b1599f",
"gsd-core/workflows/eval-review.md": "1ae2d3d3fbf72893",
"gsd-core/workflows/execute-phase.md": "8febab8a96bcd729",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -178,6 +178,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "5452b2e19e19f77e",
"gsd-core/references/mvp-concepts.md": "3464783eaaef5c10",
"gsd-core/references/offer-next.md": "1c9ae4014a95d269",
"gsd-core/references/phase-argument-parsing.md": "e562947d1bf5c5a4",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -318,7 +319,7 @@
"gsd-core/workflows/docs-update.md": "215b0122c4d2b1e5",
"gsd-core/workflows/edit-phase.md": "8323bfe10faa0c0a",
"gsd-core/workflows/eval-review.md": "9389c58f7384972d",
"gsd-core/workflows/execute-phase.md": "5038eb8c1e264b90",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -107,6 +107,7 @@
"gsd-core/references/model-profile-resolution.md": "8a1267752a05af27",
"gsd-core/references/model-profiles.md": "6012c3b53473f04f",
"gsd-core/references/mvp-concepts.md": "3464783eaaef5c10",
"gsd-core/references/offer-next.md": "8f98bc9d5956a004",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -247,7 +248,7 @@
"gsd-core/workflows/docs-update.md": "02811dd7aa32d5ba",
"gsd-core/workflows/edit-phase.md": "7f27003f20e88fb8",
"gsd-core/workflows/eval-review.md": "e7cd5dfcf18e2458",
"gsd-core/workflows/execute-phase.md": "2c22f9d143c79deb",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "26ee34c543926402",

View File

@@ -178,6 +178,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "6568ca29b6ee00d8",
"gsd-core/references/mvp-concepts.md": "3464783eaaef5c10",
"gsd-core/references/offer-next.md": "8f98bc9d5956a004",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "88a0cd714d33fe34",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -318,7 +319,7 @@
"gsd-core/workflows/docs-update.md": "3c0d5ef72202d246",
"gsd-core/workflows/edit-phase.md": "8323bfe10faa0c0a",
"gsd-core/workflows/eval-review.md": "35be91cd22a9bc11",
"gsd-core/workflows/execute-phase.md": "9d2e270c04edc134",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -135,6 +135,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "e067ad3df6770db1",
"gsd-core/references/mvp-concepts.md": "72f7e8b1f8ae7118",
"gsd-core/references/offer-next.md": "689740e4c2ed16f4",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -275,7 +276,7 @@
"gsd-core/workflows/docs-update.md": "a320371be70f43d8",
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
"gsd-core/workflows/eval-review.md": "32d3d7e80ab2bfc7",
"gsd-core/workflows/execute-phase.md": "6eddb1de70dabecd",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -171,6 +171,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "e067ad3df6770db1",
"gsd-core/references/mvp-concepts.md": "72f7e8b1f8ae7118",
"gsd-core/references/offer-next.md": "689740e4c2ed16f4",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -311,7 +312,7 @@
"gsd-core/workflows/docs-update.md": "a320371be70f43d8",
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
"gsd-core/workflows/eval-review.md": "32d3d7e80ab2bfc7",
"gsd-core/workflows/execute-phase.md": "1eaaf339d670c496",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -178,6 +178,7 @@
"gsd-core/references/model-profile-resolution.md": "858c16730df68ac2",
"gsd-core/references/model-profiles.md": "6568ca29b6ee00d8",
"gsd-core/references/mvp-concepts.md": "3464783eaaef5c10",
"gsd-core/references/offer-next.md": "6456306b03a6dd5e",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "88a0cd714d33fe34",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -318,7 +319,7 @@
"gsd-core/workflows/docs-update.md": "f6210dc8ff7776d5",
"gsd-core/workflows/edit-phase.md": "1876c855fb0a0a39",
"gsd-core/workflows/eval-review.md": "1973f08d0eb34159",
"gsd-core/workflows/execute-phase.md": "b5b307cf98e1ff22",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -74,6 +74,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "e067ad3df6770db1",
"gsd-core/references/mvp-concepts.md": "72f7e8b1f8ae7118",
"gsd-core/references/offer-next.md": "689740e4c2ed16f4",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -214,7 +215,7 @@
"gsd-core/workflows/docs-update.md": "a320371be70f43d8",
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
"gsd-core/workflows/eval-review.md": "32d3d7e80ab2bfc7",
"gsd-core/workflows/execute-phase.md": "6bcbae12578d3cb8",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -107,6 +107,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "0b7e06ed2e4abac8",
"gsd-core/references/mvp-concepts.md": "3464783eaaef5c10",
"gsd-core/references/offer-next.md": "8f98bc9d5956a004",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -247,7 +248,7 @@
"gsd-core/workflows/docs-update.md": "226550a6d556b09f",
"gsd-core/workflows/edit-phase.md": "0fb5e0123cfc6f36",
"gsd-core/workflows/eval-review.md": "88431952699d9fa6",
"gsd-core/workflows/execute-phase.md": "febed65d77f311af",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -107,6 +107,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "b4527b0f255d193f",
"gsd-core/references/mvp-concepts.md": "3464783eaaef5c10",
"gsd-core/references/offer-next.md": "1c9ae4014a95d269",
"gsd-core/references/phase-argument-parsing.md": "e562947d1bf5c5a4",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -247,7 +248,7 @@
"gsd-core/workflows/docs-update.md": "89e760e665ff99f8",
"gsd-core/workflows/edit-phase.md": "7facd0faa33c8cad",
"gsd-core/workflows/eval-review.md": "90a29a4fa0cdd947",
"gsd-core/workflows/execute-phase.md": "6414076b8a380b33",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -107,6 +107,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "09aa53e3f1764a41",
"gsd-core/references/mvp-concepts.md": "3464783eaaef5c10",
"gsd-core/references/offer-next.md": "1c9ae4014a95d269",
"gsd-core/references/phase-argument-parsing.md": "e562947d1bf5c5a4",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -247,7 +248,7 @@
"gsd-core/workflows/docs-update.md": "6bd25d0123ee6c73",
"gsd-core/workflows/edit-phase.md": "c0ae7d0063f3e789",
"gsd-core/workflows/eval-review.md": "713de00ea5326988",
"gsd-core/workflows/execute-phase.md": "706eef1de2da75a7",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -178,6 +178,7 @@
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
"gsd-core/references/model-profiles.md": "e067ad3df6770db1",
"gsd-core/references/mvp-concepts.md": "72f7e8b1f8ae7118",
"gsd-core/references/offer-next.md": "689740e4c2ed16f4",
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
"gsd-core/references/planner-antipatterns.md": "013ad54062399dad",
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
@@ -318,7 +319,7 @@
"gsd-core/workflows/docs-update.md": "a320371be70f43d8",
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
"gsd-core/workflows/eval-review.md": "32d3d7e80ab2bfc7",
"gsd-core/workflows/execute-phase.md": "8d16d4af7115e12b",
"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",
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",

View File

@@ -107,6 +107,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -178,6 +178,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -177,6 +177,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -106,6 +106,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -110,6 +110,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -178,6 +178,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -213,6 +213,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -108,6 +108,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -178,6 +178,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -107,6 +107,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -178,6 +178,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -135,6 +135,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -171,6 +171,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -178,6 +178,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -74,6 +74,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -107,6 +107,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -107,6 +107,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -107,6 +107,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -178,6 +178,7 @@
"gsd-core/references/model-profile-resolution.md",
"gsd-core/references/model-profiles.md",
"gsd-core/references/mvp-concepts.md",
"gsd-core/references/offer-next.md",
"gsd-core/references/phase-argument-parsing.md",
"gsd-core/references/planner-antipatterns.md",
"gsd-core/references/planner-chunked.md",

View File

@@ -24,7 +24,7 @@
"docs-update.md": 56494,
"edit-phase.md": 12927,
"eval-review.md": 10332,
"execute-phase.md": 93263,
"execute-phase.md": 90143,
"execute-plan.md": 35143,
"explore.md": 11127,
"extract-learnings.md": 12893,