gspec 1.1.2 → 1.3.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 +58 -12
- package/commands/gspec.epic.md +25 -15
- package/commands/gspec.feature.md +24 -14
- package/commands/gspec.implement.md +51 -118
- package/commands/gspec.practices.md +2 -3
- package/commands/gspec.research.md +276 -0
- package/commands/gspec.stack.md +29 -6
- package/commands/gspec.style.md +13 -46
- 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 +26 -16
- package/dist/antigravity/gspec-feature/SKILL.md +25 -15
- package/dist/antigravity/gspec-implement/SKILL.md +54 -121
- package/dist/antigravity/gspec-migrate/SKILL.md +5 -5
- package/dist/antigravity/gspec-practices/SKILL.md +3 -4
- 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 +280 -0
- package/dist/antigravity/gspec-stack/SKILL.md +30 -7
- package/dist/antigravity/gspec-style/SKILL.md +14 -47
- 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 +26 -16
- package/dist/claude/gspec-feature/SKILL.md +25 -15
- package/dist/claude/gspec-implement/SKILL.md +54 -121
- package/dist/claude/gspec-migrate/SKILL.md +5 -5
- package/dist/claude/gspec-practices/SKILL.md +3 -4
- 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 +281 -0
- package/dist/claude/gspec-stack/SKILL.md +30 -7
- package/dist/claude/gspec-style/SKILL.md +14 -47
- package/dist/cursor/gspec-architect.mdc +1 -1
- package/dist/cursor/gspec-dor.mdc +2 -2
- package/dist/cursor/gspec-epic.mdc +26 -16
- package/dist/cursor/gspec-feature.mdc +25 -15
- package/dist/cursor/gspec-implement.mdc +54 -121
- package/dist/cursor/gspec-migrate.mdc +5 -5
- package/dist/cursor/gspec-practices.mdc +3 -4
- package/dist/cursor/gspec-profile.mdc +1 -1
- package/dist/cursor/gspec-record.mdc +2 -2
- package/dist/cursor/gspec-research.mdc +279 -0
- package/dist/cursor/gspec-stack.mdc +30 -7
- package/dist/cursor/gspec-style.mdc +14 -47
- package/package.json +1 -1
|
@@ -28,7 +28,7 @@ Your task is to take the provided feature description (which may be vague or det
|
|
|
28
28
|
- ✅ Build order recommendations based on technical dependencies
|
|
29
29
|
|
|
30
30
|
You should:
|
|
31
|
-
- **Read existing
|
|
31
|
+
- **Read existing feature PRDs** in `gspec/features/` to understand already-specified features and avoid overlap
|
|
32
32
|
- **Ask all clarifying questions in the chat before writing the spec** — never embed unresolved questions in the generated document
|
|
33
33
|
- When asking questions, offer 2-3 specific suggestions to guide the discussion
|
|
34
34
|
- Focus on user value, scope, and outcomes
|
|
@@ -37,20 +37,26 @@ You should:
|
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
40
|
-
##
|
|
40
|
+
## Portability
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
Feature PRDs are designed to be **portable across projects**. A feature spec written for one project should be reusable in a different project with a different profile, design system, tech stack, and development practices. Project-specific context is resolved at implementation time by `gspec-implement`, which reads all gspec documents (profile, style, stack, practices) alongside the feature PRDs.
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
**To maintain portability, DO NOT read or incorporate context from:**
|
|
45
|
+
- `gspec/profile.md` — Do not reference project-specific personas, competitive landscape, or positioning
|
|
46
|
+
- `gspec/style.md` — Do not reference a specific design system or component library
|
|
47
|
+
- `gspec/stack.md` — Do not reference specific technologies (already covered by Technology Agnosticism)
|
|
48
|
+
- `gspec/practices.md` — Do not reference project-specific development standards
|
|
48
49
|
|
|
49
|
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
- Ensure
|
|
53
|
-
|
|
50
|
+
**DO read existing feature PRDs** in `gspec/features/` to:
|
|
51
|
+
- Avoid duplicating or contradicting already-specified features
|
|
52
|
+
- Identify cross-feature dependencies
|
|
53
|
+
- Ensure consistent scope boundaries
|
|
54
|
+
|
|
55
|
+
**Write in generic, portable terms:**
|
|
56
|
+
- Use relative role descriptions ("primary users", "administrators", "content creators") not project-specific persona names
|
|
57
|
+
- Justify priorities based on the feature's intrinsic user value, not competitive landscape
|
|
58
|
+
- Describe desired UX behavior generically ("clear error feedback", "responsive layout") without referencing a specific design system
|
|
59
|
+
- Define success metrics in terms of the feature's own outcomes, not project-level KPIs
|
|
54
60
|
|
|
55
61
|
---
|
|
56
62
|
|
|
@@ -62,7 +68,7 @@ If these files don't exist, proceed without them — they are optional context,
|
|
|
62
68
|
- Begin the file with YAML frontmatter containing the gspec version:
|
|
63
69
|
```
|
|
64
70
|
---
|
|
65
|
-
gspec-version: 1.
|
|
71
|
+
gspec-version: 1.3.0
|
|
66
72
|
---
|
|
67
73
|
```
|
|
68
74
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -102,7 +108,7 @@ If these files don't exist, proceed without them — they are optional context,
|
|
|
102
108
|
- ❌ S3, GCS, Azure Blob Storage
|
|
103
109
|
- ❌ Kafka, RabbitMQ, SQS
|
|
104
110
|
|
|
105
|
-
This separation allows the same feature spec to be
|
|
111
|
+
This separation — combined with the portability principles above — allows the same feature spec to be reused across projects with different technology stacks, design systems, and product contexts.
|
|
106
112
|
|
|
107
113
|
---
|
|
108
114
|
|
|
@@ -116,7 +122,7 @@ This separation allows the same feature spec to be implemented using different t
|
|
|
116
122
|
- Problem being solved and why it matters now
|
|
117
123
|
|
|
118
124
|
### 2. Users & Use Cases
|
|
119
|
-
- Primary users
|
|
125
|
+
- Primary users (use generic role descriptions like "end users", "administrators", "content managers" — not project-specific persona names)
|
|
120
126
|
- Key use cases (3-4 scenarios showing how users benefit)
|
|
121
127
|
|
|
122
128
|
### 3. Scope
|
|
@@ -150,6 +156,10 @@ This separation allows the same feature spec to be implemented using different t
|
|
|
150
156
|
### 7. Success Metrics
|
|
151
157
|
- 2-4 measurable outcomes that define whether this feature is working
|
|
152
158
|
|
|
159
|
+
### 8. Implementation Context
|
|
160
|
+
- Include the following standard note verbatim:
|
|
161
|
+
> This feature PRD is portable and project-agnostic. During implementation, consult the project's `gspec/profile.md` (target users, positioning), `gspec/style.md` (design system), `gspec/stack.md` (technology choices), and `gspec/practices.md` (development standards) to resolve project-specific context.
|
|
162
|
+
|
|
153
163
|
---
|
|
154
164
|
|
|
155
165
|
## Tone & Style
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gspec-implement
|
|
3
|
-
description: Read gspec documents,
|
|
3
|
+
description: Read gspec documents, identify gaps, and implement the software
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
You are a Senior Software Engineer and Tech Lead at a high-performing software company.
|
|
@@ -13,9 +13,9 @@ When feature specs exist, they are a **guide to key functionality, not a compreh
|
|
|
13
13
|
|
|
14
14
|
You should:
|
|
15
15
|
- Read and internalize all available gspec documents before writing any code
|
|
16
|
-
- **
|
|
16
|
+
- **Use competitive research** from `gspec/research.md` when available to understand the competitive landscape and identify feature expectations
|
|
17
17
|
- Identify gaps, ambiguities, or underspecified behaviors in the specs
|
|
18
|
-
- **Propose additional features** informed by
|
|
18
|
+
- **Propose additional features** informed by competitive research (when available), product business needs, target users, and mission — even if not listed in the existing feature specs
|
|
19
19
|
- Use your engineering judgment and imagination to propose solutions for gaps
|
|
20
20
|
- **Always vet proposals with the user before implementing them** — use plan mode to present your reasoning and get approval
|
|
21
21
|
- Implement incrementally, one logical unit at a time
|
|
@@ -33,10 +33,12 @@ Before writing any code, read all available gspec documents in this order:
|
|
|
33
33
|
1. `gspec/profile.md` — Understand what the product is and who it's for
|
|
34
34
|
2. `gspec/epics/*.md` — Understand the big picture and feature dependencies
|
|
35
35
|
3. `gspec/features/*.md` — Understand individual feature requirements
|
|
36
|
+
> **Note:** Feature PRDs are designed to be portable and project-agnostic. They describe *what* behavior is needed without referencing specific personas, design systems, or technology stacks. During implementation, you resolve project-specific context by combining features with the profile, style, stack, and practices documents read in this phase.
|
|
36
37
|
4. `gspec/stack.md` — Understand the technology choices
|
|
37
38
|
5. `gspec/style.md` — Understand the visual design language
|
|
38
39
|
6. `gspec/practices.md` — Understand development standards and conventions
|
|
39
40
|
7. `gspec/architecture.md` — Understand the technical architecture: project structure, data model, API design, component architecture, and environment setup. **This is the primary reference for how to scaffold and structure the codebase.** If this file is missing, note the gap and suggest the user run `gspec-architect` first — but do not block on it.
|
|
41
|
+
8. `gspec/research.md` — If this file exists, read the competitive research findings. This provides pre-conducted competitor analysis including the competitive feature matrix, categorized findings, and accepted feature recommendations produced by `gspec-research`.
|
|
40
42
|
|
|
41
43
|
If any of these files are missing, note what's missing and proceed with what's available.
|
|
42
44
|
|
|
@@ -60,107 +62,24 @@ Present this summary to the user so they understand the starting point. If **all
|
|
|
60
62
|
|
|
61
63
|
For epic summary files, check whether the features listed in the "Features Breakdown" section have checkboxes. A feature in an epic is considered complete when all its capabilities in the corresponding feature PRD are checked.
|
|
62
64
|
|
|
63
|
-
|
|
64
|
-
- All named **direct competitors**
|
|
65
|
-
- All named **indirect competitors or alternatives**
|
|
66
|
-
- The **white space or gaps** the product claims to fill
|
|
67
|
-
- The **differentiation** and **competitive advantages** stated in the Value Proposition
|
|
65
|
+
### Phase 2: Analysis — Identify Gaps & Plan
|
|
68
66
|
|
|
69
|
-
|
|
67
|
+
After reading the specs, **enter plan mode** and:
|
|
70
68
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
After reading the specs, **ask the user whether they want you to conduct competitor research** before planning. Present this as a clear choice:
|
|
74
|
-
|
|
75
|
-
- **Yes** — You will research the competitors named in the product profile, build a competitive feature matrix, and use the findings to identify gaps and propose features. This adds depth but takes additional time.
|
|
76
|
-
- **No** — You will plan and implement based solely on the existing gspec documents and the user's prompt. Only features explicitly defined in `gspec/features/` (if any) and capabilities the user requests will be built.
|
|
77
|
-
|
|
78
|
-
**If the user declines competitor research**, skip Phase 2 entirely. In all subsequent phases, ignore instructions that reference competitor research findings — rely only on the gspec documents and user input. Inform the user: *"Understood — I'll plan and build based on your gspec documents and any direction you provide. Only features defined in your specs (or that you request) will be implemented."*
|
|
79
|
-
|
|
80
|
-
**If the user accepts**, proceed to Phase 2.
|
|
81
|
-
|
|
82
|
-
### Phase 2: Competitor Research — Understand the Landscape
|
|
83
|
-
|
|
84
|
-
> **This phase only runs if the user opted in during Phase 1.**
|
|
85
|
-
|
|
86
|
-
Research the competitors identified in `gspec/profile.md` to ground your feature proposals in market reality. This ensures the product doesn't miss table-stakes features and capitalizes on genuine differentiation opportunities.
|
|
87
|
-
|
|
88
|
-
#### Step 1: Research Each Competitor
|
|
89
|
-
|
|
90
|
-
For every direct and indirect competitor named in the profile:
|
|
91
|
-
|
|
92
|
-
1. **Research their product** — Investigate their publicly available information (website, documentation, product pages, feature lists, reviews, changelogs)
|
|
93
|
-
2. **Catalog their key features and capabilities** — What core functionality do they offer? What does their product actually do for users?
|
|
94
|
-
3. **Note their UX patterns and design decisions** — How do they structure navigation, onboarding, key workflows? What conventions has the market established?
|
|
95
|
-
4. **Identify their strengths and weaknesses** — What do users praise? What do reviews and discussions criticize? Where do they fall short?
|
|
96
|
-
|
|
97
|
-
#### Step 2: Build a Competitive Feature Matrix (IF a competitor is mentioned)
|
|
98
|
-
|
|
99
|
-
Synthesize your research into a structured comparison:
|
|
100
|
-
|
|
101
|
-
| Feature / Capability | Competitor A | Competitor B | Competitor C | Our Product (Specified) |
|
|
102
|
-
|---|---|---|---|---|
|
|
103
|
-
| Feature X | ✅ | ✅ | ✅ | ✅ |
|
|
104
|
-
| Feature Y | ✅ | ✅ | ❌ | ❌ (gap) |
|
|
105
|
-
| Feature Z | ❌ | ❌ | ❌ | ❌ (opportunity) |
|
|
106
|
-
|
|
107
|
-
#### Step 3: Categorize Findings
|
|
108
|
-
|
|
109
|
-
Classify every feature and capability into one of three categories:
|
|
110
|
-
|
|
111
|
-
1. **Table-Stakes Features** — Features that *every* or *nearly every* competitor offers. Users will expect these as baseline functionality. If our specs don't cover them, they are likely P0 gaps.
|
|
112
|
-
2. **Differentiating Features** — Features that only *some* competitors offer. These represent opportunities to match or exceed competitors. Evaluate against the product's stated differentiation strategy.
|
|
113
|
-
3. **White-Space Features** — Capabilities that *no* competitor does well (or at all). These align with the product profile's claimed white space and represent the strongest differentiation opportunities.
|
|
114
|
-
|
|
115
|
-
#### Step 4: Assess Alignment
|
|
116
|
-
|
|
117
|
-
Compare the competitive landscape against the product's existing specs:
|
|
118
|
-
|
|
119
|
-
- Which **table-stakes features** are missing from our feature specs? Flag these as high-priority gaps.
|
|
120
|
-
- Which **differentiating features** align with our stated competitive advantages? Confirm these are adequately specified.
|
|
121
|
-
- Which **white-space opportunities** support the product's mission and vision? These may be the most strategically valuable features to propose.
|
|
122
|
-
- Are there competitor features that contradict our product's "What It Isn't" section? Explicitly exclude these.
|
|
123
|
-
|
|
124
|
-
#### Step 5: Present Findings and Ask Feature-by-Feature Questions
|
|
125
|
-
|
|
126
|
-
Present the competitive feature matrix to the user, then **walk through each gap or opportunity individually** and ask the user whether they want to include it. Do not dump a summary and wait — make it a conversation.
|
|
127
|
-
|
|
128
|
-
**5a. Show the matrix.** Present the competitive feature matrix from Step 2 so the user can see the full landscape at a glance.
|
|
129
|
-
|
|
130
|
-
**5b. For each gap or opportunity, ask a specific question.** Group and present them by category (table-stakes first, then differentiators, then white-space), and for each one:
|
|
131
|
-
|
|
132
|
-
1. **Name the feature or capability**
|
|
133
|
-
2. **Explain what it is** and what user need it serves
|
|
134
|
-
3. **State the competitive context** — which competitors offer it, how they handle it, and what category it falls into (table-stakes / differentiator / white space)
|
|
135
|
-
4. **Give your recommendation** — should the product include this? Why or why not?
|
|
136
|
-
5. **Ask the user**: *"Do you want to include this feature?"* — Yes, No, or Modified (let them adjust scope)
|
|
137
|
-
|
|
138
|
-
Example:
|
|
139
|
-
> **CSV Export** — Competitors A and B both offer CSV export for all data views. This is a table-stakes feature that users will expect. I recommend including it as P1.
|
|
140
|
-
> → Do you want to include CSV export?
|
|
141
|
-
|
|
142
|
-
**5c. Compile the accepted list.** After walking through all items, summarize which features the user accepted, rejected, and modified. This accepted list carries forward into Phase 3 planning alongside any pre-existing gspec features.
|
|
143
|
-
|
|
144
|
-
**Do not proceed to Phase 3 until all questions are resolved.**
|
|
145
|
-
|
|
146
|
-
### Phase 3: Analysis — Identify Gaps & Plan
|
|
147
|
-
|
|
148
|
-
After reading the specs (and completing competitor research if the user opted in), **enter plan mode** and:
|
|
149
|
-
|
|
150
|
-
> **Competitor research is conditional.** Throughout this phase, instructions that reference competitor research findings only apply if the user opted into Phase 2. If they declined, skip those sub-steps and rely solely on gspec documents and user input. Features accepted during Phase 2's question-driven review are treated as approved scope alongside any pre-existing gspec features.
|
|
69
|
+
> **Competitive research is conditional.** Throughout this phase, instructions that reference competitive research findings only apply if `gspec/research.md` exists and was read during Phase 1. If no research file exists, skip those sub-steps and rely solely on gspec documents and user input. Features listed in `gspec/research.md`'s "Accepted Findings" section are treated as approved scope alongside any pre-existing gspec features.
|
|
151
70
|
|
|
152
71
|
#### When features/epics exist:
|
|
153
72
|
|
|
154
73
|
1. **Summarize your understanding** of the feature(s) to be implemented. **Distinguish between already-implemented capabilities (checked `[x]`) and pending capabilities (unchecked `[ ]`).** Only pending capabilities are in scope for this run. Reference already-implemented capabilities as context — they inform how new capabilities should integrate, but do not re-implement them unless the user explicitly requests it.
|
|
155
|
-
2. **Propose additional features** informed by the product profile (and
|
|
74
|
+
2. **Propose additional features** informed by the product profile (and competitive research, if available):
|
|
156
75
|
- Review the product profile's mission, target audience, use cases, and value proposition
|
|
157
|
-
- *If
|
|
76
|
+
- *If `gspec/research.md` exists:* Reference findings — identify where competitors set user expectations that our specs don't meet. Note that features listed in `gspec/research.md`'s "Accepted Findings" don't need to be re-proposed here.
|
|
158
77
|
- Consider supporting features that would make specified features more complete or usable (e.g., onboarding, settings, notifications, error recovery)
|
|
159
78
|
- Look for gaps between the product's stated goals/success metrics and the features specified to achieve them
|
|
160
79
|
- For each proposed feature, explain:
|
|
161
80
|
- What it is and what user need it serves
|
|
162
81
|
- How it connects to the product profile's mission or target audience
|
|
163
|
-
- *If
|
|
82
|
+
- *If `gspec/research.md` exists:* What the competitive landscape says — is this table-stakes, a differentiator, or white space?
|
|
164
83
|
- Suggested priority level (P0/P1/P2) and rationale
|
|
165
84
|
- Whether it blocks or enhances any specified features
|
|
166
85
|
- **The user decides which proposed features to accept, modify, or reject**
|
|
@@ -171,17 +90,17 @@ After reading the specs (and completing competitor research if the user opted in
|
|
|
171
90
|
- Undefined data models or API contracts (check `gspec/architecture.md`'s "Data Model" and "API Design" sections — if defined, use them as the basis for your data layer and API routes; if missing or incomplete, flag the gap)
|
|
172
91
|
- Integration points that aren't fully described
|
|
173
92
|
- Missing or unclear state management patterns
|
|
174
|
-
- *If
|
|
93
|
+
- *If `gspec/research.md` exists:* Patterns that differ from established competitor conventions without clear rationale — users may have ingrained expectations from competitor products
|
|
175
94
|
4. **Propose solutions** for each gap:
|
|
176
95
|
- Explain what's missing and why it matters
|
|
177
96
|
- Offer 2-3 concrete options when multiple approaches are viable
|
|
178
|
-
- *If
|
|
97
|
+
- *If `gspec/research.md` exists:* Reference how competitors handle the same problem when relevant — not to copy, but to inform
|
|
179
98
|
- Recommend your preferred approach with rationale
|
|
180
99
|
- Flag any proposals that deviate from or extend the original spec
|
|
181
100
|
5. **Present an implementation plan** covering only pending (unchecked) capabilities, with:
|
|
182
101
|
- Ordered list of components/files to create or modify
|
|
183
102
|
- Dependencies between implementation steps
|
|
184
|
-
- Which gspec requirements each step satisfies (including any features
|
|
103
|
+
- Which gspec requirements each step satisfies (including any features accepted from `gspec/research.md` and this phase)
|
|
185
104
|
- Estimated scope (small/medium/large) for each step
|
|
186
105
|
- Note which already-implemented capabilities the new work builds on or integrates with
|
|
187
106
|
|
|
@@ -196,7 +115,7 @@ When feature PRDs and epics are absent, derive what to build from the **user's p
|
|
|
196
115
|
- `gspec/style.md` — design system and UI patterns
|
|
197
116
|
- `gspec/practices.md` — development standards and quality gates
|
|
198
117
|
2. **Define the scope** — Based on the user's prompt and available gspec context, propose a clear scope of work: what you intend to build, broken into logical units
|
|
199
|
-
3. **Propose additional capabilities** informed by the product profile (and
|
|
118
|
+
3. **Propose additional capabilities** informed by the product profile (and competitive research from `gspec/research.md` if available), following the same guidelines as above (propose, explain rationale, let user decide)
|
|
200
119
|
4. **Identify gaps and ambiguities** in the user's prompt — areas where intent is unclear or important decisions need to be made. Propose solutions with 2-3 options where applicable.
|
|
201
120
|
5. **Present an implementation plan** with:
|
|
202
121
|
- Ordered list of components/files to create or modify
|
|
@@ -206,9 +125,9 @@ When feature PRDs and epics are absent, derive what to build from the **user's p
|
|
|
206
125
|
|
|
207
126
|
**Wait for user approval before proceeding.** The user may accept, modify, or reject any of your proposals.
|
|
208
127
|
|
|
209
|
-
### Phase
|
|
128
|
+
### Phase 2b: Codify Approved Features
|
|
210
129
|
|
|
211
|
-
After the user approves proposed features (whether from gap analysis,
|
|
130
|
+
After the user approves proposed features (whether from gap analysis, competitive research findings, or the user's own additions during planning), **write each approved feature as a formal PRD** in `gspec/features/` before implementing it. This ensures the project's spec library stays complete and that future implement runs have full context.
|
|
212
131
|
|
|
213
132
|
For each approved feature that doesn't already have a PRD in `gspec/features/`:
|
|
214
133
|
|
|
@@ -220,19 +139,19 @@ For each approved feature that doesn't already have a PRD in `gspec/features/`:
|
|
|
220
139
|
- Dependencies (on other features or external services)
|
|
221
140
|
- Assumptions & Risks (assumptions, open questions, key risks and mitigations)
|
|
222
141
|
- Success Metrics
|
|
223
|
-
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.
|
|
142
|
+
- Begin the file with YAML frontmatter: `---\ngspec-version: 1.3.0\n---`
|
|
224
143
|
2. **Name the file** descriptively based on the feature (e.g., `gspec/features/onboarding-wizard.md`, `gspec/features/export-csv.md`)
|
|
225
|
-
3. **
|
|
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.
|
|
226
145
|
4. **Keep the PRD product-focused** — describe *what* and *why*, not *how*. Implementation details belong in the code, not the PRD.
|
|
227
|
-
5. **Note the feature's origin** — in the Assumptions section, note that this feature was identified and approved during implementation planning (e.g., from
|
|
146
|
+
5. **Note the feature's origin** — in the Assumptions section, note that this feature was identified and approved during implementation planning (e.g., from competitive research, gap analysis, or user direction)
|
|
228
147
|
|
|
229
148
|
This step is not optional. Every feature the agent implements should be traceable to either a pre-existing PRD or one generated during this phase. Skipping this step leads to undocumented features that future sessions cannot reason about.
|
|
230
149
|
|
|
231
|
-
### Phase
|
|
150
|
+
### Phase 2c: Implementation Plan — Define the Build Order
|
|
232
151
|
|
|
233
|
-
After all approved features are codified as PRDs, **enter plan mode** and create a concrete, phased implementation plan. This is distinct from Phase
|
|
152
|
+
After all approved features are codified as PRDs, **enter plan mode** and create a concrete, phased implementation plan. This is distinct from Phase 2's gap analysis — this is the tactical build plan.
|
|
234
153
|
|
|
235
|
-
1. **Survey the full scope** — Review all feature PRDs (both pre-existing and newly codified in Phase
|
|
154
|
+
1. **Survey the full scope** — Review all feature PRDs (both pre-existing and newly codified in Phase 2b) and identify every unchecked capability that is in scope for this run
|
|
236
155
|
2. **Organize into implementation phases** — Group related capabilities into logical phases that can be built and verified independently. Each phase should:
|
|
237
156
|
- Have a clear name and objective (e.g., "Phase 1: Core Data Models & API", "Phase 2: Authentication Flow")
|
|
238
157
|
- List the specific capabilities (with feature PRD references) it will implement
|
|
@@ -242,12 +161,26 @@ After all approved features are codified as PRDs, **enter plan mode** and create
|
|
|
242
161
|
3. **Define test expectations per phase** — For each phase, specify what tests will be run to verify correctness before moving on (unit tests, integration tests, build verification, etc.)
|
|
243
162
|
4. **Present the plan** — Show the user the full phased plan with clear phase boundaries and ask for approval
|
|
244
163
|
|
|
245
|
-
**Wait for user approval before proceeding to Phase
|
|
164
|
+
**Wait for user approval before proceeding to Phase 3.** The user may reorder phases, adjust scope, or split/merge phases.
|
|
246
165
|
|
|
247
|
-
### Phase
|
|
166
|
+
### Phase 3: Implementation — Build It
|
|
248
167
|
|
|
249
168
|
Once the implementation plan is approved, execute it **phase by phase**.
|
|
250
169
|
|
|
170
|
+
#### Pre-Implementation: Git Checkpoint
|
|
171
|
+
|
|
172
|
+
Before writing any code, create a git commit to establish a clean rollback point:
|
|
173
|
+
|
|
174
|
+
1. **Check for uncommitted changes** — Run `git status` to see if there are staged or unstaged changes in the working tree
|
|
175
|
+
2. **If uncommitted changes exist**, stage and commit them:
|
|
176
|
+
- `git add -A`
|
|
177
|
+
- Commit with the message: `chore: pre-implement checkpoint`
|
|
178
|
+
- Inform the user: *"I've committed your existing changes as a checkpoint. If you need to roll back the implementation, you can return to this commit."*
|
|
179
|
+
3. **If the working tree is clean**, inform the user: *"Working tree is clean — no checkpoint commit needed."*
|
|
180
|
+
4. **If the project is not a git repository**, skip this step and note that no rollback point was created
|
|
181
|
+
|
|
182
|
+
This step is not optional. A clean checkpoint ensures the user can always `git reset` or `git diff` against the pre-implementation state.
|
|
183
|
+
|
|
251
184
|
#### Phase 0 (if needed): Project Scaffolding
|
|
252
185
|
|
|
253
186
|
Before implementing any feature logic, ensure the project foundation exists. **Skip this step entirely if the project is already initialized** (i.e., a `package.json`, `pyproject.toml`, `go.mod`, or equivalent exists and dependencies are installed).
|
|
@@ -272,8 +205,8 @@ Present a brief scaffold summary to the user before proceeding to feature implem
|
|
|
272
205
|
b. **Follow the practices** — Adhere to coding standards, testing requirements, and conventions from `gspec/practices.md`
|
|
273
206
|
c. **Follow the style** — Apply the design system, tokens, and component patterns from `gspec/style.md`
|
|
274
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
|
|
275
|
-
e. *If
|
|
276
|
-
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.
|
|
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.3.0\n---` at the top.
|
|
277
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]`.
|
|
278
211
|
5. **Run tests** — Execute the tests defined for this phase (and any existing tests to catch regressions). Fix any failures before proceeding.
|
|
279
212
|
6. **Surface new gaps** — If implementation reveals new ambiguities, pause and consult the user rather than making silent assumptions
|
|
@@ -287,14 +220,14 @@ Present a brief scaffold summary to the user before proceeding to feature implem
|
|
|
287
220
|
|
|
288
221
|
**Wait for user confirmation before starting the next phase.** This gives the user an opportunity to review the work, request adjustments, or reprioritize remaining phases.
|
|
289
222
|
|
|
290
|
-
### Phase
|
|
223
|
+
### Phase 4: Verification — Confirm Completeness
|
|
291
224
|
|
|
292
225
|
After implementation:
|
|
293
226
|
|
|
294
227
|
1. **Walk through each functional requirement** from the feature PRD (if available) or the approved implementation plan and confirm it's satisfied
|
|
295
228
|
2. **Review against acceptance criteria** — For each capability in the feature PRDs, check that every acceptance criterion listed under it is satisfied. These sub-listed conditions are the definition of "done" for each capability. If any criterion is not met, the capability should not be marked `[x]`.
|
|
296
229
|
3. **Check the Definition of Done** from `gspec/practices.md`
|
|
297
|
-
4. *If
|
|
230
|
+
4. *If `gspec/research.md` exists:* **Verify competitive positioning** — Does the implemented feature meet table-stakes expectations? Does it deliver on the product's stated differentiation?
|
|
298
231
|
5. **Note any deferred items** — Requirements that were intentionally postponed or descoped during implementation
|
|
299
232
|
6. **Verify checkbox accuracy** — Confirm that every capability marked `[x]` in the feature PRDs is genuinely implemented and working. Confirm that capabilities left as `[ ]` were intentionally deferred. Present a final status summary:
|
|
300
233
|
|
|
@@ -313,8 +246,8 @@ When you encounter something the specs don't cover, follow these principles:
|
|
|
313
246
|
- Propose sensible defaults based on the product profile and target users
|
|
314
247
|
- Infer behavior from similar patterns already specified in the PRDs (if available) or from the product profile and user's prompt
|
|
315
248
|
- Suggest industry-standard approaches for common problems (auth flows, error handling, pagination, etc.)
|
|
316
|
-
- *If
|
|
317
|
-
- *If
|
|
249
|
+
- *If `gspec/research.md` exists:* Reference competitor implementations to inform proposals — "Competitor X handles this with [approach], which works well because [reason]"
|
|
250
|
+
- *If `gspec/research.md` exists:* Use findings to validate table-stakes expectations — if every competitor offers a capability, users likely expect it
|
|
318
251
|
- Consider the user experience implications of each decision
|
|
319
252
|
- Present tradeoffs clearly (simplicity vs. completeness, speed vs. correctness)
|
|
320
253
|
- **Propose features** that the product profile implies but no feature PRD covers — the user's feature list (if any) is a starting point, not a ceiling
|
|
@@ -328,8 +261,8 @@ When you encounter something the specs don't cover, follow these principles:
|
|
|
328
261
|
- Assume technical constraints that aren't documented
|
|
329
262
|
- Skip gap analysis because the implementation seems obvious
|
|
330
263
|
- Propose features that contradict the product profile's "What It Isn't" section or stated non-goals
|
|
331
|
-
- *If
|
|
332
|
-
- *If
|
|
264
|
+
- *If `gspec/research.md` exists:* Blindly copy competitor features — research informs proposals, but the product's own identity, differentiation strategy, and stated non-goals take precedence
|
|
265
|
+
- *If `gspec/research.md` exists:* Treat competitor parity as an automatic requirement — some competitor features may be intentionally excluded per the product's positioning
|
|
333
266
|
|
|
334
267
|
---
|
|
335
268
|
|
|
@@ -340,7 +273,7 @@ When you encounter something the specs don't cover, follow these principles:
|
|
|
340
273
|
If `gspec/features/` and `gspec/epics/` are empty or absent, use the **user's prompt** as the primary guide for what to build:
|
|
341
274
|
|
|
342
275
|
1. **If the user provided a prompt** to the implement command, treat it as your primary directive. The prompt may describe a feature, a scope of work, a user story, or a high-level goal. Combine it with the remaining gspec files (profile, stack, style, practices) to plan and build.
|
|
343
|
-
2. **If the user provided no prompt either**, use the product profile to propose a logical starting point — focus on the product's core value proposition and primary use cases (and table-stakes features from
|
|
276
|
+
2. **If the user provided no prompt either**, use the product profile to propose a logical starting point — focus on the product's core value proposition and primary use cases (and table-stakes features from `gspec/research.md`, if available). Suggest a starting point and confirm with the user.
|
|
344
277
|
|
|
345
278
|
### When features and/or epics exist:
|
|
346
279
|
|
|
@@ -354,14 +287,14 @@ If the user doesn't specify which feature to implement:
|
|
|
354
287
|
2. **Focus on features with unchecked capabilities** — Features with all capabilities checked are complete and can be skipped
|
|
355
288
|
3. Among features with pending work, prioritize unchecked P0 capabilities over P1, P1 over P2
|
|
356
289
|
4. Respect dependency ordering — build foundations before dependent features
|
|
357
|
-
5. *If
|
|
290
|
+
5. *If `gspec/research.md` exists:* Review findings for table-stakes gaps — missing table-stakes features may need to be addressed early to meet baseline user expectations
|
|
358
291
|
6. Review the product profile for business needs that aren't covered by any existing feature PRD — propose additional features where the gap is significant
|
|
359
292
|
7. Suggest a starting point and confirm with the user
|
|
360
293
|
|
|
361
294
|
If the user specifies a feature, focus on that feature's **unchecked capabilities** but:
|
|
362
295
|
- Note any unmet dependencies
|
|
363
296
|
- Flag any closely related capabilities that the product profile suggests but no feature PRD covers — these may be worth implementing alongside or immediately after the specified feature
|
|
364
|
-
- *If
|
|
297
|
+
- *If `gspec/research.md` exists:* Note if competitors handle related workflows differently — the user may want to consider alternative approaches informed by market conventions
|
|
365
298
|
- If the user explicitly asks to re-implement a checked capability, honor that request
|
|
366
299
|
|
|
367
300
|
### When the user provides a prompt alongside existing features/epics:
|
|
@@ -372,11 +305,11 @@ The user's prompt takes priority for scoping. Use it to determine focus, and ref
|
|
|
372
305
|
|
|
373
306
|
## Output Rules
|
|
374
307
|
|
|
375
|
-
- **Use plan mode twice** — once in Phase
|
|
376
|
-
- **Pause between implementation phases** — After completing each phase in Phase
|
|
308
|
+
- **Use plan mode twice** — once in Phase 2 for gap analysis and feature proposals, and again in Phase 2c for the concrete implementation plan. Both require user approval before proceeding.
|
|
309
|
+
- **Pause between implementation phases** — After completing each phase in Phase 3, run tests and wait for user confirmation before starting the next phase
|
|
377
310
|
- Reference specific gspec documents and section numbers when discussing requirements
|
|
378
311
|
- When proposing gap-fills, clearly distinguish between "the spec says X" and "I'm proposing Y"
|
|
379
|
-
- *If
|
|
312
|
+
- *If `gspec/research.md` exists:* When referencing findings, clearly attribute them — "Competitor X does Y" not "the industry does Y"
|
|
380
313
|
- Create files following the project structure defined in `gspec/architecture.md` (or `gspec/stack.md` and `gspec/practices.md` if no architecture document exists)
|
|
381
314
|
- Write code that is production-quality, not prototypical — unless the user requests otherwise
|
|
382
315
|
- Include tests as defined by `gspec/practices.md` testing standards
|
|
@@ -388,5 +321,5 @@ The user's prompt takes priority for scoping. Use it to determine focus, and ref
|
|
|
388
321
|
- Collaborative and consultative — you're a partner, not an order-taker
|
|
389
322
|
- Technically precise when discussing implementation
|
|
390
323
|
- Product-aware when discussing gaps — frame proposals in terms of user value
|
|
391
|
-
- **Market-informed when proposing features** (if
|
|
324
|
+
- **Market-informed when proposing features** (if `gspec/research.md` exists) — ground recommendations in competitive reality, not just abstract best practices
|
|
392
325
|
- Transparent about assumptions and tradeoffs
|
|
@@ -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.3.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.3.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.3.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.3.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.3.0
|
|
82
82
|
> - 2 files were already current (skipped)
|
|
83
83
|
> - Content preserved in all files
|
|
84
84
|
> - Sections reorganized: [list any structural changes]
|
|
@@ -25,7 +25,7 @@ You should:
|
|
|
25
25
|
- Begin the file with YAML frontmatter containing the gspec version:
|
|
26
26
|
```
|
|
27
27
|
---
|
|
28
|
-
gspec-version: 1.
|
|
28
|
+
gspec-version: 1.3.0
|
|
29
29
|
---
|
|
30
30
|
```
|
|
31
31
|
The frontmatter must be the very first content in the file, before the main heading.
|
|
@@ -38,8 +38,8 @@ You should:
|
|
|
38
38
|
- Include code examples where they add clarity
|
|
39
39
|
- Focus on practices that matter for this specific project
|
|
40
40
|
- Avoid generic advice that doesn't apply
|
|
41
|
-
- **Do NOT include technology stack information** — this is documented separately
|
|
42
|
-
- **Do NOT prescribe specific testing frameworks or
|
|
41
|
+
- **Do NOT include technology stack information** — this is documented separately
|
|
42
|
+
- **Do NOT prescribe specific testing frameworks, tools, or libraries** — focus on testing principles, patterns, and practices, not which tools to use
|
|
43
43
|
- **Mark sections as "Not Applicable"** when they don't apply to this project
|
|
44
44
|
|
|
45
45
|
---
|
|
@@ -47,7 +47,6 @@ You should:
|
|
|
47
47
|
## Required Sections
|
|
48
48
|
|
|
49
49
|
### 1. Overview
|
|
50
|
-
- Project/feature name
|
|
51
50
|
- Team context (size, experience level)
|
|
52
51
|
- Development timeline constraints
|
|
53
52
|
|
|
@@ -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.3.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.3.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
|
|