gspec 1.11.0 → 1.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -34
- package/bin/gspec.js +765 -159
- package/commands/gspec.analyze.md +1 -1
- package/commands/gspec.architect.md +2 -2
- package/commands/gspec.feature.md +2 -2
- package/commands/gspec.implement.md +1 -1
- package/commands/gspec.migrate.md +13 -10
- package/commands/gspec.practices.md +2 -2
- package/commands/gspec.profile.md +2 -2
- package/commands/gspec.research.md +4 -4
- package/commands/gspec.stack.md +2 -2
- package/commands/gspec.style.md +2 -2
- package/dist/antigravity/gspec-analyze/SKILL.md +1 -1
- package/dist/antigravity/gspec-architect/SKILL.md +2 -2
- package/dist/antigravity/gspec-feature/SKILL.md +2 -2
- package/dist/antigravity/gspec-implement/SKILL.md +1 -1
- package/dist/antigravity/gspec-migrate/SKILL.md +13 -10
- package/dist/antigravity/gspec-practices/SKILL.md +2 -2
- package/dist/antigravity/gspec-profile/SKILL.md +2 -2
- package/dist/antigravity/gspec-research/SKILL.md +4 -4
- package/dist/antigravity/gspec-stack/SKILL.md +2 -2
- package/dist/antigravity/gspec-style/SKILL.md +2 -2
- package/dist/claude/gspec-analyze/SKILL.md +1 -1
- package/dist/claude/gspec-architect/SKILL.md +2 -2
- package/dist/claude/gspec-feature/SKILL.md +2 -2
- package/dist/claude/gspec-implement/SKILL.md +1 -1
- package/dist/claude/gspec-migrate/SKILL.md +13 -10
- package/dist/claude/gspec-practices/SKILL.md +2 -2
- package/dist/claude/gspec-profile/SKILL.md +2 -2
- package/dist/claude/gspec-research/SKILL.md +4 -4
- package/dist/claude/gspec-stack/SKILL.md +2 -2
- package/dist/claude/gspec-style/SKILL.md +2 -2
- package/dist/codex/gspec-analyze/SKILL.md +1 -1
- package/dist/codex/gspec-architect/SKILL.md +2 -2
- package/dist/codex/gspec-feature/SKILL.md +2 -2
- package/dist/codex/gspec-implement/SKILL.md +1 -1
- package/dist/codex/gspec-migrate/SKILL.md +13 -10
- package/dist/codex/gspec-practices/SKILL.md +2 -2
- package/dist/codex/gspec-profile/SKILL.md +2 -2
- package/dist/codex/gspec-research/SKILL.md +4 -4
- package/dist/codex/gspec-stack/SKILL.md +2 -2
- package/dist/codex/gspec-style/SKILL.md +2 -2
- package/dist/cursor/gspec-analyze.mdc +1 -1
- package/dist/cursor/gspec-architect.mdc +2 -2
- package/dist/cursor/gspec-feature.mdc +2 -2
- package/dist/cursor/gspec-implement.mdc +1 -1
- package/dist/cursor/gspec-migrate.mdc +13 -10
- package/dist/cursor/gspec-practices.mdc +2 -2
- package/dist/cursor/gspec-profile.mdc +2 -2
- package/dist/cursor/gspec-research.mdc +4 -4
- package/dist/cursor/gspec-stack.mdc +2 -2
- package/dist/cursor/gspec-style.mdc +2 -2
- package/dist/opencode/gspec-analyze/SKILL.md +1 -1
- package/dist/opencode/gspec-architect/SKILL.md +2 -2
- package/dist/opencode/gspec-feature/SKILL.md +2 -2
- package/dist/opencode/gspec-implement/SKILL.md +1 -1
- package/dist/opencode/gspec-migrate/SKILL.md +13 -10
- package/dist/opencode/gspec-practices/SKILL.md +2 -2
- package/dist/opencode/gspec-profile/SKILL.md +2 -2
- package/dist/opencode/gspec-research/SKILL.md +4 -4
- package/dist/opencode/gspec-stack/SKILL.md +2 -2
- package/dist/opencode/gspec-style/SKILL.md +2 -2
- package/package.json +1 -2
- package/templates/spec-sync.md +1 -1
- package/starters/features/about-page.md +0 -98
- package/starters/features/contact-form.md +0 -147
- package/starters/features/contact-page.md +0 -103
- package/starters/features/home-page.md +0 -103
- package/starters/features/responsive-navbar.md +0 -113
- package/starters/features/services-page.md +0 -103
- package/starters/features/site-footer.md +0 -121
- package/starters/features/theme-switcher.md +0 -124
- package/starters/practices/tdd-pipeline-first.md +0 -192
- package/starters/stacks/astro-tailwind-github-pages.md +0 -283
- package/starters/stacks/nextjs-supabase-vercel.md +0 -319
- package/starters/stacks/nextjs-vercel-typescript.md +0 -264
- package/starters/styles/clean-professional.md +0 -316
- package/starters/styles/dark-minimal-developer.md +0 -442
|
@@ -123,7 +123,7 @@ When updating specs to resolve a discrepancy:
|
|
|
123
123
|
|
|
124
124
|
- **Surgical updates only** — change the minimum text needed to resolve the conflict
|
|
125
125
|
- **Preserve format and tone** — match the existing document's style, heading structure, and voice
|
|
126
|
-
- **Preserve `
|
|
126
|
+
- **Preserve `spec-version` frontmatter** — do not alter or remove it
|
|
127
127
|
- **Do not rewrite sections** — if a one-line change resolves the conflict, make a one-line change
|
|
128
128
|
- **Do not add changelog annotations** — the git history captures what changed
|
|
129
129
|
|
|
@@ -37,10 +37,10 @@ All of these provide essential context. If any are missing, note the gap and mak
|
|
|
37
37
|
|
|
38
38
|
- Output **ONLY** a single Markdown document
|
|
39
39
|
- Save the file as `gspec/architecture.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
40
|
-
- Begin the file with YAML frontmatter containing the
|
|
40
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
41
41
|
```
|
|
42
42
|
---
|
|
43
|
-
|
|
43
|
+
spec-version: <<<SPEC_VERSION>>>
|
|
44
44
|
---
|
|
45
45
|
```
|
|
46
46
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -77,10 +77,10 @@ Feature PRDs are designed to be **portable across projects**. A feature spec wri
|
|
|
77
77
|
- Output one or more Markdown documents — **one per feature**
|
|
78
78
|
- Save each file to the `gspec/features/` folder in the root of the project, create it if it doesn't exist
|
|
79
79
|
- Name each file based on the feature (e.g., `user-authentication.md`, `dashboard-analytics.md`)
|
|
80
|
-
- Begin each file with YAML frontmatter containing the
|
|
80
|
+
- Begin each file with YAML frontmatter containing the spec version:
|
|
81
81
|
```
|
|
82
82
|
---
|
|
83
|
-
|
|
83
|
+
spec-version: <<<SPEC_VERSION>>>
|
|
84
84
|
---
|
|
85
85
|
```
|
|
86
86
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -105,7 +105,7 @@ Present a brief scaffold summary to the user before proceeding to feature implem
|
|
|
105
105
|
b. **Follow the practices** — Adhere to coding standards, testing philosophy, pipeline structure, and conventions from `gspec/practices.md`
|
|
106
106
|
c. **Follow the style** — Apply the design system, tokens, and icon library from `gspec/style.md`. The style is the single authority for icon library choices. Component libraries (e.g., shadcn/ui) are defined in `gspec/stack.md`.
|
|
107
107
|
d. **Satisfy the requirements** — Trace each piece of code back to a functional requirement in the feature PRD (if available) or to the user's stated goals and the approved implementation plan
|
|
108
|
-
3. **Mark capabilities as implemented** — After successfully implementing each capability, immediately update the feature PRD by changing its checkbox from `- [ ]` to `- [x]`. Do this incrementally as each capability is completed, not in a batch at the end. If a capability line did not have a checkbox prefix, add one as `- [x]`. This ensures that if the session is interrupted, progress is not lost. When updating gspec files, preserve existing `
|
|
108
|
+
3. **Mark capabilities as implemented** — After successfully implementing each capability, immediately update the feature PRD by changing its checkbox from `- [ ]` to `- [x]`. Do this incrementally as each capability is completed, not in a batch at the end. If a capability line did not have a checkbox prefix, add one as `- [x]`. This ensures that if the session is interrupted, progress is not lost. When updating gspec files, preserve existing `spec-version` YAML frontmatter. If a file lacks frontmatter, add `---\nspec-version: <<<SPEC_VERSION>>>\n---` at the top.
|
|
109
109
|
4. **Run tests** — Execute the tests defined for this phase (and any existing tests to catch regressions). Fix any failures before proceeding.
|
|
110
110
|
6. **Surface new gaps** — If implementation reveals new ambiguities, pause and consult the user rather than making silent assumptions
|
|
111
111
|
7. **Pause and report** — After completing the phase and confirming tests pass, present a phase completion summary to the user:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
You are a Technical Documentation Migration Specialist.
|
|
2
2
|
|
|
3
|
-
Your task is to update existing gspec specification documents to match the current
|
|
3
|
+
Your task is to update existing gspec specification documents to match the current spec format (spec-version <<<SPEC_VERSION>>>). You preserve all substantive content while ensuring documents follow the latest structural conventions.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -14,16 +14,17 @@ Scan the `gspec/` directory for all Markdown files:
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
For each file, check the YAML frontmatter at the top of the file:
|
|
17
|
-
- If the file starts with `---` followed by YAML content and another `---`, read the `gspec-version` field
|
|
17
|
+
- If the file starts with `---` followed by YAML content and another `---`, read the `spec-version` field (also check for the legacy `gspec-version` field)
|
|
18
18
|
- If no frontmatter exists, the file predates version tracking
|
|
19
|
-
- If `
|
|
19
|
+
- If `spec-version` matches `<<<SPEC_VERSION>>>`, the file is current — skip it
|
|
20
|
+
- If the file has `gspec-version` (old field name) instead of `spec-version`, it needs migration regardless of value
|
|
20
21
|
|
|
21
22
|
Present an inventory to the user:
|
|
22
23
|
|
|
23
24
|
> **gspec File Inventory:**
|
|
24
25
|
> - `gspec/profile.md` — no version (needs migration)
|
|
25
|
-
> - `gspec/stack.md` — version 1.0.3 (needs migration)
|
|
26
|
-
> - `gspec/style.md` — version <<<
|
|
26
|
+
> - `gspec/stack.md` — gspec-version 1.0.3 (needs migration — old field name)
|
|
27
|
+
> - `gspec/style.md` — spec-version <<<SPEC_VERSION>>> (current, skipping)
|
|
27
28
|
> - `gspec/features/user-auth.md` — no version (needs migration)
|
|
28
29
|
|
|
29
30
|
Ask the user to confirm which files to migrate, or confirm all.
|
|
@@ -58,21 +59,22 @@ For each file to migrate:
|
|
|
58
59
|
5. **Add or update the frontmatter** — Ensure the file starts with:
|
|
59
60
|
```
|
|
60
61
|
---
|
|
61
|
-
|
|
62
|
+
spec-version: <<<SPEC_VERSION>>>
|
|
62
63
|
---
|
|
63
64
|
```
|
|
65
|
+
If the file has the old `gspec-version` field, rename it to `spec-version` and set the value to `<<<SPEC_VERSION>>>`.
|
|
64
66
|
6. **Present the proposed changes** to the user before writing. Show what sections are being reorganized, what is being added, and confirm no content is being lost.
|
|
65
67
|
|
|
66
68
|
### Phase 4: Verify — Confirm Migration
|
|
67
69
|
|
|
68
70
|
After migrating all files:
|
|
69
71
|
|
|
70
|
-
1. **Verify every migrated file** has the correct frontmatter
|
|
72
|
+
1. **Verify every migrated file** has the correct frontmatter (`spec-version: <<<SPEC_VERSION>>>`)
|
|
71
73
|
2. **Verify no content was lost** — Briefly summarize what was preserved and any content that was relocated
|
|
72
74
|
3. **Present a completion summary**:
|
|
73
75
|
|
|
74
76
|
> **Migration Complete:**
|
|
75
|
-
> - 4 files migrated to version <<<
|
|
77
|
+
> - 4 files migrated to spec-version <<<SPEC_VERSION>>>
|
|
76
78
|
> - 2 files were already current (skipped)
|
|
77
79
|
> - Content preserved in all files
|
|
78
80
|
> - Sections reorganized: [list any structural changes]
|
|
@@ -95,8 +97,9 @@ After migrating all files:
|
|
|
95
97
|
|
|
96
98
|
**Frontmatter handling:**
|
|
97
99
|
- If the file has no frontmatter, add it at the very top
|
|
98
|
-
- If the file has
|
|
99
|
-
- If the file has
|
|
100
|
+
- If the file has the old `gspec-version` field, rename it to `spec-version`
|
|
101
|
+
- If the file has frontmatter without `spec-version`, add the field
|
|
102
|
+
- If the file has an outdated `spec-version`, update it
|
|
100
103
|
- Preserve any other frontmatter fields that may exist
|
|
101
104
|
|
|
102
105
|
---
|
|
@@ -17,10 +17,10 @@ You should:
|
|
|
17
17
|
|
|
18
18
|
- Output **ONLY** a single Markdown document
|
|
19
19
|
- Save the file as `gspec/practices.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
20
|
-
- Begin the file with YAML frontmatter containing the
|
|
20
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
21
21
|
```
|
|
22
22
|
---
|
|
23
|
-
|
|
23
|
+
spec-version: <<<SPEC_VERSION>>>
|
|
24
24
|
---
|
|
25
25
|
```
|
|
26
26
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -17,10 +17,10 @@ You should:
|
|
|
17
17
|
|
|
18
18
|
- Output **ONLY** a single Markdown document
|
|
19
19
|
- Save the file as `gspec/profile.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
20
|
-
- Begin the file with YAML frontmatter containing the
|
|
20
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
21
21
|
```
|
|
22
22
|
---
|
|
23
|
-
|
|
23
|
+
spec-version: <<<SPEC_VERSION>>>
|
|
24
24
|
---
|
|
25
25
|
```
|
|
26
26
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -157,7 +157,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
157
157
|
- Assumptions & Risks (assumptions, open questions, key risks and mitigations)
|
|
158
158
|
- Success Metrics
|
|
159
159
|
- Implementation Context (standard portability note)
|
|
160
|
-
- Begin the file with YAML frontmatter: `---\
|
|
160
|
+
- Begin the file with YAML frontmatter: `---\nspec-version: <<<SPEC_VERSION>>>\n---`
|
|
161
161
|
2. **Name the file** descriptively based on the feature (e.g., `gspec/features/csv-export.md`, `gspec/features/onboarding-wizard.md`)
|
|
162
162
|
3. **Keep the PRD portable** — use generic role descriptions (not project-specific persona names), define success metrics in terms of the feature's own outcomes (not project-level KPIs), and describe UX behavior generically (not tied to a specific design system). The PRD should be reusable across projects.
|
|
163
163
|
4. **Keep the PRD product-focused** — describe *what* and *why*, not *how*. Implementation details belong in the code, not the PRD.
|
|
@@ -173,10 +173,10 @@ After writing `gspec/research.md`, ask the user:
|
|
|
173
173
|
|
|
174
174
|
- Save the primary output as `gspec/research.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
175
175
|
- If the user accepts feature generation (Phase 7), also save feature PRDs to `gspec/features/`
|
|
176
|
-
- Begin `gspec/research.md` with YAML frontmatter containing the
|
|
176
|
+
- Begin `gspec/research.md` with YAML frontmatter containing the spec version:
|
|
177
177
|
```
|
|
178
178
|
---
|
|
179
|
-
|
|
179
|
+
spec-version: <<<SPEC_VERSION>>>
|
|
180
180
|
---
|
|
181
181
|
```
|
|
182
182
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -193,7 +193,7 @@ The `gspec/research.md` file must follow this structure:
|
|
|
193
193
|
|
|
194
194
|
```markdown
|
|
195
195
|
---
|
|
196
|
-
|
|
196
|
+
spec-version: <<<SPEC_VERSION>>>
|
|
197
197
|
---
|
|
198
198
|
|
|
199
199
|
# Competitive Research
|
package/commands/gspec.stack.md
CHANGED
|
@@ -17,10 +17,10 @@ You should:
|
|
|
17
17
|
|
|
18
18
|
- Output **ONLY** a single Markdown document
|
|
19
19
|
- Save the file as `gspec/stack.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
20
|
-
- Begin the file with YAML frontmatter containing the
|
|
20
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
21
21
|
```
|
|
22
22
|
---
|
|
23
|
-
|
|
23
|
+
spec-version: <<<SPEC_VERSION>>>
|
|
24
24
|
---
|
|
25
25
|
```
|
|
26
26
|
The frontmatter must be the very first content in the file, before the main heading.
|
package/commands/gspec.style.md
CHANGED
|
@@ -19,10 +19,10 @@ You should:
|
|
|
19
19
|
|
|
20
20
|
- Output **ONLY** a single Markdown document
|
|
21
21
|
- Save the file as `gspec/style.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
22
|
-
- Begin the file with YAML frontmatter containing the
|
|
22
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
23
23
|
```
|
|
24
24
|
---
|
|
25
|
-
|
|
25
|
+
spec-version: <<<SPEC_VERSION>>>
|
|
26
26
|
---
|
|
27
27
|
```
|
|
28
28
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -128,7 +128,7 @@ When updating specs to resolve a discrepancy:
|
|
|
128
128
|
|
|
129
129
|
- **Surgical updates only** — change the minimum text needed to resolve the conflict
|
|
130
130
|
- **Preserve format and tone** — match the existing document's style, heading structure, and voice
|
|
131
|
-
- **Preserve `
|
|
131
|
+
- **Preserve `spec-version` frontmatter** — do not alter or remove it
|
|
132
132
|
- **Do not rewrite sections** — if a one-line change resolves the conflict, make a one-line change
|
|
133
133
|
- **Do not add changelog annotations** — the git history captures what changed
|
|
134
134
|
|
|
@@ -42,10 +42,10 @@ All of these provide essential context. If any are missing, note the gap and mak
|
|
|
42
42
|
|
|
43
43
|
- Output **ONLY** a single Markdown document
|
|
44
44
|
- Save the file as `gspec/architecture.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
45
|
-
- Begin the file with YAML frontmatter containing the
|
|
45
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
46
46
|
```
|
|
47
47
|
---
|
|
48
|
-
|
|
48
|
+
spec-version: v1
|
|
49
49
|
---
|
|
50
50
|
```
|
|
51
51
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -82,10 +82,10 @@ Feature PRDs are designed to be **portable across projects**. A feature spec wri
|
|
|
82
82
|
- Output one or more Markdown documents — **one per feature**
|
|
83
83
|
- Save each file to the `gspec/features/` folder in the root of the project, create it if it doesn't exist
|
|
84
84
|
- Name each file based on the feature (e.g., `user-authentication.md`, `dashboard-analytics.md`)
|
|
85
|
-
- Begin each file with YAML frontmatter containing the
|
|
85
|
+
- Begin each file with YAML frontmatter containing the spec version:
|
|
86
86
|
```
|
|
87
87
|
---
|
|
88
|
-
|
|
88
|
+
spec-version: v1
|
|
89
89
|
---
|
|
90
90
|
```
|
|
91
91
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -110,7 +110,7 @@ Present a brief scaffold summary to the user before proceeding to feature implem
|
|
|
110
110
|
b. **Follow the practices** — Adhere to coding standards, testing philosophy, pipeline structure, and conventions from `gspec/practices.md`
|
|
111
111
|
c. **Follow the style** — Apply the design system, tokens, and icon library from `gspec/style.md`. The style is the single authority for icon library choices. Component libraries (e.g., shadcn/ui) are defined in `gspec/stack.md`.
|
|
112
112
|
d. **Satisfy the requirements** — Trace each piece of code back to a functional requirement in the feature PRD (if available) or to the user's stated goals and the approved implementation plan
|
|
113
|
-
3. **Mark capabilities as implemented** — After successfully implementing each capability, immediately update the feature PRD by changing its checkbox from `- [ ]` to `- [x]`. Do this incrementally as each capability is completed, not in a batch at the end. If a capability line did not have a checkbox prefix, add one as `- [x]`. This ensures that if the session is interrupted, progress is not lost. When updating gspec files, preserve existing `
|
|
113
|
+
3. **Mark capabilities as implemented** — After successfully implementing each capability, immediately update the feature PRD by changing its checkbox from `- [ ]` to `- [x]`. Do this incrementally as each capability is completed, not in a batch at the end. If a capability line did not have a checkbox prefix, add one as `- [x]`. This ensures that if the session is interrupted, progress is not lost. When updating gspec files, preserve existing `spec-version` YAML frontmatter. If a file lacks frontmatter, add `---\nspec-version: v1\n---` at the top.
|
|
114
114
|
4. **Run tests** — Execute the tests defined for this phase (and any existing tests to catch regressions). Fix any failures before proceeding.
|
|
115
115
|
6. **Surface new gaps** — If implementation reveals new ambiguities, pause and consult the user rather than making silent assumptions
|
|
116
116
|
7. **Pause and report** — After completing the phase and confirming tests pass, present a phase completion summary to the user:
|
|
@@ -5,7 +5,7 @@ description: Migrate existing gspec files to the current format when upgrading t
|
|
|
5
5
|
|
|
6
6
|
You are a Technical Documentation Migration Specialist.
|
|
7
7
|
|
|
8
|
-
Your task is to update existing gspec specification documents to match the current
|
|
8
|
+
Your task is to update existing gspec specification documents to match the current spec format (spec-version v1). You preserve all substantive content while ensuring documents follow the latest structural conventions.
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -19,16 +19,17 @@ Scan the `gspec/` directory for all Markdown files:
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
For each file, check the YAML frontmatter at the top of the file:
|
|
22
|
-
- If the file starts with `---` followed by YAML content and another `---`, read the `gspec-version` field
|
|
22
|
+
- If the file starts with `---` followed by YAML content and another `---`, read the `spec-version` field (also check for the legacy `gspec-version` field)
|
|
23
23
|
- If no frontmatter exists, the file predates version tracking
|
|
24
|
-
- If `
|
|
24
|
+
- If `spec-version` matches `v1`, the file is current — skip it
|
|
25
|
+
- If the file has `gspec-version` (old field name) instead of `spec-version`, it needs migration regardless of value
|
|
25
26
|
|
|
26
27
|
Present an inventory to the user:
|
|
27
28
|
|
|
28
29
|
> **gspec File Inventory:**
|
|
29
30
|
> - `gspec/profile.md` — no version (needs migration)
|
|
30
|
-
> - `gspec/stack.md` — version 1.0.3 (needs migration)
|
|
31
|
-
> - `gspec/style.md` — version
|
|
31
|
+
> - `gspec/stack.md` — gspec-version 1.0.3 (needs migration — old field name)
|
|
32
|
+
> - `gspec/style.md` — spec-version v1 (current, skipping)
|
|
32
33
|
> - `gspec/features/user-auth.md` — no version (needs migration)
|
|
33
34
|
|
|
34
35
|
Ask the user to confirm which files to migrate, or confirm all.
|
|
@@ -63,21 +64,22 @@ For each file to migrate:
|
|
|
63
64
|
5. **Add or update the frontmatter** — Ensure the file starts with:
|
|
64
65
|
```
|
|
65
66
|
---
|
|
66
|
-
|
|
67
|
+
spec-version: v1
|
|
67
68
|
---
|
|
68
69
|
```
|
|
70
|
+
If the file has the old `gspec-version` field, rename it to `spec-version` and set the value to `v1`.
|
|
69
71
|
6. **Present the proposed changes** to the user before writing. Show what sections are being reorganized, what is being added, and confirm no content is being lost.
|
|
70
72
|
|
|
71
73
|
### Phase 4: Verify — Confirm Migration
|
|
72
74
|
|
|
73
75
|
After migrating all files:
|
|
74
76
|
|
|
75
|
-
1. **Verify every migrated file** has the correct frontmatter
|
|
77
|
+
1. **Verify every migrated file** has the correct frontmatter (`spec-version: v1`)
|
|
76
78
|
2. **Verify no content was lost** — Briefly summarize what was preserved and any content that was relocated
|
|
77
79
|
3. **Present a completion summary**:
|
|
78
80
|
|
|
79
81
|
> **Migration Complete:**
|
|
80
|
-
> - 4 files migrated to version
|
|
82
|
+
> - 4 files migrated to spec-version v1
|
|
81
83
|
> - 2 files were already current (skipped)
|
|
82
84
|
> - Content preserved in all files
|
|
83
85
|
> - Sections reorganized: [list any structural changes]
|
|
@@ -100,8 +102,9 @@ After migrating all files:
|
|
|
100
102
|
|
|
101
103
|
**Frontmatter handling:**
|
|
102
104
|
- If the file has no frontmatter, add it at the very top
|
|
103
|
-
- If the file has
|
|
104
|
-
- If the file has
|
|
105
|
+
- If the file has the old `gspec-version` field, rename it to `spec-version`
|
|
106
|
+
- If the file has frontmatter without `spec-version`, add the field
|
|
107
|
+
- If the file has an outdated `spec-version`, update it
|
|
105
108
|
- Preserve any other frontmatter fields that may exist
|
|
106
109
|
|
|
107
110
|
---
|
|
@@ -22,10 +22,10 @@ You should:
|
|
|
22
22
|
|
|
23
23
|
- Output **ONLY** a single Markdown document
|
|
24
24
|
- Save the file as `gspec/practices.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
25
|
-
- Begin the file with YAML frontmatter containing the
|
|
25
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
26
26
|
```
|
|
27
27
|
---
|
|
28
|
-
|
|
28
|
+
spec-version: v1
|
|
29
29
|
---
|
|
30
30
|
```
|
|
31
31
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -22,10 +22,10 @@ You should:
|
|
|
22
22
|
|
|
23
23
|
- Output **ONLY** a single Markdown document
|
|
24
24
|
- Save the file as `gspec/profile.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
25
|
-
- Begin the file with YAML frontmatter containing the
|
|
25
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
26
26
|
```
|
|
27
27
|
---
|
|
28
|
-
|
|
28
|
+
spec-version: v1
|
|
29
29
|
---
|
|
30
30
|
```
|
|
31
31
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -162,7 +162,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
162
162
|
- Assumptions & Risks (assumptions, open questions, key risks and mitigations)
|
|
163
163
|
- Success Metrics
|
|
164
164
|
- Implementation Context (standard portability note)
|
|
165
|
-
- Begin the file with YAML frontmatter: `---\
|
|
165
|
+
- Begin the file with YAML frontmatter: `---\nspec-version: v1\n---`
|
|
166
166
|
2. **Name the file** descriptively based on the feature (e.g., `gspec/features/csv-export.md`, `gspec/features/onboarding-wizard.md`)
|
|
167
167
|
3. **Keep the PRD portable** — use generic role descriptions (not project-specific persona names), define success metrics in terms of the feature's own outcomes (not project-level KPIs), and describe UX behavior generically (not tied to a specific design system). The PRD should be reusable across projects.
|
|
168
168
|
4. **Keep the PRD product-focused** — describe *what* and *why*, not *how*. Implementation details belong in the code, not the PRD.
|
|
@@ -178,10 +178,10 @@ After writing `gspec/research.md`, ask the user:
|
|
|
178
178
|
|
|
179
179
|
- Save the primary output as `gspec/research.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
180
180
|
- If the user accepts feature generation (Phase 7), also save feature PRDs to `gspec/features/`
|
|
181
|
-
- Begin `gspec/research.md` with YAML frontmatter containing the
|
|
181
|
+
- Begin `gspec/research.md` with YAML frontmatter containing the spec version:
|
|
182
182
|
```
|
|
183
183
|
---
|
|
184
|
-
|
|
184
|
+
spec-version: v1
|
|
185
185
|
---
|
|
186
186
|
```
|
|
187
187
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -198,7 +198,7 @@ The `gspec/research.md` file must follow this structure:
|
|
|
198
198
|
|
|
199
199
|
```markdown
|
|
200
200
|
---
|
|
201
|
-
|
|
201
|
+
spec-version: v1
|
|
202
202
|
---
|
|
203
203
|
|
|
204
204
|
# Competitive Research
|
|
@@ -22,10 +22,10 @@ You should:
|
|
|
22
22
|
|
|
23
23
|
- Output **ONLY** a single Markdown document
|
|
24
24
|
- Save the file as `gspec/stack.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
25
|
-
- Begin the file with YAML frontmatter containing the
|
|
25
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
26
26
|
```
|
|
27
27
|
---
|
|
28
|
-
|
|
28
|
+
spec-version: v1
|
|
29
29
|
---
|
|
30
30
|
```
|
|
31
31
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -24,10 +24,10 @@ You should:
|
|
|
24
24
|
|
|
25
25
|
- Output **ONLY** a single Markdown document
|
|
26
26
|
- Save the file as `gspec/style.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
27
|
-
- Begin the file with YAML frontmatter containing the
|
|
27
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
28
28
|
```
|
|
29
29
|
---
|
|
30
|
-
|
|
30
|
+
spec-version: v1
|
|
31
31
|
---
|
|
32
32
|
```
|
|
33
33
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -128,7 +128,7 @@ When updating specs to resolve a discrepancy:
|
|
|
128
128
|
|
|
129
129
|
- **Surgical updates only** — change the minimum text needed to resolve the conflict
|
|
130
130
|
- **Preserve format and tone** — match the existing document's style, heading structure, and voice
|
|
131
|
-
- **Preserve `
|
|
131
|
+
- **Preserve `spec-version` frontmatter** — do not alter or remove it
|
|
132
132
|
- **Do not rewrite sections** — if a one-line change resolves the conflict, make a one-line change
|
|
133
133
|
- **Do not add changelog annotations** — the git history captures what changed
|
|
134
134
|
|
|
@@ -42,10 +42,10 @@ All of these provide essential context. If any are missing, note the gap and mak
|
|
|
42
42
|
|
|
43
43
|
- Output **ONLY** a single Markdown document
|
|
44
44
|
- Save the file as `gspec/architecture.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
45
|
-
- Begin the file with YAML frontmatter containing the
|
|
45
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
46
46
|
```
|
|
47
47
|
---
|
|
48
|
-
|
|
48
|
+
spec-version: v1
|
|
49
49
|
---
|
|
50
50
|
```
|
|
51
51
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -82,10 +82,10 @@ Feature PRDs are designed to be **portable across projects**. A feature spec wri
|
|
|
82
82
|
- Output one or more Markdown documents — **one per feature**
|
|
83
83
|
- Save each file to the `gspec/features/` folder in the root of the project, create it if it doesn't exist
|
|
84
84
|
- Name each file based on the feature (e.g., `user-authentication.md`, `dashboard-analytics.md`)
|
|
85
|
-
- Begin each file with YAML frontmatter containing the
|
|
85
|
+
- Begin each file with YAML frontmatter containing the spec version:
|
|
86
86
|
```
|
|
87
87
|
---
|
|
88
|
-
|
|
88
|
+
spec-version: v1
|
|
89
89
|
---
|
|
90
90
|
```
|
|
91
91
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -110,7 +110,7 @@ Present a brief scaffold summary to the user before proceeding to feature implem
|
|
|
110
110
|
b. **Follow the practices** — Adhere to coding standards, testing philosophy, pipeline structure, and conventions from `gspec/practices.md`
|
|
111
111
|
c. **Follow the style** — Apply the design system, tokens, and icon library from `gspec/style.md`. The style is the single authority for icon library choices. Component libraries (e.g., shadcn/ui) are defined in `gspec/stack.md`.
|
|
112
112
|
d. **Satisfy the requirements** — Trace each piece of code back to a functional requirement in the feature PRD (if available) or to the user's stated goals and the approved implementation plan
|
|
113
|
-
3. **Mark capabilities as implemented** — After successfully implementing each capability, immediately update the feature PRD by changing its checkbox from `- [ ]` to `- [x]`. Do this incrementally as each capability is completed, not in a batch at the end. If a capability line did not have a checkbox prefix, add one as `- [x]`. This ensures that if the session is interrupted, progress is not lost. When updating gspec files, preserve existing `
|
|
113
|
+
3. **Mark capabilities as implemented** — After successfully implementing each capability, immediately update the feature PRD by changing its checkbox from `- [ ]` to `- [x]`. Do this incrementally as each capability is completed, not in a batch at the end. If a capability line did not have a checkbox prefix, add one as `- [x]`. This ensures that if the session is interrupted, progress is not lost. When updating gspec files, preserve existing `spec-version` YAML frontmatter. If a file lacks frontmatter, add `---\nspec-version: v1\n---` at the top.
|
|
114
114
|
4. **Run tests** — Execute the tests defined for this phase (and any existing tests to catch regressions). Fix any failures before proceeding.
|
|
115
115
|
6. **Surface new gaps** — If implementation reveals new ambiguities, pause and consult the user rather than making silent assumptions
|
|
116
116
|
7. **Pause and report** — After completing the phase and confirming tests pass, present a phase completion summary to the user:
|
|
@@ -5,7 +5,7 @@ description: Migrate existing gspec files to the current format when upgrading t
|
|
|
5
5
|
|
|
6
6
|
You are a Technical Documentation Migration Specialist.
|
|
7
7
|
|
|
8
|
-
Your task is to update existing gspec specification documents to match the current
|
|
8
|
+
Your task is to update existing gspec specification documents to match the current spec format (spec-version v1). You preserve all substantive content while ensuring documents follow the latest structural conventions.
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -19,16 +19,17 @@ Scan the `gspec/` directory for all Markdown files:
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
For each file, check the YAML frontmatter at the top of the file:
|
|
22
|
-
- If the file starts with `---` followed by YAML content and another `---`, read the `gspec-version` field
|
|
22
|
+
- If the file starts with `---` followed by YAML content and another `---`, read the `spec-version` field (also check for the legacy `gspec-version` field)
|
|
23
23
|
- If no frontmatter exists, the file predates version tracking
|
|
24
|
-
- If `
|
|
24
|
+
- If `spec-version` matches `v1`, the file is current — skip it
|
|
25
|
+
- If the file has `gspec-version` (old field name) instead of `spec-version`, it needs migration regardless of value
|
|
25
26
|
|
|
26
27
|
Present an inventory to the user:
|
|
27
28
|
|
|
28
29
|
> **gspec File Inventory:**
|
|
29
30
|
> - `gspec/profile.md` — no version (needs migration)
|
|
30
|
-
> - `gspec/stack.md` — version 1.0.3 (needs migration)
|
|
31
|
-
> - `gspec/style.md` — version
|
|
31
|
+
> - `gspec/stack.md` — gspec-version 1.0.3 (needs migration — old field name)
|
|
32
|
+
> - `gspec/style.md` — spec-version v1 (current, skipping)
|
|
32
33
|
> - `gspec/features/user-auth.md` — no version (needs migration)
|
|
33
34
|
|
|
34
35
|
Ask the user to confirm which files to migrate, or confirm all.
|
|
@@ -63,21 +64,22 @@ For each file to migrate:
|
|
|
63
64
|
5. **Add or update the frontmatter** — Ensure the file starts with:
|
|
64
65
|
```
|
|
65
66
|
---
|
|
66
|
-
|
|
67
|
+
spec-version: v1
|
|
67
68
|
---
|
|
68
69
|
```
|
|
70
|
+
If the file has the old `gspec-version` field, rename it to `spec-version` and set the value to `v1`.
|
|
69
71
|
6. **Present the proposed changes** to the user before writing. Show what sections are being reorganized, what is being added, and confirm no content is being lost.
|
|
70
72
|
|
|
71
73
|
### Phase 4: Verify — Confirm Migration
|
|
72
74
|
|
|
73
75
|
After migrating all files:
|
|
74
76
|
|
|
75
|
-
1. **Verify every migrated file** has the correct frontmatter
|
|
77
|
+
1. **Verify every migrated file** has the correct frontmatter (`spec-version: v1`)
|
|
76
78
|
2. **Verify no content was lost** — Briefly summarize what was preserved and any content that was relocated
|
|
77
79
|
3. **Present a completion summary**:
|
|
78
80
|
|
|
79
81
|
> **Migration Complete:**
|
|
80
|
-
> - 4 files migrated to version
|
|
82
|
+
> - 4 files migrated to spec-version v1
|
|
81
83
|
> - 2 files were already current (skipped)
|
|
82
84
|
> - Content preserved in all files
|
|
83
85
|
> - Sections reorganized: [list any structural changes]
|
|
@@ -100,8 +102,9 @@ After migrating all files:
|
|
|
100
102
|
|
|
101
103
|
**Frontmatter handling:**
|
|
102
104
|
- If the file has no frontmatter, add it at the very top
|
|
103
|
-
- If the file has
|
|
104
|
-
- If the file has
|
|
105
|
+
- If the file has the old `gspec-version` field, rename it to `spec-version`
|
|
106
|
+
- If the file has frontmatter without `spec-version`, add the field
|
|
107
|
+
- If the file has an outdated `spec-version`, update it
|
|
105
108
|
- Preserve any other frontmatter fields that may exist
|
|
106
109
|
|
|
107
110
|
---
|
|
@@ -22,10 +22,10 @@ You should:
|
|
|
22
22
|
|
|
23
23
|
- Output **ONLY** a single Markdown document
|
|
24
24
|
- Save the file as `gspec/practices.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
25
|
-
- Begin the file with YAML frontmatter containing the
|
|
25
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
26
26
|
```
|
|
27
27
|
---
|
|
28
|
-
|
|
28
|
+
spec-version: v1
|
|
29
29
|
---
|
|
30
30
|
```
|
|
31
31
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -22,10 +22,10 @@ You should:
|
|
|
22
22
|
|
|
23
23
|
- Output **ONLY** a single Markdown document
|
|
24
24
|
- Save the file as `gspec/profile.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
25
|
-
- Begin the file with YAML frontmatter containing the
|
|
25
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
26
26
|
```
|
|
27
27
|
---
|
|
28
|
-
|
|
28
|
+
spec-version: v1
|
|
29
29
|
---
|
|
30
30
|
```
|
|
31
31
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -162,7 +162,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
162
162
|
- Assumptions & Risks (assumptions, open questions, key risks and mitigations)
|
|
163
163
|
- Success Metrics
|
|
164
164
|
- Implementation Context (standard portability note)
|
|
165
|
-
- Begin the file with YAML frontmatter: `---\
|
|
165
|
+
- Begin the file with YAML frontmatter: `---\nspec-version: v1\n---`
|
|
166
166
|
2. **Name the file** descriptively based on the feature (e.g., `gspec/features/csv-export.md`, `gspec/features/onboarding-wizard.md`)
|
|
167
167
|
3. **Keep the PRD portable** — use generic role descriptions (not project-specific persona names), define success metrics in terms of the feature's own outcomes (not project-level KPIs), and describe UX behavior generically (not tied to a specific design system). The PRD should be reusable across projects.
|
|
168
168
|
4. **Keep the PRD product-focused** — describe *what* and *why*, not *how*. Implementation details belong in the code, not the PRD.
|
|
@@ -178,10 +178,10 @@ After writing `gspec/research.md`, ask the user:
|
|
|
178
178
|
|
|
179
179
|
- Save the primary output as `gspec/research.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
180
180
|
- If the user accepts feature generation (Phase 7), also save feature PRDs to `gspec/features/`
|
|
181
|
-
- Begin `gspec/research.md` with YAML frontmatter containing the
|
|
181
|
+
- Begin `gspec/research.md` with YAML frontmatter containing the spec version:
|
|
182
182
|
```
|
|
183
183
|
---
|
|
184
|
-
|
|
184
|
+
spec-version: v1
|
|
185
185
|
---
|
|
186
186
|
```
|
|
187
187
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -198,7 +198,7 @@ The `gspec/research.md` file must follow this structure:
|
|
|
198
198
|
|
|
199
199
|
```markdown
|
|
200
200
|
---
|
|
201
|
-
|
|
201
|
+
spec-version: v1
|
|
202
202
|
---
|
|
203
203
|
|
|
204
204
|
# Competitive Research
|
|
@@ -22,10 +22,10 @@ You should:
|
|
|
22
22
|
|
|
23
23
|
- Output **ONLY** a single Markdown document
|
|
24
24
|
- Save the file as `gspec/stack.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
25
|
-
- Begin the file with YAML frontmatter containing the
|
|
25
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
26
26
|
```
|
|
27
27
|
---
|
|
28
|
-
|
|
28
|
+
spec-version: v1
|
|
29
29
|
---
|
|
30
30
|
```
|
|
31
31
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -24,10 +24,10 @@ You should:
|
|
|
24
24
|
|
|
25
25
|
- Output **ONLY** a single Markdown document
|
|
26
26
|
- Save the file as `gspec/style.md` in the root of the project, create the `gspec` folder if it doesn't exist
|
|
27
|
-
- Begin the file with YAML frontmatter containing the
|
|
27
|
+
- Begin the file with YAML frontmatter containing the spec version:
|
|
28
28
|
```
|
|
29
29
|
---
|
|
30
|
-
|
|
30
|
+
spec-version: v1
|
|
31
31
|
---
|
|
32
32
|
```
|
|
33
33
|
The frontmatter must be the very first content in the file, before the main heading.
|