* fix(#2390): phase.add title warning + auto-detect doc fix phase.add now returns a `warning` field when a description reads as goal-shaped (>80 chars and/or multi-sentence) rather than title-shaped, instead of silently writing the whole paragraph verbatim as the `### Phase N:` header. The CLI still creates the phase as-is (the strict two-layer slash-vs-CLI interface is unchanged); the warning just surfaces the gap. Also clarifies six doc sites (command argument hints, workflow detection steps, and how-to/reference docs) that described the phase-number argument as "auto-detecting" the next unplanned phase -- that detection is an orchestrating-workflow/LLM step reading ROADMAP.md (concretely: `query roadmap.analyze`'s `next_phase` field), not a `gsd-tools.cjs` CLI feature. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore(#2390): regenerate fixtures + lint gate-prep * fix(#2390): repair failing tests after gate verification * chore(#2390): add changeset (#2425) --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
5
.changeset/2390-phase-add-autodetect.md
Normal file
5
.changeset/2390-phase-add-autodetect.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: Fixed
|
||||
pr: 2425
|
||||
---
|
||||
**`phase.add` no longer silently mistakes a goal-shaped description for a phase title** — a long or multi-sentence description used to land verbatim in the `### Phase N:` header with no signal anything was off; `phase.add` now returns a `warning` field when the description looks goal-shaped, and the phase-number auto-detect docs now correctly point callers at the orchestrating workflow instead of implying `gsd-tools.cjs` resolves it itself. (#2390)
|
||||
@@ -28,7 +28,7 @@ Flow: Select Framework → Research Docs → Research Domain → Design Eval Str
|
||||
</execution_context>
|
||||
|
||||
<context>
|
||||
Phase number: $ARGUMENTS — optional, auto-detects next unplanned phase if omitted.
|
||||
Phase number: $ARGUMENTS — optional; when omitted, the orchestrating workflow reads ROADMAP.md and selects the next unplanned phase. This is not a `gsd-tools.cjs` CLI feature — the CLI's phase-lookup primitives require an explicit phase number.
|
||||
</context>
|
||||
|
||||
<process>
|
||||
|
||||
@@ -40,7 +40,7 @@ Create executable phase prompts (PLAN.md files) for a roadmap phase with integra
|
||||
</runtime_note>
|
||||
|
||||
<context>
|
||||
Phase number: $ARGUMENTS (optional — auto-detects next unplanned phase if omitted)
|
||||
Phase number: $ARGUMENTS (optional — when omitted, the orchestrating workflow reads ROADMAP.md and selects the next unplanned phase; `gsd-tools.cjs` itself has no auto-detect feature and requires an explicit phase number)
|
||||
|
||||
**Flags:**
|
||||
- `--research` — Force re-research even if RESEARCH.md exists
|
||||
|
||||
@@ -193,7 +193,7 @@ Research, plan, and verify a phase.
|
||||
|
||||
| Argument | Required | Description |
|
||||
|----------|----------|-------------|
|
||||
| `N` | No | Phase number (defaults to next unplanned phase) |
|
||||
| `N` | No | Phase number (if omitted, the orchestrating workflow reads ROADMAP.md and targets the next unplanned phase — not a `gsd-tools.cjs` CLI feature) |
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
|
||||
@@ -18,7 +18,7 @@ This runs three stages in sequence:
|
||||
2. **Plan** — A `gsd-planner` subagent reads context, research, and requirements, then writes one or more `{phase}-{N}-PLAN.md` files.
|
||||
3. **Verify** — A `gsd-plan-checker` subagent validates plan quality across eight dimensions and triggers a revision loop (up to three iterations) until quality gates pass.
|
||||
|
||||
If no phase number is given, GSD Core targets the next unplanned phase from the roadmap.
|
||||
If no phase number is given, the `/gsd-plan-phase` orchestrating workflow reads `ROADMAP.md` and targets the next unplanned phase. This detection happens in the workflow/LLM layer, not in the `gsd-tools.cjs` CLI — its phase-lookup commands require an explicit phase number.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -57,6 +57,8 @@ The CLI handles:
|
||||
- Inserting the phase entry into ROADMAP.md with Goal, Depends on, and Plans sections
|
||||
|
||||
Extract from result: `phase_number`, `padded`, `name`, `slug`, `directory`.
|
||||
|
||||
**If result includes a `warning` field:** the description read as goal-shaped (long and/or multi-sentence) rather than title-shaped, and was written verbatim as the `### Phase N:` header. The phase was still created — surface the warning to the user and suggest a short title with the detail moved to `**Goal:**` in ROADMAP.md.
|
||||
</step>
|
||||
|
||||
<step name="update_project_state">
|
||||
|
||||
@@ -52,7 +52,7 @@ Exit workflow.
|
||||
|
||||
## 2. Parse and Validate Phase
|
||||
|
||||
Extract phase number from $ARGUMENTS. If not provided, detect next unplanned phase.
|
||||
Extract phase number from $ARGUMENTS. If not provided, this orchestrator (not `gsd-tools.cjs`) detects the next unplanned phase: run `gsd_run query roadmap.analyze` and read its `next_phase` field (the first phase whose `disk_status` is `no_directory`, `empty`, `discussed`, or `researched` — i.e. not yet planned). `query roadmap.get-phase` below hard-requires an explicit `${PHASE}` and does not auto-detect.
|
||||
|
||||
```bash
|
||||
PHASE_INFO=$(gsd_run query roadmap.get-phase "${PHASE}")
|
||||
|
||||
@@ -158,7 +158,7 @@ Extract express-path args from $ARGUMENTS: `PRD_FILE` (`--prd <filepath>`), `ING
|
||||
`--prd` and `--ingest` are mutually exclusive. If both are present, error and exit:
|
||||
`Invalid arguments: cannot combine \`--prd\` with \`--ingest\`.`
|
||||
|
||||
**If no phase number:** Detect next unplanned phase from roadmap.
|
||||
**If no phase number:** Auto-detect it — `query init.plan-phase` and `query roadmap.get-phase` require an explicit number, so this is an orchestrator step. Run `gsd_run query roadmap.analyze` and read `next_phase` (first phase with `disk_status` of `no_directory`, `empty`, `discussed`, or `researched`). If `next_phase` is `null`, read ROADMAP.md's `### Phase N:` headers and ask the user which phase to plan. Set `PHASE` to the result before step 1's `query init.plan-phase "$PHASE"` call.
|
||||
|
||||
**If `phase_found` is false:** Validate phase exists in ROADMAP.md. If valid, create the directory using `expected_phase_dir` from init (includes `project_code` prefix when set):
|
||||
```bash
|
||||
|
||||
@@ -28,7 +28,7 @@ Flow: Select Framework → Research Docs → Research Domain → Design Eval Str
|
||||
</execution_context>
|
||||
|
||||
<context>
|
||||
Phase number: $ARGUMENTS — optional, auto-detects next unplanned phase if omitted.
|
||||
Phase number: $ARGUMENTS — optional; when omitted, the orchestrating workflow reads ROADMAP.md and selects the next unplanned phase. This is not a `gsd-tools.cjs` CLI feature — the CLI's phase-lookup primitives require an explicit phase number.
|
||||
</context>
|
||||
|
||||
<process>
|
||||
|
||||
@@ -40,7 +40,7 @@ Create executable phase prompts (PLAN.md files) for a roadmap phase with integra
|
||||
</runtime_note>
|
||||
|
||||
<context>
|
||||
Phase number: $ARGUMENTS (optional — auto-detects next unplanned phase if omitted)
|
||||
Phase number: $ARGUMENTS (optional — when omitted, the orchestrating workflow reads ROADMAP.md and selects the next unplanned phase; `gsd-tools.cjs` itself has no auto-detect feature and requires an explicit phase number)
|
||||
|
||||
**Flags:**
|
||||
- `--research` — Force re-research even if RESEARCH.md exists
|
||||
|
||||
@@ -759,6 +759,32 @@ function cmdPhasePlanIndex(cwd: string, phase: string, raw: boolean): void {
|
||||
output(result, raw);
|
||||
}
|
||||
|
||||
// #2390 — phase.add title-shape heuristic. A description at or under this many
|
||||
// characters, and with no sentence-ending punctuation followed by more text,
|
||||
// reads as a short Title. Anything longer or multi-sentence reads as a Goal,
|
||||
// not a Title. phase.add still writes the phase verbatim (it never mangles
|
||||
// ROADMAP.md), but when the description looks goal-shaped the JSON result
|
||||
// gains a `warning` key naming the gap, so the caller — or the orchestrating
|
||||
// add-phase workflow — can split title vs. goal instead of the whole paragraph
|
||||
// landing silently in the `### Phase N:` header.
|
||||
const PHASE_ADD_TITLE_MAX_LEN = 80;
|
||||
const PHASE_ADD_MULTI_SENTENCE_RE = /[.!?]['")\]]?\s+\S/;
|
||||
|
||||
function describeGoalShapedTitle(description: string): string | null {
|
||||
const trimmed = description.trim();
|
||||
const tooLong = trimmed.length > PHASE_ADD_TITLE_MAX_LEN;
|
||||
const multiSentence = PHASE_ADD_MULTI_SENTENCE_RE.test(trimmed);
|
||||
if (!tooLong && !multiSentence) return null;
|
||||
const reasons = [
|
||||
tooLong ? `${trimmed.length} chars (over the ${PHASE_ADD_TITLE_MAX_LEN}-char title threshold)` : null,
|
||||
multiSentence ? 'multiple sentences' : null,
|
||||
].filter(Boolean).join(', ');
|
||||
return (
|
||||
`description looks goal-shaped, not title-shaped (${reasons}). It was written verbatim ` +
|
||||
`as the phase title; consider a short title with the detail moved to **Goal:**.`
|
||||
);
|
||||
}
|
||||
|
||||
function cmdPhaseAdd(cwd: string, description: string, raw: boolean, customId?: string): void {
|
||||
if (!description) {
|
||||
error('description required for phase add');
|
||||
@@ -858,7 +884,9 @@ function cmdPhaseAdd(cwd: string, description: string, raw: boolean, customId?:
|
||||
return { newPhaseId: _newPhaseId, dirName: _dirName };
|
||||
});
|
||||
|
||||
const result = {
|
||||
const titleWarning = describeGoalShapedTitle(description);
|
||||
|
||||
const result: Record<string, unknown> = {
|
||||
phase_number: typeof newPhaseId === 'number' ? newPhaseId : String(newPhaseId),
|
||||
padded:
|
||||
typeof newPhaseId === 'number' ? String(newPhaseId).padStart(2, '0') : String(newPhaseId),
|
||||
@@ -869,8 +897,9 @@ function cmdPhaseAdd(cwd: string, description: string, raw: boolean, customId?:
|
||||
),
|
||||
naming_mode: config.phase_naming,
|
||||
};
|
||||
if (titleWarning) result['warning'] = titleWarning;
|
||||
|
||||
output(result, raw, result.padded);
|
||||
output(result, raw, result['padded']);
|
||||
}
|
||||
|
||||
function cmdPhaseAddBatch(cwd: string, descriptions: string[], raw: boolean): void {
|
||||
|
||||
@@ -207,10 +207,10 @@
|
||||
"gsd-core/templates/verification-report.md": "78ab9264ce63ed7e",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "8cc2e884a021b79b",
|
||||
"gsd-core/workflows/add-phase.md": "f82afa2f93be19fa",
|
||||
"gsd-core/workflows/add-phase.md": "820572da6367308c",
|
||||
"gsd-core/workflows/add-tests.md": "ad6d49634e04ca7c",
|
||||
"gsd-core/workflows/add-todo.md": "e410a72c168e43c0",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "22f5466085c47c00",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "ea5a229a9cad3b4d",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "582e9a31df15dd8b",
|
||||
"gsd-core/workflows/audit-milestone.md": "280cd85908dd45cb",
|
||||
@@ -281,7 +281,7 @@
|
||||
"gsd-core/workflows/onboard.md": "69d871aa53a1a859",
|
||||
"gsd-core/workflows/pause-work.md": "564de32981a24337",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "dd6a4b3a8b05ab6e",
|
||||
"gsd-core/workflows/plan-phase.md": "c8d8e646fccd4bd3",
|
||||
"gsd-core/workflows/plan-phase.md": "5f7f231a249dc23f",
|
||||
"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",
|
||||
@@ -364,7 +364,7 @@
|
||||
"scripts/lib/allowlist-ratchet.cjs": "ffaceaac3efc2660",
|
||||
"scripts/lib/cli-exit.cjs": "612d0c372c75b7e7",
|
||||
"skills/gsd-add-tests/SKILL.md": "95cd3eb1698fc79b",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "0dc87ce16bc31884",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "df6dad8e87226f35",
|
||||
"skills/gsd-audit-fix/SKILL.md": "e5e30c307bca6c89",
|
||||
"skills/gsd-audit-milestone/SKILL.md": "f701c229ac380077",
|
||||
"skills/gsd-audit-uat/SKILL.md": "8b304b54e1c587d1",
|
||||
@@ -407,7 +407,7 @@
|
||||
"skills/gsd-onboard/SKILL.md": "1447665c64c8ade8",
|
||||
"skills/gsd-pause-work/SKILL.md": "9d3cc6bd70b03df1",
|
||||
"skills/gsd-phase/SKILL.md": "00676bbea61410bf",
|
||||
"skills/gsd-plan-phase/SKILL.md": "8439b569426ff621",
|
||||
"skills/gsd-plan-phase/SKILL.md": "03a8f71d4385a50d",
|
||||
"skills/gsd-plan-review-convergence/SKILL.md": "e4d52b4473c6234b",
|
||||
"skills/gsd-pr-branch/SKILL.md": "5e050db73988f9a8",
|
||||
"skills/gsd-profile-user/SKILL.md": "10f2ff4be2e7d55f",
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
"agents/gsd-user-profiler.md": "622220df0654b6bf",
|
||||
"agents/gsd-verifier.md": "f5c00a9b08fc1a7e",
|
||||
"commands/gsd-add-tests.md": "3608d0cf4b515103",
|
||||
"commands/gsd-ai-integration-phase.md": "70843d4904743f7e",
|
||||
"commands/gsd-ai-integration-phase.md": "cbc59ad7a5064b26",
|
||||
"commands/gsd-audit-fix.md": "1b805946362c4f19",
|
||||
"commands/gsd-audit-milestone.md": "046573a643714178",
|
||||
"commands/gsd-audit-uat.md": "d3de44d1c3e59b57",
|
||||
@@ -79,7 +79,7 @@
|
||||
"commands/gsd-onboard.md": "1e8acf7be31834be",
|
||||
"commands/gsd-pause-work.md": "4fb032f72238fe33",
|
||||
"commands/gsd-phase.md": "4920d15d779329eb",
|
||||
"commands/gsd-plan-phase.md": "d467c713ea161e9e",
|
||||
"commands/gsd-plan-phase.md": "6b05898d574f3666",
|
||||
"commands/gsd-plan-review-convergence.md": "87def0355116452a",
|
||||
"commands/gsd-pr-branch.md": "e168fcd545d72d0d",
|
||||
"commands/gsd-profile-user.md": "ffd9c2feb4c69f11",
|
||||
@@ -278,10 +278,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "1bc7377b105194fc",
|
||||
"gsd-core/workflows/add-phase.md": "46e0551ffdd8ce1a",
|
||||
"gsd-core/workflows/add-phase.md": "ac43883e2d8e34d8",
|
||||
"gsd-core/workflows/add-tests.md": "24b0d8157a9ccb8b",
|
||||
"gsd-core/workflows/add-todo.md": "953314cdfef56bc4",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "40c217869a06981f",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "45c727e49de71636",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "3835762c3147a927",
|
||||
@@ -352,7 +352,7 @@
|
||||
"gsd-core/workflows/onboard.md": "6f9e6c0b484271a9",
|
||||
"gsd-core/workflows/pause-work.md": "f2b33bba5593d422",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "852f6d7c0c4299dc",
|
||||
"gsd-core/workflows/plan-phase.md": "3fd22c43ad1fcc90",
|
||||
"gsd-core/workflows/plan-phase.md": "9f1c7dfc3ccac616",
|
||||
"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",
|
||||
@@ -490,7 +490,7 @@
|
||||
"skills/gsd-ns-review/skills/validate-phase/SKILL.md": "8972b413eb712cae",
|
||||
"skills/gsd-ns-workflow/SKILL.md": "9c03c167c9af062a",
|
||||
"skills/gsd-ns-workflow/skills/add-tests/SKILL.md": "851084b695ab8328",
|
||||
"skills/gsd-ns-workflow/skills/ai-integration-phase/SKILL.md": "34fa7aff585eb78f",
|
||||
"skills/gsd-ns-workflow/skills/ai-integration-phase/SKILL.md": "125533edf40cb047",
|
||||
"skills/gsd-ns-workflow/skills/autonomous/SKILL.md": "1565a532889d3ea3",
|
||||
"skills/gsd-ns-workflow/skills/discuss-phase/SKILL.md": "94ac4065ceeee80b",
|
||||
"skills/gsd-ns-workflow/skills/execute-phase/SKILL.md": "67c9a6189f045de0",
|
||||
@@ -498,7 +498,7 @@
|
||||
"skills/gsd-ns-workflow/skills/mvp-phase/SKILL.md": "f259f089a8d07a54",
|
||||
"skills/gsd-ns-workflow/skills/next/SKILL.md": "e7409245f1a0f9de",
|
||||
"skills/gsd-ns-workflow/skills/phase/SKILL.md": "fe5b26417ee466be",
|
||||
"skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "99a229cf1b4fb7ee",
|
||||
"skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "0dda686ce26d9171",
|
||||
"skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "8181db9842a79620",
|
||||
"skills/gsd-ns-workflow/skills/progress/SKILL.md": "68bda87136db9fb3",
|
||||
"skills/gsd-ns-workflow/skills/quick/SKILL.md": "014dec52d85dcb0e",
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
"agents/gsd-user-profiler.md": "d40584599906f3b7",
|
||||
"agents/gsd-verifier.md": "628ef3a944a7a6eb",
|
||||
"commands/gsd-add-tests.md": "057e3e440989e681",
|
||||
"commands/gsd-ai-integration-phase.md": "998dc23188e131fb",
|
||||
"commands/gsd-ai-integration-phase.md": "e1f1e0bd6c50506d",
|
||||
"commands/gsd-audit-fix.md": "ebdcc267a2bebaab",
|
||||
"commands/gsd-audit-milestone.md": "319caced85c69ff3",
|
||||
"commands/gsd-audit-uat.md": "99c9af1b2a2c600a",
|
||||
@@ -78,7 +78,7 @@
|
||||
"commands/gsd-onboard.md": "d0d9405bc73899bd",
|
||||
"commands/gsd-pause-work.md": "01dbaebfefacd252",
|
||||
"commands/gsd-phase.md": "e8c226d2694692a5",
|
||||
"commands/gsd-plan-phase.md": "ae70b58d4d8550c8",
|
||||
"commands/gsd-plan-phase.md": "7d14158eb377a248",
|
||||
"commands/gsd-plan-review-convergence.md": "c24bc978d9d743dc",
|
||||
"commands/gsd-pr-branch.md": "382c23a6a644c0e4",
|
||||
"commands/gsd-profile-user.md": "adbc5b025b30e836",
|
||||
@@ -277,10 +277,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "8d05775f367d1e48",
|
||||
"gsd-core/workflows/add-phase.md": "7285e6e8894a41c5",
|
||||
"gsd-core/workflows/add-phase.md": "b3c61dc9b4d799ed",
|
||||
"gsd-core/workflows/add-tests.md": "ffbaf55a25f455a2",
|
||||
"gsd-core/workflows/add-todo.md": "0a0f4d718ea50bea",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "3503f52a7356caf0",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "462b75ae916e2793",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "b441993d57cf83bc",
|
||||
"gsd-core/workflows/audit-milestone.md": "ae8605b4ecc37c0b",
|
||||
@@ -351,7 +351,7 @@
|
||||
"gsd-core/workflows/onboard.md": "b86d78eef6c77e5b",
|
||||
"gsd-core/workflows/pause-work.md": "da902807d2213204",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "7679fac068d1009d",
|
||||
"gsd-core/workflows/plan-phase.md": "4b20c2d821e2df8a",
|
||||
"gsd-core/workflows/plan-phase.md": "06970687f439918b",
|
||||
"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",
|
||||
|
||||
10
tests/fixtures/golden-install-parity/claude.json
vendored
10
tests/fixtures/golden-install-parity/claude.json
vendored
@@ -206,10 +206,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "485c4b6673ddf832",
|
||||
"gsd-core/workflows/add-phase.md": "0d90083e9c17bec1",
|
||||
"gsd-core/workflows/add-phase.md": "b2c06b7ed648658c",
|
||||
"gsd-core/workflows/add-tests.md": "c4b133a102d36a27",
|
||||
"gsd-core/workflows/add-todo.md": "2c5176263ad4ae8f",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "a898d99b8d844215",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "a280593ad22fc9a3",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "9f8ec364e58d5710",
|
||||
@@ -280,7 +280,7 @@
|
||||
"gsd-core/workflows/onboard.md": "3c50ed1f1fd07619",
|
||||
"gsd-core/workflows/pause-work.md": "5716362557f44ce4",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "1b43d12812f7bc1e",
|
||||
"gsd-core/workflows/plan-phase.md": "7e6899ce19c134e0",
|
||||
"gsd-core/workflows/plan-phase.md": "b8773ed817e24b37",
|
||||
"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",
|
||||
@@ -362,7 +362,7 @@
|
||||
"scripts/lib/allowlist-ratchet.cjs": "ffaceaac3efc2660",
|
||||
"scripts/lib/cli-exit.cjs": "612d0c372c75b7e7",
|
||||
"skills/gsd-add-tests/SKILL.md": "6661195a66f25ae8",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "96c8151779ad510e",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "e58f7e9b779b8cee",
|
||||
"skills/gsd-audit-fix/SKILL.md": "d47c757ad361e503",
|
||||
"skills/gsd-audit-milestone/SKILL.md": "edb6a0cc6305d724",
|
||||
"skills/gsd-audit-uat/SKILL.md": "f3cb11adb6dab54f",
|
||||
@@ -405,7 +405,7 @@
|
||||
"skills/gsd-onboard/SKILL.md": "46460b479b7524bf",
|
||||
"skills/gsd-pause-work/SKILL.md": "35e8a148e44f5361",
|
||||
"skills/gsd-phase/SKILL.md": "00be96e7ae36c6f0",
|
||||
"skills/gsd-plan-phase/SKILL.md": "a512ac3d14194133",
|
||||
"skills/gsd-plan-phase/SKILL.md": "f64953d1af7b0f34",
|
||||
"skills/gsd-plan-review-convergence/SKILL.md": "a42e226d17b69108",
|
||||
"skills/gsd-pr-branch/SKILL.md": "c5e26f2c6dff1355",
|
||||
"skills/gsd-profile-user/SKILL.md": "894eb2850ecd2dde",
|
||||
|
||||
10
tests/fixtures/golden-install-parity/cline.json
vendored
10
tests/fixtures/golden-install-parity/cline.json
vendored
@@ -210,10 +210,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "6c4393113fa9d209",
|
||||
"gsd-core/workflows/add-phase.md": "cac9b86f66ab26f5",
|
||||
"gsd-core/workflows/add-phase.md": "2558614a81b9e977",
|
||||
"gsd-core/workflows/add-tests.md": "0354376bffdc0080",
|
||||
"gsd-core/workflows/add-todo.md": "aa89018230c87f13",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "5159c6bdf102f74b",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "878d0a2c6eb08c88",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
||||
"gsd-core/workflows/audit-fix.md": "d6a41fc6879424f8",
|
||||
"gsd-core/workflows/audit-milestone.md": "202b726748604c93",
|
||||
@@ -284,7 +284,7 @@
|
||||
"gsd-core/workflows/onboard.md": "6f9e6c0b484271a9",
|
||||
"gsd-core/workflows/pause-work.md": "3530607514b0ac00",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "bafdc6945cd2bd87",
|
||||
"gsd-core/workflows/plan-phase.md": "32c4a6cb4937cce3",
|
||||
"gsd-core/workflows/plan-phase.md": "a3b27f3832d62470",
|
||||
"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",
|
||||
@@ -394,7 +394,7 @@
|
||||
"skills/gsd-ns-review/skills/validate-phase/SKILL.md": "62dc6ae62bb38c16",
|
||||
"skills/gsd-ns-workflow/SKILL.md": "0cb9c23c065fe448",
|
||||
"skills/gsd-ns-workflow/skills/add-tests/SKILL.md": "addc3a220961a9c7",
|
||||
"skills/gsd-ns-workflow/skills/ai-integration-phase/SKILL.md": "e74b83a991dc9fc7",
|
||||
"skills/gsd-ns-workflow/skills/ai-integration-phase/SKILL.md": "0b1553cb7f4c8f7a",
|
||||
"skills/gsd-ns-workflow/skills/autonomous/SKILL.md": "37dc7b78ceb74803",
|
||||
"skills/gsd-ns-workflow/skills/discuss-phase/SKILL.md": "fedb2e2c77ff82ae",
|
||||
"skills/gsd-ns-workflow/skills/execute-phase/SKILL.md": "e249a35959e49e99",
|
||||
@@ -402,7 +402,7 @@
|
||||
"skills/gsd-ns-workflow/skills/mvp-phase/SKILL.md": "6c2beccceb46fda1",
|
||||
"skills/gsd-ns-workflow/skills/next/SKILL.md": "3856471d0f64bf09",
|
||||
"skills/gsd-ns-workflow/skills/phase/SKILL.md": "4e1363db6013a1e5",
|
||||
"skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "643641b45747815e",
|
||||
"skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "5796e8744314dcf5",
|
||||
"skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "d44c5d4d78cbee13",
|
||||
"skills/gsd-ns-workflow/skills/progress/SKILL.md": "493f467c22d55b6b",
|
||||
"skills/gsd-ns-workflow/skills/quick/SKILL.md": "605e596c680cbb1c",
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
"agents/gsd-user-profiler.md": "622220df0654b6bf",
|
||||
"agents/gsd-verifier.md": "c8a8c73a277a512f",
|
||||
"commands/gsd-add-tests.md": "aa65032141557fb7",
|
||||
"commands/gsd-ai-integration-phase.md": "373053d7cd887aa9",
|
||||
"commands/gsd-ai-integration-phase.md": "6199b7198f928adc",
|
||||
"commands/gsd-audit-fix.md": "c21ef925131fade7",
|
||||
"commands/gsd-audit-milestone.md": "accbb975f85df506",
|
||||
"commands/gsd-audit-uat.md": "f34f9d211780c8e7",
|
||||
@@ -79,7 +79,7 @@
|
||||
"commands/gsd-onboard.md": "63283b90aa671229",
|
||||
"commands/gsd-pause-work.md": "6caa75a7c2b4dd2d",
|
||||
"commands/gsd-phase.md": "e3ca4958ea20a935",
|
||||
"commands/gsd-plan-phase.md": "03e08147bee2e446",
|
||||
"commands/gsd-plan-phase.md": "ad988a271bf20e9c",
|
||||
"commands/gsd-plan-review-convergence.md": "3d8837015534969f",
|
||||
"commands/gsd-pr-branch.md": "f5be514b9f69eaf5",
|
||||
"commands/gsd-profile-user.md": "7a9289910719d828",
|
||||
@@ -278,10 +278,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "1bc7377b105194fc",
|
||||
"gsd-core/workflows/add-phase.md": "46e0551ffdd8ce1a",
|
||||
"gsd-core/workflows/add-phase.md": "ac43883e2d8e34d8",
|
||||
"gsd-core/workflows/add-tests.md": "24b0d8157a9ccb8b",
|
||||
"gsd-core/workflows/add-todo.md": "953314cdfef56bc4",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "40c217869a06981f",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "45c727e49de71636",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "3835762c3147a927",
|
||||
@@ -352,7 +352,7 @@
|
||||
"gsd-core/workflows/onboard.md": "6f9e6c0b484271a9",
|
||||
"gsd-core/workflows/pause-work.md": "f2b33bba5593d422",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "852f6d7c0c4299dc",
|
||||
"gsd-core/workflows/plan-phase.md": "5124211d53f66feb",
|
||||
"gsd-core/workflows/plan-phase.md": "1d58b8554e8cc29a",
|
||||
"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",
|
||||
@@ -434,7 +434,7 @@
|
||||
"scripts/lib/allowlist-ratchet.cjs": "ffaceaac3efc2660",
|
||||
"scripts/lib/cli-exit.cjs": "612d0c372c75b7e7",
|
||||
"skills/gsd-add-tests/SKILL.md": "60dd7f9779d5f493",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "686ba35b47442cf4",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "eb9b5d76d91dd2fe",
|
||||
"skills/gsd-audit-fix/SKILL.md": "309dcbc406750fd6",
|
||||
"skills/gsd-audit-milestone/SKILL.md": "1f328f0c7448f27c",
|
||||
"skills/gsd-audit-uat/SKILL.md": "597d4f8cd0fa5240",
|
||||
@@ -477,7 +477,7 @@
|
||||
"skills/gsd-onboard/SKILL.md": "6ad789a03124cd4f",
|
||||
"skills/gsd-pause-work/SKILL.md": "e2de20b7539e78d4",
|
||||
"skills/gsd-phase/SKILL.md": "f87211f779315ced",
|
||||
"skills/gsd-plan-phase/SKILL.md": "262e2e7ff694fc09",
|
||||
"skills/gsd-plan-phase/SKILL.md": "5f00d90224127bd5",
|
||||
"skills/gsd-plan-review-convergence/SKILL.md": "bbad9a21eacdbfcf",
|
||||
"skills/gsd-pr-branch/SKILL.md": "87bb3306488565fb",
|
||||
"skills/gsd-profile-user/SKILL.md": "ee8e8547298006b8",
|
||||
|
||||
10
tests/fixtures/golden-install-parity/codex.json
vendored
10
tests/fixtures/golden-install-parity/codex.json
vendored
@@ -1,6 +1,6 @@
|
||||
{
|
||||
".agents/skills/gsd-add-tests/SKILL.md": "f3c1594a059de3ee",
|
||||
".agents/skills/gsd-ai-integration-phase/SKILL.md": "ba4b5f406db6de96",
|
||||
".agents/skills/gsd-ai-integration-phase/SKILL.md": "279cc57f38c78756",
|
||||
".agents/skills/gsd-audit-fix/SKILL.md": "9cea2764b92aa352",
|
||||
".agents/skills/gsd-audit-milestone/SKILL.md": "0528ef8a5834b5df",
|
||||
".agents/skills/gsd-audit-uat/SKILL.md": "6c2aa0c2b62c5233",
|
||||
@@ -43,7 +43,7 @@
|
||||
".agents/skills/gsd-onboard/SKILL.md": "f42fc2edebeda671",
|
||||
".agents/skills/gsd-pause-work/SKILL.md": "b379469eed78a196",
|
||||
".agents/skills/gsd-phase/SKILL.md": "25477edc97a90c91",
|
||||
".agents/skills/gsd-plan-phase/SKILL.md": "c6f734135356faac",
|
||||
".agents/skills/gsd-plan-phase/SKILL.md": "0a7a22d226bcec30",
|
||||
".agents/skills/gsd-plan-review-convergence/SKILL.md": "9a7ce3391c33139d",
|
||||
".agents/skills/gsd-pr-branch/SKILL.md": "6901da15e321913e",
|
||||
".agents/skills/gsd-profile-user/SKILL.md": "6259fabfb6afe7be",
|
||||
@@ -313,10 +313,10 @@
|
||||
"gsd-core/templates/verification-report.md": "78ab9264ce63ed7e",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "62431b27424ff1ff",
|
||||
"gsd-core/workflows/add-phase.md": "27f282bf5b8af59d",
|
||||
"gsd-core/workflows/add-phase.md": "d7a401b48271964f",
|
||||
"gsd-core/workflows/add-tests.md": "5cdb15508c4b6075",
|
||||
"gsd-core/workflows/add-todo.md": "776e554602e3d1b7",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "1dfa15d8f28c022d",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "d46f7e1a0b24345a",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "f799abc00907377f",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "5f362cead97ceaca",
|
||||
@@ -387,7 +387,7 @@
|
||||
"gsd-core/workflows/onboard.md": "83c40ba7055b8b24",
|
||||
"gsd-core/workflows/pause-work.md": "a217770ecafcb2e0",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "73d46f77c50a0690",
|
||||
"gsd-core/workflows/plan-phase.md": "395fe273b017b2ff",
|
||||
"gsd-core/workflows/plan-phase.md": "4b0010d581ccce22",
|
||||
"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",
|
||||
|
||||
@@ -208,10 +208,10 @@
|
||||
"gsd-core/templates/verification-report.md": "78ab9264ce63ed7e",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "98f2dbb7c7cc93c2",
|
||||
"gsd-core/workflows/add-phase.md": "34e6dd38c25b5b61",
|
||||
"gsd-core/workflows/add-phase.md": "f4fbfad54be5d46f",
|
||||
"gsd-core/workflows/add-tests.md": "7f5da4d2a9fa8a1a",
|
||||
"gsd-core/workflows/add-todo.md": "f86f4efa25a5d0d6",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "ef0c2474cee76b00",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "9dd7f80180f9c8e9",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "646fc39302300887",
|
||||
"gsd-core/workflows/audit-milestone.md": "258e4dfd259ab13f",
|
||||
@@ -282,7 +282,7 @@
|
||||
"gsd-core/workflows/onboard.md": "a62602c6f3fd538a",
|
||||
"gsd-core/workflows/pause-work.md": "9ce66367be6c40db",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "5cf589802d08bdf3",
|
||||
"gsd-core/workflows/plan-phase.md": "ab96c552cc86d2cc",
|
||||
"gsd-core/workflows/plan-phase.md": "b72262aa58c82429",
|
||||
"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",
|
||||
@@ -337,7 +337,7 @@
|
||||
"scripts/lib/allowlist-ratchet.cjs": "ffaceaac3efc2660",
|
||||
"scripts/lib/cli-exit.cjs": "612d0c372c75b7e7",
|
||||
"skills/gsd-add-tests/SKILL.md": "dfe3f8a07f34c438",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "7cdaa253924740b0",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "22593b80a1f3e340",
|
||||
"skills/gsd-audit-fix/SKILL.md": "ac3e209167e2171a",
|
||||
"skills/gsd-audit-milestone/SKILL.md": "faa9473569f5fa4b",
|
||||
"skills/gsd-audit-uat/SKILL.md": "00f0a430a5c43da0",
|
||||
@@ -380,7 +380,7 @@
|
||||
"skills/gsd-onboard/SKILL.md": "4d325f3033df2d37",
|
||||
"skills/gsd-pause-work/SKILL.md": "4f0caa008a8001ff",
|
||||
"skills/gsd-phase/SKILL.md": "d38c7f9b1d0d2360",
|
||||
"skills/gsd-plan-phase/SKILL.md": "7761a2f06ac98b30",
|
||||
"skills/gsd-plan-phase/SKILL.md": "d1ba21e500bf62a8",
|
||||
"skills/gsd-plan-review-convergence/SKILL.md": "d6b850077d62d723",
|
||||
"skills/gsd-pr-branch/SKILL.md": "9cd9740db385d95a",
|
||||
"skills/gsd-profile-user/SKILL.md": "052a8e17ecda40f1",
|
||||
|
||||
14
tests/fixtures/golden-install-parity/cursor.json
vendored
14
tests/fixtures/golden-install-parity/cursor.json
vendored
@@ -36,7 +36,7 @@
|
||||
"agents/gsd-user-profiler.md": "622220df0654b6bf",
|
||||
"agents/gsd-verifier.md": "dea8e61123848fb4",
|
||||
"commands/gsd-add-tests.md": "1f89b16ab2cca426",
|
||||
"commands/gsd-ai-integration-phase.md": "3ccac39673ffb92c",
|
||||
"commands/gsd-ai-integration-phase.md": "99f66291ded1899d",
|
||||
"commands/gsd-audit-fix.md": "d88502ffa2151cec",
|
||||
"commands/gsd-audit-milestone.md": "db525e85095d268a",
|
||||
"commands/gsd-audit-uat.md": "70d1d0f175734d8f",
|
||||
@@ -79,7 +79,7 @@
|
||||
"commands/gsd-onboard.md": "d9e52f558fc2b90f",
|
||||
"commands/gsd-pause-work.md": "59630f05f95fff68",
|
||||
"commands/gsd-phase.md": "9a073dcd0f934f90",
|
||||
"commands/gsd-plan-phase.md": "462995ee69ba35b4",
|
||||
"commands/gsd-plan-phase.md": "d9bdd3726e9c3dff",
|
||||
"commands/gsd-plan-review-convergence.md": "04d89318e0e23a1b",
|
||||
"commands/gsd-pr-branch.md": "ef2eedb0ed4295da",
|
||||
"commands/gsd-profile-user.md": "0e99de36619c3b7d",
|
||||
@@ -278,10 +278,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "2926457ed07b4500",
|
||||
"gsd-core/workflows/add-phase.md": "0d90083e9c17bec1",
|
||||
"gsd-core/workflows/add-phase.md": "b2c06b7ed648658c",
|
||||
"gsd-core/workflows/add-tests.md": "37f031c4b3236a32",
|
||||
"gsd-core/workflows/add-todo.md": "1ee0525664fb062f",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "b79f320d59a68773",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "a349e94b18839873",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "9f8ec364e58d5710",
|
||||
@@ -352,7 +352,7 @@
|
||||
"gsd-core/workflows/onboard.md": "20c28136423d40ac",
|
||||
"gsd-core/workflows/pause-work.md": "5716362557f44ce4",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "1b43d12812f7bc1e",
|
||||
"gsd-core/workflows/plan-phase.md": "2aa913f604e21704",
|
||||
"gsd-core/workflows/plan-phase.md": "abe2eb62620f372f",
|
||||
"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",
|
||||
@@ -412,7 +412,7 @@
|
||||
"scripts/lib/allowlist-ratchet.cjs": "ffaceaac3efc2660",
|
||||
"scripts/lib/cli-exit.cjs": "612d0c372c75b7e7",
|
||||
"skills/gsd-add-tests/SKILL.md": "1719810d0f8dd79e",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "9c8242023a8bcc29",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "56ee07ad9596c6f3",
|
||||
"skills/gsd-audit-fix/SKILL.md": "2d2ee3894efbee1c",
|
||||
"skills/gsd-audit-milestone/SKILL.md": "d953bd7170402fc3",
|
||||
"skills/gsd-audit-uat/SKILL.md": "97794348d617f873",
|
||||
@@ -455,7 +455,7 @@
|
||||
"skills/gsd-onboard/SKILL.md": "c7f216749ba4c09c",
|
||||
"skills/gsd-pause-work/SKILL.md": "7d310e7329b7ae7d",
|
||||
"skills/gsd-phase/SKILL.md": "49fca93e5f2ccc70",
|
||||
"skills/gsd-plan-phase/SKILL.md": "62dc688c24e59f18",
|
||||
"skills/gsd-plan-phase/SKILL.md": "c5e1a4ab2ede399a",
|
||||
"skills/gsd-plan-review-convergence/SKILL.md": "c2793cacf3f40d70",
|
||||
"skills/gsd-pr-branch/SKILL.md": "a8f8838a6aa5e1dd",
|
||||
"skills/gsd-profile-user/SKILL.md": "3be8d50399836ef2",
|
||||
|
||||
10
tests/fixtures/golden-install-parity/hermes.json
vendored
10
tests/fixtures/golden-install-parity/hermes.json
vendored
@@ -207,10 +207,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "79a453a2270483fb",
|
||||
"gsd-core/workflows/add-phase.md": "b4c4b32c111a116a",
|
||||
"gsd-core/workflows/add-phase.md": "2a6452fc51339b9c",
|
||||
"gsd-core/workflows/add-tests.md": "02f9e11ad2371c00",
|
||||
"gsd-core/workflows/add-todo.md": "8ba173153be63a40",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "ddab2912d025db65",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "753a41301e4d2a4c",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "bf84c94d2ccdacbf",
|
||||
"gsd-core/workflows/audit-milestone.md": "b96a78c6bd2e7690",
|
||||
@@ -281,7 +281,7 @@
|
||||
"gsd-core/workflows/onboard.md": "3c50ed1f1fd07619",
|
||||
"gsd-core/workflows/pause-work.md": "ae2d5789a95f70fe",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "c86cdc1964256b98",
|
||||
"gsd-core/workflows/plan-phase.md": "2f0c5b0b66ebcf1d",
|
||||
"gsd-core/workflows/plan-phase.md": "c181932975852b0e",
|
||||
"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",
|
||||
@@ -420,7 +420,7 @@
|
||||
"skills/gsd/gsd-ns-review/skills/validate-phase/SKILL.md": "f2c31c34fc8e24c4",
|
||||
"skills/gsd/gsd-ns-workflow/SKILL.md": "f54502a2c6bf5495",
|
||||
"skills/gsd/gsd-ns-workflow/skills/add-tests/SKILL.md": "29e5863322ad6f2d",
|
||||
"skills/gsd/gsd-ns-workflow/skills/ai-integration-phase/SKILL.md": "317912c0488d701b",
|
||||
"skills/gsd/gsd-ns-workflow/skills/ai-integration-phase/SKILL.md": "97eb01851d368d50",
|
||||
"skills/gsd/gsd-ns-workflow/skills/autonomous/SKILL.md": "3c9bc726e13c4916",
|
||||
"skills/gsd/gsd-ns-workflow/skills/discuss-phase/SKILL.md": "326303209b745eea",
|
||||
"skills/gsd/gsd-ns-workflow/skills/execute-phase/SKILL.md": "a2e4e6211e09b3c0",
|
||||
@@ -428,7 +428,7 @@
|
||||
"skills/gsd/gsd-ns-workflow/skills/mvp-phase/SKILL.md": "0804dfd4124526ba",
|
||||
"skills/gsd/gsd-ns-workflow/skills/next/SKILL.md": "1d30cf6061d15168",
|
||||
"skills/gsd/gsd-ns-workflow/skills/phase/SKILL.md": "610bd06d71198849",
|
||||
"skills/gsd/gsd-ns-workflow/skills/plan-phase/SKILL.md": "cb1cf29451588047",
|
||||
"skills/gsd/gsd-ns-workflow/skills/plan-phase/SKILL.md": "e564bd88707a0e69",
|
||||
"skills/gsd/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "87e5f3a0c1f2a6af",
|
||||
"skills/gsd/gsd-ns-workflow/skills/progress/SKILL.md": "6ec0e4715dde7ee2",
|
||||
"skills/gsd/gsd-ns-workflow/skills/quick/SKILL.md": "65e377345e9c49a8",
|
||||
|
||||
14
tests/fixtures/golden-install-parity/kilo.json
vendored
14
tests/fixtures/golden-install-parity/kilo.json
vendored
@@ -36,7 +36,7 @@
|
||||
"agents/gsd-user-profiler.md": "b8cb09319c517701",
|
||||
"agents/gsd-verifier.md": "af609b1959cde3f3",
|
||||
"command/gsd-add-tests.md": "c314f9a6be312bfa",
|
||||
"command/gsd-ai-integration-phase.md": "bbab86a540e00db5",
|
||||
"command/gsd-ai-integration-phase.md": "9c47e446af993c53",
|
||||
"command/gsd-audit-fix.md": "4106e9dce9b71585",
|
||||
"command/gsd-audit-milestone.md": "0f627d956b5030ed",
|
||||
"command/gsd-audit-uat.md": "119f204ca3cd0cd6",
|
||||
@@ -79,7 +79,7 @@
|
||||
"command/gsd-onboard.md": "3e87a21c9c04f0d7",
|
||||
"command/gsd-pause-work.md": "04e993b1c9f8322b",
|
||||
"command/gsd-phase.md": "8f0e98dc6c223229",
|
||||
"command/gsd-plan-phase.md": "5ef48b00031b341c",
|
||||
"command/gsd-plan-phase.md": "8c39408407b6bf9f",
|
||||
"command/gsd-plan-review-convergence.md": "45060e2c490fcae7",
|
||||
"command/gsd-pr-branch.md": "68e724607de3c480",
|
||||
"command/gsd-profile-user.md": "9704158b2d79cad2",
|
||||
@@ -278,10 +278,10 @@
|
||||
"gsd-core/templates/verification-report.md": "78ab9264ce63ed7e",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "485c4b6673ddf832",
|
||||
"gsd-core/workflows/add-phase.md": "0d90083e9c17bec1",
|
||||
"gsd-core/workflows/add-phase.md": "b2c06b7ed648658c",
|
||||
"gsd-core/workflows/add-tests.md": "6e54f3d71a202671",
|
||||
"gsd-core/workflows/add-todo.md": "31bc520d77b14139",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "c85c6afdc64f0da6",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "d4400169618e6925",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "9f8ec364e58d5710",
|
||||
@@ -352,7 +352,7 @@
|
||||
"gsd-core/workflows/onboard.md": "78b288089305dc46",
|
||||
"gsd-core/workflows/pause-work.md": "a6e5336c409fdc8b",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "1b43d12812f7bc1e",
|
||||
"gsd-core/workflows/plan-phase.md": "aca787850411c004",
|
||||
"gsd-core/workflows/plan-phase.md": "5ed4eaa6691f76fd",
|
||||
"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",
|
||||
@@ -436,7 +436,7 @@
|
||||
"scripts/lib/allowlist-ratchet.cjs": "ffaceaac3efc2660",
|
||||
"scripts/lib/cli-exit.cjs": "612d0c372c75b7e7",
|
||||
"skills/gsd-add-tests/SKILL.md": "addc3a220961a9c7",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "e74b83a991dc9fc7",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "0b1553cb7f4c8f7a",
|
||||
"skills/gsd-audit-fix/SKILL.md": "2c1f601f2fb52585",
|
||||
"skills/gsd-audit-milestone/SKILL.md": "739ed755ad84e58e",
|
||||
"skills/gsd-audit-uat/SKILL.md": "2c450432b6fd1c3e",
|
||||
@@ -479,7 +479,7 @@
|
||||
"skills/gsd-onboard/SKILL.md": "0e3cc902f44b41b8",
|
||||
"skills/gsd-pause-work/SKILL.md": "34366b18a392a717",
|
||||
"skills/gsd-phase/SKILL.md": "64a241d4f8665aa2",
|
||||
"skills/gsd-plan-phase/SKILL.md": "fd51709d82eb05b6",
|
||||
"skills/gsd-plan-phase/SKILL.md": "c95d9376440c4725",
|
||||
"skills/gsd-plan-review-convergence/SKILL.md": "fb7355db56f5eaec",
|
||||
"skills/gsd-pr-branch/SKILL.md": "a80da6aa95efc50d",
|
||||
"skills/gsd-profile-user/SKILL.md": "4ac2c5ea45d17a9d",
|
||||
|
||||
10
tests/fixtures/golden-install-parity/kimi.json
vendored
10
tests/fixtures/golden-install-parity/kimi.json
vendored
@@ -271,10 +271,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "1bc7377b105194fc",
|
||||
"gsd-core/workflows/add-phase.md": "46e0551ffdd8ce1a",
|
||||
"gsd-core/workflows/add-phase.md": "ac43883e2d8e34d8",
|
||||
"gsd-core/workflows/add-tests.md": "24b0d8157a9ccb8b",
|
||||
"gsd-core/workflows/add-todo.md": "953314cdfef56bc4",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "40c217869a06981f",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "45c727e49de71636",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "3835762c3147a927",
|
||||
@@ -345,7 +345,7 @@
|
||||
"gsd-core/workflows/onboard.md": "6f9e6c0b484271a9",
|
||||
"gsd-core/workflows/pause-work.md": "f2b33bba5593d422",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "852f6d7c0c4299dc",
|
||||
"gsd-core/workflows/plan-phase.md": "851eb6ba0bc911b9",
|
||||
"gsd-core/workflows/plan-phase.md": "a0e6a19b0cec72ed",
|
||||
"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",
|
||||
@@ -399,7 +399,7 @@
|
||||
"scripts/lib/allowlist-ratchet.cjs": "ffaceaac3efc2660",
|
||||
"scripts/lib/cli-exit.cjs": "612d0c372c75b7e7",
|
||||
"skills/gsd-add-tests/SKILL.md": "217fc2587d3e7ec2",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "739a1376f6f56094",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "949c29f9a6f4a256",
|
||||
"skills/gsd-audit-fix/SKILL.md": "ed585da70ba6da12",
|
||||
"skills/gsd-audit-milestone/SKILL.md": "ad78e50cef304155",
|
||||
"skills/gsd-audit-uat/SKILL.md": "b8e73cbb993a30e2",
|
||||
@@ -442,7 +442,7 @@
|
||||
"skills/gsd-onboard/SKILL.md": "fd66b3c5b9c6a871",
|
||||
"skills/gsd-pause-work/SKILL.md": "95017c70ae9dca0d",
|
||||
"skills/gsd-phase/SKILL.md": "31578c329cc2583e",
|
||||
"skills/gsd-plan-phase/SKILL.md": "4c2c6641f59f6496",
|
||||
"skills/gsd-plan-phase/SKILL.md": "83362394f648deeb",
|
||||
"skills/gsd-plan-review-convergence/SKILL.md": "ab63cb338105d27f",
|
||||
"skills/gsd-pr-branch/SKILL.md": "67f468db29ff2cf1",
|
||||
"skills/gsd-profile-user/SKILL.md": "19a1d3aba57f6c7c",
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
"agents/gsd-user-profiler.md": "d825b4c0a6431f8b",
|
||||
"agents/gsd-verifier.md": "b9f2e801f9395a35",
|
||||
"commands/gsd-add-tests.md": "b9cd93ed01945f75",
|
||||
"commands/gsd-ai-integration-phase.md": "9d4bc4dcce7f1ee0",
|
||||
"commands/gsd-ai-integration-phase.md": "038709fe91d897e4",
|
||||
"commands/gsd-audit-fix.md": "5615403843d5e491",
|
||||
"commands/gsd-audit-milestone.md": "4c700c081f3918ba",
|
||||
"commands/gsd-audit-uat.md": "47dce58d5823da8d",
|
||||
@@ -79,7 +79,7 @@
|
||||
"commands/gsd-onboard.md": "3aafaeb5d3941efe",
|
||||
"commands/gsd-pause-work.md": "bb5bf91a2e3e480e",
|
||||
"commands/gsd-phase.md": "6bcda1539f949d5a",
|
||||
"commands/gsd-plan-phase.md": "2c673275cb9517fe",
|
||||
"commands/gsd-plan-phase.md": "4e19ddc0ca22fbf6",
|
||||
"commands/gsd-plan-review-convergence.md": "88c4284aa8b3dd7e",
|
||||
"commands/gsd-pr-branch.md": "31fca4f1d6c4ee62",
|
||||
"commands/gsd-profile-user.md": "725c14ae7203b5b6",
|
||||
@@ -278,10 +278,10 @@
|
||||
"gsd-core/templates/verification-report.md": "78ab9264ce63ed7e",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "08289088a88d410f",
|
||||
"gsd-core/workflows/add-phase.md": "5154a5fb3e0d4370",
|
||||
"gsd-core/workflows/add-phase.md": "739e34f6122e1e61",
|
||||
"gsd-core/workflows/add-tests.md": "b4deb88c74d491c7",
|
||||
"gsd-core/workflows/add-todo.md": "36b6d7fec9631ec7",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "90e5f97018715b18",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "f8288f0434d17c84",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "20d2c2a6c49e750b",
|
||||
"gsd-core/workflows/audit-milestone.md": "8bd0b730de08d1a8",
|
||||
@@ -352,7 +352,7 @@
|
||||
"gsd-core/workflows/onboard.md": "102556e1715c01b9",
|
||||
"gsd-core/workflows/pause-work.md": "70c72beca55c080a",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "0a9dacd422cd9533",
|
||||
"gsd-core/workflows/plan-phase.md": "b252c6e1427d508e",
|
||||
"gsd-core/workflows/plan-phase.md": "bb029bf7a3d3c6ef",
|
||||
"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",
|
||||
@@ -436,7 +436,7 @@
|
||||
"scripts/lib/allowlist-ratchet.cjs": "ffaceaac3efc2660",
|
||||
"scripts/lib/cli-exit.cjs": "612d0c372c75b7e7",
|
||||
"skills/gsd-add-tests/SKILL.md": "f60794b90b48cbac",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "868ca7c86ef61033",
|
||||
"skills/gsd-ai-integration-phase/SKILL.md": "d2418122ba6f6330",
|
||||
"skills/gsd-audit-fix/SKILL.md": "740d255df04b6e93",
|
||||
"skills/gsd-audit-milestone/SKILL.md": "68b57f54877f35a9",
|
||||
"skills/gsd-audit-uat/SKILL.md": "d73e6e175a711ed9",
|
||||
@@ -479,7 +479,7 @@
|
||||
"skills/gsd-onboard/SKILL.md": "ea0b1217e5ecae23",
|
||||
"skills/gsd-pause-work/SKILL.md": "c7e9ba4f242c4648",
|
||||
"skills/gsd-phase/SKILL.md": "ee78c0c56c814d84",
|
||||
"skills/gsd-plan-phase/SKILL.md": "c9b3b5cb0fbb42a9",
|
||||
"skills/gsd-plan-phase/SKILL.md": "4b65f0a9d7d42ec7",
|
||||
"skills/gsd-plan-review-convergence/SKILL.md": "78820e21dd05d5d4",
|
||||
"skills/gsd-pr-branch/SKILL.md": "8fa5a8fa217fe913",
|
||||
"skills/gsd-profile-user/SKILL.md": "3e6155a64523d59f",
|
||||
|
||||
6
tests/fixtures/golden-install-parity/pi.json
vendored
6
tests/fixtures/golden-install-parity/pi.json
vendored
@@ -174,10 +174,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "1bc7377b105194fc",
|
||||
"gsd-core/workflows/add-phase.md": "46e0551ffdd8ce1a",
|
||||
"gsd-core/workflows/add-phase.md": "ac43883e2d8e34d8",
|
||||
"gsd-core/workflows/add-tests.md": "24b0d8157a9ccb8b",
|
||||
"gsd-core/workflows/add-todo.md": "953314cdfef56bc4",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "40c217869a06981f",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "45c727e49de71636",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "3835762c3147a927",
|
||||
@@ -248,7 +248,7 @@
|
||||
"gsd-core/workflows/onboard.md": "6f9e6c0b484271a9",
|
||||
"gsd-core/workflows/pause-work.md": "f2b33bba5593d422",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "852f6d7c0c4299dc",
|
||||
"gsd-core/workflows/plan-phase.md": "915e5aee921c011f",
|
||||
"gsd-core/workflows/plan-phase.md": "d04009957f972f33",
|
||||
"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",
|
||||
|
||||
10
tests/fixtures/golden-install-parity/qwen.json
vendored
10
tests/fixtures/golden-install-parity/qwen.json
vendored
@@ -207,10 +207,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "cee41d5fc52d4e37",
|
||||
"gsd-core/workflows/add-phase.md": "cc63a3e108c9a065",
|
||||
"gsd-core/workflows/add-phase.md": "395fb0f9f0385073",
|
||||
"gsd-core/workflows/add-tests.md": "7cd945118e83246e",
|
||||
"gsd-core/workflows/add-todo.md": "83426131a56b8e77",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "afdc7c15f03a95fc",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "dd58ee9044bdf3c2",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "fe2e5a89d158f9eb",
|
||||
"gsd-core/workflows/audit-milestone.md": "78dbc1e8c4499d7d",
|
||||
@@ -281,7 +281,7 @@
|
||||
"gsd-core/workflows/onboard.md": "3c50ed1f1fd07619",
|
||||
"gsd-core/workflows/pause-work.md": "be33f84dc1d4822f",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "d98e98486123eb97",
|
||||
"gsd-core/workflows/plan-phase.md": "2b0110c2cd8de18a",
|
||||
"gsd-core/workflows/plan-phase.md": "0e4471f6bff26866",
|
||||
"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",
|
||||
@@ -419,7 +419,7 @@
|
||||
"skills/gsd-ns-review/skills/validate-phase/SKILL.md": "70375e2381319d2b",
|
||||
"skills/gsd-ns-workflow/SKILL.md": "5a65f9fb93a71cec",
|
||||
"skills/gsd-ns-workflow/skills/add-tests/SKILL.md": "6661195a66f25ae8",
|
||||
"skills/gsd-ns-workflow/skills/ai-integration-phase/SKILL.md": "96c8151779ad510e",
|
||||
"skills/gsd-ns-workflow/skills/ai-integration-phase/SKILL.md": "e58f7e9b779b8cee",
|
||||
"skills/gsd-ns-workflow/skills/autonomous/SKILL.md": "fb57d2c08ea9e8bc",
|
||||
"skills/gsd-ns-workflow/skills/discuss-phase/SKILL.md": "ff522155265107d2",
|
||||
"skills/gsd-ns-workflow/skills/execute-phase/SKILL.md": "13518a22e020e1bf",
|
||||
@@ -427,7 +427,7 @@
|
||||
"skills/gsd-ns-workflow/skills/mvp-phase/SKILL.md": "f9a1348c6c297579",
|
||||
"skills/gsd-ns-workflow/skills/next/SKILL.md": "13e394affe675498",
|
||||
"skills/gsd-ns-workflow/skills/phase/SKILL.md": "1ed640e5f06c7be6",
|
||||
"skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "cdfe074359399099",
|
||||
"skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "ff46b5450c9c4313",
|
||||
"skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "a42e226d17b69108",
|
||||
"skills/gsd-ns-workflow/skills/progress/SKILL.md": "943538c4ac6bde19",
|
||||
"skills/gsd-ns-workflow/skills/quick/SKILL.md": "bd5e4cb79bc41611",
|
||||
|
||||
10
tests/fixtures/golden-install-parity/trae.json
vendored
10
tests/fixtures/golden-install-parity/trae.json
vendored
@@ -207,10 +207,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "1851e97996d445d5",
|
||||
"gsd-core/workflows/add-phase.md": "09bdebbc62f3310e",
|
||||
"gsd-core/workflows/add-phase.md": "7403cf0bc93a9699",
|
||||
"gsd-core/workflows/add-tests.md": "8ad08d29415f8f43",
|
||||
"gsd-core/workflows/add-todo.md": "fefa923ed596225f",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "d469eb120e52de0f",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "197ebcc6abb0b873",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "2d4d783caf51f781",
|
||||
"gsd-core/workflows/audit-milestone.md": "ebec95af8f68f2ed",
|
||||
@@ -281,7 +281,7 @@
|
||||
"gsd-core/workflows/onboard.md": "61f111302af0f404",
|
||||
"gsd-core/workflows/pause-work.md": "c20d267e28ce92f0",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "26db7b9329b7ddc8",
|
||||
"gsd-core/workflows/plan-phase.md": "ab5ecd1e6a256c11",
|
||||
"gsd-core/workflows/plan-phase.md": "8e0485af2536a0e8",
|
||||
"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",
|
||||
@@ -391,7 +391,7 @@
|
||||
"skills/gsd-ns-review/skills/validate-phase/SKILL.md": "536619be8c40ff5e",
|
||||
"skills/gsd-ns-workflow/SKILL.md": "2c85abe6d78c7cf7",
|
||||
"skills/gsd-ns-workflow/skills/add-tests/SKILL.md": "6e10735c8b18de8a",
|
||||
"skills/gsd-ns-workflow/skills/ai-integration-phase/SKILL.md": "b5cce2e6e801420d",
|
||||
"skills/gsd-ns-workflow/skills/ai-integration-phase/SKILL.md": "8bbad0f4c9624d4e",
|
||||
"skills/gsd-ns-workflow/skills/autonomous/SKILL.md": "a9d7374b631ae7b3",
|
||||
"skills/gsd-ns-workflow/skills/discuss-phase/SKILL.md": "d2f1554b9faab0a1",
|
||||
"skills/gsd-ns-workflow/skills/execute-phase/SKILL.md": "e05fc375d4b5f7b5",
|
||||
@@ -399,7 +399,7 @@
|
||||
"skills/gsd-ns-workflow/skills/mvp-phase/SKILL.md": "fef8178c9920c2dd",
|
||||
"skills/gsd-ns-workflow/skills/next/SKILL.md": "faadd9e2817e7324",
|
||||
"skills/gsd-ns-workflow/skills/phase/SKILL.md": "df3efcd61f7cc796",
|
||||
"skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "a937c8c42e5eaea3",
|
||||
"skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "31962f06bc124c89",
|
||||
"skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "5c4475320977818f",
|
||||
"skills/gsd-ns-workflow/skills/progress/SKILL.md": "37a37d2cdfba46ea",
|
||||
"skills/gsd-ns-workflow/skills/quick/SKILL.md": "6fd1b96274b23a9f",
|
||||
|
||||
@@ -207,10 +207,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "61169973a10b1321",
|
||||
"gsd-core/workflows/add-phase.md": "f9b1f7cc229b57f8",
|
||||
"gsd-core/workflows/add-phase.md": "78cca7f86793f7f8",
|
||||
"gsd-core/workflows/add-tests.md": "d51e69bb433535a4",
|
||||
"gsd-core/workflows/add-todo.md": "50d17053c6cfbc31",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "8948988717506320",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "e556fe979752c52b",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "77aff48f97fa6f1c",
|
||||
"gsd-core/workflows/audit-fix.md": "fe4d636f2dca6d74",
|
||||
"gsd-core/workflows/audit-milestone.md": "868db5a8f5d55040",
|
||||
@@ -281,7 +281,7 @@
|
||||
"gsd-core/workflows/onboard.md": "20c28136423d40ac",
|
||||
"gsd-core/workflows/pause-work.md": "93fcc1c845da6396",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "7880866ee1caf923",
|
||||
"gsd-core/workflows/plan-phase.md": "0404dbc786881567",
|
||||
"gsd-core/workflows/plan-phase.md": "8b1522804296adfd",
|
||||
"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",
|
||||
|
||||
14
tests/fixtures/golden-install-parity/zcode.json
vendored
14
tests/fixtures/golden-install-parity/zcode.json
vendored
@@ -36,7 +36,7 @@
|
||||
"agents/gsd-user-profiler.md": "ca3bf75581f211a0",
|
||||
"agents/gsd-verifier.md": "8282761ba471c022",
|
||||
"commands/gsd-add-tests.md": "51542808862d4aa7",
|
||||
"commands/gsd-ai-integration-phase.md": "22b1e98786c2a43e",
|
||||
"commands/gsd-ai-integration-phase.md": "a693c0ade172bc3d",
|
||||
"commands/gsd-audit-fix.md": "24d7e5478c271584",
|
||||
"commands/gsd-audit-milestone.md": "192c2d4979ef6a5e",
|
||||
"commands/gsd-audit-uat.md": "a7ce7c63bf2db68e",
|
||||
@@ -79,7 +79,7 @@
|
||||
"commands/gsd-onboard.md": "a35340ce39334fc7",
|
||||
"commands/gsd-pause-work.md": "40a953fcddbedb5d",
|
||||
"commands/gsd-phase.md": "5dd3d40e3461a973",
|
||||
"commands/gsd-plan-phase.md": "3fd288ea8d4748e2",
|
||||
"commands/gsd-plan-phase.md": "d6ba79bf0ede5bcd",
|
||||
"commands/gsd-plan-review-convergence.md": "551597f2add981cb",
|
||||
"commands/gsd-pr-branch.md": "ab1fcffe92129061",
|
||||
"commands/gsd-profile-user.md": "37c9ef202669bfd3",
|
||||
@@ -278,10 +278,10 @@
|
||||
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
||||
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
||||
"gsd-core/workflows/add-backlog.md": "1bc7377b105194fc",
|
||||
"gsd-core/workflows/add-phase.md": "46e0551ffdd8ce1a",
|
||||
"gsd-core/workflows/add-phase.md": "ac43883e2d8e34d8",
|
||||
"gsd-core/workflows/add-tests.md": "24b0d8157a9ccb8b",
|
||||
"gsd-core/workflows/add-todo.md": "953314cdfef56bc4",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "40c217869a06981f",
|
||||
"gsd-core/workflows/ai-integration-phase.md": "45c727e49de71636",
|
||||
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
||||
"gsd-core/workflows/audit-fix.md": "ca751f6538c8f496",
|
||||
"gsd-core/workflows/audit-milestone.md": "3835762c3147a927",
|
||||
@@ -352,7 +352,7 @@
|
||||
"gsd-core/workflows/onboard.md": "6f9e6c0b484271a9",
|
||||
"gsd-core/workflows/pause-work.md": "f2b33bba5593d422",
|
||||
"gsd-core/workflows/plan-milestone-gaps.md": "852f6d7c0c4299dc",
|
||||
"gsd-core/workflows/plan-phase.md": "d491791075b1aca9",
|
||||
"gsd-core/workflows/plan-phase.md": "142484d37dfb94ed",
|
||||
"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",
|
||||
@@ -462,7 +462,7 @@
|
||||
"skills/gsd-ns-review/skills/validate-phase/SKILL.md": "9e1c7909c089ee46",
|
||||
"skills/gsd-ns-workflow/SKILL.md": "5a65f9fb93a71cec",
|
||||
"skills/gsd-ns-workflow/skills/add-tests/SKILL.md": "303c01b7dd9c7614",
|
||||
"skills/gsd-ns-workflow/skills/ai-integration-phase/SKILL.md": "d30c04aeb1d09bb7",
|
||||
"skills/gsd-ns-workflow/skills/ai-integration-phase/SKILL.md": "f0333bffe02141b7",
|
||||
"skills/gsd-ns-workflow/skills/autonomous/SKILL.md": "f1c614fed8f4d0a5",
|
||||
"skills/gsd-ns-workflow/skills/discuss-phase/SKILL.md": "997ae1063e8c3703",
|
||||
"skills/gsd-ns-workflow/skills/execute-phase/SKILL.md": "b2627b774725a381",
|
||||
@@ -470,7 +470,7 @@
|
||||
"skills/gsd-ns-workflow/skills/mvp-phase/SKILL.md": "3455ea7562a447a2",
|
||||
"skills/gsd-ns-workflow/skills/next/SKILL.md": "63659cd48a0276f9",
|
||||
"skills/gsd-ns-workflow/skills/phase/SKILL.md": "b377b03d13db8573",
|
||||
"skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "c7cfcb8f3606e69c",
|
||||
"skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "4564f415845d6c15",
|
||||
"skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "12d1696eaaf60043",
|
||||
"skills/gsd-ns-workflow/skills/progress/SKILL.md": "fb24eab4a0e5f6a3",
|
||||
"skills/gsd-ns-workflow/skills/quick/SKILL.md": "48629fef2b9ac5b0",
|
||||
|
||||
@@ -1520,6 +1520,104 @@ describe('phase add command', () => {
|
||||
'directory should be 1001-after-one-thousand'
|
||||
);
|
||||
});
|
||||
|
||||
// #2390 — phase.add title/goal split-or-warn regression coverage.
|
||||
test('phase add with a short, title-shaped description has no warning key', () => {
|
||||
fs.writeFileSync(
|
||||
path.join(tmpDir, '.planning', 'ROADMAP.md'),
|
||||
`# Roadmap v1.0\n\n### Phase 1: Foundation\n**Goal:** Setup\n\n---\n`
|
||||
);
|
||||
|
||||
const result = runGsdTools(['phase', 'add', 'Add auth'], tmpDir);
|
||||
assert.ok(result.success, `Command failed: ${result.error}`);
|
||||
|
||||
const output = JSON.parse(result.output);
|
||||
assert.strictEqual(output.name, 'Add auth');
|
||||
assert.ok(!('warning' in output), 'short title-shaped description should not produce a warning');
|
||||
|
||||
const roadmap = fs.readFileSync(path.join(tmpDir, '.planning', 'ROADMAP.md'), 'utf-8');
|
||||
assert.ok(roadmap.includes('### Phase 2: Add auth'), 'roadmap should include the new phase header');
|
||||
});
|
||||
|
||||
test('phase add with a goal-shaped (long, multi-sentence) description surfaces a warning but still creates the phase (regression #2390)', () => {
|
||||
fs.writeFileSync(
|
||||
path.join(tmpDir, '.planning', 'ROADMAP.md'),
|
||||
`# Roadmap v1.0\n\n### Phase 1: Foundation\n**Goal:** Setup\n\n---\n`
|
||||
);
|
||||
|
||||
const goalShaped =
|
||||
'Add a comprehensive authentication and authorization system with OAuth2 support. ' +
|
||||
'This will also include session management and rate limiting for the public API.';
|
||||
|
||||
const result = runGsdTools(['phase', 'add', goalShaped], tmpDir);
|
||||
assert.ok(result.success, `Command failed: ${result.error}`);
|
||||
|
||||
const output = JSON.parse(result.output);
|
||||
// Negative proof: before the #2390 fix, phase.add emitted no `warning` key
|
||||
// for ANY description, however goal-shaped -- the paragraph landed silently
|
||||
// in the phase title with no signal in the JSON result. This assertion
|
||||
// fails on the pre-fix tree.
|
||||
assert.ok(
|
||||
typeof output.warning === 'string' && output.warning.length > 0,
|
||||
'goal-shaped description should surface a warning field'
|
||||
);
|
||||
assert.match(output.warning, /goal-shaped/);
|
||||
|
||||
// The phase must still be created -- the warning surfaces the gap, it
|
||||
// does not block the write or mangle ROADMAP.md (preserves the two-layer
|
||||
// slash-command vs. raw-CLI interface: the CLI stays a strict primitive).
|
||||
assert.strictEqual(output.phase_number, 2);
|
||||
const roadmap = fs.readFileSync(path.join(tmpDir, '.planning', 'ROADMAP.md'), 'utf-8');
|
||||
assert.ok(
|
||||
roadmap.includes(`### Phase 2: ${goalShaped}`),
|
||||
'phase should still be created verbatim despite the warning'
|
||||
);
|
||||
assert.ok(
|
||||
fs.existsSync(path.join(tmpDir, output.directory)),
|
||||
'phase directory should still be created'
|
||||
);
|
||||
});
|
||||
|
||||
test('phase add title-length boundary: 79/80/81 chars (regression #2390)', () => {
|
||||
fs.writeFileSync(
|
||||
path.join(tmpDir, '.planning', 'ROADMAP.md'),
|
||||
`# Roadmap v1.0\n\n### Phase 1: Foundation\n**Goal:** Setup\n\n---\n`
|
||||
);
|
||||
|
||||
const underLimit = 'A'.repeat(79); // limit - 1
|
||||
const atLimit = 'A'.repeat(80); // limit
|
||||
const overLimit = 'A'.repeat(81); // limit + 1
|
||||
|
||||
const underResult = runGsdTools(['phase', 'add', underLimit], tmpDir);
|
||||
assert.ok(underResult.success, `Command failed: ${underResult.error}`);
|
||||
assert.ok(
|
||||
!('warning' in JSON.parse(underResult.output)),
|
||||
'79 chars (limit-1) should not warn'
|
||||
);
|
||||
|
||||
const atResult = runGsdTools(['phase', 'add', atLimit], tmpDir);
|
||||
assert.ok(atResult.success, `Command failed: ${atResult.error}`);
|
||||
assert.ok(!('warning' in JSON.parse(atResult.output)), '80 chars (limit) should not warn');
|
||||
|
||||
const overResult = runGsdTools(['phase', 'add', overLimit], tmpDir);
|
||||
assert.ok(overResult.success, `Command failed: ${overResult.error}`);
|
||||
const overOutput = JSON.parse(overResult.output);
|
||||
assert.ok(
|
||||
typeof overOutput.warning === 'string' && overOutput.warning.length > 0,
|
||||
'81 chars (limit+1) should warn'
|
||||
);
|
||||
});
|
||||
|
||||
test('phase add rejects an empty description (unaffected by the #2390 warning heuristic)', () => {
|
||||
fs.writeFileSync(
|
||||
path.join(tmpDir, '.planning', 'ROADMAP.md'),
|
||||
`# Roadmap v1.0\n\n### Phase 1: Foundation\n**Goal:** Setup\n\n---\n`
|
||||
);
|
||||
|
||||
const result = runGsdTools(['phase', 'add', ''], tmpDir);
|
||||
assert.ok(!result.success, 'empty description should still fail');
|
||||
assert.match(result.error, /description required/);
|
||||
});
|
||||
});
|
||||
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"add-backlog.md": 7176,
|
||||
"add-phase.md": 7247,
|
||||
"add-phase.md": 7578,
|
||||
"add-tests.md": 16961,
|
||||
"add-todo.md": 10734,
|
||||
"ai-integration-phase.md": 14805,
|
||||
"ai-integration-phase.md": 15134,
|
||||
"analyze-dependencies.md": 3887,
|
||||
"audit-fix.md": 11723,
|
||||
"audit-milestone.md": 18448,
|
||||
@@ -53,7 +53,7 @@
|
||||
"onboard.md": 8590,
|
||||
"pause-work.md": 14441,
|
||||
"plan-milestone-gaps.md": 11809,
|
||||
"plan-phase.md": 93959,
|
||||
"plan-phase.md": 94387,
|
||||
"plan-review-convergence.md": 23713,
|
||||
"plant-seed.md": 11785,
|
||||
"pr-branch.md": 15963,
|
||||
|
||||
Reference in New Issue
Block a user