product-spec 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +23 -16
- package/assets/claude/commands/product-spec-align.md +9 -5
- package/assets/claude/commands/product-spec-domain.md +4 -2
- package/assets/claude/commands/product-spec-faq.md +8 -6
- package/assets/claude/commands/product-spec-narrative.md +36 -0
- package/assets/claude/commands/product-spec-press.md +8 -3
- package/assets/claude/commands/product-spec-roadmap.md +35 -0
- package/assets/codex/commands/product-spec-align.md +16 -1
- package/assets/codex/commands/product-spec-domain.md +12 -0
- package/assets/codex/commands/product-spec-faq.md +18 -4
- package/assets/codex/commands/product-spec-narrative.md +34 -0
- package/assets/codex/commands/product-spec-press.md +18 -1
- package/assets/codex/commands/product-spec-roadmap.md +34 -0
- package/assets/product/templates/current-truth-template.md +48 -0
- package/assets/product/templates/domain-template.md +21 -1
- package/assets/product/templates/faq-template.md +20 -2
- package/assets/product/templates/history/current-truth-history-template.md +5 -0
- package/assets/product/templates/history/domain-history-template.md +5 -0
- package/assets/product/templates/history/faq-history-template.md +5 -0
- package/assets/product/templates/history/narrative-history-template.md +5 -0
- package/assets/product/templates/history/press-history-template.md +5 -0
- package/assets/product/templates/history/roadmap-history-template.md +5 -0
- package/assets/product/templates/narrative-template.md +49 -0
- package/assets/product/templates/press-template.md +24 -3
- package/assets/product/templates/requirements-template.md +3 -32
- package/assets/product/templates/roadmap-template.md +49 -0
- package/dist/adapters/claude.js +1 -1
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/codex.js +1 -1
- package/dist/adapters/codex.js.map +1 -1
- package/dist/core/assets/registry.js +31 -7
- package/dist/core/assets/registry.js.map +1 -1
- package/dist/core/orchestration/add.js +4 -1
- package/dist/core/orchestration/add.js.map +1 -1
- package/dist/core/orchestration/check.js +1 -1
- package/dist/core/orchestration/check.js.map +1 -1
- package/dist/core/orchestration/doctor.js +2 -1
- package/dist/core/orchestration/doctor.js.map +1 -1
- package/dist/core/orchestration/shared-assets.js +2 -1
- package/dist/core/orchestration/shared-assets.js.map +1 -1
- package/dist/core/state/manifest.js +1 -1
- package/dist/core/state/manifest.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.4.0] - 2026-03-30
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- New `/product-spec-narrative` and `/product-spec-roadmap` assistant commands for both Claude Code and Codex
|
|
12
|
+
- New `.product` templates for `narrative`, `roadmap`, and `current-truth`
|
|
13
|
+
- Companion history templates under `.product/history/` for the FRFAQ document set
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Expanded the canonical workflow to `domain -> press -> faq -> narrative -> roadmap -> speckit* -> align -> current-truth`
|
|
18
|
+
- Replaced the live `requirements` concept with `current-truth.md` as the maintained current-state product specification
|
|
19
|
+
- Redesigned the existing FRFAQ templates around a shared decision-oriented structure with companion history documents
|
|
20
|
+
- Updated install, health-check, and doctor guidance to reflect the expanded workflow and asset bundle
|
|
21
|
+
|
|
22
|
+
## [0.3.0] - 2026-03-29
|
|
23
|
+
|
|
7
24
|
### Changed
|
|
8
25
|
|
|
9
26
|
- Prepared the `v0.3.0` release to validate a clean GitHub Actions release cycle end to end
|
package/README.md
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/product-spec)
|
|
6
6
|
[](./LICENSE)
|
|
7
7
|
|
|
8
|
-
The product management counterpart to [spec-kit](https://github.com/github/spec-kit). product-spec brings product management disciplines to spec-driven development, following Amazon's Working Backwards
|
|
8
|
+
The product management counterpart to [spec-kit](https://github.com/github/spec-kit). product-spec brings product management disciplines to spec-driven development, following Amazon's Working Backwards methodology from domain context through current product truth.
|
|
9
9
|
|
|
10
|
-
While spec-kit handles engineering specifications, product-spec handles the product narrative:
|
|
10
|
+
While spec-kit handles engineering specifications, product-spec handles the product narrative: domain context, press releases, FAQs, durable narrative, roadmap, and current truth that define what you're building, why it matters, and what is actually true once engineering work is aligned.
|
|
11
11
|
|
|
12
12
|
## Installation
|
|
13
13
|
|
|
@@ -79,50 +79,57 @@ After adding an integration, use the installed slash commands inside the assista
|
|
|
79
79
|
```text
|
|
80
80
|
/product-spec-domain ...
|
|
81
81
|
/product-spec-press ...
|
|
82
|
+
/product-spec-narrative ...
|
|
83
|
+
/product-spec-roadmap ...
|
|
82
84
|
/product-spec-faq
|
|
83
85
|
/product-spec-align
|
|
84
86
|
```
|
|
85
87
|
|
|
86
88
|
| Target | Command directory | Slash commands |
|
|
87
89
|
|--------|-------------------|----------------|
|
|
88
|
-
| Claude Code | `.claude/commands/` | `/product-spec-domain`, `/product-spec-press`, `/product-spec-faq`, `/product-spec-align` |
|
|
89
|
-
| Codex | `.Codex/commands/` | `/product-spec-domain`, `/product-spec-press`, `/product-spec-faq`, `/product-spec-align` |
|
|
90
|
+
| Claude Code | `.claude/commands/` | `/product-spec-domain`, `/product-spec-press`, `/product-spec-faq`, `/product-spec-narrative`, `/product-spec-roadmap`, `/product-spec-align` |
|
|
91
|
+
| Codex | `.Codex/commands/` | `/product-spec-domain`, `/product-spec-press`, `/product-spec-faq`, `/product-spec-narrative`, `/product-spec-roadmap`, `/product-spec-align` |
|
|
90
92
|
|
|
91
93
|
## How It Works
|
|
92
94
|
|
|
93
|
-
product-spec creates a `.product/` folder in your project that maintains a living
|
|
95
|
+
product-spec creates a `.product/` folder in your project that maintains a living view of the product across releases. Primary documents stay focused on the current state of thinking, while companion history documents preserve notable changes over time.
|
|
94
96
|
|
|
95
97
|
### Documents
|
|
96
98
|
|
|
97
99
|
| File | Purpose |
|
|
98
100
|
|------|---------|
|
|
99
101
|
| `.product/domain.md` | Industry context, target users, terminology, competitive landscape |
|
|
100
|
-
| `.product/press.md` |
|
|
101
|
-
| `.product/faq.md` |
|
|
102
|
-
| `.product/
|
|
102
|
+
| `.product/press.md` | Current press release and customer-facing promise |
|
|
103
|
+
| `.product/faq.md` | Current external and internal FAQs that challenge the promise |
|
|
104
|
+
| `.product/narrative.md` | Durable internal story: customer, tension, future state, and principles |
|
|
105
|
+
| `.product/roadmap.md` | Forward-looking sequencing of bets, phases, and dependencies |
|
|
106
|
+
| `.product/current-truth.md` | Maintained current-state product specification grounded by alignment |
|
|
107
|
+
| `.product/history/*.md` | Companion history files for key product artifacts |
|
|
103
108
|
|
|
104
109
|
### Workflow
|
|
105
110
|
|
|
106
111
|
```text
|
|
107
|
-
/product-spec-domain --> /product-spec-press --> /product-spec-faq --> /speckit.specify --> /product-spec-align
|
|
108
|
-
(context) (promise) (challenge)
|
|
112
|
+
/product-spec-domain --> /product-spec-press --> /product-spec-faq --> /product-spec-narrative --> /product-spec-roadmap --> /speckit.specify --> /product-spec-align
|
|
113
|
+
(context) (promise) (challenge) (story) (bets) (engineer) (reconcile)
|
|
109
114
|
```
|
|
110
115
|
|
|
111
116
|
1. `/product-spec-domain` establishes the domain context: who the users are, what problem matters, and who the alternatives are.
|
|
112
117
|
2. `/product-spec-press` writes a press release as if the next release has already shipped.
|
|
113
118
|
3. `/product-spec-faq` challenges the press release with hard questions from customers and stakeholders.
|
|
114
|
-
4. `/
|
|
115
|
-
5. `/product-spec-
|
|
119
|
+
4. `/product-spec-narrative` turns the promise and challenge into a durable internal product story.
|
|
120
|
+
5. `/product-spec-roadmap` sequences future bets and dependencies without replacing current truth.
|
|
121
|
+
6. `/speckit.specify` hands off the next bet to spec-kit for engineering specifications.
|
|
122
|
+
7. `/product-spec-align` reconciles product docs with the evolving engineering scope and maintains `.product/current-truth.md`.
|
|
116
123
|
|
|
117
124
|
## Key Concepts
|
|
118
125
|
|
|
119
|
-
###
|
|
126
|
+
### Current Truth
|
|
120
127
|
|
|
121
|
-
|
|
128
|
+
`current-truth.md` is the maintained answer to "what is actually true in the product today?" It is updated by alignment work and should stay distinct from the future-facing roadmap.
|
|
122
129
|
|
|
123
|
-
###
|
|
130
|
+
### Companion History
|
|
124
131
|
|
|
125
|
-
|
|
132
|
+
Primary product docs stay focused on the current state. Companion files under `.product/history/` preserve important prior decisions, revisions, and reasoning.
|
|
126
133
|
|
|
127
134
|
### Working Backwards
|
|
128
135
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Reconcile the .product folder with changes made in .specify specs — update
|
|
2
|
+
description: Reconcile the .product folder with changes made in .specify specs — update product-facing docs and maintain current truth.
|
|
3
3
|
handoffs:
|
|
4
4
|
- label: Update Press Release
|
|
5
5
|
agent: product-spec-press
|
|
@@ -10,6 +10,9 @@ handoffs:
|
|
|
10
10
|
- label: Update Domain
|
|
11
11
|
agent: product-spec-domain
|
|
12
12
|
prompt: Update domain knowledge based on what we learned during alignment
|
|
13
|
+
- label: Refine Roadmap
|
|
14
|
+
agent: product-spec-roadmap
|
|
15
|
+
prompt: Update the roadmap based on what alignment reveals about current truth and future bets
|
|
13
16
|
---
|
|
14
17
|
|
|
15
18
|
## User Input
|
|
@@ -26,12 +29,13 @@ You are reconciling the product documents in `.product/` with the engineering sp
|
|
|
26
29
|
|
|
27
30
|
### Pre-Execution
|
|
28
31
|
|
|
29
|
-
1. Load `.product/domain.md`, `.product/press.md`, `.product/faq.md`, and `.product/
|
|
32
|
+
1. Load `.product/domain.md`, `.product/press.md`, `.product/faq.md`, `.product/narrative.md`, `.product/roadmap.md`, and `.product/current-truth.md` when present.
|
|
30
33
|
2. Discover all `spec.md` files under `.specify/`.
|
|
31
|
-
3. Use `.product/templates/
|
|
34
|
+
3. Use `.product/templates/current-truth-template.md` if `current-truth.md` does not yet exist.
|
|
32
35
|
|
|
33
36
|
### Execution Flow
|
|
34
37
|
|
|
35
38
|
1. Compare press release promises against the actual engineering specs.
|
|
36
|
-
2. Update
|
|
37
|
-
3.
|
|
39
|
+
2. Update product-facing docs where needed, but treat `current-truth.md` as the canonical maintained statement of what is actually true in the product today.
|
|
40
|
+
3. Keep `roadmap.md` forward-looking and avoid letting roadmap intent overwrite current truth.
|
|
41
|
+
4. Preserve historical product narrative through companion history documents and produce an alignment report with grounded claims, drift, and missed opportunities.
|
|
@@ -24,9 +24,11 @@ You are creating or updating the domain knowledge document at `.product/domain.m
|
|
|
24
24
|
2. **Check for existing domain doc**: Read `.product/domain.md` if it exists.
|
|
25
25
|
- If it exists and has content beyond the template, this is an **update** — preserve existing content and merge new information.
|
|
26
26
|
- If it does not exist, load `.product/templates/domain-template.md` as the starting structure.
|
|
27
|
+
3. **Load related artifacts when present**: Read `.product/press.md`, `.product/faq.md`, `.product/narrative.md`, and `.product/current-truth.md` when they exist so the domain stays aligned with the rest of the product record.
|
|
27
28
|
|
|
28
29
|
### Execution Flow
|
|
29
30
|
|
|
30
31
|
1. **Parse user input**: The text after `/product-spec-domain` is the domain context the user wants to capture.
|
|
31
|
-
2. Create or update `.product/domain.md` using the
|
|
32
|
-
3.
|
|
32
|
+
2. Create or update `.product/domain.md` using the domain template's shared structure for current context, assumptions, key decisions, related artifacts, and references to companion history.
|
|
33
|
+
3. Preserve useful current-state content and direct older historical material into the companion history document when appropriate.
|
|
34
|
+
4. Suggest `/product-spec-press` as the next step when appropriate.
|
|
@@ -4,9 +4,9 @@ handoffs:
|
|
|
4
4
|
- label: Update Press Release
|
|
5
5
|
agent: product-spec-press
|
|
6
6
|
prompt: Update the press release based on what we learned from the FAQs
|
|
7
|
-
- label: Build
|
|
8
|
-
agent:
|
|
9
|
-
prompt: Create
|
|
7
|
+
- label: Build Narrative
|
|
8
|
+
agent: product-spec-narrative
|
|
9
|
+
prompt: Create the durable product narrative from the domain, press release, and FAQs
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
## User Input
|
|
@@ -25,10 +25,12 @@ You are creating or updating the FAQ document at `.product/faq.md`.
|
|
|
25
25
|
|
|
26
26
|
1. Ensure `.product/` exists.
|
|
27
27
|
2. Load `.product/domain.md` and `.product/press.md` when available.
|
|
28
|
-
3.
|
|
28
|
+
3. Load `.product/narrative.md`, `.product/roadmap.md`, and `.product/current-truth.md` when available so the FAQ work stays consistent with the rest of the product record.
|
|
29
|
+
4. If `.product/faq.md` is missing, start from `.product/templates/faq-template.md`.
|
|
29
30
|
|
|
30
31
|
### Execution Flow
|
|
31
32
|
|
|
32
33
|
1. The text after `/product-spec-faq` describes what to generate or update.
|
|
33
|
-
2. Produce external and internal FAQs that challenge the current press release honestly.
|
|
34
|
-
3.
|
|
34
|
+
2. Produce external and internal FAQs that challenge the current press release honestly, using the template's shared assumptions, key decisions, and related artifacts structure.
|
|
35
|
+
3. Keep the main FAQ document focused on the current release or product state and direct detailed historical changes to the FAQ history companion when appropriate.
|
|
36
|
+
4. Suggest `/product-spec-narrative` when the product story is ready to be synthesized, or `/speckit.specify` only after narrative and roadmap are sufficiently clear.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create or update the durable product narrative that connects domain context, the press release, and the FAQs.
|
|
3
|
+
handoffs:
|
|
4
|
+
- label: Build Roadmap
|
|
5
|
+
agent: product-spec-roadmap
|
|
6
|
+
prompt: Turn this narrative into an outcome-oriented roadmap
|
|
7
|
+
- label: Update FAQs
|
|
8
|
+
agent: product-spec-faq
|
|
9
|
+
prompt: Refine the FAQs using what we learned in the narrative
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## User Input
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
$ARGUMENTS
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
19
|
+
|
|
20
|
+
## Outline
|
|
21
|
+
|
|
22
|
+
You are creating or updating the durable narrative document at `.product/narrative.md`.
|
|
23
|
+
|
|
24
|
+
### Pre-Execution
|
|
25
|
+
|
|
26
|
+
1. Ensure `.product/` exists.
|
|
27
|
+
2. Load `.product/domain.md`, `.product/press.md`, and `.product/faq.md` when available.
|
|
28
|
+
3. Load `.product/roadmap.md` and `.product/current-truth.md` when present so the narrative stays grounded.
|
|
29
|
+
4. If `.product/narrative.md` does not exist, start from `.product/templates/narrative-template.md`.
|
|
30
|
+
|
|
31
|
+
### Execution Flow
|
|
32
|
+
|
|
33
|
+
1. Use the supplied input plus the available product artifacts to explain the customer, the problem, the future state, and the product promise in a durable way.
|
|
34
|
+
2. Write or update `.product/narrative.md` using the shared structure for assumptions, key decisions, related artifacts, and companion history references.
|
|
35
|
+
3. Keep the main narrative focused on the current strategic story and move historical detail into the companion history document when appropriate.
|
|
36
|
+
4. Suggest `/product-spec-roadmap` as the next step when the story is ready to be sequenced into bets.
|
|
@@ -4,6 +4,9 @@ handoffs:
|
|
|
4
4
|
- label: Write FAQs
|
|
5
5
|
agent: product-spec-faq
|
|
6
6
|
prompt: Write the FAQs that challenge this press release
|
|
7
|
+
- label: Build Narrative
|
|
8
|
+
agent: product-spec-narrative
|
|
9
|
+
prompt: Turn this press release and FAQ work into a durable product narrative
|
|
7
10
|
---
|
|
8
11
|
|
|
9
12
|
## User Input
|
|
@@ -22,10 +25,12 @@ You are creating or updating the press release document at `.product/press.md`.
|
|
|
22
25
|
|
|
23
26
|
1. Ensure `.product/` exists.
|
|
24
27
|
2. Load `.product/domain.md` if it exists.
|
|
25
|
-
3.
|
|
28
|
+
3. Load `.product/faq.md`, `.product/narrative.md`, and `.product/current-truth.md` when present to keep the current press release aligned with the broader product record.
|
|
29
|
+
4. Read `.product/press.md` if it exists; otherwise use `.product/templates/press-template.md`.
|
|
26
30
|
|
|
27
31
|
### Execution Flow
|
|
28
32
|
|
|
29
33
|
1. The text after `/product-spec-press` describes what to write.
|
|
30
|
-
2. Create or update the current upcoming press release using Amazon's Working Backwards format.
|
|
31
|
-
3.
|
|
34
|
+
2. Create or update the current upcoming press release using Amazon's Working Backwards format and the template's shared assumptions, key decisions, and related artifacts structure.
|
|
35
|
+
3. Keep the main press document focused on the active current-state narrative and direct detailed historical changes to the press history companion when appropriate.
|
|
36
|
+
4. Suggest `/product-spec-faq` when the press release is ready to be challenged, and `/product-spec-narrative` when the promise is ready to become a durable internal story.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create or update the forward-looking roadmap that sequences customer outcomes and bets.
|
|
3
|
+
handoffs:
|
|
4
|
+
- label: Build Specification
|
|
5
|
+
agent: speckit.specify
|
|
6
|
+
prompt: Create a technical spec for the next roadmap bet. I want to build...
|
|
7
|
+
- label: Update Narrative
|
|
8
|
+
agent: product-spec-narrative
|
|
9
|
+
prompt: Refine the narrative based on roadmap changes
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## User Input
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
$ARGUMENTS
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
19
|
+
|
|
20
|
+
## Outline
|
|
21
|
+
|
|
22
|
+
You are creating or updating the roadmap document at `.product/roadmap.md`.
|
|
23
|
+
|
|
24
|
+
### Pre-Execution
|
|
25
|
+
|
|
26
|
+
1. Ensure `.product/` exists.
|
|
27
|
+
2. Load `.product/narrative.md`, `.product/faq.md`, `.product/current-truth.md`, and any relevant specs when available.
|
|
28
|
+
3. If `.product/roadmap.md` does not exist, start from `.product/templates/roadmap-template.md`.
|
|
29
|
+
|
|
30
|
+
### Execution Flow
|
|
31
|
+
|
|
32
|
+
1. Use the narrative and supporting artifacts to organize work into phased customer outcomes, committed bets, exploratory work, and deferred opportunities.
|
|
33
|
+
2. Write or update `.product/roadmap.md` using the shared structure for assumptions, key decisions, related artifacts, and companion history references.
|
|
34
|
+
3. Keep the roadmap future-facing and do not let it replace the current-state role of `current-truth.md`.
|
|
35
|
+
4. Suggest `/speckit.specify` when the next bet is ready for engineering specification.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Reconcile the .product folder with changes made in .specify specs — update
|
|
2
|
+
description: Reconcile the .product folder with changes made in .specify specs — update product-facing docs and maintain current truth.
|
|
3
3
|
handoffs:
|
|
4
4
|
- label: Update Press Release
|
|
5
5
|
agent: product-spec-press
|
|
@@ -10,6 +10,9 @@ handoffs:
|
|
|
10
10
|
- label: Update Domain
|
|
11
11
|
agent: product-spec-domain
|
|
12
12
|
prompt: Update domain knowledge based on what we learned during alignment
|
|
13
|
+
- label: Refine Roadmap
|
|
14
|
+
agent: product-spec-roadmap
|
|
15
|
+
prompt: Update the roadmap based on alignment findings and the current truth
|
|
13
16
|
---
|
|
14
17
|
|
|
15
18
|
## User Input
|
|
@@ -23,3 +26,15 @@ You **MUST** consider the user input before proceeding (if not empty).
|
|
|
23
26
|
## Outline
|
|
24
27
|
|
|
25
28
|
You are reconciling `.product/` with `.specify/` specs so product-facing documents stay aligned with the engineering scope.
|
|
29
|
+
|
|
30
|
+
### Pre-Execution
|
|
31
|
+
|
|
32
|
+
1. Load `.product/domain.md`, `.product/press.md`, `.product/faq.md`, `.product/narrative.md`, `.product/roadmap.md`, and `.product/current-truth.md` when present.
|
|
33
|
+
2. Discover relevant engineering specs and implementation outputs.
|
|
34
|
+
3. Use `.product/templates/current-truth-template.md` if `current-truth.md` does not yet exist.
|
|
35
|
+
|
|
36
|
+
### Execution Flow
|
|
37
|
+
|
|
38
|
+
1. Compare promised product language with implemented or specified reality.
|
|
39
|
+
2. Update `current-truth.md` as the canonical current-state product specification.
|
|
40
|
+
3. Adjust related docs as needed without collapsing roadmap intent into current truth.
|
|
@@ -17,3 +17,15 @@ You **MUST** consider the user input before proceeding (if not empty).
|
|
|
17
17
|
## Outline
|
|
18
18
|
|
|
19
19
|
You are creating or updating the domain knowledge document at `.product/domain.md`. This document captures the industry context, problem space, target users, terminology, and competitive landscape that inform all product decisions.
|
|
20
|
+
|
|
21
|
+
### Pre-Execution
|
|
22
|
+
|
|
23
|
+
1. Ensure `.product/` exists.
|
|
24
|
+
2. Read `.product/domain.md` if it exists; otherwise start from `.product/templates/domain-template.md`.
|
|
25
|
+
3. Load `.product/press.md`, `.product/faq.md`, `.product/narrative.md`, and `.product/current-truth.md` when present.
|
|
26
|
+
|
|
27
|
+
### Execution Flow
|
|
28
|
+
|
|
29
|
+
1. Use the user input as new market or customer context.
|
|
30
|
+
2. Update `.product/domain.md` with current context, assumptions, key decisions, related artifacts, and companion history references.
|
|
31
|
+
3. Preserve still-valid current-state content and suggest `/product-spec-press` as the next step.
|
|
@@ -4,9 +4,9 @@ handoffs:
|
|
|
4
4
|
- label: Update Press Release
|
|
5
5
|
agent: product-spec-press
|
|
6
6
|
prompt: Update the press release based on what we learned from the FAQs
|
|
7
|
-
- label: Build
|
|
8
|
-
agent:
|
|
9
|
-
prompt: Create
|
|
7
|
+
- label: Build Narrative
|
|
8
|
+
agent: product-spec-narrative
|
|
9
|
+
prompt: Create the durable product narrative from the domain, press release, and FAQs
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
## User Input
|
|
@@ -19,4 +19,18 @@ You **MUST** consider the user input before proceeding (if not empty).
|
|
|
19
19
|
|
|
20
20
|
## Outline
|
|
21
21
|
|
|
22
|
-
You are creating or updating the FAQ document at `.product/faq.md
|
|
22
|
+
You are creating or updating the FAQ document at `.product/faq.md`.
|
|
23
|
+
|
|
24
|
+
### Pre-Execution
|
|
25
|
+
|
|
26
|
+
1. Ensure `.product/` exists.
|
|
27
|
+
2. Load `.product/domain.md` and `.product/press.md` when available.
|
|
28
|
+
3. Load `.product/narrative.md`, `.product/roadmap.md`, and `.product/current-truth.md` when available so the FAQ work stays consistent with the rest of the product record.
|
|
29
|
+
4. If `.product/faq.md` is missing, start from `.product/templates/faq-template.md`.
|
|
30
|
+
|
|
31
|
+
### Execution Flow
|
|
32
|
+
|
|
33
|
+
1. The text after `/product-spec-faq` describes what to generate or update.
|
|
34
|
+
2. Produce external and internal FAQs that challenge the current press release honestly, using the template's shared assumptions, key decisions, and related artifacts structure.
|
|
35
|
+
3. Keep the main FAQ document focused on the current release or product state and direct detailed historical changes to the FAQ history companion when appropriate.
|
|
36
|
+
4. Suggest `/product-spec-narrative` when the product story is ready to be synthesized, or `/speckit.specify` only after narrative and roadmap are sufficiently clear.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create or update the durable product narrative that connects domain context, the press release, and the FAQs.
|
|
3
|
+
handoffs:
|
|
4
|
+
- label: Build Roadmap
|
|
5
|
+
agent: product-spec-roadmap
|
|
6
|
+
prompt: Turn this narrative into an outcome-oriented roadmap
|
|
7
|
+
- label: Update FAQs
|
|
8
|
+
agent: product-spec-faq
|
|
9
|
+
prompt: Refine the FAQs using what we learned in the narrative
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## User Input
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
$ARGUMENTS
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
19
|
+
|
|
20
|
+
## Outline
|
|
21
|
+
|
|
22
|
+
You are creating or updating the durable product narrative at `.product/narrative.md`.
|
|
23
|
+
|
|
24
|
+
### Pre-Execution
|
|
25
|
+
|
|
26
|
+
1. Ensure `.product/` exists.
|
|
27
|
+
2. Load `.product/domain.md`, `.product/press.md`, `.product/faq.md`, `.product/roadmap.md`, and `.product/current-truth.md` when available.
|
|
28
|
+
3. If `.product/narrative.md` is missing, start from `.product/templates/narrative-template.md`.
|
|
29
|
+
|
|
30
|
+
### Execution Flow
|
|
31
|
+
|
|
32
|
+
1. Synthesize the available product artifacts into a durable internal story.
|
|
33
|
+
2. Update `.product/narrative.md` with current context, assumptions, key decisions, related artifacts, and history references.
|
|
34
|
+
3. Suggest `/product-spec-roadmap` when the narrative is ready to become a roadmap.
|
|
@@ -4,6 +4,9 @@ handoffs:
|
|
|
4
4
|
- label: Write FAQs
|
|
5
5
|
agent: product-spec-faq
|
|
6
6
|
prompt: Write the FAQs that challenge this press release
|
|
7
|
+
- label: Build Narrative
|
|
8
|
+
agent: product-spec-narrative
|
|
9
|
+
prompt: Turn this press release and FAQ work into a durable product narrative
|
|
7
10
|
---
|
|
8
11
|
|
|
9
12
|
## User Input
|
|
@@ -16,4 +19,18 @@ You **MUST** consider the user input before proceeding (if not empty).
|
|
|
16
19
|
|
|
17
20
|
## Outline
|
|
18
21
|
|
|
19
|
-
You are creating or updating the press release document at `.product/press.md
|
|
22
|
+
You are creating or updating the press release document at `.product/press.md`.
|
|
23
|
+
|
|
24
|
+
### Pre-Execution
|
|
25
|
+
|
|
26
|
+
1. Ensure `.product/` exists.
|
|
27
|
+
2. Load `.product/domain.md` if it exists.
|
|
28
|
+
3. Load `.product/faq.md`, `.product/narrative.md`, and `.product/current-truth.md` when present to keep the current press release aligned with the broader product record.
|
|
29
|
+
4. Read `.product/press.md` if it exists; otherwise use `.product/templates/press-template.md`.
|
|
30
|
+
|
|
31
|
+
### Execution Flow
|
|
32
|
+
|
|
33
|
+
1. The text after `/product-spec-press` describes what to write.
|
|
34
|
+
2. Create or update the current upcoming press release using Amazon's Working Backwards format and the template's shared assumptions, key decisions, and related artifacts structure.
|
|
35
|
+
3. Keep the main press document focused on the active current-state narrative and direct detailed historical changes to the press history companion when appropriate.
|
|
36
|
+
4. Suggest `/product-spec-faq` when the press release is ready to be challenged, and `/product-spec-narrative` when the promise is ready to become a durable internal story.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create or update the forward-looking roadmap that sequences customer outcomes and bets.
|
|
3
|
+
handoffs:
|
|
4
|
+
- label: Build Specification
|
|
5
|
+
agent: speckit.specify
|
|
6
|
+
prompt: Create a technical spec for the next roadmap bet. I want to build...
|
|
7
|
+
- label: Update Narrative
|
|
8
|
+
agent: product-spec-narrative
|
|
9
|
+
prompt: Refine the narrative based on roadmap changes
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## User Input
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
$ARGUMENTS
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
19
|
+
|
|
20
|
+
## Outline
|
|
21
|
+
|
|
22
|
+
You are creating or updating the roadmap document at `.product/roadmap.md`.
|
|
23
|
+
|
|
24
|
+
### Pre-Execution
|
|
25
|
+
|
|
26
|
+
1. Ensure `.product/` exists.
|
|
27
|
+
2. Load `.product/narrative.md`, `.product/faq.md`, `.product/current-truth.md`, and relevant specs when available.
|
|
28
|
+
3. If `.product/roadmap.md` is missing, start from `.product/templates/roadmap-template.md`.
|
|
29
|
+
|
|
30
|
+
### Execution Flow
|
|
31
|
+
|
|
32
|
+
1. Turn the narrative into phased, outcome-oriented bets.
|
|
33
|
+
2. Update `.product/roadmap.md` with assumptions, key decisions, related artifacts, and history references.
|
|
34
|
+
3. Keep the roadmap future-facing and suggest `/speckit.specify` when the next bet is ready.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Current Truth: [PROJECT_NAME]
|
|
2
|
+
|
|
3
|
+
**Last Updated**: [DATE]
|
|
4
|
+
**Companion History**: [.product/history/current-truth-history.md](.product/history/current-truth-history.md)
|
|
5
|
+
|
|
6
|
+
## Product Summary
|
|
7
|
+
|
|
8
|
+
[2-3 sentences describing what is currently true of the product today.]
|
|
9
|
+
|
|
10
|
+
## Active Capabilities
|
|
11
|
+
|
|
12
|
+
| Capability | Who It Serves | Current State | Source |
|
|
13
|
+
|------------|---------------|---------------|--------|
|
|
14
|
+
| [Capability] | [User or team] | [Shipped / Supported / Partial] | [Spec, release, or alignment source] |
|
|
15
|
+
|
|
16
|
+
## Known Boundaries
|
|
17
|
+
|
|
18
|
+
- [Important limitation that is currently true]
|
|
19
|
+
- [Important behavior that is intentionally not supported today]
|
|
20
|
+
|
|
21
|
+
## Source Specs and Evidence
|
|
22
|
+
|
|
23
|
+
- [Spec or engineering artifact that supports a current truth]
|
|
24
|
+
- [Alignment note or release artifact that confirms current behavior]
|
|
25
|
+
|
|
26
|
+
## Recent Alignment Notes
|
|
27
|
+
|
|
28
|
+
- [What changed in the current truth during the latest reconciliation]
|
|
29
|
+
- [What was clarified or corrected]
|
|
30
|
+
|
|
31
|
+
## Assumptions
|
|
32
|
+
|
|
33
|
+
- [Assumption used while reconciling current product truth]
|
|
34
|
+
- [Assumption that should be revisited when implementation changes]
|
|
35
|
+
|
|
36
|
+
## Key Decisions
|
|
37
|
+
|
|
38
|
+
| Decision | Why It Matters | Current Direction |
|
|
39
|
+
|----------|----------------|-------------------|
|
|
40
|
+
| [Decision] | [Why it shapes the current-state view] | [Current choice] |
|
|
41
|
+
|
|
42
|
+
## Related Artifacts
|
|
43
|
+
|
|
44
|
+
- [Domain](../domain.md)
|
|
45
|
+
- [Press Release](../press.md)
|
|
46
|
+
- [FAQ](../faq.md)
|
|
47
|
+
- [Narrative](../narrative.md)
|
|
48
|
+
- [Roadmap](../roadmap.md)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Domain Knowledge: [PROJECT_NAME]
|
|
2
2
|
|
|
3
3
|
**Last Updated**: [DATE]
|
|
4
|
+
**Companion History**: [.product/history/domain-history.md](.product/history/domain-history.md)
|
|
4
5
|
|
|
5
6
|
## Industry Context
|
|
6
7
|
|
|
@@ -47,6 +48,25 @@
|
|
|
47
48
|
- [How success is measured in this domain — e.g., adoption rate, time-to-value, retention]
|
|
48
49
|
- [Industry benchmarks or standards to aim for]
|
|
49
50
|
|
|
51
|
+
## Assumptions
|
|
52
|
+
|
|
53
|
+
- [Assumption about the market, buyer, or environment that currently informs product choices]
|
|
54
|
+
- [Assumption that should be revisited if customer behavior or competitive conditions change]
|
|
55
|
+
|
|
56
|
+
## Key Decisions
|
|
57
|
+
|
|
58
|
+
| Decision | Why It Matters | Current Direction |
|
|
59
|
+
|----------|----------------|-------------------|
|
|
60
|
+
| [Decision] | [Why it shapes product thinking] | [What is currently true] |
|
|
61
|
+
|
|
62
|
+
## Related Artifacts
|
|
63
|
+
|
|
64
|
+
- [Press Release](../press.md)
|
|
65
|
+
- [FAQ](../faq.md)
|
|
66
|
+
- [Narrative](../narrative.md)
|
|
67
|
+
- [Roadmap](../roadmap.md)
|
|
68
|
+
- [Current Truth](../current-truth.md)
|
|
69
|
+
|
|
50
70
|
## Open Questions
|
|
51
71
|
|
|
52
|
-
- [Unresolved domain
|
|
72
|
+
- [Unresolved domain question that may affect future product direction]
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
# Frequently Asked Questions: [PROJECT_NAME]
|
|
2
2
|
|
|
3
3
|
**Last Updated**: [DATE]
|
|
4
|
-
|
|
5
|
-
---
|
|
4
|
+
**Companion History**: [.product/history/faq-history.md](.product/history/faq-history.md)
|
|
6
5
|
|
|
7
6
|
## [RELEASE_NAME] — [TARGET_DATE] *(upcoming)*
|
|
8
7
|
|
|
@@ -36,3 +35,22 @@ A: [Identify dependencies, risks, and mitigation strategies.]
|
|
|
36
35
|
|
|
37
36
|
**Q: [Question about timeline or resources]**
|
|
38
37
|
A: [Honest assessment of what it takes to deliver.]
|
|
38
|
+
|
|
39
|
+
## Assumptions
|
|
40
|
+
|
|
41
|
+
- [Assumption about customer expectations or stakeholder constraints]
|
|
42
|
+
- [Assumption worth validating during roadmap or specification work]
|
|
43
|
+
|
|
44
|
+
## Key Decisions
|
|
45
|
+
|
|
46
|
+
| Decision | Why It Matters | Current Direction |
|
|
47
|
+
|----------|----------------|-------------------|
|
|
48
|
+
| [Decision] | [Why it shapes the answers you are willing to stand behind] | [Current answer] |
|
|
49
|
+
|
|
50
|
+
## Related Artifacts
|
|
51
|
+
|
|
52
|
+
- [Domain](../domain.md)
|
|
53
|
+
- [Press Release](../press.md)
|
|
54
|
+
- [Narrative](../narrative.md)
|
|
55
|
+
- [Roadmap](../roadmap.md)
|
|
56
|
+
- [Current Truth](../current-truth.md)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Product Narrative: [PROJECT_NAME]
|
|
2
|
+
|
|
3
|
+
**Last Updated**: [DATE]
|
|
4
|
+
**Companion History**: [.product/history/narrative-history.md](.product/history/narrative-history.md)
|
|
5
|
+
|
|
6
|
+
## Customer
|
|
7
|
+
|
|
8
|
+
[Who is the primary customer or user this story is for? What situation are they in?]
|
|
9
|
+
|
|
10
|
+
## Core Tension
|
|
11
|
+
|
|
12
|
+
[What painful or high-stakes problem keeps showing up for this customer? Why does it matter now?]
|
|
13
|
+
|
|
14
|
+
## Future State
|
|
15
|
+
|
|
16
|
+
[What changed future are you trying to create for the customer? Describe it in customer terms.]
|
|
17
|
+
|
|
18
|
+
## Product Promise
|
|
19
|
+
|
|
20
|
+
[What promise is the product making if it succeeds?]
|
|
21
|
+
|
|
22
|
+
## Guiding Principles
|
|
23
|
+
|
|
24
|
+
- [Principle that should influence roadmap tradeoffs]
|
|
25
|
+
- [Principle that should remain true across releases]
|
|
26
|
+
|
|
27
|
+
## Non-Goals
|
|
28
|
+
|
|
29
|
+
- [What this product or initiative is explicitly not trying to do]
|
|
30
|
+
- [What tempting adjacent area is out of scope for now]
|
|
31
|
+
|
|
32
|
+
## Assumptions
|
|
33
|
+
|
|
34
|
+
- [Important assumption behind the narrative]
|
|
35
|
+
- [Assumption that could change the story if proven wrong]
|
|
36
|
+
|
|
37
|
+
## Key Decisions
|
|
38
|
+
|
|
39
|
+
| Decision | Why It Matters | Current Direction |
|
|
40
|
+
|----------|----------------|-------------------|
|
|
41
|
+
| [Decision] | [Why it shapes the product story] | [Current choice] |
|
|
42
|
+
|
|
43
|
+
## Related Artifacts
|
|
44
|
+
|
|
45
|
+
- [Domain](../domain.md)
|
|
46
|
+
- [Press Release](../press.md)
|
|
47
|
+
- [FAQ](../faq.md)
|
|
48
|
+
- [Roadmap](../roadmap.md)
|
|
49
|
+
- [Current Truth](../current-truth.md)
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# Press Releases: [PROJECT_NAME]
|
|
2
2
|
|
|
3
|
+
**Last Updated**: [DATE]
|
|
4
|
+
**Companion History**: [.product/history/press-history.md](.product/history/press-history.md)
|
|
5
|
+
|
|
3
6
|
<!--
|
|
4
|
-
|
|
7
|
+
Keep the main document focused on the active upcoming or current press release.
|
|
8
|
+
Use the companion history file for deeper archival notes and superseded drafts.
|
|
5
9
|
-->
|
|
6
10
|
|
|
7
|
-
---
|
|
8
|
-
|
|
9
11
|
## [RELEASE_NAME] — [TARGET_DATE] *(upcoming)*
|
|
10
12
|
|
|
11
13
|
**[CITY, STATE]** — [One-sentence opening that names the customer segment and the key benefit they now have. This is the hook.]
|
|
@@ -24,3 +26,22 @@
|
|
|
24
26
|
- **[Benefit 1]**: [One sentence explaining the customer value]
|
|
25
27
|
- **[Benefit 2]**: [One sentence explaining the customer value]
|
|
26
28
|
- **[Benefit 3]**: [One sentence explaining the customer value]
|
|
29
|
+
|
|
30
|
+
## Assumptions
|
|
31
|
+
|
|
32
|
+
- [Assumption about customer need, urgency, or launch context]
|
|
33
|
+
- [Assumption that should be revisited during FAQ or alignment]
|
|
34
|
+
|
|
35
|
+
## Key Decisions
|
|
36
|
+
|
|
37
|
+
| Decision | Why It Matters | Current Direction |
|
|
38
|
+
|----------|----------------|-------------------|
|
|
39
|
+
| [Decision] | [Why it shapes the press release promise] | [Current choice] |
|
|
40
|
+
|
|
41
|
+
## Related Artifacts
|
|
42
|
+
|
|
43
|
+
- [Domain](../domain.md)
|
|
44
|
+
- [FAQ](../faq.md)
|
|
45
|
+
- [Narrative](../narrative.md)
|
|
46
|
+
- [Roadmap](../roadmap.md)
|
|
47
|
+
- [Current Truth](../current-truth.md)
|
|
@@ -1,34 +1,5 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Legacy Notice: requirements-template
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This template has been superseded by `current-truth-template.md`.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
[2-3 sentences describing what the product does, who it's for, and the core value proposition.]
|
|
8
|
-
|
|
9
|
-
## Use Cases
|
|
10
|
-
|
|
11
|
-
### UC-001: [Use Case Name]
|
|
12
|
-
|
|
13
|
-
- **Actor**: [Who performs this]
|
|
14
|
-
- **Goal**: [What they want to accomplish]
|
|
15
|
-
- **Description**: [How the product supports this goal, end to end]
|
|
16
|
-
- **Status**: [Complete | Partial | Planned]
|
|
17
|
-
|
|
18
|
-
## Functional Summary
|
|
19
|
-
|
|
20
|
-
### [Functional Area 1]
|
|
21
|
-
|
|
22
|
-
| Capability | Description | Status |
|
|
23
|
-
|-----------|-------------|--------|
|
|
24
|
-
| [Capability] | [What it does from the user's perspective] | [Shipped / In Progress / Planned] |
|
|
25
|
-
|
|
26
|
-
## Cross-Cutting Concerns
|
|
27
|
-
|
|
28
|
-
- **[Concern]**: [How it's handled across the product]
|
|
29
|
-
|
|
30
|
-
## Changelog
|
|
31
|
-
|
|
32
|
-
| Date | Change | Source |
|
|
33
|
-
|------|--------|--------|
|
|
34
|
-
| [DATE] | [What changed in this document] | [Which spec or release triggered the update] |
|
|
5
|
+
Use `.product/current-truth.md` as the living current-state product specification maintained by alignment work. Keep future sequencing and prioritization in `.product/roadmap.md`.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Product Roadmap: [PROJECT_NAME]
|
|
2
|
+
|
|
3
|
+
**Last Updated**: [DATE]
|
|
4
|
+
**Companion History**: [.product/history/roadmap-history.md](.product/history/roadmap-history.md)
|
|
5
|
+
|
|
6
|
+
## Roadmap Summary
|
|
7
|
+
|
|
8
|
+
[2-3 sentences describing what customer outcomes the roadmap is pursuing and why now.]
|
|
9
|
+
|
|
10
|
+
## Committed Bets
|
|
11
|
+
|
|
12
|
+
| Initiative | Customer Outcome | Phase | Confidence | Dependencies |
|
|
13
|
+
|------------|------------------|-------|------------|--------------|
|
|
14
|
+
| [Initiative] | [Outcome] | [Now / Next] | [High / Medium / Low] | [Dependency] |
|
|
15
|
+
|
|
16
|
+
## Exploratory Work
|
|
17
|
+
|
|
18
|
+
| Initiative | Question Being Explored | Confidence | Trigger for Commitment |
|
|
19
|
+
|------------|--------------------------|------------|------------------------|
|
|
20
|
+
| [Initiative] | [Unknown to resolve] | [Medium / Low] | [What would make this real] |
|
|
21
|
+
|
|
22
|
+
## Deferred Opportunities
|
|
23
|
+
|
|
24
|
+
| Opportunity | Why Deferred | Revisit Signal |
|
|
25
|
+
|-------------|--------------|----------------|
|
|
26
|
+
| [Opportunity] | [Why now is not the time] | [What would prompt reconsideration] |
|
|
27
|
+
|
|
28
|
+
## Sequencing Rationale
|
|
29
|
+
|
|
30
|
+
- [Why this order makes sense for customer value]
|
|
31
|
+
- [Key tradeoff or dependency influencing the sequence]
|
|
32
|
+
|
|
33
|
+
## Assumptions
|
|
34
|
+
|
|
35
|
+
- [Assumption behind roadmap sequencing]
|
|
36
|
+
- [Assumption that could reorder priorities]
|
|
37
|
+
|
|
38
|
+
## Key Decisions
|
|
39
|
+
|
|
40
|
+
| Decision | Why It Matters | Current Direction |
|
|
41
|
+
|----------|----------------|-------------------|
|
|
42
|
+
| [Decision] | [Why it shapes prioritization] | [Current choice] |
|
|
43
|
+
|
|
44
|
+
## Related Artifacts
|
|
45
|
+
|
|
46
|
+
- [Narrative](../narrative.md)
|
|
47
|
+
- [FAQ](../faq.md)
|
|
48
|
+
- [Current Truth](../current-truth.md)
|
|
49
|
+
- [Engineering Specs](../../specs/)
|
package/dist/adapters/claude.js
CHANGED
|
@@ -7,7 +7,7 @@ async function describeHealthIssues(context) {
|
|
|
7
7
|
issues.push({
|
|
8
8
|
code: "CLAUDE_MISSING_FILE",
|
|
9
9
|
severity: "error",
|
|
10
|
-
message: `Missing Claude Code asset ${asset.targetPath}`,
|
|
10
|
+
message: `Missing Claude Code workflow asset ${asset.targetPath}`,
|
|
11
11
|
path: asset.targetPath
|
|
12
12
|
});
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEpE,KAAK,UAAU,oBAAoB,CAAC,OAA6B;IAC/D,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEpE,KAAK,UAAU,oBAAoB,CAAC,OAA6B;IAC/D,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,sCAAsC,KAAK,CAAC,UAAU,EAAE;gBACjE,IAAI,EAAE,KAAK,CAAC,UAAU;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,GAAG,EAAE,QAAQ;IACb,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,kBAAkB;IAC9B,oBAAoB,CAAC,QAAgB;QACnC,OAAO,oBAAoB,QAAQ,EAAE,CAAC;IACxC,CAAC;IACD,oBAAoB;CACrB,CAAC"}
|
package/dist/adapters/codex.js
CHANGED
|
@@ -7,7 +7,7 @@ async function describeHealthIssues(context) {
|
|
|
7
7
|
issues.push({
|
|
8
8
|
code: "CODEX_MISSING_FILE",
|
|
9
9
|
severity: "error",
|
|
10
|
-
message: `Missing Codex asset ${asset.targetPath}`,
|
|
10
|
+
message: `Missing Codex workflow asset ${asset.targetPath}`,
|
|
11
11
|
path: asset.targetPath
|
|
12
12
|
});
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEpE,KAAK,UAAU,oBAAoB,CAAC,OAA6B;IAC/D,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,oBAAoB;gBAC1B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEpE,KAAK,UAAU,oBAAoB,CAAC,OAA6B;IAC/D,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,oBAAoB;gBAC1B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,gCAAgC,KAAK,CAAC,UAAU,EAAE;gBAC3D,IAAI,EAAE,KAAK,CAAC,UAAU;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,GAAG,EAAE,OAAO;IACZ,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,iBAAiB;IAC7B,oBAAoB,CAAC,QAAgB;QACnC,OAAO,mBAAmB,QAAQ,EAAE,CAAC;IACvC,CAAC;IACD,oBAAoB;CACrB,CAAC"}
|
|
@@ -1,9 +1,26 @@
|
|
|
1
|
-
const assistantCommands = [
|
|
1
|
+
const assistantCommands = [
|
|
2
|
+
"product-spec-domain.md",
|
|
3
|
+
"product-spec-press.md",
|
|
4
|
+
"product-spec-faq.md",
|
|
5
|
+
"product-spec-narrative.md",
|
|
6
|
+
"product-spec-roadmap.md",
|
|
7
|
+
"product-spec-align.md"
|
|
8
|
+
];
|
|
2
9
|
const sharedTemplates = [
|
|
3
10
|
"domain-template.md",
|
|
4
11
|
"press-template.md",
|
|
5
12
|
"faq-template.md",
|
|
6
|
-
"
|
|
13
|
+
"narrative-template.md",
|
|
14
|
+
"roadmap-template.md",
|
|
15
|
+
"current-truth-template.md"
|
|
16
|
+
];
|
|
17
|
+
const historyTemplates = [
|
|
18
|
+
"domain-history-template.md",
|
|
19
|
+
"press-history-template.md",
|
|
20
|
+
"faq-history-template.md",
|
|
21
|
+
"narrative-history-template.md",
|
|
22
|
+
"roadmap-history-template.md",
|
|
23
|
+
"current-truth-history-template.md"
|
|
7
24
|
];
|
|
8
25
|
function buildAssistantAssets(target, commandDir) {
|
|
9
26
|
return assistantCommands.map((fileName) => ({
|
|
@@ -15,13 +32,20 @@ function buildAssistantAssets(target, commandDir) {
|
|
|
15
32
|
}));
|
|
16
33
|
}
|
|
17
34
|
function buildSharedAssets() {
|
|
18
|
-
|
|
35
|
+
const primaryAssets = sharedTemplates.map((fileName) => buildSharedAsset(fileName, "product-template"));
|
|
36
|
+
const historyAssets = historyTemplates.map((fileName) => buildSharedAsset(fileName, "product-history-template", "history"));
|
|
37
|
+
return [...primaryAssets, ...historyAssets];
|
|
38
|
+
}
|
|
39
|
+
function buildSharedAsset(fileName, category, subdir) {
|
|
40
|
+
const relativeDir = subdir ? `assets/product/templates/${subdir}` : "assets/product/templates";
|
|
41
|
+
const targetDir = subdir ? `.product/templates/${subdir}` : ".product/templates";
|
|
42
|
+
return {
|
|
19
43
|
id: `shared/${fileName.replace(/\.md$/, "")}`,
|
|
20
|
-
category
|
|
44
|
+
category,
|
|
21
45
|
target: "shared",
|
|
22
|
-
sourcePath:
|
|
23
|
-
targetPath:
|
|
24
|
-
}
|
|
46
|
+
sourcePath: `${relativeDir}/${fileName}`,
|
|
47
|
+
targetPath: `${targetDir}/${fileName}`
|
|
48
|
+
};
|
|
25
49
|
}
|
|
26
50
|
export const assistantAssetRegistry = {
|
|
27
51
|
claude: buildAssistantAssets("claude", ".claude/commands"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/assets/registry.ts"],"names":[],"mappings":"AAUA,MAAM,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/assets/registry.ts"],"names":[],"mappings":"AAUA,MAAM,iBAAiB,GAAG;IACxB,wBAAwB;IACxB,uBAAuB;IACvB,qBAAqB;IACrB,2BAA2B;IAC3B,yBAAyB;IACzB,uBAAuB;CACxB,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,uBAAuB;IACvB,qBAAqB;IACrB,2BAA2B;CAC5B,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACvB,4BAA4B;IAC5B,2BAA2B;IAC3B,yBAAyB;IACzB,+BAA+B;IAC/B,6BAA6B;IAC7B,mCAAmC;CACpC,CAAC;AAEF,SAAS,oBAAoB,CAAC,MAAuB,EAAE,UAAkB;IACvE,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1C,EAAE,EAAE,GAAG,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;QAChD,QAAQ,EAAE,mBAAmB;QAC7B,MAAM;QACN,UAAU,EAAE,UAAU,MAAM,aAAa,QAAQ,EAAE;QACnD,UAAU,EAAE,GAAG,UAAU,IAAI,QAAQ,EAAE;KACxC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACxG,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACtD,gBAAgB,CAAC,QAAQ,EAAE,0BAA0B,EAAE,SAAS,CAAC,CAClE,CAAC;IAEF,OAAO,CAAC,GAAG,aAAa,EAAE,GAAG,aAAa,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAgB,EAChB,QAAuB,EACvB,MAAe;IAEf,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC;IAC/F,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAEjF,OAAO;QACL,EAAE,EAAE,UAAU,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;QAC7C,QAAQ;QACR,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,GAAG,WAAW,IAAI,QAAQ,EAAE;QACxC,UAAU,EAAE,GAAG,SAAS,IAAI,QAAQ,EAAE;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAA+C;IAChF,MAAM,EAAE,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IAC1D,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,CAAC;CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,EAAE,CAAC;AAEvD,MAAM,UAAU,yBAAyB,CAAC,MAAuB;IAC/D,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -57,7 +57,10 @@ export async function runAdd(options) {
|
|
|
57
57
|
changedTargets,
|
|
58
58
|
skippedTargets,
|
|
59
59
|
files,
|
|
60
|
-
notes: [
|
|
60
|
+
notes: [
|
|
61
|
+
"Run `product-spec check` to validate the installed integrations.",
|
|
62
|
+
"Installed workflow: domain -> press -> faq -> narrative -> roadmap -> speckit* -> align -> current-truth."
|
|
63
|
+
]
|
|
61
64
|
};
|
|
62
65
|
}
|
|
63
66
|
//# sourceMappingURL=add.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/core/orchestration/add.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/core/orchestration/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,7 +66,7 @@ export async function runCheck(options) {
|
|
|
66
66
|
? "No action needed."
|
|
67
67
|
: status === "missing"
|
|
68
68
|
? `Run \`product-spec add ${target}\` to install this integration.`
|
|
69
|
-
: `Run \`product-spec add ${target}\` to refresh managed files, then \`product-spec check ${target}\` again
|
|
69
|
+
: `Run \`product-spec add ${target}\` to refresh managed files, then \`product-spec check ${target}\` again. The canonical workflow ends with \`current-truth.md\` maintained by \`align\`.`;
|
|
70
70
|
reports.push({
|
|
71
71
|
target,
|
|
72
72
|
status,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/core/orchestration/check.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/core/orchestration/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,8 @@ export async function runDoctor(options) {
|
|
|
10
10
|
`Status: ${report.status}`,
|
|
11
11
|
`Manifest aligned: ${report.manifestAligned ? "yes" : "no"}`,
|
|
12
12
|
issueList,
|
|
13
|
-
`Recommended action: ${report.recommendedAction}
|
|
13
|
+
`Recommended action: ${report.recommendedAction}`,
|
|
14
|
+
"Workflow reminder: domain -> press -> faq -> narrative -> roadmap -> speckit* -> align -> current-truth"
|
|
14
15
|
].join("\n");
|
|
15
16
|
});
|
|
16
17
|
return { details };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/core/orchestration/doctor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWtC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAsB;IACpD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACjD,MAAM,SAAS,GACb,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YACxB,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExF,OAAO;YACL,MAAM,MAAM,CAAC,MAAM,EAAE;YACrB,WAAW,MAAM,CAAC,MAAM,EAAE;YAC1B,qBAAqB,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YAC5D,SAAS;YACT,uBAAuB,MAAM,CAAC,iBAAiB,EAAE;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/core/orchestration/doctor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWtC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAsB;IACpD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACjD,MAAM,SAAS,GACb,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YACxB,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExF,OAAO;YACL,MAAM,MAAM,CAAC,MAAM,EAAE;YACrB,WAAW,MAAM,CAAC,MAAM,EAAE;YAC1B,qBAAqB,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YAC5D,SAAS;YACT,uBAAuB,MAAM,CAAC,iBAAiB,EAAE;YACjD,yGAAyG;SAC1G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import path from "node:path";
|
|
1
2
|
import { sharedAssetRegistry } from "../assets/registry.js";
|
|
2
3
|
import { assertInsideRoot, ensureDirectory, hashFile, joinProjectPath, pathExists, readText, removeIfExists, writeText } from "../fs/project.js";
|
|
3
4
|
export async function installSharedAssets(rootDir, packageRoot) {
|
|
@@ -8,7 +9,7 @@ export async function installSharedAssets(rootDir, packageRoot) {
|
|
|
8
9
|
const targetPath = joinProjectPath(rootDir, asset.targetPath);
|
|
9
10
|
assertInsideRoot(rootDir, targetPath);
|
|
10
11
|
const existed = await pathExists(targetPath);
|
|
11
|
-
await ensureDirectory(
|
|
12
|
+
await ensureDirectory(path.dirname(targetPath));
|
|
12
13
|
await writeText(targetPath, await readText(sourcePath));
|
|
13
14
|
sharedAssets.push({
|
|
14
15
|
...asset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-assets.js","sourceRoot":"","sources":["../../../src/core/orchestration/shared-assets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shared-assets.js","sourceRoot":"","sources":["../../../src/core/orchestration/shared-assets.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,eAAe,EACf,UAAU,EACV,QAAQ,EACR,cAAc,EACd,SAAS,EACV,MAAM,kBAAkB,CAAC;AAO1B,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,WAAmB;IAEnB,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,MAAM,KAAK,GAA0B,EAAE,CAAC;IAExC,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9D,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEtC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAChD,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAExD,YAAY,CAAC,IAAI,CAAC;YAChB,GAAG,KAAK;YACR,QAAQ,EAAE,MAAM,QAAQ,CAAC,UAAU,CAAC;YACpC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,KAAK,CAAC,UAAU;YACtB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACxC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAe,EACf,QAAyB;IAEzB,MAAM,KAAK,GAA0B,EAAE,CAAC;IAExC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9D,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,KAAK,CAAC,UAAU;YACtB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACxC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -5,7 +5,7 @@ export const MANIFEST_VERSION = "1";
|
|
|
5
5
|
export const MANIFEST_RELATIVE_PATH = ".product-spec/manifest.json";
|
|
6
6
|
const assetRecordSchema = z.object({
|
|
7
7
|
id: z.string(),
|
|
8
|
-
category: z.enum(["assistant-command", "product-template"]),
|
|
8
|
+
category: z.enum(["assistant-command", "product-template", "product-history-template"]),
|
|
9
9
|
sourcePath: z.string(),
|
|
10
10
|
targetPath: z.string(),
|
|
11
11
|
target: z.enum(["claude", "codex", "shared"]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/core/state/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEzE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AAEpE,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/core/state/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type AssistantTarget = "claude" | "codex";
|
|
2
2
|
export type RequestedTarget = AssistantTarget | "both";
|
|
3
|
-
export type AssetCategory = "assistant-command" | "product-template";
|
|
3
|
+
export type AssetCategory = "assistant-command" | "product-template" | "product-history-template";
|
|
4
4
|
export type HealthStatus = "healthy" | "missing" | "partial" | "unhealthy";
|
|
5
5
|
export type LastOperation = "add" | "remove" | "check" | "doctor";
|
|
6
6
|
export interface AssetRecord {
|