@tgoodington/intuition 5.0.0 → 6.0.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/docs/intuition_design_skill_spec.md +219 -0
- package/package.json +2 -2
- package/scripts/install-skills.js +43 -125
- package/scripts/uninstall-skills.js +21 -13
- package/skills/intuition-design/SKILL.md +366 -0
- package/skills/intuition-execute/SKILL.md +12 -1
- package/skills/intuition-handoff/SKILL.md +278 -26
- package/skills/intuition-initialize/SKILL.md +40 -8
- package/skills/intuition-initialize/references/claude_template.md +31 -16
- package/skills/intuition-initialize/references/design_brief_template.md +62 -0
- package/skills/intuition-initialize/references/execution_brief_template.md +18 -13
- package/skills/intuition-initialize/references/intuition_readme_template.md +40 -0
- package/skills/intuition-initialize/references/planning_brief_template.md +5 -5
- package/skills/intuition-initialize/references/state_template.json +9 -2
- package/skills/intuition-plan/SKILL.md +50 -6
- package/skills/intuition-prompt/SKILL.md +1 -1
- package/skills/intuition-start/SKILL.md +57 -40
- package/skills/intuition-discovery/SKILL.md +0 -366
- package/skills/intuition-discovery/references/templates/discovery_brief_template.md +0 -110
- package/skills/intuition-discovery/references/waldo_core.md +0 -1013
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
# `/intuition-design` — Skill Specification (v6.0)
|
|
2
|
+
|
|
3
|
+
**Status:** Implemented
|
|
4
|
+
**Date:** 2026-02-12
|
|
5
|
+
**Source:** Synthesized from skill-guide analysis, user design sessions, and architectural review
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Purpose & Position in Workflow
|
|
10
|
+
|
|
11
|
+
Design Exploration fills the gap between strategic planning and execution. Planning decides WHAT to build and WHY. Execution decides the code-level HOW. Design Exploration decides the **architectural/creative HOW** — through collaborative dialogue with the user.
|
|
12
|
+
|
|
13
|
+
**Domain-agnostic:** Design works for code architecture, world building, UI/UX design, document structure, game design, business processes, or any creative/structural work that needs detailed elaboration before implementation.
|
|
14
|
+
|
|
15
|
+
**Workflow position (v6.0):**
|
|
16
|
+
```
|
|
17
|
+
prompt → handoff → plan → handoff → [design loop] → handoff → execute → handoff
|
|
18
|
+
↑
|
|
19
|
+
Per-item design cycles
|
|
20
|
+
managed by handoff
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**When design runs:**
|
|
24
|
+
- Plan auto-flags tasks below 95% design readiness
|
|
25
|
+
- Handoff presents flagged items to user for confirmation
|
|
26
|
+
- User can add/remove items from the design list
|
|
27
|
+
- If no items need design, handoff skips to execute
|
|
28
|
+
|
|
29
|
+
**When design does NOT run:**
|
|
30
|
+
- All plan tasks are straightforward enough for direct execution
|
|
31
|
+
- User explicitly skips design at the confirmation step
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 2. Core Design Decisions
|
|
36
|
+
|
|
37
|
+
### Framework: ECD (Elements, Connections, Dynamics)
|
|
38
|
+
|
|
39
|
+
Three coverage dimensions tracked throughout dialogue:
|
|
40
|
+
|
|
41
|
+
- **E — Elements**: What are the building blocks? The core entities, components, types, content pieces, or structural units. Their properties, boundaries, and definitions.
|
|
42
|
+
- **C — Connections**: How do elements relate? The relationships, interfaces, dependencies, flows, hierarchies, or structural organization. Integration with existing context.
|
|
43
|
+
- **D — Dynamics**: How do things work and change? The behaviors, processes, rules, interactions, state transitions, or operational logic. Edge cases and exceptions.
|
|
44
|
+
|
|
45
|
+
Natural progression: E → C → D. All three must reach sufficiency before formalization.
|
|
46
|
+
|
|
47
|
+
**Why ECD over DIP:**
|
|
48
|
+
- DIP (Data, Interfaces, Process) was code-specific — TypeScript types, API signatures, algorithms
|
|
49
|
+
- ECD is domain-agnostic — adapts language to match what is being designed
|
|
50
|
+
- ECD maps cleanly to DIP for code (E≈D, C≈I, D≈P) while also working for creative domains
|
|
51
|
+
|
|
52
|
+
**Domain adaptation:**
|
|
53
|
+
|
|
54
|
+
| Domain | Elements | Connections | Dynamics |
|
|
55
|
+
|--------|----------|-------------|----------|
|
|
56
|
+
| Code | Types, models, schemas | APIs, interfaces, integration | Algorithms, state transitions |
|
|
57
|
+
| World building | Locations, characters, factions | Alliances, geography, trade | Magic rules, economy, combat |
|
|
58
|
+
| UI/UX | Screens, components, layouts | Navigation, data flow, journeys | Interactions, states, animations |
|
|
59
|
+
| Documents | Sections, arguments, evidence | Logical flow, transitions | Tone, persuasion, pacing |
|
|
60
|
+
| Game design | Mechanics, entities, resources | Progression, feedback loops | Balance, player interactions |
|
|
61
|
+
| Business | Roles, artifacts, stages | Handoffs, approvals, escalations | Timing rules, SLAs |
|
|
62
|
+
|
|
63
|
+
### Voice: Senior Architect
|
|
64
|
+
|
|
65
|
+
Analytical, decisive, research-informed, concise, appropriately challenging. Domain adapts to what is being designed, but posture stays the same.
|
|
66
|
+
|
|
67
|
+
### Model: Opus
|
|
68
|
+
|
|
69
|
+
Design decisions have long-term consequences. Worth the cost for nuanced trade-off reasoning, complex system synthesis, and edge case identification.
|
|
70
|
+
|
|
71
|
+
Sub-agents use haiku for research (fast, cheap, parallel). Sonnet for complex trade-off analysis.
|
|
72
|
+
|
|
73
|
+
### Permission Mode: Plan-like (read-only for code)
|
|
74
|
+
|
|
75
|
+
Design creates specifications, not code. All artifacts are markdown. Write tool used for spec files only.
|
|
76
|
+
|
|
77
|
+
**Tools:** Read, Glob, Grep, Task, AskUserQuestion, Write (for spec files only)
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 3. Protocol Structure
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
Phase 1: SCOPE & CONTEXT (1 turn) Read brief, research context, frame challenge
|
|
85
|
+
Phase 2: ELEMENTS (1-2 turns) Define building blocks and properties [ECD: E]
|
|
86
|
+
Phase 3: CONNECTIONS (1-2 turns) Map relationships and structure [ECD: C]
|
|
87
|
+
Phase 4: DYNAMICS (2-3 turns) Define behaviors, rules, and edge cases [ECD: D]
|
|
88
|
+
Phase 5: FORMALIZATION (1 turn) Draft spec, validate, approve, save
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Total:** 6-9 turns per item. Shorter than discovery because scope is narrower (one item, not the whole problem).
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 4. Design Loop Architecture
|
|
96
|
+
|
|
97
|
+
Design runs once per flagged item, with handoff managing the loop:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
handoff (plan→design): presents items, user confirms, generates brief for item 1
|
|
101
|
+
→ design (item 1): ECD exploration, saves design_spec_item1.md
|
|
102
|
+
→ handoff (design→design): processes spec, generates brief for item 2
|
|
103
|
+
→ design (item 2): ECD exploration, saves design_spec_item2.md
|
|
104
|
+
→ handoff (design→design): processes spec, generates brief for item 3
|
|
105
|
+
→ design (item 3): ECD exploration, saves design_spec_item3.md
|
|
106
|
+
→ handoff (design→execute): all items done, generates execution_brief.md
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Key properties:**
|
|
110
|
+
- Each design invocation focuses on ONE item (narrow scope, high quality)
|
|
111
|
+
- Handoff tracks which items are completed, pending, or skipped
|
|
112
|
+
- User gets natural breakpoints between items
|
|
113
|
+
- Execute gets ALL design specs before starting (full picture for parallelization)
|
|
114
|
+
- No skip-to-execute mid-loop — complete all confirmed items first
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 5. Plan Integration: Auto-Flagging
|
|
119
|
+
|
|
120
|
+
Plan assesses every task for design readiness using a 95% threshold:
|
|
121
|
+
|
|
122
|
+
**Flag as DESIGN REQUIRED if:**
|
|
123
|
+
- Novel territory (no existing pattern)
|
|
124
|
+
- Multiple valid approaches (lasting consequences)
|
|
125
|
+
- User-facing decisions (layout, creative, UX, tone)
|
|
126
|
+
- Complex interactions (interfaces need definition)
|
|
127
|
+
- Ambiguous scope (HOW has genuine options)
|
|
128
|
+
|
|
129
|
+
**Plan output includes:**
|
|
130
|
+
```markdown
|
|
131
|
+
### Design Recommendations
|
|
132
|
+
|
|
133
|
+
| Task(s) | Item Name | Recommendation | Rationale |
|
|
134
|
+
|---------|-----------|---------------|-----------|
|
|
135
|
+
| Task 3, 4 | Behavior Tree AI | DESIGN REQUIRED | Novel architecture, multiple approaches |
|
|
136
|
+
| Task 7 | Combat UI | DESIGN REQUIRED | User-facing layout decisions |
|
|
137
|
+
| Task 1, 2 | Core Data Model | Ready for execution | Follows existing patterns |
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 6. Output Format
|
|
143
|
+
|
|
144
|
+
Saved to `docs/project_notes/design_spec_[item_name].md`. Content adapts to the domain being designed. See SKILL.md for full format.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 7. State Schema (v3.0)
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"initialized": true,
|
|
153
|
+
"version": "3.0",
|
|
154
|
+
"workflow": {
|
|
155
|
+
"status": "none | prompt | planning | design | executing | complete",
|
|
156
|
+
"prompt": { "started": false, "completed": false, "completed_at": null, "output_files": [] },
|
|
157
|
+
"planning": { "started": false, "completed": false, "completed_at": null, "approved": false },
|
|
158
|
+
"design": {
|
|
159
|
+
"started": false,
|
|
160
|
+
"completed": false,
|
|
161
|
+
"completed_at": null,
|
|
162
|
+
"items": [
|
|
163
|
+
{
|
|
164
|
+
"name": "item_name_snake_case",
|
|
165
|
+
"display_name": "Human Readable Name",
|
|
166
|
+
"status": "pending | in_progress | completed | skipped",
|
|
167
|
+
"plan_tasks": [3, 4, 5],
|
|
168
|
+
"spec_file": null,
|
|
169
|
+
"flagged_reason": "Why plan flagged this"
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"current_item": null
|
|
173
|
+
},
|
|
174
|
+
"execution": { "started": false, "completed": false, "completed_at": null }
|
|
175
|
+
},
|
|
176
|
+
"last_handoff": null,
|
|
177
|
+
"last_handoff_transition": null
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 8. Handoff Transitions
|
|
184
|
+
|
|
185
|
+
| # | Transition | Input | Output |
|
|
186
|
+
|---|-----------|-------|--------|
|
|
187
|
+
| 1 | prompt → plan | discovery_brief.md, discovery_output.json | planning_brief.md |
|
|
188
|
+
| 2 | plan → design | plan.md | design_brief.md (first item) |
|
|
189
|
+
| 3 | design → design | design_spec_[item].md | design_brief.md (next item) |
|
|
190
|
+
| 4 | design → execute | all design_spec_*.md, plan.md | execution_brief.md |
|
|
191
|
+
| 4B | plan → execute (skip) | plan.md | execution_brief.md |
|
|
192
|
+
| 5 | execute → complete | execution results | completion summary |
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 9. Critical Rules
|
|
197
|
+
|
|
198
|
+
1. You MUST read design_brief.md before designing. If missing, route to handoff.
|
|
199
|
+
2. You MUST launch context research in Phase 1 before first question.
|
|
200
|
+
3. You MUST use ECD coverage tracking. Formalization only when E, C, D are sufficient.
|
|
201
|
+
4. You MUST ask exactly ONE question per turn via AskUserQuestion.
|
|
202
|
+
5. You MUST present 2-4 sentences of analysis BEFORE every question.
|
|
203
|
+
6. You MUST be domain-agnostic. Adapt language to the domain being designed.
|
|
204
|
+
7. You MUST validate against Design Completeness Checklist before presenting draft.
|
|
205
|
+
8. You MUST save spec to `docs/project_notes/design_spec_[item_name].md`.
|
|
206
|
+
9. You MUST route to `/intuition-handoff` after saving. NEVER to `/intuition-execute`.
|
|
207
|
+
10. You MUST NOT write code — specifications only.
|
|
208
|
+
11. You MUST NOT modify plan.md or discovery_brief.md.
|
|
209
|
+
12. You MUST NOT manage .project-memory-state.json — handoff owns state.
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## 10. Migration from v5.0
|
|
214
|
+
|
|
215
|
+
- Discovery skill removed entirely
|
|
216
|
+
- Prompt becomes sole entry point for problem understanding
|
|
217
|
+
- State schema v2.0 → v3.0 (`discovery` → `prompt`, added `design` phase)
|
|
218
|
+
- Install script auto-removes old `intuition-discovery` from ~/.claude/skills/
|
|
219
|
+
- Start skill no longer offers discovery/prompt choice — directs to prompt only
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tgoodington/intuition",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
|
+
"description": "Four-phase workflow system for Claude Code: prompt, plan, design, execute. Domain-agnostic design exploration with ECD framework, iterative design loop, and file-based handoffs through project memory.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
|
7
7
|
"skills",
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Installation script for Intuition skills
|
|
5
5
|
*
|
|
6
|
-
* This script is run after `npm install -g intuition`
|
|
7
|
-
* It copies
|
|
6
|
+
* This script is run after `npm install -g @tgoodington/intuition`
|
|
7
|
+
* It copies skills to ~/.claude/skills/ for global access
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
const fs = require('fs');
|
|
@@ -39,13 +39,26 @@ function error(msg) {
|
|
|
39
39
|
console.error(`[intuition-install] ERROR: ${msg}`);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
// All skills to install
|
|
43
|
+
const skills = [
|
|
44
|
+
'intuition-start',
|
|
45
|
+
'intuition-prompt',
|
|
46
|
+
'intuition-handoff',
|
|
47
|
+
'intuition-plan',
|
|
48
|
+
'intuition-design',
|
|
49
|
+
'intuition-execute',
|
|
50
|
+
'intuition-initialize',
|
|
51
|
+
'intuition-agent-advisor',
|
|
52
|
+
'intuition-skill-guide',
|
|
53
|
+
'intuition-update'
|
|
54
|
+
];
|
|
55
|
+
|
|
42
56
|
// Main installation logic
|
|
43
57
|
try {
|
|
44
58
|
const homeDir = os.homedir();
|
|
45
59
|
const claudeSkillsDir = path.join(homeDir, '.claude', 'skills');
|
|
46
60
|
|
|
47
|
-
// Get the location of the installed package
|
|
48
|
-
// In npm global installation, this is typically in node_modules/intuition/
|
|
61
|
+
// Get the location of the installed package
|
|
49
62
|
const packageRoot = path.dirname(path.dirname(path.resolve(__filename)));
|
|
50
63
|
|
|
51
64
|
log(`Installing Intuition skills...`);
|
|
@@ -58,135 +71,40 @@ try {
|
|
|
58
71
|
log(`Created ${claudeSkillsDir}`);
|
|
59
72
|
}
|
|
60
73
|
|
|
61
|
-
//
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
copyDirRecursive(startSrc, startDest);
|
|
67
|
-
log(`✓ Installed /intuition-start skill to ${startDest}`);
|
|
68
|
-
} else {
|
|
69
|
-
error(`intuition-start skill not found at ${startSrc}`);
|
|
70
|
-
process.exit(1);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Copy /intuition-plan skill
|
|
74
|
-
const planSrc = path.join(packageRoot, 'skills', 'intuition-plan');
|
|
75
|
-
const planDest = path.join(claudeSkillsDir, 'intuition-plan');
|
|
76
|
-
|
|
77
|
-
if (fs.existsSync(planSrc)) {
|
|
78
|
-
copyDirRecursive(planSrc, planDest);
|
|
79
|
-
log(`✓ Installed /intuition-plan skill to ${planDest}`);
|
|
80
|
-
} else {
|
|
81
|
-
error(`intuition-plan skill not found at ${planSrc}`);
|
|
82
|
-
process.exit(1);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// Copy /intuition-execute skill
|
|
86
|
-
const executeSrc = path.join(packageRoot, 'skills', 'intuition-execute');
|
|
87
|
-
const executeDest = path.join(claudeSkillsDir, 'intuition-execute');
|
|
88
|
-
|
|
89
|
-
if (fs.existsSync(executeSrc)) {
|
|
90
|
-
copyDirRecursive(executeSrc, executeDest);
|
|
91
|
-
log(`✓ Installed /intuition-execute skill to ${executeDest}`);
|
|
92
|
-
} else {
|
|
93
|
-
error(`intuition-execute skill not found at ${executeSrc}`);
|
|
94
|
-
process.exit(1);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// Copy /intuition-initialize skill
|
|
98
|
-
const initializeSrc = path.join(packageRoot, 'skills', 'intuition-initialize');
|
|
99
|
-
const initializeDest = path.join(claudeSkillsDir, 'intuition-initialize');
|
|
100
|
-
|
|
101
|
-
if (fs.existsSync(initializeSrc)) {
|
|
102
|
-
copyDirRecursive(initializeSrc, initializeDest);
|
|
103
|
-
log(`✓ Installed /intuition-initialize skill to ${initializeDest}`);
|
|
104
|
-
} else {
|
|
105
|
-
error(`intuition-initialize skill not found at ${initializeSrc}`);
|
|
106
|
-
process.exit(1);
|
|
74
|
+
// Remove old discovery skill if it exists (replaced by design in v6.0)
|
|
75
|
+
const oldDiscoveryDest = path.join(claudeSkillsDir, 'intuition-discovery');
|
|
76
|
+
if (fs.existsSync(oldDiscoveryDest)) {
|
|
77
|
+
fs.rmSync(oldDiscoveryDest, { recursive: true, force: true });
|
|
78
|
+
log(`Removed old /intuition-discovery skill (replaced by /intuition-design in v6.0)`);
|
|
107
79
|
}
|
|
108
80
|
|
|
109
|
-
//
|
|
110
|
-
|
|
111
|
-
|
|
81
|
+
// Install each skill
|
|
82
|
+
skills.forEach(skillName => {
|
|
83
|
+
const src = path.join(packageRoot, 'skills', skillName);
|
|
84
|
+
const dest = path.join(claudeSkillsDir, skillName);
|
|
112
85
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
// Copy /intuition-handoff skill
|
|
122
|
-
const handoffSrc = path.join(packageRoot, 'skills', 'intuition-handoff');
|
|
123
|
-
const handoffDest = path.join(claudeSkillsDir, 'intuition-handoff');
|
|
124
|
-
|
|
125
|
-
if (fs.existsSync(handoffSrc)) {
|
|
126
|
-
copyDirRecursive(handoffSrc, handoffDest);
|
|
127
|
-
log(`✓ Installed /intuition-handoff skill to ${handoffDest}`);
|
|
128
|
-
} else {
|
|
129
|
-
error(`intuition-handoff skill not found at ${handoffSrc}`);
|
|
130
|
-
process.exit(1);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// Copy /intuition-agent-advisor skill
|
|
134
|
-
const agentAdvisorSrc = path.join(packageRoot, 'skills', 'intuition-agent-advisor');
|
|
135
|
-
const agentAdvisorDest = path.join(claudeSkillsDir, 'intuition-agent-advisor');
|
|
136
|
-
|
|
137
|
-
if (fs.existsSync(agentAdvisorSrc)) {
|
|
138
|
-
copyDirRecursive(agentAdvisorSrc, agentAdvisorDest);
|
|
139
|
-
log(`✓ Installed /intuition-agent-advisor skill to ${agentAdvisorDest}`);
|
|
140
|
-
} else {
|
|
141
|
-
error(`intuition-agent-advisor skill not found at ${agentAdvisorSrc}`);
|
|
142
|
-
process.exit(1);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// Copy /intuition-skill-guide skill
|
|
146
|
-
const skillGuideSrc = path.join(packageRoot, 'skills', 'intuition-skill-guide');
|
|
147
|
-
const skillGuideDest = path.join(claudeSkillsDir, 'intuition-skill-guide');
|
|
148
|
-
|
|
149
|
-
if (fs.existsSync(skillGuideSrc)) {
|
|
150
|
-
copyDirRecursive(skillGuideSrc, skillGuideDest);
|
|
151
|
-
log(`✓ Installed /intuition-skill-guide skill to ${skillGuideDest}`);
|
|
152
|
-
} else {
|
|
153
|
-
error(`intuition-skill-guide skill not found at ${skillGuideSrc}`);
|
|
154
|
-
process.exit(1);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
// Copy /intuition-update skill
|
|
158
|
-
const updateSrc = path.join(packageRoot, 'skills', 'intuition-update');
|
|
159
|
-
const updateDest = path.join(claudeSkillsDir, 'intuition-update');
|
|
160
|
-
|
|
161
|
-
if (fs.existsSync(updateSrc)) {
|
|
162
|
-
copyDirRecursive(updateSrc, updateDest);
|
|
163
|
-
log(`✓ Installed /intuition-update skill to ${updateDest}`);
|
|
164
|
-
} else {
|
|
165
|
-
error(`intuition-update skill not found at ${updateSrc}`);
|
|
166
|
-
process.exit(1);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
// Copy /intuition-prompt skill
|
|
170
|
-
const promptSrc = path.join(packageRoot, 'skills', 'intuition-prompt');
|
|
171
|
-
const promptDest = path.join(claudeSkillsDir, 'intuition-prompt');
|
|
172
|
-
|
|
173
|
-
if (fs.existsSync(promptSrc)) {
|
|
174
|
-
copyDirRecursive(promptSrc, promptDest);
|
|
175
|
-
log(`✓ Installed /intuition-prompt skill to ${promptDest}`);
|
|
176
|
-
} else {
|
|
177
|
-
error(`intuition-prompt skill not found at ${promptSrc}`);
|
|
178
|
-
process.exit(1);
|
|
179
|
-
}
|
|
86
|
+
if (fs.existsSync(src)) {
|
|
87
|
+
copyDirRecursive(src, dest);
|
|
88
|
+
log(`\u2713 Installed /${skillName} skill to ${dest}`);
|
|
89
|
+
} else {
|
|
90
|
+
error(`${skillName} skill not found at ${src}`);
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
180
94
|
|
|
181
95
|
// Verify installation
|
|
182
|
-
|
|
183
|
-
|
|
96
|
+
const allInstalled = skills.every(skillName =>
|
|
97
|
+
fs.existsSync(path.join(claudeSkillsDir, skillName))
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
if (allInstalled) {
|
|
101
|
+
log(`\u2713 Installation complete!`);
|
|
184
102
|
log(`Skills are now available globally:`);
|
|
185
103
|
log(` /intuition-start - Load project context and detect workflow phase`);
|
|
186
|
-
log(` /intuition-discovery - Exploratory discovery (research-informed dialogue)`);
|
|
187
104
|
log(` /intuition-prompt - Focused discovery (prompt-engineering refinement)`);
|
|
188
|
-
log(` /intuition-handoff - Handoff orchestrator (phase transitions)`);
|
|
189
|
-
log(` /intuition-plan - Strategic planning (ARCH protocol)`);
|
|
105
|
+
log(` /intuition-handoff - Handoff orchestrator (phase transitions + design loop)`);
|
|
106
|
+
log(` /intuition-plan - Strategic planning (ARCH protocol + design flagging)`);
|
|
107
|
+
log(` /intuition-design - Design exploration (ECD framework, domain-agnostic)`);
|
|
190
108
|
log(` /intuition-execute - Execution orchestrator (subagent delegation)`);
|
|
191
109
|
log(` /intuition-initialize - Project initialization (set up project memory)`);
|
|
192
110
|
log(` /intuition-agent-advisor - Expert advisor on building custom agents`);
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Uninstallation script for Intuition skills
|
|
5
5
|
*
|
|
6
|
-
* This script is run before `npm uninstall -g intuition`
|
|
7
|
-
* It removes
|
|
6
|
+
* This script is run before `npm uninstall -g @tgoodington/intuition`
|
|
7
|
+
* It removes all Intuition skills from ~/.claude/skills/
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
const fs = require('fs');
|
|
@@ -40,20 +40,26 @@ try {
|
|
|
40
40
|
process.exit(0);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
// Remove all Intuition skills
|
|
43
|
+
// Remove all Intuition skills (current + legacy)
|
|
44
44
|
const skillsToRemove = [
|
|
45
45
|
'intuition-start',
|
|
46
|
-
'intuition-
|
|
47
|
-
'intuition-discovery',
|
|
46
|
+
'intuition-prompt',
|
|
48
47
|
'intuition-handoff',
|
|
49
48
|
'intuition-plan',
|
|
50
|
-
'intuition-
|
|
49
|
+
'intuition-design',
|
|
50
|
+
'intuition-execute',
|
|
51
|
+
'intuition-initialize',
|
|
52
|
+
'intuition-agent-advisor',
|
|
53
|
+
'intuition-skill-guide',
|
|
54
|
+
'intuition-update',
|
|
55
|
+
// Legacy skills (removed in v6.0)
|
|
56
|
+
'intuition-discovery'
|
|
51
57
|
];
|
|
52
58
|
|
|
53
59
|
skillsToRemove.forEach(skillName => {
|
|
54
60
|
const skillDest = path.join(claudeSkillsDir, skillName);
|
|
55
61
|
if (removeDir(skillDest)) {
|
|
56
|
-
log(
|
|
62
|
+
log(`\u2713 Removed /${skillName} skill from ${skillDest}`);
|
|
57
63
|
}
|
|
58
64
|
});
|
|
59
65
|
|
|
@@ -62,19 +68,21 @@ try {
|
|
|
62
68
|
const remaining = fs.readdirSync(claudeSkillsDir);
|
|
63
69
|
if (remaining.length === 0) {
|
|
64
70
|
fs.rmSync(claudeSkillsDir, { force: true });
|
|
65
|
-
log(
|
|
71
|
+
log(`\u2713 Removed empty skills directory`);
|
|
66
72
|
|
|
67
73
|
// Also clean up .claude if it's empty
|
|
68
74
|
const claudeDir = path.join(homeDir, '.claude');
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
75
|
+
if (fs.existsSync(claudeDir)) {
|
|
76
|
+
const claudeRemaining = fs.readdirSync(claudeDir);
|
|
77
|
+
if (claudeRemaining.length === 0) {
|
|
78
|
+
fs.rmSync(claudeDir, { force: true });
|
|
79
|
+
log(`\u2713 Removed empty .claude directory`);
|
|
80
|
+
}
|
|
73
81
|
}
|
|
74
82
|
}
|
|
75
83
|
}
|
|
76
84
|
|
|
77
|
-
log(
|
|
85
|
+
log(`\u2713 Uninstallation complete!`);
|
|
78
86
|
|
|
79
87
|
} catch (err) {
|
|
80
88
|
error(`Uninstallation failed: ${err.message}`);
|