gspec 1.13.1 → 1.14.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/commands/gspec.architect.md +5 -3
- package/commands/gspec.feature.md +1 -1
- package/commands/gspec.practices.md +2 -2
- package/commands/gspec.research.md +2 -1
- package/commands/gspec.stack.md +3 -7
- package/dist/antigravity/gspec-architect/SKILL.md +5 -3
- package/dist/antigravity/gspec-feature/SKILL.md +1 -1
- package/dist/antigravity/gspec-practices/SKILL.md +2 -2
- package/dist/antigravity/gspec-research/SKILL.md +2 -1
- package/dist/antigravity/gspec-stack/SKILL.md +3 -7
- package/dist/claude/gspec-architect/SKILL.md +5 -3
- package/dist/claude/gspec-feature/SKILL.md +1 -1
- package/dist/claude/gspec-practices/SKILL.md +2 -2
- package/dist/claude/gspec-research/SKILL.md +2 -1
- package/dist/claude/gspec-stack/SKILL.md +3 -7
- package/dist/codex/gspec-architect/SKILL.md +5 -3
- package/dist/codex/gspec-feature/SKILL.md +1 -1
- package/dist/codex/gspec-practices/SKILL.md +2 -2
- package/dist/codex/gspec-research/SKILL.md +2 -1
- package/dist/codex/gspec-stack/SKILL.md +3 -7
- package/dist/cursor/gspec-architect.mdc +5 -3
- package/dist/cursor/gspec-feature.mdc +1 -1
- package/dist/cursor/gspec-practices.mdc +2 -2
- package/dist/cursor/gspec-research.mdc +2 -1
- package/dist/cursor/gspec-stack.mdc +3 -7
- package/dist/opencode/gspec-architect/SKILL.md +5 -3
- package/dist/opencode/gspec-feature/SKILL.md +1 -1
- package/dist/opencode/gspec-practices/SKILL.md +2 -2
- package/dist/opencode/gspec-research/SKILL.md +2 -1
- package/dist/opencode/gspec-stack/SKILL.md +3 -7
- package/package.json +1 -1
- package/templates/spec-sync.md +8 -6
|
@@ -29,7 +29,7 @@ Before generating the architecture document, read **all** existing gspec documen
|
|
|
29
29
|
4. **`gspec/practices.md`** — Development standards. Use this to align file organization, testing patterns, and code structure with team conventions.
|
|
30
30
|
5. **`gspec/features/*.md`** — Individual feature requirements and dependencies. Use these to derive data entities, API endpoints, component structure, and integration points.
|
|
31
31
|
|
|
32
|
-
All of these provide essential context. If any are missing, note the gap and make reasonable assumptions
|
|
32
|
+
All of these provide essential context. If any are missing, note the gap and ask the user to clarify before proceeding. If the user explicitly defers, make reasonable assumptions and record them in the Assumptions sub-section of the Technical Gap Analysis.
|
|
33
33
|
|
|
34
34
|
---
|
|
35
35
|
|
|
@@ -56,6 +56,7 @@ All of these provide essential context. If any are missing, note the gap and mak
|
|
|
56
56
|
- **Mark sections as "Not Applicable"** when they don't apply (e.g., no API for a static site, no frontend for a CLI tool)
|
|
57
57
|
- Include code blocks for directory trees, schema definitions, and configuration snippets
|
|
58
58
|
- **Do NOT duplicate product-level information** from feature PRDs — reference capabilities by name, don't restate them
|
|
59
|
+
- **The architecture document must be profile-agnostic** — it defines the technical blueprint for a system, not for a specific business or product identity. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the application", "the system", or "the platform" instead. You may read `gspec/profile.md` to understand scope and boundaries, but do not carry business identity into the architecture document. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
59
60
|
|
|
60
61
|
---
|
|
61
62
|
|
|
@@ -338,8 +339,9 @@ Examples of gaps to look for:
|
|
|
338
339
|
- Technical decisions that were inferred rather than explicitly specified in existing specs
|
|
339
340
|
|
|
340
341
|
### 10. Open Decisions
|
|
341
|
-
-
|
|
342
|
-
-
|
|
342
|
+
- **All technical questions and decisions must be resolved by asking the user before the document is saved.** Do not save the architecture with unresolved questions.
|
|
343
|
+
- If the user explicitly defers a decision, record it here with context explaining what was deferred and why. If there are no deferred decisions, omit this section entirely.
|
|
344
|
+
- Areas where the architecture may need to evolve as features are implemented may be noted, but these must be acknowledged evolution points — not unresolved questions.
|
|
343
345
|
|
|
344
346
|
---
|
|
345
347
|
|
|
@@ -163,8 +163,8 @@ This separation — combined with the portability principles above — allows th
|
|
|
163
163
|
|
|
164
164
|
### 6. Assumptions & Risks
|
|
165
165
|
- Assumptions (what we're taking as true)
|
|
166
|
-
- Open questions — **only** unknowns that genuinely cannot be answered until implementation or real-world usage begins (e.g., performance thresholds pending benchmarking, exact rate limits pending load testing). Questions about scope, users, priorities, or feature design must be asked and resolved in the chat before the spec is written. If there are no open questions, omit this sub-section.
|
|
167
166
|
- Key risks and mitigations (brief bullet points — focus on risks that could affect implementation scope or approach)
|
|
167
|
+
- **No open questions** — All questions must be resolved by asking the user in the chat before the spec is saved. If the user explicitly defers a question, record it as a "Deferred Decision" with context explaining what was deferred and why. If there are no deferred decisions, omit the sub-section entirely. Never embed unresolved questions in the document by default.
|
|
168
168
|
|
|
169
169
|
### 7. Success Metrics
|
|
170
170
|
- 2-4 measurable outcomes that define whether this feature is working
|
|
@@ -38,14 +38,14 @@ You should:
|
|
|
38
38
|
- **DO define CI/CD pipeline structure** — the practices document defines pipeline stages, gates, and ordering (lint → typecheck → test → build → deploy). The stack document defines which CI/CD platform technology is used (GitHub Actions, GitLab CI, etc.).
|
|
39
39
|
- **Mark sections as "Not Applicable"** when they don't apply to this project
|
|
40
40
|
- **Precedence rule**: Where this document conflicts with technology-specific practices in `gspec/stack.md`, the stack's technology-specific practices take precedence for framework-specific concerns (e.g., file naming conventions dictated by a framework). This document governs general engineering principles.
|
|
41
|
+
- **The practices document must be profile-agnostic** — it defines engineering standards for a development team, not for a specific business or product. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the project" or "the team" instead. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
41
42
|
|
|
42
43
|
---
|
|
43
44
|
|
|
44
45
|
## Required Sections
|
|
45
46
|
|
|
46
47
|
### 1. Overview
|
|
47
|
-
-
|
|
48
|
-
- Development timeline constraints
|
|
48
|
+
- Summary of the practices
|
|
49
49
|
|
|
50
50
|
### 2. Core Development Practices
|
|
51
51
|
|
|
@@ -154,7 +154,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
154
154
|
- Scope (in-scope goals, out-of-scope items, deferred ideas)
|
|
155
155
|
- Capabilities (with P0/P1/P2 priority levels, using **unchecked checkboxes** `- [ ]` for each capability, each with 2-4 **acceptance criteria** as a sub-list)
|
|
156
156
|
- Dependencies (on other features or external services)
|
|
157
|
-
- Assumptions & Risks (assumptions,
|
|
157
|
+
- Assumptions & Risks (assumptions, key risks and mitigations — all questions must be resolved in the chat before saving; only record explicitly deferred decisions)
|
|
158
158
|
- Success Metrics
|
|
159
159
|
- Implementation Context (standard portability note)
|
|
160
160
|
- Begin the file with YAML frontmatter: `---\nspec-version: <<<SPEC_VERSION>>>\n---`
|
|
@@ -186,6 +186,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
186
186
|
- Clearly distinguish between facts (what competitors do) and recommendations (what the product should do)
|
|
187
187
|
- Include the competitive feature matrix as a Markdown table
|
|
188
188
|
- Categorize all findings using the Table-Stakes / Differentiating / White-Space framework
|
|
189
|
+
- **The research document must be profile-agnostic in its headings and title** — use a generic document title like "# Competitive Research", not "# Competitive Research — ACME Solutions". Do NOT include the project name or company name in section headings. You may reference the product's positioning and competitive context from `gspec/profile.md` within the body where needed for analysis, but the document structure itself should be reusable. The "Our Product" column in matrices should use "Our Product" — not the product's name.
|
|
189
190
|
|
|
190
191
|
### Output File Structure
|
|
191
192
|
|
package/commands/gspec.stack.md
CHANGED
|
@@ -36,6 +36,7 @@ You should:
|
|
|
36
36
|
- **Mark sections as "Not Applicable"** when they don't apply to this project (e.g., no backend, no message queue, etc.)
|
|
37
37
|
- **Do NOT include general development practices** (code review, git workflow, refactoring guidelines) — these are documented separately
|
|
38
38
|
- **DO include technology-specific practices in the designated section** that are inherent to the chosen stack (e.g., framework-specific conventions, ORM usage patterns, CSS framework token mapping, recommended library configurations)
|
|
39
|
+
- **The stack document must be profile-agnostic** — it defines technology choices for a given type of application, not for a specific business or product. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the application" or "the system" instead. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
39
40
|
|
|
40
41
|
---
|
|
41
42
|
|
|
@@ -46,13 +47,8 @@ You should:
|
|
|
46
47
|
- Deployment target (cloud, on-premise, hybrid)
|
|
47
48
|
- Scale and performance requirements
|
|
48
49
|
|
|
49
|
-
### 2.
|
|
50
|
-
**
|
|
51
|
-
- Missing requirements that impact stack decisions
|
|
52
|
-
- Unclear constraints or preferences
|
|
53
|
-
- Team expertise or existing infrastructure questions
|
|
54
|
-
- Budget or licensing considerations
|
|
55
|
-
- **Mark as "None" if all information is clear**
|
|
50
|
+
### 2. Clarifications
|
|
51
|
+
**All questions that impact technology choices must be resolved by asking the user in the chat before the document is saved.** Do not save the stack spec with unresolved questions. If the user explicitly defers a decision, record it here as a "Deferred Decision" with context explaining what was deferred and why. If there are no deferred decisions, omit this section entirely.
|
|
56
52
|
|
|
57
53
|
### 3. Core Technology Stack
|
|
58
54
|
|
|
@@ -34,7 +34,7 @@ Before generating the architecture document, read **all** existing gspec documen
|
|
|
34
34
|
4. **`gspec/practices.md`** — Development standards. Use this to align file organization, testing patterns, and code structure with team conventions.
|
|
35
35
|
5. **`gspec/features/*.md`** — Individual feature requirements and dependencies. Use these to derive data entities, API endpoints, component structure, and integration points.
|
|
36
36
|
|
|
37
|
-
All of these provide essential context. If any are missing, note the gap and make reasonable assumptions
|
|
37
|
+
All of these provide essential context. If any are missing, note the gap and ask the user to clarify before proceeding. If the user explicitly defers, make reasonable assumptions and record them in the Assumptions sub-section of the Technical Gap Analysis.
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
@@ -61,6 +61,7 @@ All of these provide essential context. If any are missing, note the gap and mak
|
|
|
61
61
|
- **Mark sections as "Not Applicable"** when they don't apply (e.g., no API for a static site, no frontend for a CLI tool)
|
|
62
62
|
- Include code blocks for directory trees, schema definitions, and configuration snippets
|
|
63
63
|
- **Do NOT duplicate product-level information** from feature PRDs — reference capabilities by name, don't restate them
|
|
64
|
+
- **The architecture document must be profile-agnostic** — it defines the technical blueprint for a system, not for a specific business or product identity. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the application", "the system", or "the platform" instead. You may read `gspec/profile.md` to understand scope and boundaries, but do not carry business identity into the architecture document. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
64
65
|
|
|
65
66
|
---
|
|
66
67
|
|
|
@@ -343,8 +344,9 @@ Examples of gaps to look for:
|
|
|
343
344
|
- Technical decisions that were inferred rather than explicitly specified in existing specs
|
|
344
345
|
|
|
345
346
|
### 10. Open Decisions
|
|
346
|
-
-
|
|
347
|
-
-
|
|
347
|
+
- **All technical questions and decisions must be resolved by asking the user before the document is saved.** Do not save the architecture with unresolved questions.
|
|
348
|
+
- If the user explicitly defers a decision, record it here with context explaining what was deferred and why. If there are no deferred decisions, omit this section entirely.
|
|
349
|
+
- Areas where the architecture may need to evolve as features are implemented may be noted, but these must be acknowledged evolution points — not unresolved questions.
|
|
348
350
|
|
|
349
351
|
---
|
|
350
352
|
|
|
@@ -168,8 +168,8 @@ This separation — combined with the portability principles above — allows th
|
|
|
168
168
|
|
|
169
169
|
### 6. Assumptions & Risks
|
|
170
170
|
- Assumptions (what we're taking as true)
|
|
171
|
-
- Open questions — **only** unknowns that genuinely cannot be answered until implementation or real-world usage begins (e.g., performance thresholds pending benchmarking, exact rate limits pending load testing). Questions about scope, users, priorities, or feature design must be asked and resolved in the chat before the spec is written. If there are no open questions, omit this sub-section.
|
|
172
171
|
- Key risks and mitigations (brief bullet points — focus on risks that could affect implementation scope or approach)
|
|
172
|
+
- **No open questions** — All questions must be resolved by asking the user in the chat before the spec is saved. If the user explicitly defers a question, record it as a "Deferred Decision" with context explaining what was deferred and why. If there are no deferred decisions, omit the sub-section entirely. Never embed unresolved questions in the document by default.
|
|
173
173
|
|
|
174
174
|
### 7. Success Metrics
|
|
175
175
|
- 2-4 measurable outcomes that define whether this feature is working
|
|
@@ -43,14 +43,14 @@ You should:
|
|
|
43
43
|
- **DO define CI/CD pipeline structure** — the practices document defines pipeline stages, gates, and ordering (lint → typecheck → test → build → deploy). The stack document defines which CI/CD platform technology is used (GitHub Actions, GitLab CI, etc.).
|
|
44
44
|
- **Mark sections as "Not Applicable"** when they don't apply to this project
|
|
45
45
|
- **Precedence rule**: Where this document conflicts with technology-specific practices in `gspec/stack.md`, the stack's technology-specific practices take precedence for framework-specific concerns (e.g., file naming conventions dictated by a framework). This document governs general engineering principles.
|
|
46
|
+
- **The practices document must be profile-agnostic** — it defines engineering standards for a development team, not for a specific business or product. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the project" or "the team" instead. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
46
47
|
|
|
47
48
|
---
|
|
48
49
|
|
|
49
50
|
## Required Sections
|
|
50
51
|
|
|
51
52
|
### 1. Overview
|
|
52
|
-
-
|
|
53
|
-
- Development timeline constraints
|
|
53
|
+
- Summary of the practices
|
|
54
54
|
|
|
55
55
|
### 2. Core Development Practices
|
|
56
56
|
|
|
@@ -159,7 +159,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
159
159
|
- Scope (in-scope goals, out-of-scope items, deferred ideas)
|
|
160
160
|
- Capabilities (with P0/P1/P2 priority levels, using **unchecked checkboxes** `- [ ]` for each capability, each with 2-4 **acceptance criteria** as a sub-list)
|
|
161
161
|
- Dependencies (on other features or external services)
|
|
162
|
-
- Assumptions & Risks (assumptions,
|
|
162
|
+
- Assumptions & Risks (assumptions, key risks and mitigations — all questions must be resolved in the chat before saving; only record explicitly deferred decisions)
|
|
163
163
|
- Success Metrics
|
|
164
164
|
- Implementation Context (standard portability note)
|
|
165
165
|
- Begin the file with YAML frontmatter: `---\nspec-version: v1\n---`
|
|
@@ -191,6 +191,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
191
191
|
- Clearly distinguish between facts (what competitors do) and recommendations (what the product should do)
|
|
192
192
|
- Include the competitive feature matrix as a Markdown table
|
|
193
193
|
- Categorize all findings using the Table-Stakes / Differentiating / White-Space framework
|
|
194
|
+
- **The research document must be profile-agnostic in its headings and title** — use a generic document title like "# Competitive Research", not "# Competitive Research — ACME Solutions". Do NOT include the project name or company name in section headings. You may reference the product's positioning and competitive context from `gspec/profile.md` within the body where needed for analysis, but the document structure itself should be reusable. The "Our Product" column in matrices should use "Our Product" — not the product's name.
|
|
194
195
|
|
|
195
196
|
### Output File Structure
|
|
196
197
|
|
|
@@ -41,6 +41,7 @@ You should:
|
|
|
41
41
|
- **Mark sections as "Not Applicable"** when they don't apply to this project (e.g., no backend, no message queue, etc.)
|
|
42
42
|
- **Do NOT include general development practices** (code review, git workflow, refactoring guidelines) — these are documented separately
|
|
43
43
|
- **DO include technology-specific practices in the designated section** that are inherent to the chosen stack (e.g., framework-specific conventions, ORM usage patterns, CSS framework token mapping, recommended library configurations)
|
|
44
|
+
- **The stack document must be profile-agnostic** — it defines technology choices for a given type of application, not for a specific business or product. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the application" or "the system" instead. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
44
45
|
|
|
45
46
|
---
|
|
46
47
|
|
|
@@ -51,13 +52,8 @@ You should:
|
|
|
51
52
|
- Deployment target (cloud, on-premise, hybrid)
|
|
52
53
|
- Scale and performance requirements
|
|
53
54
|
|
|
54
|
-
### 2.
|
|
55
|
-
**
|
|
56
|
-
- Missing requirements that impact stack decisions
|
|
57
|
-
- Unclear constraints or preferences
|
|
58
|
-
- Team expertise or existing infrastructure questions
|
|
59
|
-
- Budget or licensing considerations
|
|
60
|
-
- **Mark as "None" if all information is clear**
|
|
55
|
+
### 2. Clarifications
|
|
56
|
+
**All questions that impact technology choices must be resolved by asking the user in the chat before the document is saved.** Do not save the stack spec with unresolved questions. If the user explicitly defers a decision, record it here as a "Deferred Decision" with context explaining what was deferred and why. If there are no deferred decisions, omit this section entirely.
|
|
61
57
|
|
|
62
58
|
### 3. Core Technology Stack
|
|
63
59
|
|
|
@@ -34,7 +34,7 @@ Before generating the architecture document, read **all** existing gspec documen
|
|
|
34
34
|
4. **`gspec/practices.md`** — Development standards. Use this to align file organization, testing patterns, and code structure with team conventions.
|
|
35
35
|
5. **`gspec/features/*.md`** — Individual feature requirements and dependencies. Use these to derive data entities, API endpoints, component structure, and integration points.
|
|
36
36
|
|
|
37
|
-
All of these provide essential context. If any are missing, note the gap and make reasonable assumptions
|
|
37
|
+
All of these provide essential context. If any are missing, note the gap and ask the user to clarify before proceeding. If the user explicitly defers, make reasonable assumptions and record them in the Assumptions sub-section of the Technical Gap Analysis.
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
@@ -61,6 +61,7 @@ All of these provide essential context. If any are missing, note the gap and mak
|
|
|
61
61
|
- **Mark sections as "Not Applicable"** when they don't apply (e.g., no API for a static site, no frontend for a CLI tool)
|
|
62
62
|
- Include code blocks for directory trees, schema definitions, and configuration snippets
|
|
63
63
|
- **Do NOT duplicate product-level information** from feature PRDs — reference capabilities by name, don't restate them
|
|
64
|
+
- **The architecture document must be profile-agnostic** — it defines the technical blueprint for a system, not for a specific business or product identity. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the application", "the system", or "the platform" instead. You may read `gspec/profile.md` to understand scope and boundaries, but do not carry business identity into the architecture document. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
64
65
|
|
|
65
66
|
---
|
|
66
67
|
|
|
@@ -343,8 +344,9 @@ Examples of gaps to look for:
|
|
|
343
344
|
- Technical decisions that were inferred rather than explicitly specified in existing specs
|
|
344
345
|
|
|
345
346
|
### 10. Open Decisions
|
|
346
|
-
-
|
|
347
|
-
-
|
|
347
|
+
- **All technical questions and decisions must be resolved by asking the user before the document is saved.** Do not save the architecture with unresolved questions.
|
|
348
|
+
- If the user explicitly defers a decision, record it here with context explaining what was deferred and why. If there are no deferred decisions, omit this section entirely.
|
|
349
|
+
- Areas where the architecture may need to evolve as features are implemented may be noted, but these must be acknowledged evolution points — not unresolved questions.
|
|
348
350
|
|
|
349
351
|
---
|
|
350
352
|
|
|
@@ -168,8 +168,8 @@ This separation — combined with the portability principles above — allows th
|
|
|
168
168
|
|
|
169
169
|
### 6. Assumptions & Risks
|
|
170
170
|
- Assumptions (what we're taking as true)
|
|
171
|
-
- Open questions — **only** unknowns that genuinely cannot be answered until implementation or real-world usage begins (e.g., performance thresholds pending benchmarking, exact rate limits pending load testing). Questions about scope, users, priorities, or feature design must be asked and resolved in the chat before the spec is written. If there are no open questions, omit this sub-section.
|
|
172
171
|
- Key risks and mitigations (brief bullet points — focus on risks that could affect implementation scope or approach)
|
|
172
|
+
- **No open questions** — All questions must be resolved by asking the user in the chat before the spec is saved. If the user explicitly defers a question, record it as a "Deferred Decision" with context explaining what was deferred and why. If there are no deferred decisions, omit the sub-section entirely. Never embed unresolved questions in the document by default.
|
|
173
173
|
|
|
174
174
|
### 7. Success Metrics
|
|
175
175
|
- 2-4 measurable outcomes that define whether this feature is working
|
|
@@ -43,14 +43,14 @@ You should:
|
|
|
43
43
|
- **DO define CI/CD pipeline structure** — the practices document defines pipeline stages, gates, and ordering (lint → typecheck → test → build → deploy). The stack document defines which CI/CD platform technology is used (GitHub Actions, GitLab CI, etc.).
|
|
44
44
|
- **Mark sections as "Not Applicable"** when they don't apply to this project
|
|
45
45
|
- **Precedence rule**: Where this document conflicts with technology-specific practices in `gspec/stack.md`, the stack's technology-specific practices take precedence for framework-specific concerns (e.g., file naming conventions dictated by a framework). This document governs general engineering principles.
|
|
46
|
+
- **The practices document must be profile-agnostic** — it defines engineering standards for a development team, not for a specific business or product. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the project" or "the team" instead. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
46
47
|
|
|
47
48
|
---
|
|
48
49
|
|
|
49
50
|
## Required Sections
|
|
50
51
|
|
|
51
52
|
### 1. Overview
|
|
52
|
-
-
|
|
53
|
-
- Development timeline constraints
|
|
53
|
+
- Summary of the practices
|
|
54
54
|
|
|
55
55
|
### 2. Core Development Practices
|
|
56
56
|
|
|
@@ -159,7 +159,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
159
159
|
- Scope (in-scope goals, out-of-scope items, deferred ideas)
|
|
160
160
|
- Capabilities (with P0/P1/P2 priority levels, using **unchecked checkboxes** `- [ ]` for each capability, each with 2-4 **acceptance criteria** as a sub-list)
|
|
161
161
|
- Dependencies (on other features or external services)
|
|
162
|
-
- Assumptions & Risks (assumptions,
|
|
162
|
+
- Assumptions & Risks (assumptions, key risks and mitigations — all questions must be resolved in the chat before saving; only record explicitly deferred decisions)
|
|
163
163
|
- Success Metrics
|
|
164
164
|
- Implementation Context (standard portability note)
|
|
165
165
|
- Begin the file with YAML frontmatter: `---\nspec-version: v1\n---`
|
|
@@ -191,6 +191,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
191
191
|
- Clearly distinguish between facts (what competitors do) and recommendations (what the product should do)
|
|
192
192
|
- Include the competitive feature matrix as a Markdown table
|
|
193
193
|
- Categorize all findings using the Table-Stakes / Differentiating / White-Space framework
|
|
194
|
+
- **The research document must be profile-agnostic in its headings and title** — use a generic document title like "# Competitive Research", not "# Competitive Research — ACME Solutions". Do NOT include the project name or company name in section headings. You may reference the product's positioning and competitive context from `gspec/profile.md` within the body where needed for analysis, but the document structure itself should be reusable. The "Our Product" column in matrices should use "Our Product" — not the product's name.
|
|
194
195
|
|
|
195
196
|
### Output File Structure
|
|
196
197
|
|
|
@@ -41,6 +41,7 @@ You should:
|
|
|
41
41
|
- **Mark sections as "Not Applicable"** when they don't apply to this project (e.g., no backend, no message queue, etc.)
|
|
42
42
|
- **Do NOT include general development practices** (code review, git workflow, refactoring guidelines) — these are documented separately
|
|
43
43
|
- **DO include technology-specific practices in the designated section** that are inherent to the chosen stack (e.g., framework-specific conventions, ORM usage patterns, CSS framework token mapping, recommended library configurations)
|
|
44
|
+
- **The stack document must be profile-agnostic** — it defines technology choices for a given type of application, not for a specific business or product. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the application" or "the system" instead. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
44
45
|
|
|
45
46
|
---
|
|
46
47
|
|
|
@@ -51,13 +52,8 @@ You should:
|
|
|
51
52
|
- Deployment target (cloud, on-premise, hybrid)
|
|
52
53
|
- Scale and performance requirements
|
|
53
54
|
|
|
54
|
-
### 2.
|
|
55
|
-
**
|
|
56
|
-
- Missing requirements that impact stack decisions
|
|
57
|
-
- Unclear constraints or preferences
|
|
58
|
-
- Team expertise or existing infrastructure questions
|
|
59
|
-
- Budget or licensing considerations
|
|
60
|
-
- **Mark as "None" if all information is clear**
|
|
55
|
+
### 2. Clarifications
|
|
56
|
+
**All questions that impact technology choices must be resolved by asking the user in the chat before the document is saved.** Do not save the stack spec with unresolved questions. If the user explicitly defers a decision, record it here as a "Deferred Decision" with context explaining what was deferred and why. If there are no deferred decisions, omit this section entirely.
|
|
61
57
|
|
|
62
58
|
### 3. Core Technology Stack
|
|
63
59
|
|
|
@@ -34,7 +34,7 @@ Before generating the architecture document, read **all** existing gspec documen
|
|
|
34
34
|
4. **`gspec/practices.md`** — Development standards. Use this to align file organization, testing patterns, and code structure with team conventions.
|
|
35
35
|
5. **`gspec/features/*.md`** — Individual feature requirements and dependencies. Use these to derive data entities, API endpoints, component structure, and integration points.
|
|
36
36
|
|
|
37
|
-
All of these provide essential context. If any are missing, note the gap and make reasonable assumptions
|
|
37
|
+
All of these provide essential context. If any are missing, note the gap and ask the user to clarify before proceeding. If the user explicitly defers, make reasonable assumptions and record them in the Assumptions sub-section of the Technical Gap Analysis.
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
@@ -61,6 +61,7 @@ All of these provide essential context. If any are missing, note the gap and mak
|
|
|
61
61
|
- **Mark sections as "Not Applicable"** when they don't apply (e.g., no API for a static site, no frontend for a CLI tool)
|
|
62
62
|
- Include code blocks for directory trees, schema definitions, and configuration snippets
|
|
63
63
|
- **Do NOT duplicate product-level information** from feature PRDs — reference capabilities by name, don't restate them
|
|
64
|
+
- **The architecture document must be profile-agnostic** — it defines the technical blueprint for a system, not for a specific business or product identity. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the application", "the system", or "the platform" instead. You may read `gspec/profile.md` to understand scope and boundaries, but do not carry business identity into the architecture document. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
64
65
|
|
|
65
66
|
---
|
|
66
67
|
|
|
@@ -343,8 +344,9 @@ Examples of gaps to look for:
|
|
|
343
344
|
- Technical decisions that were inferred rather than explicitly specified in existing specs
|
|
344
345
|
|
|
345
346
|
### 10. Open Decisions
|
|
346
|
-
-
|
|
347
|
-
-
|
|
347
|
+
- **All technical questions and decisions must be resolved by asking the user before the document is saved.** Do not save the architecture with unresolved questions.
|
|
348
|
+
- If the user explicitly defers a decision, record it here with context explaining what was deferred and why. If there are no deferred decisions, omit this section entirely.
|
|
349
|
+
- Areas where the architecture may need to evolve as features are implemented may be noted, but these must be acknowledged evolution points — not unresolved questions.
|
|
348
350
|
|
|
349
351
|
---
|
|
350
352
|
|
|
@@ -168,8 +168,8 @@ This separation — combined with the portability principles above — allows th
|
|
|
168
168
|
|
|
169
169
|
### 6. Assumptions & Risks
|
|
170
170
|
- Assumptions (what we're taking as true)
|
|
171
|
-
- Open questions — **only** unknowns that genuinely cannot be answered until implementation or real-world usage begins (e.g., performance thresholds pending benchmarking, exact rate limits pending load testing). Questions about scope, users, priorities, or feature design must be asked and resolved in the chat before the spec is written. If there are no open questions, omit this sub-section.
|
|
172
171
|
- Key risks and mitigations (brief bullet points — focus on risks that could affect implementation scope or approach)
|
|
172
|
+
- **No open questions** — All questions must be resolved by asking the user in the chat before the spec is saved. If the user explicitly defers a question, record it as a "Deferred Decision" with context explaining what was deferred and why. If there are no deferred decisions, omit the sub-section entirely. Never embed unresolved questions in the document by default.
|
|
173
173
|
|
|
174
174
|
### 7. Success Metrics
|
|
175
175
|
- 2-4 measurable outcomes that define whether this feature is working
|
|
@@ -43,14 +43,14 @@ You should:
|
|
|
43
43
|
- **DO define CI/CD pipeline structure** — the practices document defines pipeline stages, gates, and ordering (lint → typecheck → test → build → deploy). The stack document defines which CI/CD platform technology is used (GitHub Actions, GitLab CI, etc.).
|
|
44
44
|
- **Mark sections as "Not Applicable"** when they don't apply to this project
|
|
45
45
|
- **Precedence rule**: Where this document conflicts with technology-specific practices in `gspec/stack.md`, the stack's technology-specific practices take precedence for framework-specific concerns (e.g., file naming conventions dictated by a framework). This document governs general engineering principles.
|
|
46
|
+
- **The practices document must be profile-agnostic** — it defines engineering standards for a development team, not for a specific business or product. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the project" or "the team" instead. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
46
47
|
|
|
47
48
|
---
|
|
48
49
|
|
|
49
50
|
## Required Sections
|
|
50
51
|
|
|
51
52
|
### 1. Overview
|
|
52
|
-
-
|
|
53
|
-
- Development timeline constraints
|
|
53
|
+
- Summary of the practices
|
|
54
54
|
|
|
55
55
|
### 2. Core Development Practices
|
|
56
56
|
|
|
@@ -159,7 +159,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
159
159
|
- Scope (in-scope goals, out-of-scope items, deferred ideas)
|
|
160
160
|
- Capabilities (with P0/P1/P2 priority levels, using **unchecked checkboxes** `- [ ]` for each capability, each with 2-4 **acceptance criteria** as a sub-list)
|
|
161
161
|
- Dependencies (on other features or external services)
|
|
162
|
-
- Assumptions & Risks (assumptions,
|
|
162
|
+
- Assumptions & Risks (assumptions, key risks and mitigations — all questions must be resolved in the chat before saving; only record explicitly deferred decisions)
|
|
163
163
|
- Success Metrics
|
|
164
164
|
- Implementation Context (standard portability note)
|
|
165
165
|
- Begin the file with YAML frontmatter: `---\nspec-version: v1\n---`
|
|
@@ -191,6 +191,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
191
191
|
- Clearly distinguish between facts (what competitors do) and recommendations (what the product should do)
|
|
192
192
|
- Include the competitive feature matrix as a Markdown table
|
|
193
193
|
- Categorize all findings using the Table-Stakes / Differentiating / White-Space framework
|
|
194
|
+
- **The research document must be profile-agnostic in its headings and title** — use a generic document title like "# Competitive Research", not "# Competitive Research — ACME Solutions". Do NOT include the project name or company name in section headings. You may reference the product's positioning and competitive context from `gspec/profile.md` within the body where needed for analysis, but the document structure itself should be reusable. The "Our Product" column in matrices should use "Our Product" — not the product's name.
|
|
194
195
|
|
|
195
196
|
### Output File Structure
|
|
196
197
|
|
|
@@ -41,6 +41,7 @@ You should:
|
|
|
41
41
|
- **Mark sections as "Not Applicable"** when they don't apply to this project (e.g., no backend, no message queue, etc.)
|
|
42
42
|
- **Do NOT include general development practices** (code review, git workflow, refactoring guidelines) — these are documented separately
|
|
43
43
|
- **DO include technology-specific practices in the designated section** that are inherent to the chosen stack (e.g., framework-specific conventions, ORM usage patterns, CSS framework token mapping, recommended library configurations)
|
|
44
|
+
- **The stack document must be profile-agnostic** — it defines technology choices for a given type of application, not for a specific business or product. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the application" or "the system" instead. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
44
45
|
|
|
45
46
|
---
|
|
46
47
|
|
|
@@ -51,13 +52,8 @@ You should:
|
|
|
51
52
|
- Deployment target (cloud, on-premise, hybrid)
|
|
52
53
|
- Scale and performance requirements
|
|
53
54
|
|
|
54
|
-
### 2.
|
|
55
|
-
**
|
|
56
|
-
- Missing requirements that impact stack decisions
|
|
57
|
-
- Unclear constraints or preferences
|
|
58
|
-
- Team expertise or existing infrastructure questions
|
|
59
|
-
- Budget or licensing considerations
|
|
60
|
-
- **Mark as "None" if all information is clear**
|
|
55
|
+
### 2. Clarifications
|
|
56
|
+
**All questions that impact technology choices must be resolved by asking the user in the chat before the document is saved.** Do not save the stack spec with unresolved questions. If the user explicitly defers a decision, record it here as a "Deferred Decision" with context explaining what was deferred and why. If there are no deferred decisions, omit this section entirely.
|
|
61
57
|
|
|
62
58
|
### 3. Core Technology Stack
|
|
63
59
|
|
|
@@ -33,7 +33,7 @@ Before generating the architecture document, read **all** existing gspec documen
|
|
|
33
33
|
4. **`gspec/practices.md`** — Development standards. Use this to align file organization, testing patterns, and code structure with team conventions.
|
|
34
34
|
5. **`gspec/features/*.md`** — Individual feature requirements and dependencies. Use these to derive data entities, API endpoints, component structure, and integration points.
|
|
35
35
|
|
|
36
|
-
All of these provide essential context. If any are missing, note the gap and make reasonable assumptions
|
|
36
|
+
All of these provide essential context. If any are missing, note the gap and ask the user to clarify before proceeding. If the user explicitly defers, make reasonable assumptions and record them in the Assumptions sub-section of the Technical Gap Analysis.
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
@@ -60,6 +60,7 @@ All of these provide essential context. If any are missing, note the gap and mak
|
|
|
60
60
|
- **Mark sections as "Not Applicable"** when they don't apply (e.g., no API for a static site, no frontend for a CLI tool)
|
|
61
61
|
- Include code blocks for directory trees, schema definitions, and configuration snippets
|
|
62
62
|
- **Do NOT duplicate product-level information** from feature PRDs — reference capabilities by name, don't restate them
|
|
63
|
+
- **The architecture document must be profile-agnostic** — it defines the technical blueprint for a system, not for a specific business or product identity. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the application", "the system", or "the platform" instead. You may read `gspec/profile.md` to understand scope and boundaries, but do not carry business identity into the architecture document. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
63
64
|
|
|
64
65
|
---
|
|
65
66
|
|
|
@@ -342,8 +343,9 @@ Examples of gaps to look for:
|
|
|
342
343
|
- Technical decisions that were inferred rather than explicitly specified in existing specs
|
|
343
344
|
|
|
344
345
|
### 10. Open Decisions
|
|
345
|
-
-
|
|
346
|
-
-
|
|
346
|
+
- **All technical questions and decisions must be resolved by asking the user before the document is saved.** Do not save the architecture with unresolved questions.
|
|
347
|
+
- If the user explicitly defers a decision, record it here with context explaining what was deferred and why. If there are no deferred decisions, omit this section entirely.
|
|
348
|
+
- Areas where the architecture may need to evolve as features are implemented may be noted, but these must be acknowledged evolution points — not unresolved questions.
|
|
347
349
|
|
|
348
350
|
---
|
|
349
351
|
|
|
@@ -167,8 +167,8 @@ This separation — combined with the portability principles above — allows th
|
|
|
167
167
|
|
|
168
168
|
### 6. Assumptions & Risks
|
|
169
169
|
- Assumptions (what we're taking as true)
|
|
170
|
-
- Open questions — **only** unknowns that genuinely cannot be answered until implementation or real-world usage begins (e.g., performance thresholds pending benchmarking, exact rate limits pending load testing). Questions about scope, users, priorities, or feature design must be asked and resolved in the chat before the spec is written. If there are no open questions, omit this sub-section.
|
|
171
170
|
- Key risks and mitigations (brief bullet points — focus on risks that could affect implementation scope or approach)
|
|
171
|
+
- **No open questions** — All questions must be resolved by asking the user in the chat before the spec is saved. If the user explicitly defers a question, record it as a "Deferred Decision" with context explaining what was deferred and why. If there are no deferred decisions, omit the sub-section entirely. Never embed unresolved questions in the document by default.
|
|
172
172
|
|
|
173
173
|
### 7. Success Metrics
|
|
174
174
|
- 2-4 measurable outcomes that define whether this feature is working
|
|
@@ -42,14 +42,14 @@ You should:
|
|
|
42
42
|
- **DO define CI/CD pipeline structure** — the practices document defines pipeline stages, gates, and ordering (lint → typecheck → test → build → deploy). The stack document defines which CI/CD platform technology is used (GitHub Actions, GitLab CI, etc.).
|
|
43
43
|
- **Mark sections as "Not Applicable"** when they don't apply to this project
|
|
44
44
|
- **Precedence rule**: Where this document conflicts with technology-specific practices in `gspec/stack.md`, the stack's technology-specific practices take precedence for framework-specific concerns (e.g., file naming conventions dictated by a framework). This document governs general engineering principles.
|
|
45
|
+
- **The practices document must be profile-agnostic** — it defines engineering standards for a development team, not for a specific business or product. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the project" or "the team" instead. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
45
46
|
|
|
46
47
|
---
|
|
47
48
|
|
|
48
49
|
## Required Sections
|
|
49
50
|
|
|
50
51
|
### 1. Overview
|
|
51
|
-
-
|
|
52
|
-
- Development timeline constraints
|
|
52
|
+
- Summary of the practices
|
|
53
53
|
|
|
54
54
|
### 2. Core Development Practices
|
|
55
55
|
|
|
@@ -158,7 +158,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
158
158
|
- Scope (in-scope goals, out-of-scope items, deferred ideas)
|
|
159
159
|
- Capabilities (with P0/P1/P2 priority levels, using **unchecked checkboxes** `- [ ]` for each capability, each with 2-4 **acceptance criteria** as a sub-list)
|
|
160
160
|
- Dependencies (on other features or external services)
|
|
161
|
-
- Assumptions & Risks (assumptions,
|
|
161
|
+
- Assumptions & Risks (assumptions, key risks and mitigations — all questions must be resolved in the chat before saving; only record explicitly deferred decisions)
|
|
162
162
|
- Success Metrics
|
|
163
163
|
- Implementation Context (standard portability note)
|
|
164
164
|
- Begin the file with YAML frontmatter: `---\nspec-version: v1\n---`
|
|
@@ -190,6 +190,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
190
190
|
- Clearly distinguish between facts (what competitors do) and recommendations (what the product should do)
|
|
191
191
|
- Include the competitive feature matrix as a Markdown table
|
|
192
192
|
- Categorize all findings using the Table-Stakes / Differentiating / White-Space framework
|
|
193
|
+
- **The research document must be profile-agnostic in its headings and title** — use a generic document title like "# Competitive Research", not "# Competitive Research — ACME Solutions". Do NOT include the project name or company name in section headings. You may reference the product's positioning and competitive context from `gspec/profile.md` within the body where needed for analysis, but the document structure itself should be reusable. The "Our Product" column in matrices should use "Our Product" — not the product's name.
|
|
193
194
|
|
|
194
195
|
### Output File Structure
|
|
195
196
|
|
|
@@ -40,6 +40,7 @@ You should:
|
|
|
40
40
|
- **Mark sections as "Not Applicable"** when they don't apply to this project (e.g., no backend, no message queue, etc.)
|
|
41
41
|
- **Do NOT include general development practices** (code review, git workflow, refactoring guidelines) — these are documented separately
|
|
42
42
|
- **DO include technology-specific practices in the designated section** that are inherent to the chosen stack (e.g., framework-specific conventions, ORM usage patterns, CSS framework token mapping, recommended library configurations)
|
|
43
|
+
- **The stack document must be profile-agnostic** — it defines technology choices for a given type of application, not for a specific business or product. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the application" or "the system" instead. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
43
44
|
|
|
44
45
|
---
|
|
45
46
|
|
|
@@ -50,13 +51,8 @@ You should:
|
|
|
50
51
|
- Deployment target (cloud, on-premise, hybrid)
|
|
51
52
|
- Scale and performance requirements
|
|
52
53
|
|
|
53
|
-
### 2.
|
|
54
|
-
**
|
|
55
|
-
- Missing requirements that impact stack decisions
|
|
56
|
-
- Unclear constraints or preferences
|
|
57
|
-
- Team expertise or existing infrastructure questions
|
|
58
|
-
- Budget or licensing considerations
|
|
59
|
-
- **Mark as "None" if all information is clear**
|
|
54
|
+
### 2. Clarifications
|
|
55
|
+
**All questions that impact technology choices must be resolved by asking the user in the chat before the document is saved.** Do not save the stack spec with unresolved questions. If the user explicitly defers a decision, record it here as a "Deferred Decision" with context explaining what was deferred and why. If there are no deferred decisions, omit this section entirely.
|
|
60
56
|
|
|
61
57
|
### 3. Core Technology Stack
|
|
62
58
|
|
|
@@ -34,7 +34,7 @@ Before generating the architecture document, read **all** existing gspec documen
|
|
|
34
34
|
4. **`gspec/practices.md`** — Development standards. Use this to align file organization, testing patterns, and code structure with team conventions.
|
|
35
35
|
5. **`gspec/features/*.md`** — Individual feature requirements and dependencies. Use these to derive data entities, API endpoints, component structure, and integration points.
|
|
36
36
|
|
|
37
|
-
All of these provide essential context. If any are missing, note the gap and make reasonable assumptions
|
|
37
|
+
All of these provide essential context. If any are missing, note the gap and ask the user to clarify before proceeding. If the user explicitly defers, make reasonable assumptions and record them in the Assumptions sub-section of the Technical Gap Analysis.
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
@@ -61,6 +61,7 @@ All of these provide essential context. If any are missing, note the gap and mak
|
|
|
61
61
|
- **Mark sections as "Not Applicable"** when they don't apply (e.g., no API for a static site, no frontend for a CLI tool)
|
|
62
62
|
- Include code blocks for directory trees, schema definitions, and configuration snippets
|
|
63
63
|
- **Do NOT duplicate product-level information** from feature PRDs — reference capabilities by name, don't restate them
|
|
64
|
+
- **The architecture document must be profile-agnostic** — it defines the technical blueprint for a system, not for a specific business or product identity. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the application", "the system", or "the platform" instead. You may read `gspec/profile.md` to understand scope and boundaries, but do not carry business identity into the architecture document. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
64
65
|
|
|
65
66
|
---
|
|
66
67
|
|
|
@@ -343,8 +344,9 @@ Examples of gaps to look for:
|
|
|
343
344
|
- Technical decisions that were inferred rather than explicitly specified in existing specs
|
|
344
345
|
|
|
345
346
|
### 10. Open Decisions
|
|
346
|
-
-
|
|
347
|
-
-
|
|
347
|
+
- **All technical questions and decisions must be resolved by asking the user before the document is saved.** Do not save the architecture with unresolved questions.
|
|
348
|
+
- If the user explicitly defers a decision, record it here with context explaining what was deferred and why. If there are no deferred decisions, omit this section entirely.
|
|
349
|
+
- Areas where the architecture may need to evolve as features are implemented may be noted, but these must be acknowledged evolution points — not unresolved questions.
|
|
348
350
|
|
|
349
351
|
---
|
|
350
352
|
|
|
@@ -168,8 +168,8 @@ This separation — combined with the portability principles above — allows th
|
|
|
168
168
|
|
|
169
169
|
### 6. Assumptions & Risks
|
|
170
170
|
- Assumptions (what we're taking as true)
|
|
171
|
-
- Open questions — **only** unknowns that genuinely cannot be answered until implementation or real-world usage begins (e.g., performance thresholds pending benchmarking, exact rate limits pending load testing). Questions about scope, users, priorities, or feature design must be asked and resolved in the chat before the spec is written. If there are no open questions, omit this sub-section.
|
|
172
171
|
- Key risks and mitigations (brief bullet points — focus on risks that could affect implementation scope or approach)
|
|
172
|
+
- **No open questions** — All questions must be resolved by asking the user in the chat before the spec is saved. If the user explicitly defers a question, record it as a "Deferred Decision" with context explaining what was deferred and why. If there are no deferred decisions, omit the sub-section entirely. Never embed unresolved questions in the document by default.
|
|
173
173
|
|
|
174
174
|
### 7. Success Metrics
|
|
175
175
|
- 2-4 measurable outcomes that define whether this feature is working
|
|
@@ -43,14 +43,14 @@ You should:
|
|
|
43
43
|
- **DO define CI/CD pipeline structure** — the practices document defines pipeline stages, gates, and ordering (lint → typecheck → test → build → deploy). The stack document defines which CI/CD platform technology is used (GitHub Actions, GitLab CI, etc.).
|
|
44
44
|
- **Mark sections as "Not Applicable"** when they don't apply to this project
|
|
45
45
|
- **Precedence rule**: Where this document conflicts with technology-specific practices in `gspec/stack.md`, the stack's technology-specific practices take precedence for framework-specific concerns (e.g., file naming conventions dictated by a framework). This document governs general engineering principles.
|
|
46
|
+
- **The practices document must be profile-agnostic** — it defines engineering standards for a development team, not for a specific business or product. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the project" or "the team" instead. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
46
47
|
|
|
47
48
|
---
|
|
48
49
|
|
|
49
50
|
## Required Sections
|
|
50
51
|
|
|
51
52
|
### 1. Overview
|
|
52
|
-
-
|
|
53
|
-
- Development timeline constraints
|
|
53
|
+
- Summary of the practices
|
|
54
54
|
|
|
55
55
|
### 2. Core Development Practices
|
|
56
56
|
|
|
@@ -159,7 +159,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
159
159
|
- Scope (in-scope goals, out-of-scope items, deferred ideas)
|
|
160
160
|
- Capabilities (with P0/P1/P2 priority levels, using **unchecked checkboxes** `- [ ]` for each capability, each with 2-4 **acceptance criteria** as a sub-list)
|
|
161
161
|
- Dependencies (on other features or external services)
|
|
162
|
-
- Assumptions & Risks (assumptions,
|
|
162
|
+
- Assumptions & Risks (assumptions, key risks and mitigations — all questions must be resolved in the chat before saving; only record explicitly deferred decisions)
|
|
163
163
|
- Success Metrics
|
|
164
164
|
- Implementation Context (standard portability note)
|
|
165
165
|
- Begin the file with YAML frontmatter: `---\nspec-version: v1\n---`
|
|
@@ -191,6 +191,7 @@ After writing `gspec/research.md`, ask the user:
|
|
|
191
191
|
- Clearly distinguish between facts (what competitors do) and recommendations (what the product should do)
|
|
192
192
|
- Include the competitive feature matrix as a Markdown table
|
|
193
193
|
- Categorize all findings using the Table-Stakes / Differentiating / White-Space framework
|
|
194
|
+
- **The research document must be profile-agnostic in its headings and title** — use a generic document title like "# Competitive Research", not "# Competitive Research — ACME Solutions". Do NOT include the project name or company name in section headings. You may reference the product's positioning and competitive context from `gspec/profile.md` within the body where needed for analysis, but the document structure itself should be reusable. The "Our Product" column in matrices should use "Our Product" — not the product's name.
|
|
194
195
|
|
|
195
196
|
### Output File Structure
|
|
196
197
|
|
|
@@ -41,6 +41,7 @@ You should:
|
|
|
41
41
|
- **Mark sections as "Not Applicable"** when they don't apply to this project (e.g., no backend, no message queue, etc.)
|
|
42
42
|
- **Do NOT include general development practices** (code review, git workflow, refactoring guidelines) — these are documented separately
|
|
43
43
|
- **DO include technology-specific practices in the designated section** that are inherent to the chosen stack (e.g., framework-specific conventions, ORM usage patterns, CSS framework token mapping, recommended library configurations)
|
|
44
|
+
- **The stack document must be profile-agnostic** — it defines technology choices for a given type of application, not for a specific business or product. Do NOT include the project name, company name, business purpose, or product-specific context in the document title, headings, or body. Use generic terms like "the application" or "the system" instead. Profile-specific context lives exclusively in `gspec/profile.md`.
|
|
44
45
|
|
|
45
46
|
---
|
|
46
47
|
|
|
@@ -51,13 +52,8 @@ You should:
|
|
|
51
52
|
- Deployment target (cloud, on-premise, hybrid)
|
|
52
53
|
- Scale and performance requirements
|
|
53
54
|
|
|
54
|
-
### 2.
|
|
55
|
-
**
|
|
56
|
-
- Missing requirements that impact stack decisions
|
|
57
|
-
- Unclear constraints or preferences
|
|
58
|
-
- Team expertise or existing infrastructure questions
|
|
59
|
-
- Budget or licensing considerations
|
|
60
|
-
- **Mark as "None" if all information is clear**
|
|
55
|
+
### 2. Clarifications
|
|
56
|
+
**All questions that impact technology choices must be resolved by asking the user in the chat before the document is saved.** Do not save the stack spec with unresolved questions. If the user explicitly defers a decision, record it here as a "Deferred Decision" with context explaining what was deferred and why. If there are no deferred decisions, omit this section entirely.
|
|
61
57
|
|
|
62
58
|
### 3. Core Technology Stack
|
|
63
59
|
|
package/package.json
CHANGED
package/templates/spec-sync.md
CHANGED
|
@@ -8,19 +8,21 @@ These specs define what the product is, how it should look, what technology it u
|
|
|
8
8
|
|
|
9
9
|
1. **Read the specs first** — Before making non-trivial changes, read the relevant gspec documents to understand existing decisions and constraints. At minimum, scan `gspec/profile.md` and any feature PRDs in `gspec/features/` related to your work.
|
|
10
10
|
|
|
11
|
-
2. **
|
|
11
|
+
2. **Spec before you build** — If the user asks for a feature or capability that isn't covered by an existing feature PRD in `gspec/features/`, run the `gspec-feature` command to create a new feature PRD before implementing it. Every feature should be specified before it's built — don't skip straight to code.
|
|
12
12
|
|
|
13
|
-
3. **Update
|
|
13
|
+
3. **Update feature checkboxes** — When you implement a capability defined in a feature PRD (`gspec/features/*.md`), change its checkbox from `- [ ]` to `- [x]`.
|
|
14
|
+
|
|
15
|
+
4. **Update specs that your changes contradict** — If your code change makes a spec statement incorrect (e.g., you changed the data model, switched a dependency, altered a UI pattern, or added a new API endpoint), update the spec to reflect reality. Common candidates:
|
|
14
16
|
- `gspec/architecture.md` — project structure, data model, API routes, component hierarchy
|
|
15
17
|
- `gspec/stack.md` — dependencies, frameworks, infrastructure
|
|
16
18
|
- `gspec/style.md` — design tokens, component styling, visual conventions
|
|
17
19
|
- `gspec/practices.md` — coding standards, testing conventions, workflows
|
|
18
20
|
- `gspec/profile.md` — product scope, target users, value proposition (rarely changes)
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
5. **Be surgical** — Change only what is necessary. Preserve the existing voice, structure, and formatting of each spec document. Do not rewrite sections that are still accurate.
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
6. **Announce spec updates** — When you update a spec, briefly mention what changed and why in your response. Never silently modify specs.
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
7. **Preserve frontmatter** — gspec files use YAML frontmatter with a `spec-version` field. Preserve it when editing. If a file lacks frontmatter, leave it as-is.
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
8. **Don't create new foundation specs** — Only update existing spec files. If you believe a new spec document is needed, suggest it to the user rather than creating it yourself.
|