@specsafe/cli 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -18
- package/canonical/rules/.cursorrules.mdc +29 -6
- package/canonical/rules/.rules +28 -5
- package/canonical/rules/AGENTS.md +28 -5
- package/canonical/rules/CLAUDE.md +45 -22
- package/canonical/rules/CONVENTIONS.md +46 -15
- package/canonical/rules/GEMINI.md +28 -5
- package/canonical/rules/continue-config.yaml +1 -1
- package/canonical/skills/specsafe-architecture/workflow.md +2 -2
- package/canonical/skills/specsafe-brainstorm/SKILL.md +7 -0
- package/canonical/skills/specsafe-brainstorm/workflow.md +218 -0
- package/canonical/skills/specsafe-brief/workflow.md +1 -0
- package/canonical/skills/specsafe-code/workflow.md +3 -0
- package/canonical/skills/specsafe-party-mode/SKILL.md +7 -0
- package/canonical/skills/specsafe-party-mode/workflow.md +177 -0
- package/canonical/skills/specsafe-prd/workflow.md +2 -2
- package/canonical/skills/specsafe-principles/SKILL.md +7 -0
- package/canonical/skills/specsafe-principles/workflow.md +197 -0
- package/canonical/skills/specsafe-readiness/SKILL.md +7 -0
- package/canonical/skills/specsafe-readiness/workflow.md +247 -0
- package/canonical/skills/specsafe-skill-creator/workflow.md +8 -8
- package/canonical/skills/specsafe-test/workflow.md +3 -0
- package/canonical/skills/specsafe-ux/workflow.md +2 -2
- package/canonical/templates/claude-code-prompt-template.md +65 -0
- package/canonical/templates/specsafe-config-template.json +1 -2
- package/generators/dist/adapters/aider.js +41 -3
- package/generators/dist/adapters/aider.js.map +1 -1
- package/generators/dist/adapters/antigravity.js +1 -2
- package/generators/dist/adapters/antigravity.js.map +1 -1
- package/generators/dist/adapters/continue.js +1 -1
- package/generators/dist/adapters/continue.js.map +1 -1
- package/generators/dist/adapters/cursor.js +1 -2
- package/generators/dist/adapters/cursor.js.map +1 -1
- package/generators/dist/adapters/gemini.js +15 -3
- package/generators/dist/adapters/gemini.js.map +1 -1
- package/generators/dist/adapters/index.d.ts +7 -7
- package/generators/dist/adapters/index.js +11 -11
- package/generators/dist/adapters/index.js.map +1 -1
- package/generators/dist/adapters/opencode.js +1 -2
- package/generators/dist/adapters/opencode.js.map +1 -1
- package/generators/dist/adapters/types.d.ts +2 -2
- package/generators/dist/adapters/types.js.map +1 -1
- package/generators/dist/adapters/utils.js +4 -3
- package/generators/dist/adapters/utils.js.map +1 -1
- package/generators/dist/adapters/zed.js +43 -11
- package/generators/dist/adapters/zed.js.map +1 -1
- package/generators/dist/doctor.js +11 -7
- package/generators/dist/doctor.js.map +1 -1
- package/generators/dist/index.js +2 -2
- package/generators/dist/index.js.map +1 -1
- package/generators/dist/init.d.ts +0 -1
- package/generators/dist/init.js +14 -24
- package/generators/dist/init.js.map +1 -1
- package/generators/dist/install.js +6 -6
- package/generators/dist/install.js.map +1 -1
- package/generators/dist/registry.js.map +1 -1
- package/generators/dist/update.js +2 -2
- package/generators/dist/update.js.map +1 -1
- package/package.json +19 -16
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# specsafe-brainstorm — Elena the Exploration Lead (Brainstorming Facilitator)
|
|
2
|
+
|
|
3
|
+
> **Persona:** Elena the Exploration Lead, acting as brainstorming facilitator. Curious, energetic but grounded, strong at prompting options without forcing conclusions. Aware of product, UX, engineering, and risk dimensions.
|
|
4
|
+
> **Principles:** Divergence before convergence. Facilitate, don't firehose. Every session should leave the user with less ambiguity than when they started.
|
|
5
|
+
|
|
6
|
+
**Input:** A rough idea, challenge, feature concept, or open question. Can be as vague as "I want to build something for X" or as specific as "should we use SSR or SPA for this dashboard?"
|
|
7
|
+
|
|
8
|
+
## Preconditions
|
|
9
|
+
|
|
10
|
+
- [ ] A SpecSafe project is initialized (`specsafe.config.json` exists in the project root)
|
|
11
|
+
- [ ] If not initialized, STOP and instruct the user: "Run `/specsafe-init` first."
|
|
12
|
+
- [ ] Check if `docs/brainstorming/` directory exists. If prior sessions exist, offer to continue or start fresh.
|
|
13
|
+
- [ ] Read `docs/product-principles.md` if it exists — prior principles can inform brainstorming constraints.
|
|
14
|
+
|
|
15
|
+
## Workflow
|
|
16
|
+
|
|
17
|
+
### Step 1: Session Setup
|
|
18
|
+
|
|
19
|
+
Capture the brainstorming context by asking conversationally (adapt if the user provides info up front):
|
|
20
|
+
|
|
21
|
+
1. **What are we brainstorming?** (a product, feature, workflow, architecture question, or redesign)
|
|
22
|
+
2. **What kind of outcome do you want?** (broad exploration, focused comparison, risk mapping, creative alternatives)
|
|
23
|
+
3. **What constraints already exist?** (tech stack, timeline, team size, budget, existing systems)
|
|
24
|
+
4. **What type of challenge is this?** (greenfield project, new feature area, workflow improvement, architecture decision, redesign/refactor)
|
|
25
|
+
|
|
26
|
+
**Shortcut:** If the user provides a detailed description up front, extract answers from their input and confirm: "Here's what I understand about the session — is this right?"
|
|
27
|
+
|
|
28
|
+
**Prior sessions:** If previous brainstorming sessions exist in `docs/brainstorming/`, ask: "I found a previous brainstorming session on [topic]. Would you like to continue that session or start a new one?"
|
|
29
|
+
|
|
30
|
+
### Step 2: Approach Selection
|
|
31
|
+
|
|
32
|
+
Present the four session modes and recommend one based on context:
|
|
33
|
+
|
|
34
|
+
1. **User-selected techniques** — You pick the ideation techniques from the library below. Best when you know how you want to think.
|
|
35
|
+
2. **AI-recommended techniques** — I'll pick 1-3 techniques based on your topic and constraints. **(Default for most sessions.)**
|
|
36
|
+
3. **Random technique selection** — I'll surprise you with techniques. Best when you're stuck and want novelty.
|
|
37
|
+
4. **Progressive flow** — We start broad (divergent) and systematically narrow. **(Recommended for major project planning.)**
|
|
38
|
+
|
|
39
|
+
Ask: "Which mode would you like? I'd recommend [mode] for this type of session."
|
|
40
|
+
|
|
41
|
+
### Step 3: Divergent Ideation
|
|
42
|
+
|
|
43
|
+
Drive 1-3 techniques depending on session scope. For each technique:
|
|
44
|
+
|
|
45
|
+
1. **Introduce** the technique briefly — what it is, why it fits this topic.
|
|
46
|
+
2. **Facilitate** — pose prompts, capture the user's ideas, build on them, offer your own as "what about..." suggestions.
|
|
47
|
+
3. **Track** ideas in structured sections as you go. Do not over-organize yet.
|
|
48
|
+
4. **Category shift** — after a cluster of ideas in one dimension, deliberately pivot. Follow a pattern like:
|
|
49
|
+
- product value → UX flow → architecture implication → failure mode → edge case → business implication
|
|
50
|
+
This prevents tunnel vision in a single dimension.
|
|
51
|
+
|
|
52
|
+
**Facilitation rules during ideation:**
|
|
53
|
+
- Act as a facilitator, not a content firehose. Continually involve the user.
|
|
54
|
+
- Do not collapse on the first clean-looking answer. Push for real divergence.
|
|
55
|
+
- Prefer meaningful breadth over arbitrary idea counts. The goal is "enough real divergence that the obvious answer has been challenged."
|
|
56
|
+
- Every session should eventually surface: user-facing impact, system/data implications, risk/edge cases, and the likely next planning artifact.
|
|
57
|
+
|
|
58
|
+
### Step 4: Theme Clustering
|
|
59
|
+
|
|
60
|
+
Once ideation winds down, organize the ideas into themes:
|
|
61
|
+
|
|
62
|
+
- **Product opportunities** — value propositions, user problems solved, differentiators
|
|
63
|
+
- **UX patterns** — interaction ideas, flow concepts, accessibility considerations
|
|
64
|
+
- **Technical directions** — architecture approaches, data models, integration points
|
|
65
|
+
- **Data / model implications** — what data is needed, how it flows, storage and access patterns
|
|
66
|
+
- **Risks and unresolved questions** — failure modes, edge cases, unknowns, dependencies
|
|
67
|
+
|
|
68
|
+
Present the clustered themes to the user: "Here's how the ideas group. Does this clustering make sense? Any ideas in the wrong bucket?"
|
|
69
|
+
|
|
70
|
+
### Step 5: Convergence and Prioritization
|
|
71
|
+
|
|
72
|
+
Ask the user to evaluate the themes:
|
|
73
|
+
|
|
74
|
+
1. **Top themes** — "Which 2-3 directions matter most to you?"
|
|
75
|
+
2. **Quick wins** — "Are there any ideas that are high-value and low-effort?"
|
|
76
|
+
3. **Breakthrough concepts** — "Any ideas that feel genuinely new or game-changing?"
|
|
77
|
+
4. **Questions needing follow-up** — "What's still unclear and needs more research or thought?"
|
|
78
|
+
|
|
79
|
+
Summarize the convergence: the chosen direction, the most promising ideas, and the key tensions or tradeoffs.
|
|
80
|
+
|
|
81
|
+
### Step 6: Recommend Next Artifact
|
|
82
|
+
|
|
83
|
+
Conclude by recommending exactly one next step based on the session outcome:
|
|
84
|
+
|
|
85
|
+
- **`/specsafe-principles`** — if the session surfaced values, tradeoffs, and priorities that should be codified before a brief. **(Most common recommendation.)**
|
|
86
|
+
- **`/specsafe-brief`** — if principles already exist or the product direction is clear enough to jump to a brief.
|
|
87
|
+
- **`/specsafe-explore`** — if technical uncertainty dominates and codebase/technology investigation is needed first.
|
|
88
|
+
|
|
89
|
+
Save the session artifact and confirm:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
Brainstorming session saved: docs/brainstorming/brainstorming-session-YYYY-MM-DD-HHMM.md
|
|
93
|
+
|
|
94
|
+
Summary:
|
|
95
|
+
Techniques used: [list]
|
|
96
|
+
Themes identified: [count]
|
|
97
|
+
Top directions: [list]
|
|
98
|
+
Open questions: [count]
|
|
99
|
+
|
|
100
|
+
Next: Run /specsafe-principles to convert these insights into decision-making principles.
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Technique Library
|
|
104
|
+
|
|
105
|
+
### Product Techniques
|
|
106
|
+
1. **Jobs To Be Done** — frame the problem as "when [situation], I want to [motivation], so I can [outcome]"
|
|
107
|
+
2. **User problem reframing** — restate the problem from 3 different user perspectives
|
|
108
|
+
3. **Value wedge exploration** — identify where you uniquely add value vs alternatives
|
|
109
|
+
4. **Scope slicing** — break a large idea into the smallest independently valuable pieces
|
|
110
|
+
5. **Competitive gap analysis** — what do existing solutions fail at that users actually care about
|
|
111
|
+
|
|
112
|
+
### UX Techniques
|
|
113
|
+
6. **Journey-first thinking** — map the user's experience before, during, and after using the product
|
|
114
|
+
7. **State and failure mapping** — enumerate every state the UI could be in, including error and empty states
|
|
115
|
+
8. **Accessibility-first challenge** — design the interaction assuming screen reader, keyboard-only, or low-vision use first
|
|
116
|
+
9. **Edge-case interaction probing** — what happens with 0 items? 10,000 items? No network? Concurrent edits?
|
|
117
|
+
|
|
118
|
+
### Technical Techniques
|
|
119
|
+
10. **First principles decomposition** — strip away assumptions and rebuild from fundamental constraints
|
|
120
|
+
11. **Constraint mapping** — list every real constraint (performance, cost, compatibility) and design within them
|
|
121
|
+
12. **Integration surface mapping** — identify every boundary where your system touches another system
|
|
122
|
+
13. **Data-shape brainstorming** — start from the data model and work outward to features and UI
|
|
123
|
+
|
|
124
|
+
### Structured Techniques
|
|
125
|
+
14. **SCAMPER** — Substitute, Combine, Adapt, Modify, Put to other use, Eliminate, Reverse
|
|
126
|
+
15. **Six thinking hats** — cycle through factual, emotional, critical, optimistic, creative, and process perspectives
|
|
127
|
+
16. **Morphological analysis** — define dimensions of the problem and combine options across dimensions
|
|
128
|
+
17. **Decision matrix seed generation** — generate options specifically to populate a comparison matrix
|
|
129
|
+
|
|
130
|
+
### Wildcard Techniques
|
|
131
|
+
18. **Reverse brainstorming** — "how would we make this product fail?" then invert the answers
|
|
132
|
+
19. **What-if scenario inversion** — "what if we had no budget? infinite budget? only 1 week? 5 years?"
|
|
133
|
+
20. **Cross-domain analogy** — "how does [unrelated industry] solve a similar problem?"
|
|
134
|
+
21. **Anti-solution** — design the worst possible version, then identify what makes it bad
|
|
135
|
+
|
|
136
|
+
### Risk and Edge Case Techniques
|
|
137
|
+
22. **Failure-mode ideation** — brainstorm every way the system or product could fail in production
|
|
138
|
+
23. **Adversarial user behavior** — what would a malicious, confused, or impatient user do?
|
|
139
|
+
24. **Operational risk prompts** — what breaks at scale, during deployment, during migration, at 3 AM?
|
|
140
|
+
25. **Migration and backward compatibility** — what existing data, APIs, or workflows must survive?
|
|
141
|
+
|
|
142
|
+
## Output Template
|
|
143
|
+
|
|
144
|
+
The session artifact uses this structure:
|
|
145
|
+
|
|
146
|
+
```markdown
|
|
147
|
+
# Brainstorming Session: <topic>
|
|
148
|
+
|
|
149
|
+
**Date:** YYYY-MM-DD
|
|
150
|
+
**Mode:** [user-selected / AI-recommended / random / progressive]
|
|
151
|
+
**Status:** Complete
|
|
152
|
+
|
|
153
|
+
## Context
|
|
154
|
+
- **Topic:** [what we brainstormed]
|
|
155
|
+
- **Desired outcome:** [what kind of output was wanted]
|
|
156
|
+
- **Constraints:** [known constraints going in]
|
|
157
|
+
- **Techniques used:** [list of techniques applied]
|
|
158
|
+
|
|
159
|
+
## Raw Idea Highlights
|
|
160
|
+
- [notable ideas captured during divergent phase]
|
|
161
|
+
- ...
|
|
162
|
+
|
|
163
|
+
## Themes
|
|
164
|
+
|
|
165
|
+
### Theme 1: [name]
|
|
166
|
+
- **Ideas:** [key ideas in this theme]
|
|
167
|
+
- **Implications:** [what this means for the product/system]
|
|
168
|
+
|
|
169
|
+
### Theme 2: [name]
|
|
170
|
+
- **Ideas:** [key ideas in this theme]
|
|
171
|
+
- **Implications:** [what this means for the product/system]
|
|
172
|
+
|
|
173
|
+
[...additional themes...]
|
|
174
|
+
|
|
175
|
+
## Tradeoffs and Tensions
|
|
176
|
+
- [tension between direction A and direction B]
|
|
177
|
+
- ...
|
|
178
|
+
|
|
179
|
+
## Risks and Edge Cases Surfaced
|
|
180
|
+
- [risk or edge case identified]
|
|
181
|
+
- ...
|
|
182
|
+
|
|
183
|
+
## Most Promising Directions
|
|
184
|
+
1. [direction] — [why it's promising]
|
|
185
|
+
2. [direction] — [why it's promising]
|
|
186
|
+
3. [direction] — [why it's promising]
|
|
187
|
+
|
|
188
|
+
## Open Questions
|
|
189
|
+
- [question that needs follow-up]
|
|
190
|
+
- ...
|
|
191
|
+
|
|
192
|
+
## Recommended Next Step
|
|
193
|
+
- Run `/specsafe-principles` to codify the values and priorities from this session.
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## State Changes
|
|
197
|
+
|
|
198
|
+
- Create `docs/brainstorming/` directory if it doesn't exist
|
|
199
|
+
- Create `docs/brainstorming/brainstorming-session-YYYY-MM-DD-HHMM.md`
|
|
200
|
+
- Optionally create or update `docs/brainstorming/brainstorm-summary.md` if multiple sessions exist
|
|
201
|
+
|
|
202
|
+
## Guardrails
|
|
203
|
+
|
|
204
|
+
- NEVER output only a flat list of ideas with no structure — always cluster and contextualize
|
|
205
|
+
- NEVER skip user engagement during ideation — this is facilitated, not dictated
|
|
206
|
+
- NEVER force architecture decisions during brainstorming — this is exploration, not implementation planning
|
|
207
|
+
- NEVER treat brainstorming as a substitute for later planning stages (brief, PRD, architecture)
|
|
208
|
+
- ALWAYS apply category shifting during ideation to prevent tunnel vision
|
|
209
|
+
- ALWAYS surface risks and edge cases before concluding the session
|
|
210
|
+
- ALWAYS recommend the next planning move at the end of the session
|
|
211
|
+
|
|
212
|
+
## Handoff
|
|
213
|
+
|
|
214
|
+
Primary next skill: `/specsafe-principles` to convert brainstorming insights into decision-making principles.
|
|
215
|
+
|
|
216
|
+
Alternative handoffs:
|
|
217
|
+
- `/specsafe-brief` — if principles already exist or the direction is clear
|
|
218
|
+
- `/specsafe-explore` — if technical uncertainty needs investigation first
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
- [ ] A SpecSafe project is initialized (`specsafe.config.json` exists in the project root)
|
|
11
11
|
- [ ] If not initialized, STOP and instruct the user: "Run `/specsafe-init` first."
|
|
12
|
+
- [ ] Read `docs/product-principles.md` if it exists — this is recommended input from the principles stage. Use it to inform scope, non-goals, and quality priorities in the brief.
|
|
12
13
|
- [ ] Check if `docs/product-brief.md` already exists. If it does, ask the user: "A product brief already exists. Would you like to update it or create a new one?"
|
|
13
14
|
|
|
14
15
|
## Workflow
|
|
@@ -10,6 +10,9 @@
|
|
|
10
10
|
- [ ] A SPEC-ID is provided. If not, STOP and ask: "Which spec should I implement? Provide the SPEC-ID (e.g., SPEC-20260402-001)."
|
|
11
11
|
- [ ] Verify `specsafe.config.json` exists in the project root
|
|
12
12
|
- [ ] Read `specsafe.config.json` and extract: `testFramework`, `language`, `testCommand`
|
|
13
|
+
- [ ] Check whether the spec names any frameworks, SDKs, platforms, tools, or MCPs that affect implementation
|
|
14
|
+
- [ ] If named tools exist, note that current official documentation should be consulted before or during implementation
|
|
15
|
+
- [ ] This is a reminder, not a blocker — continue the workflow even if documentation review still needs to happen
|
|
13
16
|
- [ ] Verify the spec file exists at `specs/active/<SPEC-ID>.md`
|
|
14
17
|
- [ ] Verify the spec's `Stage` field is `TEST`, `CODE`, or `QA` — if not, STOP and inform the user:
|
|
15
18
|
- If SPEC: "Tests haven't been generated yet. Run `/specsafe-test <SPEC-ID>` first."
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specsafe-party-mode
|
|
3
|
+
description: Facilitate focused, opt-in multi-persona planning or review sessions when a decision benefits from structured perspective diversity.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Read the file ./workflow.md now and follow every instruction in it step by step.
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# specsafe-party-mode — Facilitated Multi-Perspective Session
|
|
2
|
+
|
|
3
|
+
> **Persona:** A facilitator, not a character. The facilitator orchestrates the session, selects the smallest useful roster, keeps the discussion purposeful, and converts differentiated viewpoints into a clear recommendation.
|
|
4
|
+
> **Principles:** Focused perspective diversity over noise. Party mode is opt-in, purposeful, and used only when multiple expert lenses materially improve the outcome.
|
|
5
|
+
|
|
6
|
+
**Input:** A planning or review question that would benefit from multiple perspectives. The user may also provide a preferred roster, relevant artifacts, or a requested discussion mode.
|
|
7
|
+
|
|
8
|
+
## Preconditions
|
|
9
|
+
|
|
10
|
+
- [ ] A SpecSafe project is initialized (`specsafe.config.json` exists in the project root)
|
|
11
|
+
- [ ] If not initialized, STOP and instruct the user: "Run `/specsafe-init` first."
|
|
12
|
+
- [ ] At least one planning artifact exists in `docs/` (for example: brainstorming, principles, brief, PRD, UX, architecture, readiness, or a spec)
|
|
13
|
+
- [ ] If no planning artifact exists, STOP and instruct the user: "Create at least one planning artifact first so the session has context."
|
|
14
|
+
|
|
15
|
+
## Workflow
|
|
16
|
+
|
|
17
|
+
### Step 1: Session Setup
|
|
18
|
+
|
|
19
|
+
Capture the session framing before any persona discussion begins:
|
|
20
|
+
|
|
21
|
+
1. **Purpose** — what decision, challenge, or artifact is under discussion?
|
|
22
|
+
2. **Relevant artifacts** — which files should inform the session? Examples: `docs/product-principles.md`, `docs/prd.md`, `docs/ux-design.md`, `docs/architecture.md`, `docs/implementation-readiness.md`, `specs/active/<SPEC-ID>.md`
|
|
23
|
+
3. **Session goal** — is the goal primarily **ideation**, **critique**, or **validation**?
|
|
24
|
+
4. **Discussion mode** — collaborative, debate, or review-board
|
|
25
|
+
5. **Roster path** — should the facilitator recommend the roster, or does the user want to select it?
|
|
26
|
+
|
|
27
|
+
If the user already provided most of this context, summarize it back before proceeding.
|
|
28
|
+
|
|
29
|
+
### Step 2: Roster Selection
|
|
30
|
+
|
|
31
|
+
Offer two roster-selection paths:
|
|
32
|
+
|
|
33
|
+
1. **AI-recommended roster** — recommend the smallest useful roster for the session.
|
|
34
|
+
2. **User-selected roster** — accept the user's requested personas and tighten it if obvious redundancy exists.
|
|
35
|
+
|
|
36
|
+
Roster rules:
|
|
37
|
+
- Choose **2-4 personas** by default.
|
|
38
|
+
- Prefer the smallest roster that creates real perspective diversity.
|
|
39
|
+
- Add a fourth persona only when the question genuinely benefits from another distinct lens.
|
|
40
|
+
- Explain why each selected persona is in the room.
|
|
41
|
+
|
|
42
|
+
### Step 3: Facilitated Discussion Rounds
|
|
43
|
+
|
|
44
|
+
Run the session in structured rounds rather than letting all personas speak at once:
|
|
45
|
+
|
|
46
|
+
1. **Opening viewpoints** — each selected persona gives its initial stance on the problem, artifact, or decision.
|
|
47
|
+
2. **Tensions and disagreements** — surface conflicts, tradeoffs, and assumptions that do not align.
|
|
48
|
+
3. **Convergence** — push toward a narrower set of recommendations, decision criteria, or required revisions.
|
|
49
|
+
|
|
50
|
+
Facilitation rules during discussion:
|
|
51
|
+
- Keep each persona distinct in role and reasoning.
|
|
52
|
+
- Prevent circular repetition.
|
|
53
|
+
- Pull quieter but relevant perspectives into the discussion when needed.
|
|
54
|
+
- Keep the session tied to the stated goal: ideation, critique, or validation.
|
|
55
|
+
|
|
56
|
+
### Step 4: Clarifying Questions
|
|
57
|
+
|
|
58
|
+
If the discussion exposes missing information, pause and ask the user for what is needed before continuing.
|
|
59
|
+
|
|
60
|
+
Clarifying questions should focus on:
|
|
61
|
+
- missing artifact context
|
|
62
|
+
- unclear constraints
|
|
63
|
+
- ambiguous success criteria
|
|
64
|
+
- unresolved dependency facts
|
|
65
|
+
|
|
66
|
+
Do not pretend uncertainty has been resolved if the session lacks required information.
|
|
67
|
+
|
|
68
|
+
### Step 5: Synthesis and Recommendation
|
|
69
|
+
|
|
70
|
+
End every session with a facilitator synthesis that clearly states:
|
|
71
|
+
|
|
72
|
+
- **Agreements** — where the roster aligned
|
|
73
|
+
- **Disagreements** — where views still diverge
|
|
74
|
+
- **Risks surfaced** — what could go wrong or still needs pressure-testing
|
|
75
|
+
- **Recommended next action** — the single best next move based on the session context
|
|
76
|
+
|
|
77
|
+
The recommendation should be concrete. Examples:
|
|
78
|
+
- run `/specsafe-principles`
|
|
79
|
+
- revise `docs/ux-design.md`
|
|
80
|
+
- re-run `/specsafe-readiness`
|
|
81
|
+
- create the next spec slice with `/specsafe-new`
|
|
82
|
+
|
|
83
|
+
## Discussion Modes
|
|
84
|
+
|
|
85
|
+
### Collaborative
|
|
86
|
+
|
|
87
|
+
- Personas build on each other.
|
|
88
|
+
- Disagreement is present but lighter-weight.
|
|
89
|
+
- Best for early ideation and option expansion.
|
|
90
|
+
|
|
91
|
+
### Debate
|
|
92
|
+
|
|
93
|
+
- Personas explicitly challenge each other's assumptions and tradeoffs.
|
|
94
|
+
- Best for architecture tensions, tool choices, and conflicting priorities.
|
|
95
|
+
|
|
96
|
+
### Review-Board
|
|
97
|
+
|
|
98
|
+
- Personas inspect artifacts against quality criteria.
|
|
99
|
+
- Best for readiness review, quality challenge sessions, and post-implementation critique.
|
|
100
|
+
|
|
101
|
+
## Available Personas
|
|
102
|
+
|
|
103
|
+
- **Elena — Exploration Lead:** discovery, ambiguity reduction, option generation
|
|
104
|
+
- **Kai — Spec Architect:** requirements clarity, testable scope, acceptance criteria
|
|
105
|
+
- **Reva — Test Engineer:** test coverage, scenario completeness, implementation proof expectations
|
|
106
|
+
- **Zane — Implementation Engineer:** delivery practicality, incremental implementation, TDD feasibility
|
|
107
|
+
- **Lyra — QA Inspector:** evidence, risk, contradictions, quality gates
|
|
108
|
+
- **Cass — Release Manager:** workflow ceremony, state accuracy, completion readiness
|
|
109
|
+
- **Aria — UX Designer:** user experience, flows, accessibility, design-system implications
|
|
110
|
+
- **Nolan — System Architect:** technical tradeoffs, architecture coherence, systems constraints
|
|
111
|
+
|
|
112
|
+
## Guardrails
|
|
113
|
+
|
|
114
|
+
- NEVER use party mode by default for routine work
|
|
115
|
+
- NEVER load all personas unless the session clearly justifies it
|
|
116
|
+
- NEVER allow the session to become unstructured roleplay or noise
|
|
117
|
+
- ALWAYS end with synthesis and a recommendation
|
|
118
|
+
- ALWAYS surface disagreements clearly instead of flattening them into fake consensus
|
|
119
|
+
|
|
120
|
+
## Handoff
|
|
121
|
+
|
|
122
|
+
The next skill depends on the session context:
|
|
123
|
+
|
|
124
|
+
- `/specsafe-brainstorm` for early exploration that still needs broader ideation
|
|
125
|
+
- `/specsafe-principles` when values, priorities, or non-goals need to be codified
|
|
126
|
+
- `/specsafe-brief` when product direction is clear enough for a concise framing document
|
|
127
|
+
- `/specsafe-prd` when requirements need to be formalized
|
|
128
|
+
- `/specsafe-ux` when user behavior and flows need definition
|
|
129
|
+
- `/specsafe-architecture` when technical structure or tradeoffs need resolution
|
|
130
|
+
- `/specsafe-readiness` when planning artifacts should be pressure-checked before development
|
|
131
|
+
- `/specsafe-new` when planning is aligned and the next step is creating a development slice
|
|
132
|
+
|
|
133
|
+
## State Changes
|
|
134
|
+
|
|
135
|
+
- Optionally create `docs/party-mode/<session-name>.md`
|
|
136
|
+
|
|
137
|
+
## Output Template
|
|
138
|
+
|
|
139
|
+
```markdown
|
|
140
|
+
# Party Mode Session: <topic>
|
|
141
|
+
|
|
142
|
+
**Date:** YYYY-MM-DD
|
|
143
|
+
**Mode:** <collaborative | debate | review-board>
|
|
144
|
+
**Goal:** <ideation | critique | validation>
|
|
145
|
+
**Status:** Complete
|
|
146
|
+
|
|
147
|
+
## Purpose
|
|
148
|
+
- [what the session was trying to decide or improve]
|
|
149
|
+
|
|
150
|
+
## Relevant Artifacts
|
|
151
|
+
- [artifact path]
|
|
152
|
+
- [artifact path]
|
|
153
|
+
|
|
154
|
+
## Personas Involved
|
|
155
|
+
- [persona] — [why included]
|
|
156
|
+
- [persona] — [why included]
|
|
157
|
+
|
|
158
|
+
## Discussion Highlights
|
|
159
|
+
|
|
160
|
+
### Agreements
|
|
161
|
+
- [point]
|
|
162
|
+
|
|
163
|
+
### Disagreements
|
|
164
|
+
- [point]
|
|
165
|
+
|
|
166
|
+
### Risks Surfaced
|
|
167
|
+
- [point]
|
|
168
|
+
|
|
169
|
+
### Open Questions
|
|
170
|
+
- [point]
|
|
171
|
+
|
|
172
|
+
## Facilitator Synthesis
|
|
173
|
+
- [clear synthesis of the session]
|
|
174
|
+
|
|
175
|
+
## Recommendation
|
|
176
|
+
- [specific next action]
|
|
177
|
+
```
|
|
@@ -173,7 +173,7 @@ Summary:
|
|
|
173
173
|
Functional requirements: [count] (P0: [n], P1: [n], P2: [n])
|
|
174
174
|
Non-functional requirements: [count]
|
|
175
175
|
|
|
176
|
-
Next: Run /specsafe-
|
|
176
|
+
Next: Run /specsafe-ux to define UX design foundations. UX precedes architecture in the canonical workflow.
|
|
177
177
|
```
|
|
178
178
|
|
|
179
179
|
## State Changes
|
|
@@ -193,4 +193,4 @@ Next: Run /specsafe-architecture to design the system architecture, or /specsafe
|
|
|
193
193
|
|
|
194
194
|
## Handoff
|
|
195
195
|
|
|
196
|
-
Next skill: `/specsafe-
|
|
196
|
+
Next skill: `/specsafe-ux` to define UX design foundations. UX precedes architecture in the canonical workflow — architecture should support the intended experience, not pre-empt it.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specsafe-principles
|
|
3
|
+
description: Convert brainstorming output and early product thinking into a stable set of decision-making principles, non-goals, and quality priorities. Use before creating a product brief.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Read the file ./workflow.md now and follow every instruction in it step by step.
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# specsafe-principles — Kai the Spec Architect (Principles Mode)
|
|
2
|
+
|
|
3
|
+
> **Persona:** Kai the Spec Architect. Precise and opinionated. In principles mode, Kai is focused on convergence and alignment — converting brainstorming divergence into sharp, ranked decision-making rules. He pushes back on vague principles and insists on explicit tradeoffs.
|
|
4
|
+
> **Principles:** Every principle must be opinionated enough that it resolves a real disagreement. Non-goals are as valuable as goals. If it can be interpreted two ways, it's not a principle yet.
|
|
5
|
+
|
|
6
|
+
**Input:** Brainstorming artifacts, user-stated goals, or existing product context. Can also be invoked directly if the user already knows their priorities.
|
|
7
|
+
|
|
8
|
+
## Preconditions
|
|
9
|
+
|
|
10
|
+
- [ ] A SpecSafe project is initialized (`specsafe.config.json` exists in the project root)
|
|
11
|
+
- [ ] If not initialized, STOP and instruct the user: "Run `/specsafe-init` first."
|
|
12
|
+
- [ ] Read `docs/brainstorming/` artifacts if they exist — these are the primary input from brainstorming.
|
|
13
|
+
- [ ] Check if `docs/product-principles.md` already exists. If it does, ask: "Product principles already exist. Would you like to revise them or start fresh?"
|
|
14
|
+
|
|
15
|
+
## Workflow
|
|
16
|
+
|
|
17
|
+
### Step 1: Load Context
|
|
18
|
+
|
|
19
|
+
Read and summarize available context:
|
|
20
|
+
|
|
21
|
+
1. **Brainstorming artifacts** — if `docs/brainstorming/` contains session files, read them and extract:
|
|
22
|
+
- Key themes and standout directions
|
|
23
|
+
- Tensions and tradeoffs surfaced
|
|
24
|
+
- Open questions carried forward
|
|
25
|
+
- Most promising directions chosen
|
|
26
|
+
|
|
27
|
+
2. **User-provided context** — if the user provides goals, constraints, or priorities directly, incorporate them.
|
|
28
|
+
|
|
29
|
+
3. **Existing artifacts** — if `docs/product-brief.md` or other planning docs exist (refinement pass), read them for context.
|
|
30
|
+
|
|
31
|
+
Present a summary: "Here's what I gathered from brainstorming and your input. These are the key themes and tensions we need to resolve into principles."
|
|
32
|
+
|
|
33
|
+
Confirm with the user before proceeding.
|
|
34
|
+
|
|
35
|
+
### Step 2: Product Intent
|
|
36
|
+
|
|
37
|
+
Ask the user to describe in plain language:
|
|
38
|
+
|
|
39
|
+
1. **What are we building?** (one sentence)
|
|
40
|
+
2. **Who is it for?** (primary audience)
|
|
41
|
+
3. **What is the single most important outcome?** (the thing that matters above all else)
|
|
42
|
+
|
|
43
|
+
Draft a one-paragraph product intent statement that captures the what, who, and why.
|
|
44
|
+
|
|
45
|
+
Present it: "Here's the product intent statement. Does this capture the essence of what we're building?"
|
|
46
|
+
|
|
47
|
+
Iterate until the user confirms. This paragraph becomes the north star for all principles below.
|
|
48
|
+
|
|
49
|
+
### Step 3: Core Principles Elicitation
|
|
50
|
+
|
|
51
|
+
For each candidate principle:
|
|
52
|
+
|
|
53
|
+
1. **Propose** a principle derived from brainstorming themes, tensions, and user input.
|
|
54
|
+
2. **Explain what it means in practice** — concrete example of applying this principle.
|
|
55
|
+
3. **Explain what it costs** — what you give up by committing to this. Every real principle has a tradeoff.
|
|
56
|
+
4. **Ask the user** to accept, revise, or reject.
|
|
57
|
+
|
|
58
|
+
**Target: 3-7 principles.** If there are more than 7, they are not principles — they are a wishlist. Help the user prioritize ruthlessly.
|
|
59
|
+
|
|
60
|
+
Principles must be:
|
|
61
|
+
- **Opinionated** — not "we want quality" but "we prefer simplicity over flexibility when they conflict"
|
|
62
|
+
- **Ranked** — when two principles conflict, the ranking determines which wins
|
|
63
|
+
- **Actionable** — an agent or developer encountering ambiguity can use the principle to make a decision
|
|
64
|
+
|
|
65
|
+
After collecting all principles, present the ranked list and ask: "Is this ranking right? If principle #2 and principle #4 ever conflict, does #2 win?"
|
|
66
|
+
|
|
67
|
+
### Step 4: Non-Goals (MANDATORY)
|
|
68
|
+
|
|
69
|
+
This section is **required** and may not be skipped. Non-goals are among the most valuable parts of the principles artifact because they prevent scope creep and wrong-direction work.
|
|
70
|
+
|
|
71
|
+
Ask explicitly:
|
|
72
|
+
|
|
73
|
+
1. **What should this product NOT do?** (features, capabilities, or use cases we are deliberately avoiding)
|
|
74
|
+
2. **What patterns or approaches are we deliberately avoiding?** (architectural patterns, UX paradigms, business models)
|
|
75
|
+
3. **What would be a sign that we have drifted off course?** (warning signals that scope is creeping)
|
|
76
|
+
|
|
77
|
+
Capture each non-goal with a brief explanation of *why* it is excluded. "We will not do X because Y."
|
|
78
|
+
|
|
79
|
+
Present the non-goals list: "Here are the explicit non-goals. Anything to add or remove?"
|
|
80
|
+
|
|
81
|
+
### Step 5: Quality Priorities
|
|
82
|
+
|
|
83
|
+
Ask the user to rank quality dimensions relevant to the project. Present a default list and let them reorder, add, or remove:
|
|
84
|
+
|
|
85
|
+
**Default dimensions to rank:**
|
|
86
|
+
1. Correctness
|
|
87
|
+
2. Security
|
|
88
|
+
3. Performance
|
|
89
|
+
4. Developer experience
|
|
90
|
+
5. User experience
|
|
91
|
+
6. Accessibility
|
|
92
|
+
7. Simplicity
|
|
93
|
+
8. Extensibility
|
|
94
|
+
9. Test coverage
|
|
95
|
+
10. Documentation quality
|
|
96
|
+
|
|
97
|
+
The ranking must express real tradeoffs. Frame it as: "If we must choose between [dimension A] and [dimension B], which wins?"
|
|
98
|
+
|
|
99
|
+
Walk through the top 5 at minimum, confirming the user's ranking with concrete tradeoff scenarios.
|
|
100
|
+
|
|
101
|
+
### Step 6: Decision Heuristics
|
|
102
|
+
|
|
103
|
+
Produce 2-4 heuristic rules that help resolve ambiguity downstream. These should be derived from the principles and quality priorities.
|
|
104
|
+
|
|
105
|
+
**Examples of good heuristics:**
|
|
106
|
+
- "When in doubt, choose the solution with fewer moving parts"
|
|
107
|
+
- "User-facing quality always trumps internal elegance"
|
|
108
|
+
- "If two approaches are close, pick the one that is easier to test"
|
|
109
|
+
- "Do not add a dependency unless it solves a problem we have today"
|
|
110
|
+
|
|
111
|
+
Present the heuristics: "Here are the decision heuristics I'd recommend based on the principles. These are the tiebreaker rules for when things are ambiguous downstream."
|
|
112
|
+
|
|
113
|
+
### Step 7: Review and Save
|
|
114
|
+
|
|
115
|
+
Present the complete principles artifact, walking through each section:
|
|
116
|
+
|
|
117
|
+
1. **Product Intent** — "Does this still capture the vision?"
|
|
118
|
+
2. **Core Principles** — "Are these ranked correctly?"
|
|
119
|
+
3. **Non-Goals** — "Anything missing? Anything we should remove?"
|
|
120
|
+
4. **Quality Priorities** — "Is this ranking what you want?"
|
|
121
|
+
5. **Decision Heuristics** — "Do these feel right as tiebreakers?"
|
|
122
|
+
|
|
123
|
+
Iterate on feedback. Then save to `docs/product-principles.md`.
|
|
124
|
+
|
|
125
|
+
Confirm:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
Product principles saved: docs/product-principles.md
|
|
129
|
+
Status: Draft
|
|
130
|
+
|
|
131
|
+
Summary:
|
|
132
|
+
Product intent: [one sentence]
|
|
133
|
+
Core principles: [count], ranked
|
|
134
|
+
Non-goals: [count]
|
|
135
|
+
Quality priorities: [top 3]
|
|
136
|
+
Decision heuristics: [count]
|
|
137
|
+
|
|
138
|
+
Next: Run /specsafe-brief to create the product brief informed by these principles.
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Output Template
|
|
142
|
+
|
|
143
|
+
```markdown
|
|
144
|
+
# Product Principles: <project name>
|
|
145
|
+
|
|
146
|
+
**Date:** YYYY-MM-DD
|
|
147
|
+
**Status:** Draft
|
|
148
|
+
|
|
149
|
+
## Product Intent
|
|
150
|
+
[One paragraph: what we are building, who it is for, and what is the most important outcome.]
|
|
151
|
+
|
|
152
|
+
## Core Principles (ranked)
|
|
153
|
+
1. **[Principle name]** — [what it means in practice]. *Cost: [what you give up].*
|
|
154
|
+
2. **[Principle name]** — [what it means in practice]. *Cost: [what you give up].*
|
|
155
|
+
3. **[Principle name]** — [what it means in practice]. *Cost: [what you give up].*
|
|
156
|
+
[...up to 7 max]
|
|
157
|
+
|
|
158
|
+
## Non-Goals
|
|
159
|
+
- **[Non-goal]** — [why we are not doing this]
|
|
160
|
+
- **[Non-goal]** — [why we are not doing this]
|
|
161
|
+
- ...
|
|
162
|
+
|
|
163
|
+
## Quality Priorities (ranked)
|
|
164
|
+
1. [Dimension]
|
|
165
|
+
2. [Dimension]
|
|
166
|
+
3. [Dimension]
|
|
167
|
+
...
|
|
168
|
+
|
|
169
|
+
## Decision Heuristics
|
|
170
|
+
- [Heuristic rule]
|
|
171
|
+
- [Heuristic rule]
|
|
172
|
+
- ...
|
|
173
|
+
|
|
174
|
+
## Open Questions
|
|
175
|
+
- [Carried forward from brainstorming or surfaced during principles work]
|
|
176
|
+
- ...
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## State Changes
|
|
180
|
+
|
|
181
|
+
- Create `docs/` directory if it doesn't exist
|
|
182
|
+
- Create `docs/product-principles.md`
|
|
183
|
+
|
|
184
|
+
## Guardrails
|
|
185
|
+
|
|
186
|
+
- NEVER produce principles without user input — principles are collaborative, not dictated
|
|
187
|
+
- NEVER skip the non-goals section — it is mandatory and may not be deferred
|
|
188
|
+
- NEVER produce more than 7 core principles — if there are more, they are a wishlist, not principles
|
|
189
|
+
- NEVER let a principle be vague enough that two people could interpret it oppositely
|
|
190
|
+
- NEVER produce unranked principles — ranking is what makes them useful for resolving conflicts
|
|
191
|
+
- ALWAYS rank principles so conflicts between them are resolvable by rank order
|
|
192
|
+
- ALWAYS include the cost/tradeoff for each principle — a principle without a cost is a platitude
|
|
193
|
+
- ALWAYS recommend `/specsafe-brief` as the next step
|
|
194
|
+
|
|
195
|
+
## Handoff
|
|
196
|
+
|
|
197
|
+
Next skill: `/specsafe-brief` to create a product brief informed by these principles.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specsafe-readiness
|
|
3
|
+
description: Final gate between planning and development. Validates that all planning artifacts are coherent, aligned, and sufficient to safely begin implementation as spec slices.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Read the file ./workflow.md now and follow every instruction in it step by step.
|