gspec 1.13.0 → 1.13.2

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 CHANGED
@@ -158,6 +158,24 @@ npx gspec --target opencode
158
158
 
159
159
  That's it. The commands are immediately available in your AI tool.
160
160
 
161
+ If you have saved specs in `~/.gspec/` from a previous project, the installer will offer to seed your new project from them — either from a playbook or by picking individual specs.
162
+
163
+ ## Save & Restore
164
+
165
+ Once you've built specs you're happy with, save them for reuse across projects:
166
+
167
+ ```bash
168
+ gspec save # Save a spec from the current project to ~/.gspec/
169
+ gspec restore # Restore a saved spec into the current project
170
+ gspec playbook # Bundle multiple saved specs into a reusable playbook
171
+ ```
172
+
173
+ Saved specs are organized by type in `~/.gspec/` (profiles, stacks, styles, practices, features). Playbooks bundle multiple specs together so you can seed an entire project with one command:
174
+
175
+ ```bash
176
+ gspec restore playbook/my-starter
177
+ ```
178
+
161
179
  ## Output Structure
162
180
 
163
181
  All specifications live in a `gspec/` directory at your project root:
package/bin/gspec.js CHANGED
@@ -800,6 +800,9 @@ async function saveSpec(cwd) {
800
800
  if (e.code !== 'ENOENT') throw e;
801
801
  }
802
802
 
803
+ // Uncheck all implementation checkboxes so saved specs start fresh
804
+ content = content.replace(/- \[x\]/g, '- [ ]');
805
+
803
806
  await writeFile(destPath, content, 'utf-8');
804
807
  console.log(chalk.green(`\n ✓ Saved to ~/.gspec/${selected.type}/${name}.md\n`));
805
808
  }
@@ -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
 
@@ -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
- - Team context (size, experience level)
48
- - Development timeline constraints
48
+ - Summary of the practices
49
49
 
50
50
  ### 2. Core Development Practices
51
51
 
@@ -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
 
@@ -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
 
@@ -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
 
@@ -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
- - Team context (size, experience level)
53
- - Development timeline constraints
53
+ - Summary of the practices
54
54
 
55
55
  ### 2. Core Development Practices
56
56
 
@@ -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
 
@@ -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
 
@@ -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
- - Team context (size, experience level)
53
- - Development timeline constraints
53
+ - Summary of the practices
54
54
 
55
55
  ### 2. Core Development Practices
56
56
 
@@ -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
 
@@ -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
 
@@ -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
- - Team context (size, experience level)
53
- - Development timeline constraints
53
+ - Summary of the practices
54
54
 
55
55
  ### 2. Core Development Practices
56
56
 
@@ -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
 
@@ -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
 
@@ -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
- - Team context (size, experience level)
52
- - Development timeline constraints
52
+ - Summary of the practices
53
53
 
54
54
  ### 2. Core Development Practices
55
55
 
@@ -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
 
@@ -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
 
@@ -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
- - Team context (size, experience level)
53
- - Development timeline constraints
53
+ - Summary of the practices
54
54
 
55
55
  ### 2. Core Development Practices
56
56
 
@@ -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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gspec",
3
- "version": "1.13.0",
3
+ "version": "1.13.2",
4
4
  "description": "Install gspec specification commands for Claude Code, Cursor, and other AI tools",
5
5
  "main": "bin/gspec.js",
6
6
  "type": "module",