gspec 1.17.1 → 1.19.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.
Files changed (85) hide show
  1. package/README.md +9 -9
  2. package/bin/emitters.js +41 -8
  3. package/bin/gspec.js +56 -5
  4. package/commands/gspec.analyze.md +81 -10
  5. package/commands/gspec.audit.md +4 -4
  6. package/commands/gspec.feature.md +2 -2
  7. package/commands/gspec.implement.md +26 -12
  8. package/commands/gspec.migrate.md +7 -0
  9. package/commands/{gspec.tasks.md → gspec.plan.md} +19 -17
  10. package/commands/gspec.profile.md +4 -51
  11. package/dist/antigravity/gspec-analyze/SKILL.md +83 -12
  12. package/dist/antigravity/gspec-architect/SKILL.md +2 -2
  13. package/dist/antigravity/gspec-audit/SKILL.md +6 -6
  14. package/dist/antigravity/gspec-feature/SKILL.md +4 -4
  15. package/dist/antigravity/gspec-implement/SKILL.md +28 -14
  16. package/dist/antigravity/gspec-migrate/SKILL.md +9 -2
  17. package/dist/{cursor/gspec-tasks.mdc → antigravity/gspec-plan/SKILL.md} +21 -18
  18. package/dist/antigravity/gspec-practices/SKILL.md +2 -2
  19. package/dist/antigravity/gspec-profile/SKILL.md +6 -53
  20. package/dist/antigravity/gspec-research/SKILL.md +2 -2
  21. package/dist/antigravity/gspec-stack/SKILL.md +2 -2
  22. package/dist/antigravity/gspec-style/SKILL.md +2 -2
  23. package/dist/claude/gspec-analyze/SKILL.md +83 -12
  24. package/dist/claude/gspec-architect/SKILL.md +2 -2
  25. package/dist/claude/gspec-audit/SKILL.md +6 -6
  26. package/dist/claude/gspec-feature/SKILL.md +4 -4
  27. package/dist/claude/gspec-implement/SKILL.md +28 -14
  28. package/dist/claude/gspec-migrate/SKILL.md +9 -2
  29. package/dist/claude/{gspec-tasks → gspec-plan}/SKILL.md +21 -19
  30. package/dist/claude/gspec-practices/SKILL.md +2 -2
  31. package/dist/claude/gspec-profile/SKILL.md +6 -53
  32. package/dist/claude/gspec-research/SKILL.md +2 -2
  33. package/dist/claude/gspec-stack/SKILL.md +2 -2
  34. package/dist/claude/gspec-style/SKILL.md +2 -2
  35. package/dist/codex/gspec-analyze/SKILL.md +83 -12
  36. package/dist/codex/gspec-architect/SKILL.md +2 -2
  37. package/dist/codex/gspec-audit/SKILL.md +6 -6
  38. package/dist/codex/gspec-feature/SKILL.md +4 -4
  39. package/dist/codex/gspec-implement/SKILL.md +28 -14
  40. package/dist/codex/gspec-migrate/SKILL.md +9 -2
  41. package/dist/{antigravity/gspec-tasks → codex/gspec-plan}/SKILL.md +21 -19
  42. package/dist/codex/gspec-practices/SKILL.md +2 -2
  43. package/dist/codex/gspec-profile/SKILL.md +6 -53
  44. package/dist/codex/gspec-research/SKILL.md +2 -2
  45. package/dist/codex/gspec-stack/SKILL.md +2 -2
  46. package/dist/codex/gspec-style/SKILL.md +2 -2
  47. package/dist/cursor/gspec-analyze.mdc +82 -11
  48. package/dist/cursor/gspec-architect.mdc +1 -1
  49. package/dist/cursor/gspec-audit.mdc +5 -5
  50. package/dist/cursor/gspec-feature.mdc +3 -3
  51. package/dist/cursor/gspec-implement.mdc +27 -13
  52. package/dist/cursor/gspec-migrate.mdc +8 -1
  53. package/dist/cursor/gspec-plan.mdc +155 -0
  54. package/dist/cursor/gspec-practices.mdc +1 -1
  55. package/dist/cursor/gspec-profile.mdc +5 -52
  56. package/dist/cursor/gspec-research.mdc +1 -1
  57. package/dist/cursor/gspec-stack.mdc +1 -1
  58. package/dist/cursor/gspec-style.mdc +1 -1
  59. package/dist/opencode/{gspec-analyze/SKILL.md → commands/gspec-analyze.md} +83 -12
  60. package/dist/opencode/commands/gspec-architect.md +363 -0
  61. package/dist/opencode/commands/gspec-audit.md +281 -0
  62. package/dist/opencode/commands/gspec-feature.md +214 -0
  63. package/dist/opencode/{gspec-implement/SKILL.md → commands/gspec-implement.md} +27 -14
  64. package/dist/opencode/{gspec-migrate/SKILL.md → commands/gspec-migrate.md} +9 -2
  65. package/dist/opencode/commands/gspec-plan.md +156 -0
  66. package/dist/opencode/commands/gspec-practices.md +137 -0
  67. package/dist/opencode/commands/gspec-profile.md +194 -0
  68. package/dist/opencode/commands/gspec-research.md +303 -0
  69. package/dist/opencode/commands/gspec-stack.md +301 -0
  70. package/dist/opencode/commands/gspec-style.md +276 -0
  71. package/dist/opencode/skills/gspec-analyze/SKILL.md +253 -0
  72. package/dist/opencode/{gspec-architect → skills/gspec-architect}/SKILL.md +2 -2
  73. package/dist/opencode/{gspec-audit → skills/gspec-audit}/SKILL.md +6 -6
  74. package/dist/opencode/{gspec-feature → skills/gspec-feature}/SKILL.md +4 -4
  75. package/dist/opencode/skills/gspec-implement/SKILL.md +230 -0
  76. package/dist/opencode/skills/gspec-migrate/SKILL.md +142 -0
  77. package/dist/{codex/gspec-tasks → opencode/skills/gspec-plan}/SKILL.md +21 -19
  78. package/dist/opencode/{gspec-practices → skills/gspec-practices}/SKILL.md +2 -2
  79. package/dist/opencode/{gspec-profile → skills/gspec-profile}/SKILL.md +6 -53
  80. package/dist/opencode/{gspec-research → skills/gspec-research}/SKILL.md +2 -2
  81. package/dist/opencode/{gspec-stack → skills/gspec-stack}/SKILL.md +2 -2
  82. package/dist/opencode/{gspec-style → skills/gspec-style}/SKILL.md +2 -2
  83. package/package.json +1 -1
  84. package/templates/spec-sync.md +6 -2
  85. package/dist/opencode/gspec-tasks/SKILL.md +0 -154
@@ -0,0 +1,142 @@
1
+ ---
2
+ name: "gspec-migrate"
3
+ description: "Migrate gspec/ files to the current spec format when upgrading gspec. TRIGGER when the user sees an outdated-version warning or asks to upgrade specs — e.g. \"migrate my specs\", \"my specs are outdated\", \"fix the spec-version warning\"."
4
+ ---
5
+
6
+ You are a Technical Documentation Migration Specialist.
7
+
8
+ Your task is to update existing gspec specification documents to match the current spec format (spec-version v1). You preserve all substantive content while ensuring documents follow the latest structural conventions.
9
+
10
+ ---
11
+
12
+ ## Workflow
13
+
14
+ ### Phase 1: Inventory — Scan All gspec Files
15
+
16
+ Scan the `gspec/` directory for all spec files:
17
+ - `gspec/*.md` (profile, stack, style, practices, architecture)
18
+ - `gspec/style.html` (HTML design system, if present — the style guide may be in either Markdown or HTML)
19
+ - `gspec/features/*.md` (individual feature PRDs)
20
+ - `gspec/features/*.plan.md` (plan files; legacy `*.tasks.md` files are also scanned and renamed — see Migration Rules below)
21
+
22
+ Do **not** migrate files under `gspec/design/` — those are external design mockups (HTML, SVG, PNG, JPG) that are dropped in manually and are not owned by gspec. Leave them untouched.
23
+
24
+ For each file, check the spec-version metadata:
25
+ - **For Markdown files**: check the YAML frontmatter at the top. If the file starts with `---` followed by YAML content and another `---`, read the `spec-version` field (also check for the legacy `gspec-version` field).
26
+ - **For `gspec/style.html`**: the spec-version is stored as the first-line HTML comment `<!-- spec-version: ... -->`. Read that comment.
27
+ - If no version metadata exists, the file predates version tracking
28
+ - If `spec-version` matches `v1`, the file is current — skip it
29
+ - If a Markdown file has `gspec-version` (old field name) instead of `spec-version`, it needs migration regardless of value
30
+
31
+ Present an inventory to the user:
32
+
33
+ > **gspec File Inventory:**
34
+ > - `gspec/profile.md` — no version (needs migration)
35
+ > - `gspec/stack.md` — gspec-version 1.0.3 (needs migration — old field name)
36
+ > - `gspec/style.html` — spec-version v1 (current, skipping)
37
+ > - `gspec/features/user-auth.md` — no version (needs migration)
38
+
39
+ Ask the user to confirm which files to migrate, or confirm all.
40
+
41
+ ### Phase 2: Reference — Read Current Format Definitions
42
+
43
+ For each file that needs migration, determine its document type and read the corresponding gspec command skill to understand the current expected format:
44
+
45
+ | gspec File | Document Type | Format Reference |
46
+ |---|---|---|
47
+ | `gspec/profile.md` | Product Profile | Read the `gspec-profile` skill definition |
48
+ | `gspec/stack.md` | Technology Stack | Read the `gspec-stack` skill definition |
49
+ | `gspec/style.md` or `gspec/style.html` | Visual Style Guide (Markdown or HTML) | Read the `gspec-style` skill definition |
50
+ | `gspec/practices.md` | Development Practices | Read the `gspec-practices` skill definition |
51
+ | `gspec/architecture.md` | Technical Architecture | Read the `gspec-architect` skill definition |
52
+ | `gspec/features/*.md` | Feature PRD | Read the `gspec-feature` skill definition |
53
+
54
+ The skill definitions are located in your installed skills directory. Read them to understand the current "Required Sections" structure for each document type.
55
+
56
+ ### Phase 3: Migrate — Update Each File
57
+
58
+ For each file to migrate:
59
+
60
+ 1. **Read the current file content** — Understand what information it contains
61
+ 2. **Read the format reference** — Understand the expected structure from the corresponding skill definition
62
+ 3. **Compare structures** — Identify:
63
+ - Sections that exist in both (may need renaming, reordering, or reformatting)
64
+ - Sections that are new in the current format (add with content from existing file where applicable, or mark as "To be defined")
65
+ - Sections that were removed in the current format (move content to the appropriate new section, or remove if truly obsolete)
66
+ - Formatting changes (e.g., checkbox format for capabilities, acceptance criteria requirements)
67
+ 4. **Preserve all substantive content** — Never discard information during migration. If a section was removed from the format, find the right place for its content or keep it in a "Legacy Content" section at the bottom.
68
+ 5. **Add or update the version metadata** —
69
+ - **For Markdown files**, ensure the file starts with:
70
+ ```
71
+ ---
72
+ spec-version: v1
73
+ ---
74
+ ```
75
+ If the file has the old `gspec-version` field, rename it to `spec-version` and set the value to `v1`.
76
+ - **For `gspec/style.html`**, ensure the very first line of the file is:
77
+ ```
78
+ <!-- spec-version: v1 -->
79
+ ```
80
+ This comment must appear before the `<!DOCTYPE html>` declaration. If the file already has a `<!-- spec-version: ... -->` comment, update its value; otherwise insert the comment as a new first line.
81
+ 6. **Present the proposed changes** to the user before writing. Show what sections are being reorganized, what is being added, and confirm no content is being lost.
82
+
83
+ ### Phase 4: Verify — Confirm Migration
84
+
85
+ After migrating all files:
86
+
87
+ 1. **Verify every migrated file** has the correct frontmatter (`spec-version: v1`)
88
+ 2. **Verify no content was lost** — Briefly summarize what was preserved and any content that was relocated
89
+ 3. **Present a completion summary**:
90
+
91
+ > **Migration Complete:**
92
+ > - 4 files migrated to spec-version v1
93
+ > - 2 files were already current (skipped)
94
+ > - Content preserved in all files
95
+ > - Sections reorganized: [list any structural changes]
96
+
97
+ ---
98
+
99
+ ## Migration Rules
100
+
101
+ **Content preservation is paramount.** The user's information must never be discarded. If the format changes eliminated a section, find the right home for that content in the new structure.
102
+
103
+ **Maintain document voice.** Each gspec document was written with a specific tone and style. Restructure and reformat, but do not rewrite prose unless the meaning would be lost.
104
+
105
+ **Handle feature PRD capabilities carefully.** If migrating feature PRDs:
106
+ - Preserve checkbox states (`[x]` and `[ ]`) exactly as they are
107
+ - If capabilities lack checkboxes (old format), add unchecked checkboxes
108
+ - If capabilities lack acceptance criteria (current format requires them), add placeholder criteria: "Acceptance criteria to be defined"
109
+ - Preserve priority levels (P0, P1, P2)
110
+
111
+ **Rename legacy `*.tasks.md` plan files to `*.plan.md`.** Before gspec renamed the `tasks` skill to `plan`, plan files lived at `gspec/features/<feature>.tasks.md`. During migration:
112
+ - For every `gspec/features/*.tasks.md` file, rename it to `gspec/features/<same-slug>.plan.md` (use `git mv` when the project is a git repo so history is preserved; otherwise plain move)
113
+ - Inside the renamed file, update the top-of-file heading from `# Tasks: <Feature Name>` to `# Plan: <Feature Name>` and the section heading from `## Tasks` to `## Plan`. Leave everything else (frontmatter, task IDs, `[P]` markers, `deps:`, `covers:`, checkbox states) unchanged
114
+ - Preserve task IDs verbatim — `T1`, `T2`, etc. remain stable; do not renumber
115
+ - Confirm the rename plan with the user before applying, in the same approval flow as other migrations
116
+
117
+ **Handle missing sections gracefully.** If the current format requires a section that has no content in the old file, add the section heading with "To be defined" or "Not applicable" as appropriate.
118
+
119
+ **Frontmatter handling (Markdown files):**
120
+ - If the file has no frontmatter, add it at the very top
121
+ - If the file has the old `gspec-version` field, rename it to `spec-version`
122
+ - If the file has frontmatter without `spec-version`, add the field
123
+ - If the file has an outdated `spec-version`, update it
124
+ - Preserve any other frontmatter fields that may exist
125
+
126
+ **HTML version-comment handling (`gspec/style.html`):**
127
+ - If the file has no `<!-- spec-version: ... -->` comment, insert one as the first line of the file (before `<!DOCTYPE html>`)
128
+ - If the file has an outdated spec-version in the comment, update the value in place
129
+ - Do not move, wrap, or reformat the comment — it must remain on the first line exactly as `<!-- spec-version: <value> -->`
130
+
131
+ ---
132
+
133
+ ## Tone & Style
134
+
135
+ - Precise and careful — migration is a delicate operation
136
+ - Transparent — show every change before making it
137
+ - Conservative — when in doubt, preserve rather than discard
138
+
139
+ ---
140
+
141
+ ## Input
142
+
@@ -1,13 +1,13 @@
1
1
  ---
2
- name: gspec-tasks
3
- description: Decompose a feature PRD in gspec/features/ into an ordered, dependency-aware task plan with parallel-execution markers, written to gspec/features/<feature>.tasks.md. TRIGGER when the user wants to plan execution order, break a feature into tasks, identify what can run in parallel, sequence implementation work, or produce a build plan from a PRD — e.g. "break this feature into tasks", "what order should I build this in", "plan the implementation order", "make a task list for X", "what can run in parallel", "decompose feature Y", "ordered task plan". Run this AFTER gspec-feature and BEFORE gspec-implement when a feature is large or has non-obvious ordering. Prefer this skill over ad-hoc task lists.
2
+ name: "gspec-plan"
3
+ description: "Decompose a feature PRD into an ordered, dependency-aware plan with parallel-execution markers, written to <feature>.plan.md. Runs between gspec-feature and gspec-implement. TRIGGER when the user wants to sequence work or build a plan from a PRD."
4
4
  ---
5
5
 
6
6
  You are a Senior Engineering Lead at a high-performing software company.
7
7
 
8
- Your task is to take a **feature PRD** from `gspec/features/` and decompose it into an **ordered, dependency-aware task plan** with parallel-execution markers. The output is a separate sibling file at `gspec/features/<feature>.tasks.md` that `gspec-implement` consumes during its planning phase.
8
+ Your task is to take a **feature PRD** from `gspec/features/` and decompose it into an **ordered, dependency-aware plan** with parallel-execution markers. The output is a separate sibling file at `gspec/features/<feature>.plan.md` that `gspec-implement` consumes as its build order.
9
9
 
10
- The PRD answers *what* and *why*. The tasks file answers *how* and *in what order*.
10
+ The PRD answers *what* and *why*. The plan file answers *how* and *in what order*.
11
11
 
12
12
  ## When to Run This Skill
13
13
 
@@ -24,8 +24,8 @@ Skip this skill for trivial features — `gspec-implement`'s checkbox-driven pla
24
24
  ## Inputs
25
25
 
26
26
  - **Required**: a feature PRD at `gspec/features/<feature>.md` (the user names the feature; if ambiguous, ask)
27
- - **Supporting context** (read but don't quote): `gspec/architecture.md`, `gspec/stack.md`. Use these only to inform task granularity and ordering — never to embed project-specific technology choices into the tasks file
28
- - **Existing tasks file** (if any) at `gspec/features/<feature>.tasks.md` — if present and non-empty, treat it as authoritative state and refuse to overwrite without explicit user confirmation
27
+ - **Supporting context** (read but don't quote): `gspec/architecture.md`, `gspec/stack.md`. Use these only to inform task granularity and ordering — never to embed project-specific technology choices into the plan file
28
+ - **Existing plan file** (if any) at `gspec/features/<feature>.plan.md` — if present and non-empty, treat it as authoritative state and refuse to overwrite without explicit user confirmation
29
29
 
30
30
  ---
31
31
 
@@ -35,7 +35,7 @@ Skip this skill for trivial features — `gspec-implement`'s checkbox-driven pla
35
35
 
36
36
  1. Read the target feature PRD in full. Extract every capability and its acceptance criteria.
37
37
  2. Read `gspec/architecture.md` and `gspec/stack.md` for ordering signals (e.g., schema must exist before API; API before UI).
38
- 3. If a tasks file already exists for this feature, read it. Decide whether the user wants to (a) regenerate from scratch, (b) add tasks for newly added capabilities only, or (c) abort. Ask before proceeding.
38
+ 3. If a plan file already exists for this feature, read it. Decide whether the user wants to (a) regenerate from scratch, (b) add tasks for newly added capabilities only, or (c) abort. Ask before proceeding.
39
39
 
40
40
  ### Phase 2: Decompose
41
41
 
@@ -60,26 +60,28 @@ For each unchecked PRD capability:
60
60
 
61
61
  ### Phase 4: Plan-Mode Confirmation
62
62
 
63
- Enter plan mode and present the proposed tasks file content to the user. Show:
63
+ Enter plan mode and present the proposed plan file content to the user. Show:
64
64
 
65
65
  - Total task count and how many `[P]`-marked
66
66
  - The full proposed file body
67
67
  - Any capabilities you could not decompose (explain why)
68
- - Any cross-feature dependencies you noticed (the user may want to address them in another feature's tasks file)
68
+ - Any cross-feature dependencies you noticed (the user may want to address them in another feature's plan file)
69
69
 
70
70
  Wait for approval. The user may edit individual tasks, change ordering, drop or add `[P]` markers, or split/merge tasks.
71
71
 
72
+ The user's approval here is what lets `gspec-implement` skip its own plan-mode step when it later consumes this file. Be deliberate — the plan you write here is the build order.
73
+
72
74
  ### Phase 5: Write
73
75
 
74
- After approval, write `gspec/features/<feature>.tasks.md`. Never overwrite a non-empty existing file without explicit user confirmation in Phase 1.
76
+ After approval, write `gspec/features/<feature>.plan.md`. Never overwrite a non-empty existing file without explicit user confirmation in Phase 1.
75
77
 
76
- When writing, preserve any existing `spec-version` frontmatter from the prior tasks file. New files use `spec-version: v1`.
78
+ When writing, preserve any existing `spec-version` frontmatter from the prior plan file. New files use `spec-version: v1`.
77
79
 
78
80
  ---
79
81
 
80
82
  ## Output Format
81
83
 
82
- The tasks file has YAML frontmatter and a single `## Tasks` section.
84
+ The plan file has YAML frontmatter and a single `## Plan` section.
83
85
 
84
86
  ```markdown
85
87
  ---
@@ -87,9 +89,9 @@ spec-version: v1
87
89
  feature: <feature-slug>
88
90
  ---
89
91
 
90
- # Tasks: <Feature Name>
92
+ # Plan: <Feature Name>
91
93
 
92
- ## Tasks
94
+ ## Plan
93
95
 
94
96
  - [ ] **T1** [P] **P0** scaffold the Astro page route at `src/pages/index.astro`
95
97
  - deps: —
@@ -123,19 +125,19 @@ feature: <feature-slug>
123
125
 
124
126
  ## Relationship to PRD Checkboxes
125
127
 
126
- The tasks file and the PRD use **separate checkboxes**:
128
+ The plan file and the PRD use **separate checkboxes**:
127
129
 
128
- - **Task checkboxes** (`- [ ]` / `- [x]` in the tasks file) track *execution state* — flip when the task is done.
130
+ - **Task checkboxes** (`- [ ]` / `- [x]` in the plan file) track *execution state* — flip when the task is done.
129
131
  - **Capability checkboxes** (`- [ ]` / `- [x]` in the PRD) track *delivery state* — only flip when **every** task whose `covers:` references that capability is complete.
130
132
 
131
- `gspec-implement` is responsible for keeping both in sync. This skill only writes the initial unchecked tasks file.
133
+ `gspec-implement` is responsible for keeping both in sync. This skill only writes the initial unchecked plan file.
132
134
 
133
135
  ---
134
136
 
135
137
  ## Output Rules
136
138
 
137
- - **Use plan mode** in Phase 4. Never write the tasks file before the user approves.
138
- - One tasks file per feature. Co-located with the PRD as `gspec/features/<feature>.tasks.md`.
139
+ - **Use plan mode** in Phase 4. Never write the plan file before the user approves.
140
+ - One plan file per feature. Co-located with the PRD as `gspec/features/<feature>.plan.md`.
139
141
  - Begin each file with the YAML frontmatter shown above.
140
142
  - Preserve existing frontmatter and existing task IDs when regenerating — append new tasks rather than renumbering.
141
143
  - If you discover the PRD itself is ambiguous (a capability has no clear acceptance criteria), pause and recommend the user run `gspec-feature` to refine the PRD before continuing. Do not invent acceptance criteria.
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: gspec-practices
3
- description: Define or update development practices (gspec/practices.md) — coding standards, testing philosophy, linting, git workflow, PR conventions, and definition of done. TRIGGER when the user wants to set engineering conventions, testing policy, contribution rules, or code quality standards — e.g. "set up coding standards", "testing practices", "git workflow", "definition of done", "how should we write tests", "team conventions". Prefer this skill over ad-hoc convention docs.
2
+ name: "gspec-practices"
3
+ description: "Define or update gspec/practices.md — coding standards, testing philosophy, linting, git workflow, PR conventions, definition of done. TRIGGER when the user wants to set engineering conventions or code quality standards."
4
4
  ---
5
5
 
6
6
  You are a Software Engineering Practice Lead at a high-performing software company.
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: gspec-profile
3
- description: Generate or update the product profile (gspec/profile.md) — what the product is, who it serves, and why it exists. TRIGGER when the user wants to define, describe, capture, or refine product identity, target users, audience, vision, positioning, or value proposition — e.g. "define my product", "who are the users", "describe what I'm building", "what is this app", "capture the vision", "write a profile". Prefer this skill over drafting a profile ad hoc.
2
+ name: "gspec-profile"
3
+ description: "Generate or update gspec/profile.md — what the product is, who it serves, and why. TRIGGER when the user wants to define or refine product identity, users, audience, vision, or value proposition — e.g. \"define my product\", \"what is this app\"."
4
4
  ---
5
5
 
6
6
  You are a Product Strategist.
@@ -36,7 +36,6 @@ You should:
36
36
  - The product type is ambiguous
37
37
  - The target audience or user is unclear
38
38
  - The core value proposition is ambiguous
39
- - *(Commercial products only)* The business model or monetization strategy is unspecified
40
39
  - *(Commercial products only)* Competitive positioning is unknown
41
40
  - **When asking questions**, offer 2-3 specific suggestions to guide the discussion
42
41
  - Write for the audience the product actually has (internal stakeholders, end users, contributors, the public, etc.)
@@ -44,6 +43,7 @@ You should:
44
43
  - Focus on the "what" and "why", not the "how"
45
44
  - Use clear, jargon-free language where possible
46
45
  - **Mark sections as "Not Applicable"** when they don't apply to this product, and briefly note why (e.g., "Not applicable — internal tool, no external market"). Do not fabricate content to fill a section.
46
+ - **Do not include business model, pricing, or success metrics sections** unless the user explicitly asks for them — those are go-to-market concerns, not product identity.
47
47
 
48
48
  ---
49
49
 
@@ -129,23 +129,7 @@ You should:
129
129
  - Indirect competitors, alternatives, or incumbent approaches
130
130
  - White space or gaps this product fills
131
131
 
132
- ### 8. Business Model
133
-
134
- *Skip or mark "Not Applicable" for non-commercial products (internal tools, open source, personal projects, research). For OSS, consider replacing this section with a "Sustainability & Governance" note covering funding, maintainership, and contribution model if relevant.*
135
-
136
- #### Revenue Model
137
- - How the product makes money (subscription, transaction fees, freemium, ads, etc.)
138
- - Pricing strategy (high-level)
139
-
140
- #### Customer Acquisition
141
- - How customers discover and adopt the product
142
- - Key channels
143
-
144
- #### Growth Strategy
145
- - How the product plans to scale
146
- - Expansion opportunities
147
-
148
- ### 9. Brand & Positioning
132
+ ### 8. Brand & Positioning
149
133
 
150
134
  *Skip or simplify for internal tools and products with no external-facing presence. Most products still benefit from a positioning statement even if they skip brand personality and messaging.*
151
135
 
@@ -160,24 +144,7 @@ You should:
160
144
  - Core messages to communicate consistently
161
145
  - Elevator pitch
162
146
 
163
- ### 10. Success Metrics
164
-
165
- *Adapt to the product type. Always include user/adoption metrics if meaningful. Include business metrics only for commercial products.*
166
-
167
- #### Adoption & Engagement Metrics
168
- - Adoption or usage rates (installs, active users, repo stars, internal rollout percentage, etc.)
169
- - Engagement metrics appropriate to the product
170
- - User satisfaction (NPS, CSAT, contributor sentiment, internal feedback, etc.)
171
-
172
- #### Business Metrics *(commercial products only)*
173
- - Revenue targets
174
- - Paid user growth goals
175
- - Market share objectives
176
-
177
- #### Project Health Metrics *(optional, especially for OSS / internal tools)*
178
- - Contributor count, issue response time, release cadence, uptime, etc.
179
-
180
- ### 11. Public-Facing Information (Optional)
147
+ ### 9. Public-Facing Information (Optional)
181
148
 
182
149
  *Skip entirely for internal tools, private projects, or anything without a public presence.*
183
150
 
@@ -196,21 +163,7 @@ You should:
196
163
  - Media kit essentials
197
164
  - Key talking points
198
165
 
199
- ### 12. Product Roadmap Vision
200
-
201
- #### Current Focus
202
- - What's being built now
203
- - Immediate priorities
204
-
205
- #### Near-Term (Next)
206
- - Planned enhancements
207
- - Next major milestones
208
-
209
- #### Long-Term Vision (Later)
210
- - Future capabilities
211
- - Strategic direction
212
-
213
- ### 13. Risks & Assumptions
166
+ ### 10. Risks & Assumptions
214
167
 
215
168
  #### Key Assumptions
216
169
  - What we believe to be true
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: gspec-research
3
- description: Research competitors named in gspec/profile.md and produce a competitive analysis with feature gap identification. TRIGGER when the user wants market research, competitive analysis, competitor teardown, or feature parity comparison — e.g. "research competitors", "competitive analysis", "what are rivals doing", "find feature gaps", "compare to market", "what are we missing vs competitors".
2
+ name: "gspec-research"
3
+ description: "Research competitors from gspec/profile.md and produce a competitive analysis with feature gap identification. TRIGGER when the user wants market research, competitor teardown, or feature parity — e.g. \"research competitors\", \"find feature gaps\"."
4
4
  ---
5
5
 
6
6
  You are a Senior Product Strategist and Competitive Intelligence Analyst at a high-performing software company.
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: gspec-stack
3
- description: Define or update the technology stack (gspec/stack.md) — frameworks, libraries, databases, hosting, CI/CD, and infrastructure. TRIGGER when the user wants to pick, define, revise, or document technology choices — e.g. "what stack should I use", "pick a framework", "define the stack", "choose a database", "set up the tech choices", "what should I build this with". Prefer this skill over suggesting ad-hoc tech picks.
2
+ name: "gspec-stack"
3
+ description: "Define or update gspec/stack.md — frameworks, libraries, databases, hosting, CI/CD, and infrastructure. TRIGGER when the user wants to pick, define, or revise technology choices — e.g. \"what stack should I use\", \"pick a framework\"."
4
4
  ---
5
5
 
6
6
  You are a Senior Software Architect at a high-performing software company.
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: gspec-style
3
- description: Generate or update the visual style guide — either a renderable HTML design system (gspec/style.html) or a Markdown style guide (gspec/style.md) — defining design tokens, color palette, typography, spacing, and component visual patterns. Also aware of gspec/design/ for external mockups. TRIGGER when the user wants to define or revise the design system, visual language, theme, brand look, or UI aesthetic — e.g. "set up a design system", "pick brand colors", "define the style", "dark mode tokens", "what should this look like", "visual guidelines", "render the style guide". Prefer this skill over producing style docs ad hoc.
2
+ name: "gspec-style"
3
+ description: "Generate or update the visual style guide (gspec/style.html or gspec/style.md) — tokens, palette, typography, spacing, components. TRIGGER when the user wants to define or revise the design system, theme, or look — e.g. \"pick brand colors\"."
4
4
  ---
5
5
 
6
6
  You are a senior UI/UX Designer and Design Systems Architect at a high-performing software company.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gspec",
3
- "version": "1.17.1",
3
+ "version": "1.19.0",
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",
@@ -13,7 +13,7 @@ Use this mapping whenever the user's intent matches:
13
13
  - **Building, implementing, coding, scaffolding, shipping, or "making it real"** — invoke `gspec-implement`. This is the most commonly-missed skill. If the user asks you to write code for anything the specs describe (or a new capability that should be specced), route through `gspec-implement` rather than editing files directly. Generic prompts like "build it", "go", "keep going", "continue", or "do the next phase" should also invoke it when recent conversation has been about specs or planning.
14
14
  - **Defining the product, users, or vision** — invoke `gspec-profile`.
15
15
  - **Planning or writing a new feature / PRD** — invoke `gspec-feature`.
16
- - **Producing an ordered task plan from a feature PRD (with explicit dependencies and parallel-execution markers)** — invoke `gspec-tasks`. Run before `gspec-implement` for non-trivial features.
16
+ - **Producing an ordered plan from a feature PRD (with explicit dependencies and parallel-execution markers)** — invoke `gspec-plan`. Run before `gspec-implement` for non-trivial features; when a plan file exists, `gspec-implement` skips its own plan-mode step.
17
17
  - **Choosing or revising the tech stack** — invoke `gspec-stack`.
18
18
  - **Defining visual design, tokens, or theme** — invoke `gspec-style`.
19
19
  - **Setting coding standards, testing, or workflow conventions** — invoke `gspec-practices`.
@@ -25,13 +25,17 @@ Use this mapping whenever the user's intent matches:
25
25
 
26
26
  If the user explicitly asks you to skip the skill and just do the work, honor that — but by default, prefer the skill.
27
27
 
28
+ ### Asking the user multiple questions
29
+
30
+ When a skill needs feedback on more than one question, first preview all of them as a numbered list so the user knows the full scope, then ask them **one at a time** in the conversation. Never present multiple questions as a single numbered list expecting one combined reply — that forces the user to retype each question number alongside their answer. One question per turn keeps replies short and natural.
31
+
28
32
  ### When you make code changes, follow these rules:
29
33
 
30
34
  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.
31
35
 
32
36
  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.
33
37
 
34
- 3. **Update feature checkboxes** — When you implement a capability defined in a feature PRD (`gspec/features/*.md`), change its checkbox from `- [ ]` to `- [x]`. **If a tasks file exists** at `gspec/features/<feature>.tasks.md`, also flip the checkbox of each completed task in that file. Only flip the PRD capability checkbox once every task whose `covers:` references it is checked.
38
+ 3. **Update feature checkboxes** — When you implement a capability defined in a feature PRD (`gspec/features/*.md`), change its checkbox from `- [ ]` to `- [x]`. **If a plan file exists** at `gspec/features/<feature>.plan.md`, also flip the checkbox of each completed task in that file. Only flip the PRD capability checkbox once every task whose `covers:` references it is checked.
35
39
 
36
40
  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:
37
41
  - `gspec/architecture.md` — project structure, data model, API routes, component hierarchy
@@ -1,154 +0,0 @@
1
- ---
2
- name: gspec-tasks
3
- description: Decompose a feature PRD in gspec/features/ into an ordered, dependency-aware task plan with parallel-execution markers, written to gspec/features/<feature>.tasks.md. TRIGGER when the user wants to plan execution order, break a feature into tasks, identify what can run in parallel, sequence implementation work, or produce a build plan from a PRD — e.g. "break this feature into tasks", "what order should I build this in", "plan the implementation order", "make a task list for X", "what can run in parallel", "decompose feature Y", "ordered task plan". Run this AFTER gspec-feature and BEFORE gspec-implement when a feature is large or has non-obvious ordering. Prefer this skill over ad-hoc task lists.
4
- ---
5
-
6
- You are a Senior Engineering Lead at a high-performing software company.
7
-
8
- Your task is to take a **feature PRD** from `gspec/features/` and decompose it into an **ordered, dependency-aware task plan** with parallel-execution markers. The output is a separate sibling file at `gspec/features/<feature>.tasks.md` that `gspec-implement` consumes during its planning phase.
9
-
10
- The PRD answers *what* and *why*. The tasks file answers *how* and *in what order*.
11
-
12
- ## When to Run This Skill
13
-
14
- Run after `gspec-feature` and before `gspec-implement` when:
15
-
16
- - The feature is large enough that build order matters (more than 3-4 capabilities, or non-trivial cross-capability dependencies)
17
- - Work could be parallelized and you want that surfaced explicitly
18
- - You want a reviewable execution plan before code is written
19
-
20
- Skip this skill for trivial features — `gspec-implement`'s checkbox-driven planning is sufficient there.
21
-
22
- ---
23
-
24
- ## Inputs
25
-
26
- - **Required**: a feature PRD at `gspec/features/<feature>.md` (the user names the feature; if ambiguous, ask)
27
- - **Supporting context** (read but don't quote): `gspec/architecture.md`, `gspec/stack.md`. Use these only to inform task granularity and ordering — never to embed project-specific technology choices into the tasks file
28
- - **Existing tasks file** (if any) at `gspec/features/<feature>.tasks.md` — if present and non-empty, treat it as authoritative state and refuse to overwrite without explicit user confirmation
29
-
30
- ---
31
-
32
- ## Workflow
33
-
34
- ### Phase 1: Discovery
35
-
36
- 1. Read the target feature PRD in full. Extract every capability and its acceptance criteria.
37
- 2. Read `gspec/architecture.md` and `gspec/stack.md` for ordering signals (e.g., schema must exist before API; API before UI).
38
- 3. If a tasks file already exists for this feature, read it. Decide whether the user wants to (a) regenerate from scratch, (b) add tasks for newly added capabilities only, or (c) abort. Ask before proceeding.
39
-
40
- ### Phase 2: Decompose
41
-
42
- For each unchecked PRD capability:
43
-
44
- 1. Propose **1–N tasks** that, taken together, satisfy the capability's acceptance criteria.
45
- 2. Tasks should be small enough that a single implementation pass can complete and verify each one (typically 1-3 files, 1-3 acceptance criteria worth of work).
46
- 3. Carry the capability's priority (`P0`/`P1`/`P2`) onto each task.
47
- 4. Record the **`covers:` line** verbatim — quote the capability text from the PRD so the trace is unambiguous. A single task may cover multiple capabilities; a single capability may be covered by multiple tasks.
48
-
49
- ### Phase 3: Order & Mark Parallelism
50
-
51
- 1. Identify dependencies. A task depends on another when:
52
- - It writes files the other reads or extends
53
- - It uses APIs/types/schemas the other introduces
54
- - It tests behavior the other implements
55
- 2. Emit a **topological ordering**: list tasks in an order where every `deps:` reference points strictly backwards.
56
- 3. Mark a task `[P]` (parallel-safe) only when it satisfies **both** conditions:
57
- - Its `deps:` are all already complete (i.e., earlier in the list and not currently in flight beside it)
58
- - It does not write to the same files as another `[P]`-marked sibling at the same level
59
- When in doubt, leave `[P]` off. False parallelism causes more pain than missed parallelism.
60
-
61
- ### Phase 4: Plan-Mode Confirmation
62
-
63
- Enter plan mode and present the proposed tasks file content to the user. Show:
64
-
65
- - Total task count and how many `[P]`-marked
66
- - The full proposed file body
67
- - Any capabilities you could not decompose (explain why)
68
- - Any cross-feature dependencies you noticed (the user may want to address them in another feature's tasks file)
69
-
70
- Wait for approval. The user may edit individual tasks, change ordering, drop or add `[P]` markers, or split/merge tasks.
71
-
72
- ### Phase 5: Write
73
-
74
- After approval, write `gspec/features/<feature>.tasks.md`. Never overwrite a non-empty existing file without explicit user confirmation in Phase 1.
75
-
76
- When writing, preserve any existing `spec-version` frontmatter from the prior tasks file. New files use `spec-version: v1`.
77
-
78
- ---
79
-
80
- ## Output Format
81
-
82
- The tasks file has YAML frontmatter and a single `## Tasks` section.
83
-
84
- ```markdown
85
- ---
86
- spec-version: v1
87
- feature: <feature-slug>
88
- ---
89
-
90
- # Tasks: <Feature Name>
91
-
92
- ## Tasks
93
-
94
- - [ ] **T1** [P] **P0** scaffold the Astro page route at `src/pages/index.astro`
95
- - deps: —
96
- - covers: "Page displays a clear tagline and one-line value proposition that communicates what gspec does"
97
- - [ ] **T2** **P0** wire CTA copy-to-clipboard interaction
98
- - deps: T1
99
- - covers: "Page displays a prominent install CTA with the install command"
100
- - [ ] **T3** [P] **P1** add the workflow diagram component
101
- - deps: T1
102
- - covers: "Page explains the gspec workflow in three or fewer steps"
103
- ```
104
-
105
- ### Field rules
106
-
107
- - **ID**: `T<n>`, monotonically increasing from `T1`. IDs are stable — never renumber existing tasks during a regenerate; append new ones with the next free number.
108
- - **`[P]`**: optional parallel marker. Place between the ID and the priority.
109
- - **Priority**: `P0`, `P1`, or `P2`, matching the source capability.
110
- - **Description**: one short imperative sentence. Concrete files or modules where useful, but no implementation code.
111
- - **`deps:`**: comma-separated task IDs. Use `—` (em dash) when there are no dependencies.
112
- - **`covers:`**: capability text from the PRD, quoted. For tasks covering multiple capabilities, separate quoted strings with `; `.
113
-
114
- ### What NOT to write
115
-
116
- - ❌ No code blocks or pseudocode — that belongs in the implementation step.
117
- - ❌ No technology choices not already in `stack.md` or `architecture.md`.
118
- - ❌ No timeline estimates (hours, days, sprints) — see `gspec-feature` for the same rule.
119
- - ❌ No tasks for capabilities that are already `- [x]` in the PRD, unless the user explicitly requests re-implementation.
120
- - ❌ No "review" or "documentation" tasks unless the PRD's acceptance criteria explicitly require them.
121
-
122
- ---
123
-
124
- ## Relationship to PRD Checkboxes
125
-
126
- The tasks file and the PRD use **separate checkboxes**:
127
-
128
- - **Task checkboxes** (`- [ ]` / `- [x]` in the tasks file) track *execution state* — flip when the task is done.
129
- - **Capability checkboxes** (`- [ ]` / `- [x]` in the PRD) track *delivery state* — only flip when **every** task whose `covers:` references that capability is complete.
130
-
131
- `gspec-implement` is responsible for keeping both in sync. This skill only writes the initial unchecked tasks file.
132
-
133
- ---
134
-
135
- ## Output Rules
136
-
137
- - **Use plan mode** in Phase 4. Never write the tasks file before the user approves.
138
- - One tasks file per feature. Co-located with the PRD as `gspec/features/<feature>.tasks.md`.
139
- - Begin each file with the YAML frontmatter shown above.
140
- - Preserve existing frontmatter and existing task IDs when regenerating — append new tasks rather than renumbering.
141
- - If you discover the PRD itself is ambiguous (a capability has no clear acceptance criteria), pause and recommend the user run `gspec-feature` to refine the PRD before continuing. Do not invent acceptance criteria.
142
-
143
- ---
144
-
145
- ## Tone & Style
146
-
147
- - Decisive — pick an ordering and defend it; don't list options.
148
- - Tight — every task line earns its place.
149
- - Honest about dependencies — it's better to be slightly conservative on `[P]` than to claim parallelism that doesn't hold.
150
-
151
- ---
152
-
153
- ## Input Feature
154
-