ostacky 0.5.6 → 0.5.7
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 +22 -22
- package/assets/agents/ostacky.md +89 -120
- package/assets/commands/install-stack.md +7 -8
- package/assets/mcp/ostacky-controller/index.js +16 -4
- package/assets/mcp/ostacky-controller/package.json +1 -1
- package/assets/skills/execution-mode-evaluation/SKILL.md +107 -529
- package/assets/skills/openspec-apply-change/SKILL.md +18 -9
- package/assets/skills/openspec-archive-change/SKILL.md +3 -3
- package/assets/skills/openspec-propose/SKILL.md +10 -8
- package/assets/skills/review/SKILL.md +7 -5
- package/assets/skills/subagent-driven-development/SKILL.md +14 -0
- package/assets/skills/thinking/SKILL.md +195 -0
- package/assets/skills/using-git-worktrees/SKILL.md +1 -1
- package/assets/skills/using-superpowers/SKILL.md +8 -8
- package/assets/skills/writing-plans/SKILL.md +12 -1
- package/assets/tests/e2e-scenarios.md +502 -0
- package/assets/tests/validate-config.sh +254 -0
- package/dist/cli.js +76 -50
- package/dist/mcp/ostacky-controller/index.js +15 -4
- package/manifest.json +58 -44
- package/package.json +1 -1
- package/assets/skills/brainstorming/SKILL.md +0 -153
- package/assets/skills/openspec-explore/SKILL.md +0 -288
- package/assets/skills/question-validation/SKILL.md +0 -77
|
@@ -15,16 +15,25 @@ Implement tasks from an OpenSpec change.
|
|
|
15
15
|
|
|
16
16
|
**Steps**
|
|
17
17
|
|
|
18
|
-
1. **
|
|
18
|
+
1. **Check Engram for past implementation patterns**
|
|
19
|
+
|
|
20
|
+
Before implementing, `engram_mem_search` with keywords from the change name and affected modules. Look for:
|
|
21
|
+
- Similar changes implemented before (approaches that worked or failed)
|
|
22
|
+
- Known gotchas or edge cases in related areas
|
|
23
|
+
- Model selection patterns for similar task complexity
|
|
24
|
+
|
|
25
|
+
Surface relevant findings to inform implementation decisions.
|
|
26
|
+
|
|
27
|
+
2. **Select the change**
|
|
19
28
|
|
|
20
29
|
If a name is provided, use it. Otherwise:
|
|
21
30
|
- Infer from conversation context if the user mentioned a change
|
|
22
31
|
- Auto-select if only one active change exists
|
|
23
|
-
- If ambiguous, run `openspec list --json` to get available changes and use the **
|
|
32
|
+
- If ambiguous, run `openspec list --json` to get available changes and use the **question tool** to let the user select. After calling `question`, STOP and wait for the answer.
|
|
24
33
|
|
|
25
34
|
Always announce: "Using change: <name>" and how to override (e.g., `/opsx-apply <other>`).
|
|
26
35
|
|
|
27
|
-
|
|
36
|
+
3. **Check status to understand the schema**
|
|
28
37
|
```bash
|
|
29
38
|
openspec status --change "<name>" --json
|
|
30
39
|
```
|
|
@@ -32,7 +41,7 @@ Implement tasks from an OpenSpec change.
|
|
|
32
41
|
- `schemaName`: The workflow being used (e.g., "spec-driven")
|
|
33
42
|
- Which artifact contains the tasks (typically "tasks" for spec-driven, check status for others)
|
|
34
43
|
|
|
35
|
-
|
|
44
|
+
4. **Get apply instructions**
|
|
36
45
|
|
|
37
46
|
```bash
|
|
38
47
|
openspec instructions apply --change "<name>" --json
|
|
@@ -49,14 +58,14 @@ Implement tasks from an OpenSpec change.
|
|
|
49
58
|
- If `state: "all_done"`: congratulate, suggest archive
|
|
50
59
|
- Otherwise: proceed to implementation
|
|
51
60
|
|
|
52
|
-
|
|
61
|
+
5. **Read context files**
|
|
53
62
|
|
|
54
|
-
|
|
63
|
+
Use **CodeGraph** (`codegraph_explore`) to understand the code structure before reading files directly. Then read every file path listed under `contextFiles` from the apply instructions output.
|
|
55
64
|
The files depend on the schema being used:
|
|
56
65
|
- **spec-driven**: proposal, specs, design, tasks
|
|
57
66
|
- Other schemas: follow the contextFiles from CLI output
|
|
58
67
|
|
|
59
|
-
|
|
68
|
+
6. **Show current progress**
|
|
60
69
|
|
|
61
70
|
Display:
|
|
62
71
|
- Schema being used
|
|
@@ -64,7 +73,7 @@ Implement tasks from an OpenSpec change.
|
|
|
64
73
|
- Remaining tasks overview
|
|
65
74
|
- Dynamic instruction from CLI
|
|
66
75
|
|
|
67
|
-
|
|
76
|
+
7. **Implement tasks (loop until done or blocked)**
|
|
68
77
|
|
|
69
78
|
For each pending task:
|
|
70
79
|
- Show which task is being worked on
|
|
@@ -79,7 +88,7 @@ Implement tasks from an OpenSpec change.
|
|
|
79
88
|
- Error or blocker encountered → report and wait for guidance
|
|
80
89
|
- User interrupts
|
|
81
90
|
|
|
82
|
-
|
|
91
|
+
8. **On completion or pause, show status**
|
|
83
92
|
|
|
84
93
|
Display:
|
|
85
94
|
- Tasks completed this session
|
|
@@ -17,7 +17,7 @@ Archive a completed change in the experimental workflow.
|
|
|
17
17
|
|
|
18
18
|
1. **If no change name provided, prompt for selection**
|
|
19
19
|
|
|
20
|
-
Run `openspec list --json` to get available changes. Use the **
|
|
20
|
+
Run `openspec list --json` to get available changes. Use the **question tool** to let the user select. After calling `question`, STOP and wait for the answer.
|
|
21
21
|
|
|
22
22
|
Show only active changes (not already archived).
|
|
23
23
|
Include the schema used for each change if available.
|
|
@@ -34,7 +34,7 @@ Archive a completed change in the experimental workflow.
|
|
|
34
34
|
|
|
35
35
|
**If any artifacts are not `done`:**
|
|
36
36
|
- Display warning listing incomplete artifacts
|
|
37
|
-
- Use **
|
|
37
|
+
- Use **question tool** to confirm user wants to proceed. After calling `question`, STOP and wait for the answer.
|
|
38
38
|
- Proceed if user confirms
|
|
39
39
|
|
|
40
40
|
3. **Check task completion status**
|
|
@@ -45,7 +45,7 @@ Archive a completed change in the experimental workflow.
|
|
|
45
45
|
|
|
46
46
|
**If incomplete tasks found:**
|
|
47
47
|
- Display warning showing count of incomplete tasks
|
|
48
|
-
- Use **
|
|
48
|
+
- Use **question tool** to confirm user wants to proceed. After calling `question`, STOP and wait for the answer.
|
|
49
49
|
- Proceed if user confirms
|
|
50
50
|
|
|
51
51
|
**If no tasks file exists:** Proceed without task-related warning.
|
|
@@ -24,22 +24,24 @@ When ready to implement, run /opsx-apply
|
|
|
24
24
|
|
|
25
25
|
**Steps**
|
|
26
26
|
|
|
27
|
-
1. **If
|
|
27
|
+
1. **Check Engram for similar changes** — `engram_mem_search` with keywords from the user's description. If a similar change was proposed or implemented before, surface it to the user. They may want to extend the existing work instead of starting fresh.
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
2. **If no clear input provided, ask what they want to build**
|
|
30
|
+
|
|
31
|
+
Use the **question tool** (open-ended, no preset options) to ask:
|
|
30
32
|
> "What change do you want to work on? Describe what you want to build or fix."
|
|
31
33
|
|
|
32
34
|
From their description, derive a kebab-case name (e.g., "add user authentication" → `add-user-auth`).
|
|
33
35
|
|
|
34
|
-
**IMPORTANT**: Do NOT proceed without understanding what the user wants to build.
|
|
36
|
+
**IMPORTANT**: Do NOT proceed without understanding what the user wants to build. **IMPORTANT**: After calling `question`, STOP. Do not generate more text or execute tools.
|
|
35
37
|
|
|
36
|
-
|
|
38
|
+
3. **Create the change directory**
|
|
37
39
|
```bash
|
|
38
40
|
openspec new change "<name>"
|
|
39
41
|
```
|
|
40
42
|
This creates a scaffolded change at `openspec/changes/<name>/` with `.openspec.yaml`.
|
|
41
43
|
|
|
42
|
-
|
|
44
|
+
4. **Get the artifact build order**
|
|
43
45
|
```bash
|
|
44
46
|
openspec status --change "<name>" --json
|
|
45
47
|
```
|
|
@@ -47,7 +49,7 @@ When ready to implement, run /opsx-apply
|
|
|
47
49
|
- `applyRequires`: array of artifact IDs needed before implementation (e.g., `["tasks"]`)
|
|
48
50
|
- `artifacts`: list of all artifacts with their status and dependencies
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
5. **Create artifacts in sequence until apply-ready**
|
|
51
53
|
|
|
52
54
|
Use the **TodoWrite tool** to track progress through the artifacts.
|
|
53
55
|
|
|
@@ -76,10 +78,10 @@ When ready to implement, run /opsx-apply
|
|
|
76
78
|
- Stop when all `applyRequires` artifacts are done
|
|
77
79
|
|
|
78
80
|
c. **If an artifact requires user input** (unclear context):
|
|
79
|
-
- Use **
|
|
81
|
+
- Use **question tool** to clarify, then STOP and wait for the answer
|
|
80
82
|
- Then continue with creation
|
|
81
83
|
|
|
82
|
-
|
|
84
|
+
6. **Show final status**
|
|
83
85
|
```bash
|
|
84
86
|
openspec status --change "<name>"
|
|
85
87
|
```
|
|
@@ -52,10 +52,12 @@ After obtaining the diff, if it is empty, inform the user that there are no chan
|
|
|
52
52
|
|
|
53
53
|
Before analyzing the diff:
|
|
54
54
|
|
|
55
|
-
1. **
|
|
56
|
-
2. **
|
|
57
|
-
3. **
|
|
58
|
-
4. **
|
|
55
|
+
1. **Follow Core Instructions** — `ostacky.md` Core Instructions section for CodeGraph usage patterns. Use `codegraph_explore` to understand the code structure before reading files directly.
|
|
56
|
+
2. **Use CodeGraph for code understanding** — `codegraph_explore` on the changed symbols gives you call paths, blast radius, and related code in ONE call. Only `Read` files for details CodeGraph didn't cover.
|
|
57
|
+
3. **Read changed files for full context** — After CodeGraph exploration, read each modified file to understand the surrounding code, imports, types, and control flow.
|
|
58
|
+
4. **Identify the tech stack** — Note languages, frameworks, and libraries in use. This affects what patterns are risky.
|
|
59
|
+
5. **Check for related test files** — For each changed source file, look for corresponding test files. Note whether tests were updated alongside the changes.
|
|
60
|
+
6. **Check for configuration changes** — If config files changed (env, CI, package.json, tsconfig, etc.), pay extra attention to side effects.
|
|
59
61
|
|
|
60
62
|
</gather_context>
|
|
61
63
|
|
|
@@ -133,7 +135,7 @@ Severity levels:
|
|
|
133
135
|
|
|
134
136
|
<critical_rules>
|
|
135
137
|
|
|
136
|
-
1. **
|
|
138
|
+
1. **FOLLOW CORE INSTRUCTIONS** — Use CodeGraph for code understanding before reading files. See `ostacky.md` Core Instructions section.
|
|
137
139
|
2. **NO FALSE ALARMS**: Only report issues you can explain concretely. Do not report vague concerns
|
|
138
140
|
3. **PRIORITIZE**: Lead with the most severe findings. Do not bury critical issues under style nits
|
|
139
141
|
4. **BE SPECIFIC**: Include file paths, line numbers, and code references for every finding
|
|
@@ -10,6 +10,7 @@ description: Use when Ostacky has confirmed subagent-driven execution mode and d
|
|
|
10
10
|
2. Presented evidence and recommendation to the user
|
|
11
11
|
3. Received explicit user confirmation for subagent-driven mode
|
|
12
12
|
4. Called `controller.consumeExecutionDecision({ mode: "SUBAGENT_DRIVEN" })`
|
|
13
|
+
5. Checked Engram (`engram_mem_search`) for past subagent execution patterns on similar changes — if a previous approach failed, avoid repeating it
|
|
13
14
|
|
|
14
15
|
Subagents are execution-only. They never create routing decisions, re-analyze execution mode, or duplicate discovery that the coordinator already resolved.
|
|
15
16
|
|
|
@@ -47,6 +48,18 @@ digraph when_to_use {
|
|
|
47
48
|
- Two-stage review after each task: spec compliance first, then code quality
|
|
48
49
|
- Faster iteration (no human-in-loop between tasks)
|
|
49
50
|
|
|
51
|
+
## Context Gathering for Subagents
|
|
52
|
+
|
|
53
|
+
**Follow Core Instructions** — `ostacky.md` Core Instructions section for CodeGraph usage patterns. Do NOT duplicate those instructions here.
|
|
54
|
+
|
|
55
|
+
When constructing the context package for each subagent:
|
|
56
|
+
|
|
57
|
+
1. Use `codegraph_explore` to get the verbatim source of relevant symbols, their call paths, and blast radius — in ONE call.
|
|
58
|
+
2. Only use `Read` for files or details CodeGraph didn't cover.
|
|
59
|
+
3. Include the CodeGraph output in the subagent's context package so they have structural understanding without needing to re-explore.
|
|
60
|
+
|
|
61
|
+
**Why this matters:** Subagents have limited context. CodeGraph gives them more accurate information in fewer tokens than they'd consume re-reading files themselves.
|
|
62
|
+
|
|
50
63
|
## The Process
|
|
51
64
|
|
|
52
65
|
```dot
|
|
@@ -256,6 +269,7 @@ Done!
|
|
|
256
269
|
- Let implementer self-review replace actual review (both are needed)
|
|
257
270
|
- **Start code quality review before spec compliance is ✅** (wrong order)
|
|
258
271
|
- Move to next task while either review has open issues
|
|
272
|
+
- **Use `Bash` with `rg`/`grep` for code search** — follow Core Instructions in `ostacky.md`
|
|
259
273
|
|
|
260
274
|
**If subagent asks questions:**
|
|
261
275
|
- Answer clearly and completely
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: thinking
|
|
3
|
+
description: "Thinking partner for exploring ideas, investigating problems, and designing solutions. Two modes: creative-design (structured, produces design doc) and open-explore (unstructured, no mandatory output). Use when the user wants to think through something, brainstorm, explore an idea, or design a solution before or during a change."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Thinking
|
|
7
|
+
|
|
8
|
+
A thinking partner that adapts to what the user needs: structured design when they're building something, open exploration when they're investigating or clarifying.
|
|
9
|
+
|
|
10
|
+
**Follow Core Instructions** — `ostacky.md` Core Instructions section for CodeGraph and Engram usage patterns.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Mode Detection
|
|
15
|
+
|
|
16
|
+
| Signal | Mode |
|
|
17
|
+
|--------|------|
|
|
18
|
+
| "design", "build", "create", "add feature", "implement" | **creative-design** |
|
|
19
|
+
| "explore", "investigate", "think through", "what if", "how does" | **open-explore** |
|
|
20
|
+
| "brainstorm", "ideate", "propose approach" | **creative-design** |
|
|
21
|
+
| "check", "understand", "review existing" | **open-explore** |
|
|
22
|
+
| Unclear | Ask with **question** tool: "¿Querés diseñar algo nuevo o explorar/entender algo existente?" |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Mode 1: creative-design
|
|
27
|
+
|
|
28
|
+
Turn ideas into fully formed designs through collaborative dialogue.
|
|
29
|
+
|
|
30
|
+
### HARD-GATE
|
|
31
|
+
|
|
32
|
+
Do NOT invoke any implementation skill, write any code, or scaffold any project until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity.
|
|
33
|
+
|
|
34
|
+
### Process
|
|
35
|
+
|
|
36
|
+
1. **Check Engram** — `engram_mem_search` with keywords from the user's idea. Surface any prior design decisions or similar proposals.
|
|
37
|
+
2. **Explore via CodeGraph** — `codegraph_explore` on the affected area. Only `Read` files CodeGraph didn't cover.
|
|
38
|
+
3. **Ask clarifying questions** — one at a time, understand purpose/constraints/success criteria
|
|
39
|
+
4. **Propose 2-3 approaches** — with trade-offs and your recommendation
|
|
40
|
+
5. **Present design** — in sections scaled to complexity, get user approval after each section
|
|
41
|
+
6. **Write design doc** — save to `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` and commit
|
|
42
|
+
7. **Spec self-review** — check for placeholders, contradictions, ambiguity, scope
|
|
43
|
+
8. **User reviews spec** — ask user to review before proceeding
|
|
44
|
+
9. **Save to Engram** — `engram_mem_save` with the design decision and tradeoffs
|
|
45
|
+
10. **Transition** — based on routing decision (see Transition Rules below)
|
|
46
|
+
|
|
47
|
+
### Transition Rules
|
|
48
|
+
|
|
49
|
+
The next step depends on how the change was routed by Ostacky:
|
|
50
|
+
|
|
51
|
+
| Routing | Next Skill | When |
|
|
52
|
+
|---------|------------|------|
|
|
53
|
+
| **DIRECT** (Level 0/0+1) | `writing-plans` | Small changes, no OpenSpec |
|
|
54
|
+
| **SPEC** (Level 1+) | `openspec-propose` | Complex changes requiring OpenSpec artifacts |
|
|
55
|
+
|
|
56
|
+
If you're unsure about routing, ask Ostacky or check the controller state.
|
|
57
|
+
|
|
58
|
+
**Terminal state:** Invoke the appropriate next skill. Do NOT invoke implementation skills directly.
|
|
59
|
+
|
|
60
|
+
### Design Principles
|
|
61
|
+
|
|
62
|
+
- **One question at a time** — Don't overwhelm
|
|
63
|
+
- **Multiple choice preferred** — Easier to answer
|
|
64
|
+
- **YAGNI ruthlessly** — Remove unnecessary features
|
|
65
|
+
- **Explore alternatives** — Always propose 2-3 approaches
|
|
66
|
+
- **Incremental validation** — Present design, get approval before moving on
|
|
67
|
+
- **Design for isolation** — Break into smaller units with clear purposes
|
|
68
|
+
|
|
69
|
+
### Working in Existing Codebases
|
|
70
|
+
|
|
71
|
+
- Explore current structure before proposing changes. Follow existing patterns.
|
|
72
|
+
- Include targeted improvements where existing code affects the work.
|
|
73
|
+
- Don't propose unrelated refactoring. Stay focused on the goal.
|
|
74
|
+
|
|
75
|
+
### Spec Self-Review
|
|
76
|
+
|
|
77
|
+
After writing the spec:
|
|
78
|
+
1. **Placeholder scan:** Any "TBD", "TODO", incomplete sections? Fix them.
|
|
79
|
+
2. **Internal consistency:** Do sections contradict each other?
|
|
80
|
+
3. **Scope check:** Focused enough for a single implementation plan?
|
|
81
|
+
4. **Ambiguity check:** Any requirement interpretable two ways? Pick one.
|
|
82
|
+
|
|
83
|
+
### User Review Gate
|
|
84
|
+
|
|
85
|
+
> "Spec written and committed to `<path>`. Please review it and let me know if you want to make any changes before we start writing out the implementation plan."
|
|
86
|
+
|
|
87
|
+
Wait for response. If changes requested, make them and re-review. Only proceed once approved.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Mode 2: open-explore
|
|
92
|
+
|
|
93
|
+
A stance, not a workflow. Think deeply. Visualize freely. Follow the conversation wherever it goes.
|
|
94
|
+
|
|
95
|
+
### What You Might Do
|
|
96
|
+
|
|
97
|
+
**Explore the problem space**
|
|
98
|
+
- Ask clarifying questions that emerge from what they said
|
|
99
|
+
- Challenge assumptions
|
|
100
|
+
- Reframe the problem
|
|
101
|
+
- Find analogies
|
|
102
|
+
|
|
103
|
+
**Investigate the codebase**
|
|
104
|
+
- Map existing architecture relevant to the discussion
|
|
105
|
+
- Find integration points
|
|
106
|
+
- Identify patterns already in use
|
|
107
|
+
- Surface hidden complexity
|
|
108
|
+
|
|
109
|
+
**Compare options**
|
|
110
|
+
- Brainstorm multiple approaches
|
|
111
|
+
- Build comparison tables
|
|
112
|
+
- Sketch tradeoffs
|
|
113
|
+
- Recommend a path (if asked)
|
|
114
|
+
|
|
115
|
+
**Visualize**
|
|
116
|
+
```
|
|
117
|
+
Use ASCII diagrams liberally:
|
|
118
|
+
System diagrams, state machines, data flows,
|
|
119
|
+
architecture sketches, dependency graphs,
|
|
120
|
+
comparison tables
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Surface risks and unknowns**
|
|
124
|
+
- Identify what could go wrong
|
|
125
|
+
- Find gaps in understanding
|
|
126
|
+
- Suggest spikes or investigations
|
|
127
|
+
|
|
128
|
+
### OpenSpec Awareness
|
|
129
|
+
|
|
130
|
+
Check for active changes at start:
|
|
131
|
+
```bash
|
|
132
|
+
openspec list --json
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
If a change exists and the user mentions it:
|
|
136
|
+
1. Read existing artifacts (`proposal.md`, `design.md`, `tasks.md`)
|
|
137
|
+
2. Reference them naturally in conversation
|
|
138
|
+
3. Offer to capture when decisions are made — don't auto-capture
|
|
139
|
+
|
|
140
|
+
| Insight Type | Where to Capture |
|
|
141
|
+
|---|---|
|
|
142
|
+
| New requirement | `specs/<capability>/spec.md` |
|
|
143
|
+
| Design decision | `design.md` |
|
|
144
|
+
| Scope change | `proposal.md` |
|
|
145
|
+
| New work | `tasks.md` |
|
|
146
|
+
|
|
147
|
+
### What You Don't Have To Do
|
|
148
|
+
|
|
149
|
+
- Follow a script
|
|
150
|
+
- Produce a specific artifact
|
|
151
|
+
- Reach a conclusion
|
|
152
|
+
- Stay on topic if a tangent is valuable
|
|
153
|
+
- Be brief (this is thinking time)
|
|
154
|
+
|
|
155
|
+
### Ending Discovery
|
|
156
|
+
|
|
157
|
+
No required ending. Discovery might:
|
|
158
|
+
- **Flow into a proposal:** "Ready to start? I can create a change proposal." → invoke `openspec-propose`
|
|
159
|
+
- **Result in artifact updates:** "Updated design.md with these decisions"
|
|
160
|
+
- **Just provide clarity:** User has what they need, moves on
|
|
161
|
+
- **Continue later:** "We can pick this up anytime"
|
|
162
|
+
|
|
163
|
+
When things crystallize, summarize:
|
|
164
|
+
```
|
|
165
|
+
## What We Figured Out
|
|
166
|
+
**The problem**: [understanding]
|
|
167
|
+
**The approach**: [if one emerged]
|
|
168
|
+
**Open questions**: [if any]
|
|
169
|
+
**Next steps** (if ready):
|
|
170
|
+
- Create a change proposal (invoke openspec-propose)
|
|
171
|
+
- Keep exploring
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
But the summary is optional. Sometimes the thinking IS the value.
|
|
175
|
+
|
|
176
|
+
### Guardrails
|
|
177
|
+
|
|
178
|
+
- **Don't implement** — Never write code. Creating OpenSpec artifacts is fine.
|
|
179
|
+
- **Don't fake understanding** — Dig deeper if unclear
|
|
180
|
+
- **Don't rush** — Discovery is thinking time, not task time
|
|
181
|
+
- **Don't force structure** — Let patterns emerge naturally
|
|
182
|
+
- **Don't auto-capture** — Offer to save insights, don't just do it
|
|
183
|
+
- **Do visualize** — A good diagram is worth many paragraphs
|
|
184
|
+
- **Do explore the codebase** — Ground discussions in reality
|
|
185
|
+
- **Do question assumptions** — Including your own
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Visual Companion
|
|
190
|
+
|
|
191
|
+
Browser use is text-only by default.
|
|
192
|
+
|
|
193
|
+
- Only use the browser when the user explicitly asks for browser/visual help.
|
|
194
|
+
- Do not suggest the browser just because it might explain something more clearly.
|
|
195
|
+
- If the user asks for browser/visual help, read `skills/thinking/visual-companion.md` before proceeding.
|
|
@@ -211,7 +211,7 @@ Ready to implement auth feature
|
|
|
211
211
|
## Integration
|
|
212
212
|
|
|
213
213
|
**Called by:**
|
|
214
|
-
- **
|
|
214
|
+
- **thinking** (creative-design mode) - REQUIRED when design is approved and implementation follows
|
|
215
215
|
- **subagent-driven-development** - REQUIRED before executing any tasks
|
|
216
216
|
- **executing-plans** - REQUIRED before executing any tasks
|
|
217
217
|
- Any skill needing isolated workspace
|
|
@@ -49,8 +49,8 @@ Skills use Claude Code tool names. Non-CC platforms: see `references/copilot-too
|
|
|
49
49
|
digraph skill_flow {
|
|
50
50
|
"User message received" [shape=doublecircle];
|
|
51
51
|
"About to EnterPlanMode?" [shape=doublecircle];
|
|
52
|
-
"Already
|
|
53
|
-
"Invoke
|
|
52
|
+
"Already thought through?" [shape=diamond];
|
|
53
|
+
"Invoke thinking skill" [shape=box];
|
|
54
54
|
"Might any skill apply?" [shape=diamond];
|
|
55
55
|
"Invoke Skill tool" [shape=box];
|
|
56
56
|
"Announce: 'Using [skill] to [purpose]'" [shape=box];
|
|
@@ -59,10 +59,10 @@ digraph skill_flow {
|
|
|
59
59
|
"Follow skill exactly" [shape=box];
|
|
60
60
|
"Respond (including clarifications)" [shape=doublecircle];
|
|
61
61
|
|
|
62
|
-
"About to EnterPlanMode?" -> "Already
|
|
63
|
-
"Already
|
|
64
|
-
"Already
|
|
65
|
-
"Invoke
|
|
62
|
+
"About to EnterPlanMode?" -> "Already thought through?";
|
|
63
|
+
"Already thought through?" -> "Invoke thinking skill" [label="no"];
|
|
64
|
+
"Already thought through?" -> "Might any skill apply?" [label="yes"];
|
|
65
|
+
"Invoke thinking skill" -> "Might any skill apply?";
|
|
66
66
|
|
|
67
67
|
"User message received" -> "Might any skill apply?";
|
|
68
68
|
"Might any skill apply?" -> "Invoke Skill tool" [label="yes, even 1%"];
|
|
@@ -98,10 +98,10 @@ These thoughts mean STOP—you're rationalizing:
|
|
|
98
98
|
|
|
99
99
|
When multiple skills could apply, use this order:
|
|
100
100
|
|
|
101
|
-
1. **Process skills first** (
|
|
101
|
+
1. **Process skills first** (thinking, debugging) - these determine HOW to approach the task
|
|
102
102
|
2. **Implementation skills second** (frontend-design, mcp-builder) - these guide execution
|
|
103
103
|
|
|
104
|
-
"Let's build X" →
|
|
104
|
+
"Let's build X" → thinking first, then implementation skills.
|
|
105
105
|
"Fix this bug" → debugging first, then domain-specific skills.
|
|
106
106
|
|
|
107
107
|
## Skill Types
|
|
@@ -18,9 +18,20 @@ Assume they are a skilled developer, but know almost nothing about our toolset o
|
|
|
18
18
|
**Save plans to:** `docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md`
|
|
19
19
|
- (User preferences for plan location override this default)
|
|
20
20
|
|
|
21
|
+
## Pre-Plan: Check Engram for Past Decisions
|
|
22
|
+
|
|
23
|
+
Before writing the plan, **consult Engram** to avoid repeating past mistakes:
|
|
24
|
+
|
|
25
|
+
1. `engram_mem_search` with keywords from the feature name and affected modules
|
|
26
|
+
2. Look for:
|
|
27
|
+
- Previous plans for similar features (avoid duplicating approaches)
|
|
28
|
+
- Architecture decisions that affect implementation (design patterns, library choices)
|
|
29
|
+
- Known gotchas or edge cases discovered in similar work
|
|
30
|
+
3. If relevant findings exist, incorporate them into the plan's context section
|
|
31
|
+
|
|
21
32
|
## Scope Check
|
|
22
33
|
|
|
23
|
-
If the spec covers multiple independent subsystems, it should have been broken into sub-project specs during
|
|
34
|
+
If the spec covers multiple independent subsystems, it should have been broken into sub-project specs during thinking (creative-design mode). If it wasn't, suggest breaking this into separate plans — one per subsystem. Each plan should produce working, testable software on its own.
|
|
24
35
|
|
|
25
36
|
## File Structure
|
|
26
37
|
|