no-mistakes(review): Stop fast onboard dead-end

This commit is contained in:
Jeremy McSpadden
2026-07-03 11:44:48 -05:00
committed by Codesmith
parent 41015129e1
commit 1c992bf57d
2 changed files with 26 additions and 0 deletions

View File

@@ -149,6 +149,22 @@ Exit.
## 5. Project Initialization Gate
If `project_exists` is false and `fast_mode && has_fast_codebase_map && !has_codebase_map` is true:
Print:
```text
Fast codebase context is accepted for onboarding, but /gsd:new-project still requires the complete codebase map.
Run from worktree root {git_worktree_root || _GSD_RUNTIME_ROOT}:
/gsd:map-codebase
Then rerun /gsd:onboard from the same worktree root.
```
Exit.
If `project_exists` is false:
Print:

View File

@@ -288,6 +288,16 @@ describe('/gsd:onboard command contract', () => {
/CODEBASE_MAP_FINAL_STATUS=\(fast\/partial-but-accepted; required fast files present\)/,
'final status must distinguish complete maps from accepted fast maps',
);
assert.match(
content,
/If `project_exists` is false and `fast_mode && has_fast_codebase_map && !has_codebase_map` is true:/,
'workflow must not hand fast-partial maps directly to new-project',
);
assert.match(
content,
/Fast codebase context is accepted for onboarding, but \/gsd:new-project still requires the complete codebase map\./,
'workflow must explain why fast-partial onboarding stops before new-project',
);
const deriveMapStatusIndex = content.indexOf('Before summary keep/update choices, derive map status values safely:');
const keepExistingSummaryIndex = content.indexOf('If `onboarding_summary_exists` is true:');
assert.ok(deriveMapStatusIndex >= 0, 'workflow must derive map status values');