gspec 1.1.2 → 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 +62 -13
- package/bin/gspec.js +11 -3
- 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/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 +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 +2 -1
package/README.md
CHANGED
|
@@ -25,14 +25,51 @@ These documents become the shared context for all subsequent AI interactions. Wh
|
|
|
25
25
|
|
|
26
26
|
The only commands you *need* are the four fundamentals and `implement`. Everything else exists to help when your project calls for it.
|
|
27
27
|
|
|
28
|
-
The fundamentals give your AI tool enough context to build well — it knows what the product is, how it should look, what technologies to use, and what engineering standards to follow. From there, `implement` can take a plain-language description and start building. The remaining commands — `feature`, `epic`, `architect`, `dor`, and `record` — add structure and rigor when the scope or complexity warrants it.
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Define
|
|
33
|
-
|
|
28
|
+
The fundamentals give your AI tool enough context to build well — it knows what the product is, how it should look, what technologies to use, and what engineering standards to follow. From there, `implement` can take a plain-language description and start building. The remaining commands — `research`, `feature`, `epic`, `architect`, `dor`, and `record` — add structure and rigor when the scope or complexity warrants it.
|
|
29
|
+
|
|
30
|
+
```mermaid
|
|
31
|
+
flowchart LR
|
|
32
|
+
Define["1. Define
|
|
33
|
+
profile · style
|
|
34
|
+
stack · practices"]
|
|
35
|
+
|
|
36
|
+
Research["2. Research
|
|
37
|
+
competitive analysis"]
|
|
38
|
+
|
|
39
|
+
Specify["3. Specify
|
|
40
|
+
feature · epic"]
|
|
41
|
+
|
|
42
|
+
Architect["4. Architect
|
|
43
|
+
technical blueprint"]
|
|
44
|
+
|
|
45
|
+
Build["5. Build
|
|
46
|
+
implement"]
|
|
47
|
+
|
|
48
|
+
Iterate["6. Iterate
|
|
49
|
+
dor · record"]
|
|
50
|
+
|
|
51
|
+
Define --> Research
|
|
52
|
+
Define --> Specify
|
|
53
|
+
Define --> Build
|
|
54
|
+
Research --> Specify
|
|
55
|
+
Research --> Build
|
|
56
|
+
Specify --> Architect
|
|
57
|
+
Specify --> Build
|
|
58
|
+
Architect --> Build
|
|
59
|
+
Build --> Iterate
|
|
60
|
+
Iterate --> Build
|
|
61
|
+
|
|
62
|
+
style Define fill:#4a9eff,color:#fff,stroke:none
|
|
63
|
+
style Research fill:#a855f7,color:#fff,stroke:none
|
|
64
|
+
style Specify fill:#f59e0b,color:#fff,stroke:none
|
|
65
|
+
style Architect fill:#f59e0b,color:#fff,stroke:none
|
|
66
|
+
style Build fill:#22c55e,color:#fff,stroke:none
|
|
67
|
+
style Iterate fill:#64748b,color:#fff,stroke:none
|
|
34
68
|
```
|
|
35
69
|
|
|
70
|
+
> **Blue** = required foundation. **Purple/Yellow** = optional depth. **Green** = implementation. **Gray** = maintenance.
|
|
71
|
+
> Every path starts with Define and passes through Build. The steps in between depend on your project's complexity.
|
|
72
|
+
|
|
36
73
|
**1. Define the Fundamentals** — Establish the foundation that drives every decision.
|
|
37
74
|
|
|
38
75
|
| Command | Role | What it produces |
|
|
@@ -42,7 +79,15 @@ Define → Specify → Architect → Build → Iterate
|
|
|
42
79
|
| `gspec.stack` | Software Architect | Technology stack, frameworks, infrastructure, architecture |
|
|
43
80
|
| `gspec.practices` | Engineering Lead | Development standards, code quality, testing, workflows |
|
|
44
81
|
|
|
45
|
-
**2.
|
|
82
|
+
**2. Research the Market** *(optional)* — Understand the competitive landscape before building.
|
|
83
|
+
|
|
84
|
+
| Command | Role | What it produces |
|
|
85
|
+
|---|---|---|
|
|
86
|
+
| `gspec.research` | Product Strategist | Competitive analysis with feature matrix, gap identification, and strategic recommendations |
|
|
87
|
+
|
|
88
|
+
Use `research` when you want to understand what competitors offer, identify table-stakes features you might be missing, and find differentiation opportunities. It reads competitors from your product profile, produces a persistent `gspec/research.md` file, and can optionally generate feature PRDs from the findings. The `implement` command automatically uses this file when it exists.
|
|
89
|
+
|
|
90
|
+
**3. Specify What to Build** *(optional)* — Define features and requirements.
|
|
46
91
|
|
|
47
92
|
| Command | Role | What it produces |
|
|
48
93
|
|---|---|---|
|
|
@@ -51,7 +96,7 @@ Define → Specify → Architect → Build → Iterate
|
|
|
51
96
|
|
|
52
97
|
Use `feature` when you want a detailed PRD with prioritized capabilities and acceptance criteria before building. Use `epic` when a body of work is large enough to need decomposition into multiple features with dependency mapping. For smaller tasks or rapid prototyping, you can skip straight to `implement` with a plain-language description.
|
|
53
98
|
|
|
54
|
-
**
|
|
99
|
+
**4. Architect** *(optional)* — Translate specs into a concrete technical blueprint.
|
|
55
100
|
|
|
56
101
|
| Command | Role | What it produces |
|
|
57
102
|
|---|---|---|
|
|
@@ -59,13 +104,13 @@ Use `feature` when you want a detailed PRD with prioritized capabilities and acc
|
|
|
59
104
|
|
|
60
105
|
Use `architect` when your feature involves significant technical complexity — new data models, service boundaries, auth flows, or integration points that benefit from upfront design. For straightforward features, `implement` can make sound architectural decisions on its own using your `stack` and `practices` specs.
|
|
61
106
|
|
|
62
|
-
**
|
|
107
|
+
**5. Build** — Implement with full context.
|
|
63
108
|
|
|
64
109
|
| Command | Role | What it does |
|
|
65
110
|
|---|---|---|
|
|
66
|
-
| `gspec.implement` | Senior Engineer | Reads all specs, identifies gaps,
|
|
111
|
+
| `gspec.implement` | Senior Engineer | Reads all specs (including research), identifies gaps, plans and builds |
|
|
67
112
|
|
|
68
|
-
**
|
|
113
|
+
**6. Iterate** *(optional)* — Keep specs and code in sync as the project evolves.
|
|
69
114
|
|
|
70
115
|
| Command | Role | What it does |
|
|
71
116
|
|---|---|---|
|
|
@@ -97,6 +142,7 @@ The CLI will ask which platform you're installing for:
|
|
|
97
142
|
| Claude Code | `.claude/skills/` |
|
|
98
143
|
| Cursor | `.cursor/commands/` |
|
|
99
144
|
| Antigravity | `.agent/skills/` |
|
|
145
|
+
| Codex | `.agents/skills/` |
|
|
100
146
|
|
|
101
147
|
You can skip the prompt by passing a target directly:
|
|
102
148
|
|
|
@@ -104,6 +150,7 @@ You can skip the prompt by passing a target directly:
|
|
|
104
150
|
npx gspec --target claude
|
|
105
151
|
npx gspec --target cursor
|
|
106
152
|
npx gspec --target antigravity
|
|
153
|
+
npx gspec --target codex
|
|
107
154
|
```
|
|
108
155
|
|
|
109
156
|
That's it. The commands are immediately available in your AI tool.
|
|
@@ -120,6 +167,7 @@ project-root/
|
|
|
120
167
|
├── stack.md # Technology stack and architecture
|
|
121
168
|
├── practices.md # Development standards
|
|
122
169
|
├── architecture.md # Technical architecture blueprint
|
|
170
|
+
├── research.md # Competitive analysis and feature gaps
|
|
123
171
|
├── epics/
|
|
124
172
|
│ └── onboarding-flow.md
|
|
125
173
|
└── features/
|
|
@@ -140,9 +188,9 @@ These are standard Markdown files. They live in your repo, are version-controlle
|
|
|
140
188
|
|
|
141
189
|
**Incremental implementation.** Feature PRDs use checkboxes to track which capabilities have been built. The `implement` command reads these to know what's done and what's remaining, so it can be run multiple times as your project grows.
|
|
142
190
|
|
|
143
|
-
**Competitive research.** The `
|
|
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.
|
|
144
192
|
|
|
145
|
-
**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.
|
|
146
194
|
|
|
147
195
|
## Supported Platforms
|
|
148
196
|
|
|
@@ -151,6 +199,7 @@ These are standard Markdown files. They live in your repo, are version-controlle
|
|
|
151
199
|
| [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | Skills format | Supported |
|
|
152
200
|
| [Cursor](https://www.cursor.com/) | Commands format | Supported |
|
|
153
201
|
| [Antigravity](https://www.antigravity.dev/) | Skills format | Supported |
|
|
202
|
+
| [Codex](https://developers.openai.com/codex/cli/) | Skills format | Supported |
|
|
154
203
|
|
|
155
204
|
## Project Status
|
|
156
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
|
|
package/commands/gspec.epic.md
CHANGED
|
@@ -31,7 +31,7 @@ Take the provided epic description (a large body of work) and break it down into
|
|
|
31
31
|
|
|
32
32
|
## Guidelines
|
|
33
33
|
|
|
34
|
-
- **Read existing
|
|
34
|
+
- **Read existing feature PRDs and epics** in `gspec/features/` and `gspec/epics/` to understand already-specified work and avoid overlap
|
|
35
35
|
- Identify distinct features that make up the epic
|
|
36
36
|
- **Ask all clarifying questions in the chat before writing specs** — never embed unresolved questions in the generated documents
|
|
37
37
|
- When asking questions, offer 2-3 specific suggestions to guide the discussion
|
|
@@ -43,21 +43,27 @@ Take the provided epic description (a large body of work) and break it down into
|
|
|
43
43
|
|
|
44
44
|
---
|
|
45
45
|
|
|
46
|
-
##
|
|
46
|
+
## Portability
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
Epic summaries and the feature PRDs they produce 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.
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
**To maintain portability, DO NOT read or incorporate context from:**
|
|
51
|
+
- `gspec/profile.md` — Do not reference project-specific personas, competitive landscape, or positioning
|
|
52
|
+
- `gspec/style.md` — Do not reference a specific design system or component library
|
|
53
|
+
- `gspec/stack.md` — Do not reference specific technologies (already covered by Technology Agnosticism)
|
|
54
|
+
- `gspec/practices.md` — Do not reference project-specific development standards
|
|
54
55
|
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
- Ensure
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
**DO read existing feature PRDs and epics** in `gspec/features/` and `gspec/epics/` to:
|
|
57
|
+
- Avoid duplicating or contradicting already-specified features
|
|
58
|
+
- Identify cross-feature and cross-epic dependencies
|
|
59
|
+
- Ensure consistent scope boundaries and terminology
|
|
60
|
+
|
|
61
|
+
**Write in generic, portable terms:**
|
|
62
|
+
- Use relative role descriptions ("primary users", "administrators", "content creators") not project-specific persona names
|
|
63
|
+
- Justify priorities based on intrinsic user value and technical dependencies, not competitive landscape
|
|
64
|
+
- Describe desired UX behavior generically ("clear error feedback", "responsive layout") without referencing a specific design system
|
|
65
|
+
- Define success metrics in terms of each feature's own outcomes, not project-level KPIs
|
|
66
|
+
- Sequence features based on logical dependencies, not project-specific stack constraints
|
|
61
67
|
|
|
62
68
|
## Output Rules
|
|
63
69
|
|
|
@@ -113,7 +119,7 @@ If these files don't exist, proceed without them — they are optional context,
|
|
|
113
119
|
- ❌ S3, GCS, Azure Blob Storage
|
|
114
120
|
- ❌ Kafka, RabbitMQ, SQS
|
|
115
121
|
|
|
116
|
-
This separation allows the same epic and feature specs to be
|
|
122
|
+
This separation — combined with the portability principles above — allows the same epic and feature specs to be reused across projects with different technology stacks, design systems, and product contexts.
|
|
117
123
|
|
|
118
124
|
## Epic Summary Document Structure
|
|
119
125
|
|
|
@@ -161,7 +167,7 @@ For each feature, create a separate file in `gspec/features/[feature-name].md` w
|
|
|
161
167
|
- **Parent Epic** (link to epic summary)
|
|
162
168
|
|
|
163
169
|
### 2. Users & Use Cases
|
|
164
|
-
- Primary users
|
|
170
|
+
- Primary users (use generic role descriptions like "end users", "administrators", "content managers" — not project-specific persona names)
|
|
165
171
|
- Key use cases (3-4 scenarios showing how users benefit)
|
|
166
172
|
|
|
167
173
|
### 3. Scope
|
|
@@ -195,6 +201,10 @@ For each feature, create a separate file in `gspec/features/[feature-name].md` w
|
|
|
195
201
|
### 7. Success Metrics
|
|
196
202
|
- 2-4 measurable outcomes that define whether this feature is working
|
|
197
203
|
|
|
204
|
+
### 8. Implementation Context
|
|
205
|
+
- Include the following standard note verbatim:
|
|
206
|
+
> 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.
|
|
207
|
+
|
|
198
208
|
## Workflow
|
|
199
209
|
|
|
200
210
|
1. **Analyze the epic description** and identify logical feature boundaries
|
|
@@ -23,7 +23,7 @@ Your task is to take the provided feature description (which may be vague or det
|
|
|
23
23
|
- ✅ Build order recommendations based on technical dependencies
|
|
24
24
|
|
|
25
25
|
You should:
|
|
26
|
-
- **Read existing
|
|
26
|
+
- **Read existing feature PRDs** in `gspec/features/` to understand already-specified features and avoid overlap
|
|
27
27
|
- **Ask all clarifying questions in the chat before writing the spec** — never embed unresolved questions in the generated document
|
|
28
28
|
- When asking questions, offer 2-3 specific suggestions to guide the discussion
|
|
29
29
|
- Focus on user value, scope, and outcomes
|
|
@@ -32,20 +32,26 @@ You should:
|
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
35
|
-
##
|
|
35
|
+
## Portability
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
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.
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
**To maintain portability, DO NOT read or incorporate context from:**
|
|
40
|
+
- `gspec/profile.md` — Do not reference project-specific personas, competitive landscape, or positioning
|
|
41
|
+
- `gspec/style.md` — Do not reference a specific design system or component library
|
|
42
|
+
- `gspec/stack.md` — Do not reference specific technologies (already covered by Technology Agnosticism)
|
|
43
|
+
- `gspec/practices.md` — Do not reference project-specific development standards
|
|
43
44
|
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
- Ensure
|
|
48
|
-
|
|
45
|
+
**DO read existing feature PRDs** in `gspec/features/` to:
|
|
46
|
+
- Avoid duplicating or contradicting already-specified features
|
|
47
|
+
- Identify cross-feature dependencies
|
|
48
|
+
- Ensure consistent scope boundaries
|
|
49
|
+
|
|
50
|
+
**Write in generic, portable terms:**
|
|
51
|
+
- Use relative role descriptions ("primary users", "administrators", "content creators") not project-specific persona names
|
|
52
|
+
- Justify priorities based on the feature's intrinsic user value, not competitive landscape
|
|
53
|
+
- Describe desired UX behavior generically ("clear error feedback", "responsive layout") without referencing a specific design system
|
|
54
|
+
- Define success metrics in terms of the feature's own outcomes, not project-level KPIs
|
|
49
55
|
|
|
50
56
|
---
|
|
51
57
|
|
|
@@ -97,7 +103,7 @@ If these files don't exist, proceed without them — they are optional context,
|
|
|
97
103
|
- ❌ S3, GCS, Azure Blob Storage
|
|
98
104
|
- ❌ Kafka, RabbitMQ, SQS
|
|
99
105
|
|
|
100
|
-
This separation allows the same feature spec to be
|
|
106
|
+
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.
|
|
101
107
|
|
|
102
108
|
---
|
|
103
109
|
|
|
@@ -111,7 +117,7 @@ This separation allows the same feature spec to be implemented using different t
|
|
|
111
117
|
- Problem being solved and why it matters now
|
|
112
118
|
|
|
113
119
|
### 2. Users & Use Cases
|
|
114
|
-
- Primary users
|
|
120
|
+
- Primary users (use generic role descriptions like "end users", "administrators", "content managers" — not project-specific persona names)
|
|
115
121
|
- Key use cases (3-4 scenarios showing how users benefit)
|
|
116
122
|
|
|
117
123
|
### 3. Scope
|
|
@@ -145,6 +151,10 @@ This separation allows the same feature spec to be implemented using different t
|
|
|
145
151
|
### 7. Success Metrics
|
|
146
152
|
- 2-4 measurable outcomes that define whether this feature is working
|
|
147
153
|
|
|
154
|
+
### 8. Implementation Context
|
|
155
|
+
- Include the following standard note verbatim:
|
|
156
|
+
> 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.
|
|
157
|
+
|
|
148
158
|
---
|
|
149
159
|
|
|
150
160
|
## Tone & Style
|