gspec 1.3.0 → 1.4.0
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 +4 -1
- package/bin/gspec.js +11 -3
- package/dist/antigravity/gspec-architect/SKILL.md +1 -1
- package/dist/antigravity/gspec-dor/SKILL.md +2 -2
- package/dist/antigravity/gspec-epic/SKILL.md +1 -1
- package/dist/antigravity/gspec-feature/SKILL.md +1 -1
- package/dist/antigravity/gspec-implement/SKILL.md +2 -2
- package/dist/antigravity/gspec-migrate/SKILL.md +5 -5
- package/dist/antigravity/gspec-practices/SKILL.md +1 -1
- package/dist/antigravity/gspec-profile/SKILL.md +1 -1
- package/dist/antigravity/gspec-record/SKILL.md +2 -2
- package/dist/antigravity/gspec-research/SKILL.md +3 -3
- package/dist/antigravity/gspec-stack/SKILL.md +1 -1
- package/dist/antigravity/gspec-style/SKILL.md +1 -1
- package/dist/claude/gspec-architect/SKILL.md +1 -1
- package/dist/claude/gspec-dor/SKILL.md +2 -2
- package/dist/claude/gspec-epic/SKILL.md +1 -1
- package/dist/claude/gspec-feature/SKILL.md +1 -1
- package/dist/claude/gspec-implement/SKILL.md +2 -2
- package/dist/claude/gspec-migrate/SKILL.md +5 -5
- package/dist/claude/gspec-practices/SKILL.md +1 -1
- package/dist/claude/gspec-profile/SKILL.md +1 -1
- package/dist/claude/gspec-record/SKILL.md +2 -2
- package/dist/claude/gspec-research/SKILL.md +3 -3
- package/dist/claude/gspec-stack/SKILL.md +1 -1
- package/dist/claude/gspec-style/SKILL.md +1 -1
- package/dist/codex/gspec-architect/SKILL.md +337 -0
- package/dist/codex/gspec-dor/SKILL.md +224 -0
- package/dist/codex/gspec-epic/SKILL.md +232 -0
- package/dist/codex/gspec-feature/SKILL.md +174 -0
- package/dist/codex/gspec-implement/SKILL.md +325 -0
- package/dist/codex/gspec-migrate/SKILL.md +119 -0
- package/dist/codex/gspec-practices/SKILL.md +135 -0
- package/dist/codex/gspec-profile/SKILL.md +221 -0
- package/dist/codex/gspec-record/SKILL.md +172 -0
- package/dist/codex/gspec-research/SKILL.md +280 -0
- package/dist/codex/gspec-stack/SKILL.md +300 -0
- package/dist/codex/gspec-style/SKILL.md +229 -0
- package/dist/cursor/gspec-architect.mdc +1 -1
- package/dist/cursor/gspec-dor.mdc +2 -2
- package/dist/cursor/gspec-epic.mdc +1 -1
- package/dist/cursor/gspec-feature.mdc +1 -1
- package/dist/cursor/gspec-implement.mdc +2 -2
- package/dist/cursor/gspec-migrate.mdc +5 -5
- package/dist/cursor/gspec-practices.mdc +1 -1
- package/dist/cursor/gspec-profile.mdc +1 -1
- package/dist/cursor/gspec-record.mdc +2 -2
- package/dist/cursor/gspec-research.mdc +3 -3
- package/dist/cursor/gspec-stack.mdc +1 -1
- package/dist/cursor/gspec-style.mdc +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -142,6 +142,7 @@ The CLI will ask which platform you're installing for:
|
|
|
142
142
|
| Claude Code | `.claude/skills/` |
|
|
143
143
|
| Cursor | `.cursor/commands/` |
|
|
144
144
|
| Antigravity | `.agent/skills/` |
|
|
145
|
+
| Codex | `.agents/skills/` |
|
|
145
146
|
|
|
146
147
|
You can skip the prompt by passing a target directly:
|
|
147
148
|
|
|
@@ -149,6 +150,7 @@ You can skip the prompt by passing a target directly:
|
|
|
149
150
|
npx gspec --target claude
|
|
150
151
|
npx gspec --target cursor
|
|
151
152
|
npx gspec --target antigravity
|
|
153
|
+
npx gspec --target codex
|
|
152
154
|
```
|
|
153
155
|
|
|
154
156
|
That's it. The commands are immediately available in your AI tool.
|
|
@@ -188,7 +190,7 @@ These are standard Markdown files. They live in your repo, are version-controlle
|
|
|
188
190
|
|
|
189
191
|
**Competitive research.** The `research` command analyzes competitors named in your product profile, identifying table-stakes features you might be missing and opportunities for differentiation. Its output is saved to `gspec/research.md` and automatically used by `implement` when present.
|
|
190
192
|
|
|
191
|
-
**Platform-agnostic.** A single set of source commands builds for Claude Code, Cursor, and
|
|
193
|
+
**Platform-agnostic.** A single set of source commands builds for Claude Code, Cursor, Antigravity, and Codex. The build system handles platform-specific formatting so the commands stay consistent across tools.
|
|
192
194
|
|
|
193
195
|
## Supported Platforms
|
|
194
196
|
|
|
@@ -197,6 +199,7 @@ These are standard Markdown files. They live in your repo, are version-controlle
|
|
|
197
199
|
| [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | Skills format | Supported |
|
|
198
200
|
| [Cursor](https://www.cursor.com/) | Commands format | Supported |
|
|
199
201
|
| [Antigravity](https://www.antigravity.dev/) | Skills format | Supported |
|
|
202
|
+
| [Codex](https://developers.openai.com/codex/cli/) | Skills format | Supported |
|
|
200
203
|
|
|
201
204
|
## Project Status
|
|
202
205
|
|
package/bin/gspec.js
CHANGED
|
@@ -45,12 +45,19 @@ const TARGETS = {
|
|
|
45
45
|
label: 'Antigravity',
|
|
46
46
|
layout: 'directory',
|
|
47
47
|
},
|
|
48
|
+
codex: {
|
|
49
|
+
sourceDir: join(DIST_DIR, 'codex'),
|
|
50
|
+
installDir: '.agents/skills',
|
|
51
|
+
label: 'Codex',
|
|
52
|
+
layout: 'directory',
|
|
53
|
+
},
|
|
48
54
|
};
|
|
49
55
|
|
|
50
56
|
const TARGET_CHOICES = [
|
|
51
57
|
{ key: '1', name: 'claude', label: 'Claude Code' },
|
|
52
58
|
{ key: '2', name: 'cursor', label: 'Cursor' },
|
|
53
59
|
{ key: '3', name: 'antigravity', label: 'Antigravity' },
|
|
60
|
+
{ key: '4', name: 'codex', label: 'Codex' },
|
|
54
61
|
];
|
|
55
62
|
|
|
56
63
|
function promptTarget() {
|
|
@@ -63,7 +70,7 @@ function promptTarget() {
|
|
|
63
70
|
console.log();
|
|
64
71
|
|
|
65
72
|
return new Promise((resolve) => {
|
|
66
|
-
rl.question(chalk.bold(' Select [1-
|
|
73
|
+
rl.question(chalk.bold(' Select [1-4]: '), (answer) => {
|
|
67
74
|
rl.close();
|
|
68
75
|
const trimmed = answer.trim().toLowerCase();
|
|
69
76
|
|
|
@@ -76,7 +83,7 @@ function promptTarget() {
|
|
|
76
83
|
if (byName) return resolve(byName.name);
|
|
77
84
|
|
|
78
85
|
console.error(chalk.red(`\nInvalid selection: "${answer.trim()}"`));
|
|
79
|
-
console.error(`Valid options: 1, 2, 3, claude, cursor, antigravity`);
|
|
86
|
+
console.error(`Valid options: 1, 2, 3, 4, claude, cursor, antigravity, codex`);
|
|
80
87
|
process.exit(1);
|
|
81
88
|
});
|
|
82
89
|
});
|
|
@@ -215,6 +222,7 @@ const MIGRATE_COMMANDS = {
|
|
|
215
222
|
claude: '/gspec-migrate',
|
|
216
223
|
cursor: '/gspec-migrate',
|
|
217
224
|
antigravity: '/gspec-migrate',
|
|
225
|
+
codex: '/gspec-migrate',
|
|
218
226
|
};
|
|
219
227
|
|
|
220
228
|
function parseGspecVersion(content) {
|
|
@@ -297,7 +305,7 @@ program
|
|
|
297
305
|
.name('gspec')
|
|
298
306
|
.description('Install gspec specification commands')
|
|
299
307
|
.version(pkg.version)
|
|
300
|
-
.option('-t, --target <target>', 'target platform (claude, cursor, antigravity)')
|
|
308
|
+
.option('-t, --target <target>', 'target platform (claude, cursor, antigravity, codex)')
|
|
301
309
|
.action(async (opts) => {
|
|
302
310
|
console.log(BANNER);
|
|
303
311
|
|
|
@@ -42,7 +42,7 @@ All of these provide essential context. If any are missing, note the gap and mak
|
|
|
42
42
|
- Begin the file with YAML frontmatter containing the gspec version:
|
|
43
43
|
```
|
|
44
44
|
---
|
|
45
|
-
gspec-version: 1.
|
|
45
|
+
gspec-version: 1.4.0
|
|
46
46
|
---
|
|
47
47
|
```
|
|
48
48
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -144,7 +144,7 @@ After approval, write the spec updates:
|
|
|
144
144
|
- Dependencies (on other features or external services)
|
|
145
145
|
- Assumptions & Risks (assumptions, open questions, key risks and mitigations — note in assumptions that this feature was identified during iterative development)
|
|
146
146
|
- Success Metrics
|
|
147
|
-
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.
|
|
147
|
+
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.4.0\n---`
|
|
148
148
|
- **Also update `gspec/architecture.md`** if the new feature introduces data entities, API endpoints, or new components — add them to the appropriate architecture sections
|
|
149
149
|
|
|
150
150
|
### Phase 7: Verify — Confirm Consistency
|
|
@@ -177,7 +177,7 @@ After writing spec updates:
|
|
|
177
177
|
|
|
178
178
|
**Implementation checkboxes.** Feature PRDs use markdown checkboxes (`- [ ]` / `- [x]`) on capabilities to track implementation status for `gspec-implement`. When DOR adds new capabilities, use unchecked checkboxes (`- [ ]`). When modifying a capability that was already checked (`- [x]`) and the code change reflects the modification, keep it checked. When creating a new feature PRD, use unchecked checkboxes for all capabilities. Do not check off capabilities that DOR did not implement in the current session.
|
|
179
179
|
|
|
180
|
-
**Version frontmatter.** When updating existing gspec files, preserve the `gspec-version` YAML frontmatter at the top of the file. If a file lacks frontmatter, add `---\ngspec-version: 1.
|
|
180
|
+
**Version frontmatter.** When updating existing gspec files, preserve the `gspec-version` YAML frontmatter at the top of the file. If a file lacks frontmatter, add `---\ngspec-version: 1.4.0\n---` as the very first content before the main heading.
|
|
181
181
|
|
|
182
182
|
---
|
|
183
183
|
|
|
@@ -78,7 +78,7 @@ Epic summaries and the feature PRDs they produce are designed to be **portable a
|
|
|
78
78
|
- Begin every output file (both epic summary and individual feature PRDs) with YAML frontmatter containing the gspec version:
|
|
79
79
|
```
|
|
80
80
|
---
|
|
81
|
-
gspec-version: 1.
|
|
81
|
+
gspec-version: 1.4.0
|
|
82
82
|
---
|
|
83
83
|
```
|
|
84
84
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -68,7 +68,7 @@ Feature PRDs are designed to be **portable across projects**. A feature spec wri
|
|
|
68
68
|
- Begin the file with YAML frontmatter containing the gspec version:
|
|
69
69
|
```
|
|
70
70
|
---
|
|
71
|
-
gspec-version: 1.
|
|
71
|
+
gspec-version: 1.4.0
|
|
72
72
|
---
|
|
73
73
|
```
|
|
74
74
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -139,7 +139,7 @@ For each approved feature that doesn't already have a PRD in `gspec/features/`:
|
|
|
139
139
|
- Dependencies (on other features or external services)
|
|
140
140
|
- Assumptions & Risks (assumptions, open questions, key risks and mitigations)
|
|
141
141
|
- Success Metrics
|
|
142
|
-
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.
|
|
142
|
+
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.4.0\n---`
|
|
143
143
|
2. **Name the file** descriptively based on the feature (e.g., `gspec/features/onboarding-wizard.md`, `gspec/features/export-csv.md`)
|
|
144
144
|
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; project-specific context is resolved when `gspec-implement` reads all gspec documents at implementation time.
|
|
145
145
|
4. **Keep the PRD product-focused** — describe *what* and *why*, not *how*. Implementation details belong in the code, not the PRD.
|
|
@@ -206,7 +206,7 @@ Present a brief scaffold summary to the user before proceeding to feature implem
|
|
|
206
206
|
c. **Follow the style** — Apply the design system, tokens, and component patterns from `gspec/style.md`
|
|
207
207
|
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
|
|
208
208
|
e. *If `gspec/research.md` exists:* **Leverage competitive insights** — When making UX or interaction design decisions not fully specified in the style guide, consider established patterns from the competitive research. Don't blindly copy, but don't ignore proven conventions either.
|
|
209
|
-
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 `gspec-version` YAML frontmatter. If a file lacks frontmatter, add `---\ngspec-version: 1.
|
|
209
|
+
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 `gspec-version` YAML frontmatter. If a file lacks frontmatter, add `---\ngspec-version: 1.4.0\n---` at the top.
|
|
210
210
|
4. **Update epic status** — When all capabilities in a feature PRD are checked, update the corresponding feature's checkbox in the epic summary file (if one exists) from `- [ ]` to `- [x]`.
|
|
211
211
|
5. **Run tests** — Execute the tests defined for this phase (and any existing tests to catch regressions). Fix any failures before proceeding.
|
|
212
212
|
6. **Surface new gaps** — If implementation reveals new ambiguities, pause and consult the user rather than making silent assumptions
|
|
@@ -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 gspec format (version 1.
|
|
8
|
+
Your task is to update existing gspec specification documents to match the current gspec format (version 1.4.0). You preserve all substantive content while ensuring documents follow the latest structural conventions.
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -21,14 +21,14 @@ Scan the `gspec/` directory for all Markdown files:
|
|
|
21
21
|
For each file, check the YAML frontmatter at the top of the file:
|
|
22
22
|
- If the file starts with `---` followed by YAML content and another `---`, read the `gspec-version` field
|
|
23
23
|
- If no frontmatter exists, the file predates version tracking
|
|
24
|
-
- If `gspec-version` matches `1.
|
|
24
|
+
- If `gspec-version` matches `1.4.0`, the file is current — skip it
|
|
25
25
|
|
|
26
26
|
Present an inventory to the user:
|
|
27
27
|
|
|
28
28
|
> **gspec File Inventory:**
|
|
29
29
|
> - `gspec/profile.md` — no version (needs migration)
|
|
30
30
|
> - `gspec/stack.md` — version 1.0.3 (needs migration)
|
|
31
|
-
> - `gspec/style.md` — version 1.
|
|
31
|
+
> - `gspec/style.md` — version 1.4.0 (current, skipping)
|
|
32
32
|
> - `gspec/features/user-auth.md` — no version (needs migration)
|
|
33
33
|
|
|
34
34
|
Ask the user to confirm which files to migrate, or confirm all.
|
|
@@ -64,7 +64,7 @@ For each file to migrate:
|
|
|
64
64
|
5. **Add or update the frontmatter** — Ensure the file starts with:
|
|
65
65
|
```
|
|
66
66
|
---
|
|
67
|
-
gspec-version: 1.
|
|
67
|
+
gspec-version: 1.4.0
|
|
68
68
|
---
|
|
69
69
|
```
|
|
70
70
|
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.
|
|
@@ -78,7 +78,7 @@ After migrating all files:
|
|
|
78
78
|
3. **Present a completion summary**:
|
|
79
79
|
|
|
80
80
|
> **Migration Complete:**
|
|
81
|
-
> - 4 files migrated to version 1.
|
|
81
|
+
> - 4 files migrated to version 1.4.0
|
|
82
82
|
> - 2 files were already current (skipped)
|
|
83
83
|
> - Content preserved in all files
|
|
84
84
|
> - Sections reorganized: [list any structural changes]
|
|
@@ -128,7 +128,7 @@ After approval, write the spec updates:
|
|
|
128
128
|
- Dependencies (on other features or external services)
|
|
129
129
|
- Assumptions & Risks (assumptions, open questions, key risks and mitigations — note in assumptions that this feature was recorded during iterative development)
|
|
130
130
|
- Success Metrics
|
|
131
|
-
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.
|
|
131
|
+
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.4.0\n---`
|
|
132
132
|
- **Also update `gspec/architecture.md`** if the new feature introduces data entities, API endpoints, or new components — add them to the appropriate architecture sections
|
|
133
133
|
|
|
134
134
|
### Phase 6: Verify — Confirm Consistency
|
|
@@ -157,7 +157,7 @@ After writing spec updates:
|
|
|
157
157
|
|
|
158
158
|
**When to create vs. update.** If a change adds a small capability that fits naturally within an existing feature PRD, update that PRD. If a change introduces a wholly new product area that does not belong in any existing PRD, create a new feature PRD. When in doubt, ask the user.
|
|
159
159
|
|
|
160
|
-
**Version frontmatter.** When updating existing gspec files, preserve the `gspec-version` YAML frontmatter at the top of the file. If a file lacks frontmatter, add `---\ngspec-version: 1.
|
|
160
|
+
**Version frontmatter.** When updating existing gspec files, preserve the `gspec-version` YAML frontmatter at the top of the file. If a file lacks frontmatter, add `---\ngspec-version: 1.4.0\n---` as the very first content before the main heading.
|
|
161
161
|
|
|
162
162
|
**No code changes.** This command never creates, modifies, or deletes code files. If the user needs code changes alongside spec updates, suggest using `gspec-dor` instead.
|
|
163
163
|
|
|
@@ -147,7 +147,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
147
147
|
- Assumptions & Risks (assumptions, open questions, key risks and mitigations)
|
|
148
148
|
- Success Metrics
|
|
149
149
|
- Implementation Context (standard portability note)
|
|
150
|
-
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.
|
|
150
|
+
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.4.0\n---`
|
|
151
151
|
2. **Name the file** descriptively based on the feature (e.g., `gspec/features/csv-export.md`, `gspec/features/onboarding-wizard.md`)
|
|
152
152
|
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.
|
|
153
153
|
4. **Keep the PRD product-focused** — describe *what* and *why*, not *how*. Implementation details belong in the code, not the PRD.
|
|
@@ -166,7 +166,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
166
166
|
- Begin `gspec/research.md` with YAML frontmatter containing the gspec version:
|
|
167
167
|
```
|
|
168
168
|
---
|
|
169
|
-
gspec-version: 1.
|
|
169
|
+
gspec-version: 1.4.0
|
|
170
170
|
---
|
|
171
171
|
```
|
|
172
172
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -183,7 +183,7 @@ The `gspec/research.md` file must follow this structure:
|
|
|
183
183
|
|
|
184
184
|
```markdown
|
|
185
185
|
---
|
|
186
|
-
gspec-version: 1.
|
|
186
|
+
gspec-version: 1.4.0
|
|
187
187
|
---
|
|
188
188
|
|
|
189
189
|
# Competitive Research
|
|
@@ -42,7 +42,7 @@ All of these provide essential context. If any are missing, note the gap and mak
|
|
|
42
42
|
- Begin the file with YAML frontmatter containing the gspec version:
|
|
43
43
|
```
|
|
44
44
|
---
|
|
45
|
-
gspec-version: 1.
|
|
45
|
+
gspec-version: 1.4.0
|
|
46
46
|
---
|
|
47
47
|
```
|
|
48
48
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -144,7 +144,7 @@ After approval, write the spec updates:
|
|
|
144
144
|
- Dependencies (on other features or external services)
|
|
145
145
|
- Assumptions & Risks (assumptions, open questions, key risks and mitigations — note in assumptions that this feature was identified during iterative development)
|
|
146
146
|
- Success Metrics
|
|
147
|
-
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.
|
|
147
|
+
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.4.0\n---`
|
|
148
148
|
- **Also update `gspec/architecture.md`** if the new feature introduces data entities, API endpoints, or new components — add them to the appropriate architecture sections
|
|
149
149
|
|
|
150
150
|
### Phase 7: Verify — Confirm Consistency
|
|
@@ -177,7 +177,7 @@ After writing spec updates:
|
|
|
177
177
|
|
|
178
178
|
**Implementation checkboxes.** Feature PRDs use markdown checkboxes (`- [ ]` / `- [x]`) on capabilities to track implementation status for `gspec-implement`. When DOR adds new capabilities, use unchecked checkboxes (`- [ ]`). When modifying a capability that was already checked (`- [x]`) and the code change reflects the modification, keep it checked. When creating a new feature PRD, use unchecked checkboxes for all capabilities. Do not check off capabilities that DOR did not implement in the current session.
|
|
179
179
|
|
|
180
|
-
**Version frontmatter.** When updating existing gspec files, preserve the `gspec-version` YAML frontmatter at the top of the file. If a file lacks frontmatter, add `---\ngspec-version: 1.
|
|
180
|
+
**Version frontmatter.** When updating existing gspec files, preserve the `gspec-version` YAML frontmatter at the top of the file. If a file lacks frontmatter, add `---\ngspec-version: 1.4.0\n---` as the very first content before the main heading.
|
|
181
181
|
|
|
182
182
|
---
|
|
183
183
|
|
|
@@ -78,7 +78,7 @@ Epic summaries and the feature PRDs they produce are designed to be **portable a
|
|
|
78
78
|
- Begin every output file (both epic summary and individual feature PRDs) with YAML frontmatter containing the gspec version:
|
|
79
79
|
```
|
|
80
80
|
---
|
|
81
|
-
gspec-version: 1.
|
|
81
|
+
gspec-version: 1.4.0
|
|
82
82
|
---
|
|
83
83
|
```
|
|
84
84
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -68,7 +68,7 @@ Feature PRDs are designed to be **portable across projects**. A feature spec wri
|
|
|
68
68
|
- Begin the file with YAML frontmatter containing the gspec version:
|
|
69
69
|
```
|
|
70
70
|
---
|
|
71
|
-
gspec-version: 1.
|
|
71
|
+
gspec-version: 1.4.0
|
|
72
72
|
---
|
|
73
73
|
```
|
|
74
74
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -139,7 +139,7 @@ For each approved feature that doesn't already have a PRD in `gspec/features/`:
|
|
|
139
139
|
- Dependencies (on other features or external services)
|
|
140
140
|
- Assumptions & Risks (assumptions, open questions, key risks and mitigations)
|
|
141
141
|
- Success Metrics
|
|
142
|
-
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.
|
|
142
|
+
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.4.0\n---`
|
|
143
143
|
2. **Name the file** descriptively based on the feature (e.g., `gspec/features/onboarding-wizard.md`, `gspec/features/export-csv.md`)
|
|
144
144
|
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; project-specific context is resolved when `gspec-implement` reads all gspec documents at implementation time.
|
|
145
145
|
4. **Keep the PRD product-focused** — describe *what* and *why*, not *how*. Implementation details belong in the code, not the PRD.
|
|
@@ -206,7 +206,7 @@ Present a brief scaffold summary to the user before proceeding to feature implem
|
|
|
206
206
|
c. **Follow the style** — Apply the design system, tokens, and component patterns from `gspec/style.md`
|
|
207
207
|
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
|
|
208
208
|
e. *If `gspec/research.md` exists:* **Leverage competitive insights** — When making UX or interaction design decisions not fully specified in the style guide, consider established patterns from the competitive research. Don't blindly copy, but don't ignore proven conventions either.
|
|
209
|
-
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 `gspec-version` YAML frontmatter. If a file lacks frontmatter, add `---\ngspec-version: 1.
|
|
209
|
+
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 `gspec-version` YAML frontmatter. If a file lacks frontmatter, add `---\ngspec-version: 1.4.0\n---` at the top.
|
|
210
210
|
4. **Update epic status** — When all capabilities in a feature PRD are checked, update the corresponding feature's checkbox in the epic summary file (if one exists) from `- [ ]` to `- [x]`.
|
|
211
211
|
5. **Run tests** — Execute the tests defined for this phase (and any existing tests to catch regressions). Fix any failures before proceeding.
|
|
212
212
|
6. **Surface new gaps** — If implementation reveals new ambiguities, pause and consult the user rather than making silent assumptions
|
|
@@ -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 gspec format (version 1.
|
|
8
|
+
Your task is to update existing gspec specification documents to match the current gspec format (version 1.4.0). You preserve all substantive content while ensuring documents follow the latest structural conventions.
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -21,14 +21,14 @@ Scan the `gspec/` directory for all Markdown files:
|
|
|
21
21
|
For each file, check the YAML frontmatter at the top of the file:
|
|
22
22
|
- If the file starts with `---` followed by YAML content and another `---`, read the `gspec-version` field
|
|
23
23
|
- If no frontmatter exists, the file predates version tracking
|
|
24
|
-
- If `gspec-version` matches `1.
|
|
24
|
+
- If `gspec-version` matches `1.4.0`, the file is current — skip it
|
|
25
25
|
|
|
26
26
|
Present an inventory to the user:
|
|
27
27
|
|
|
28
28
|
> **gspec File Inventory:**
|
|
29
29
|
> - `gspec/profile.md` — no version (needs migration)
|
|
30
30
|
> - `gspec/stack.md` — version 1.0.3 (needs migration)
|
|
31
|
-
> - `gspec/style.md` — version 1.
|
|
31
|
+
> - `gspec/style.md` — version 1.4.0 (current, skipping)
|
|
32
32
|
> - `gspec/features/user-auth.md` — no version (needs migration)
|
|
33
33
|
|
|
34
34
|
Ask the user to confirm which files to migrate, or confirm all.
|
|
@@ -64,7 +64,7 @@ For each file to migrate:
|
|
|
64
64
|
5. **Add or update the frontmatter** — Ensure the file starts with:
|
|
65
65
|
```
|
|
66
66
|
---
|
|
67
|
-
gspec-version: 1.
|
|
67
|
+
gspec-version: 1.4.0
|
|
68
68
|
---
|
|
69
69
|
```
|
|
70
70
|
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.
|
|
@@ -78,7 +78,7 @@ After migrating all files:
|
|
|
78
78
|
3. **Present a completion summary**:
|
|
79
79
|
|
|
80
80
|
> **Migration Complete:**
|
|
81
|
-
> - 4 files migrated to version 1.
|
|
81
|
+
> - 4 files migrated to version 1.4.0
|
|
82
82
|
> - 2 files were already current (skipped)
|
|
83
83
|
> - Content preserved in all files
|
|
84
84
|
> - Sections reorganized: [list any structural changes]
|
|
@@ -128,7 +128,7 @@ After approval, write the spec updates:
|
|
|
128
128
|
- Dependencies (on other features or external services)
|
|
129
129
|
- Assumptions & Risks (assumptions, open questions, key risks and mitigations — note in assumptions that this feature was recorded during iterative development)
|
|
130
130
|
- Success Metrics
|
|
131
|
-
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.
|
|
131
|
+
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.4.0\n---`
|
|
132
132
|
- **Also update `gspec/architecture.md`** if the new feature introduces data entities, API endpoints, or new components — add them to the appropriate architecture sections
|
|
133
133
|
|
|
134
134
|
### Phase 6: Verify — Confirm Consistency
|
|
@@ -157,7 +157,7 @@ After writing spec updates:
|
|
|
157
157
|
|
|
158
158
|
**When to create vs. update.** If a change adds a small capability that fits naturally within an existing feature PRD, update that PRD. If a change introduces a wholly new product area that does not belong in any existing PRD, create a new feature PRD. When in doubt, ask the user.
|
|
159
159
|
|
|
160
|
-
**Version frontmatter.** When updating existing gspec files, preserve the `gspec-version` YAML frontmatter at the top of the file. If a file lacks frontmatter, add `---\ngspec-version: 1.
|
|
160
|
+
**Version frontmatter.** When updating existing gspec files, preserve the `gspec-version` YAML frontmatter at the top of the file. If a file lacks frontmatter, add `---\ngspec-version: 1.4.0\n---` as the very first content before the main heading.
|
|
161
161
|
|
|
162
162
|
**No code changes.** This command never creates, modifies, or deletes code files. If the user needs code changes alongside spec updates, suggest using `gspec-dor` instead.
|
|
163
163
|
|
|
@@ -147,7 +147,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
147
147
|
- Assumptions & Risks (assumptions, open questions, key risks and mitigations)
|
|
148
148
|
- Success Metrics
|
|
149
149
|
- Implementation Context (standard portability note)
|
|
150
|
-
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.
|
|
150
|
+
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.4.0\n---`
|
|
151
151
|
2. **Name the file** descriptively based on the feature (e.g., `gspec/features/csv-export.md`, `gspec/features/onboarding-wizard.md`)
|
|
152
152
|
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.
|
|
153
153
|
4. **Keep the PRD product-focused** — describe *what* and *why*, not *how*. Implementation details belong in the code, not the PRD.
|
|
@@ -166,7 +166,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
166
166
|
- Begin `gspec/research.md` with YAML frontmatter containing the gspec version:
|
|
167
167
|
```
|
|
168
168
|
---
|
|
169
|
-
gspec-version: 1.
|
|
169
|
+
gspec-version: 1.4.0
|
|
170
170
|
---
|
|
171
171
|
```
|
|
172
172
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -183,7 +183,7 @@ The `gspec/research.md` file must follow this structure:
|
|
|
183
183
|
|
|
184
184
|
```markdown
|
|
185
185
|
---
|
|
186
|
-
gspec-version: 1.
|
|
186
|
+
gspec-version: 1.4.0
|
|
187
187
|
---
|
|
188
188
|
|
|
189
189
|
# Competitive Research
|