@automagik/genie 0.260202.1833 → 0.260203.43
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/.beads/README.md +81 -0
- package/.beads/config.yaml +67 -0
- package/.beads/interactions.jsonl +0 -0
- package/.beads/issues.jsonl +9 -0
- package/.beads/metadata.json +4 -0
- package/.claude/skills/brainstorm/SKILL.md +53 -0
- package/.claude/skills/genie-base/SKILL.md +66 -0
- package/.claude/skills/genie-base/assets/workspace/AGENTS.md +191 -0
- package/.claude/skills/genie-base/assets/workspace/ENVIRONMENT.md +18 -0
- package/.claude/skills/genie-base/assets/workspace/HEARTBEAT.md +4 -0
- package/.claude/skills/genie-base/assets/workspace/IDENTITY.md +17 -0
- package/.claude/skills/genie-base/assets/workspace/MEMORY.md +16 -0
- package/.claude/skills/genie-base/assets/workspace/ROLE.md +14 -0
- package/.claude/skills/genie-base/assets/workspace/SOUL.md +36 -0
- package/.claude/skills/genie-base/assets/workspace/TOOLS.md +25 -0
- package/.claude/skills/genie-base/assets/workspace/USER.md +13 -0
- package/.claude/skills/genie-base/assets/workspace/memory/2026-01-30.md +6 -0
- package/.claude/skills/genie-base/assets/workspace/memory/2026-01-31.md +16 -0
- package/.claude/skills/genie-base/assets/workspace/memory/882c22be-9710-41c1-91f8-ed82947ef6ce.txt +1 -0
- package/.claude/skills/genie-base/scripts/install-workspace.sh +107 -0
- package/.claude/skills/genie-base/scripts/sanity-sweep.sh +60 -0
- package/.claude/skills/genie-blank-init/SKILL.md +37 -0
- package/.claude/skills/genie-blank-init/assets/BOOTSTRAP.md +44 -0
- package/.claude/skills/genie-blank-init/assets/IDENTITY.md +9 -0
- package/.claude/skills/genie-blank-init/assets/SOUL.md +10 -0
- package/.claude/skills/genie-blank-init/assets/USER.md +9 -0
- package/.claude/skills/genie-blank-init/scripts/apply-blank-init.sh +117 -0
- package/.claude/skills/genie-forge/SKILL.md +171 -0
- package/.claude/skills/genie-plan-review/CLAUDE.md +11 -0
- package/.claude/skills/genie-plan-review/SKILL.md +53 -0
- package/.claude/skills/genie-review/SKILL.md +171 -0
- package/.claude/skills/genie-wish/SKILL.md +141 -0
- package/.claude-plugin/marketplace.json +18 -0
- package/.genie/.gitkeep +3 -0
- package/.genie/backlog/hooks-v2.md +82 -0
- package/.genie/wishes/upgrade-brainstorm-handoff/wish.md +124 -0
- package/.gitattributes +3 -0
- package/AGENTS.md +75 -0
- package/bun.lock +55 -0
- package/dist/claudio.js +1 -1
- package/dist/genie.js +1 -1
- package/dist/term.js +123 -99
- package/docs/CO-ORCHESTRATION-GUIDE.md +368 -0
- package/package.json +5 -1
- package/plugin/.claude-plugin/plugin.json +18 -0
- package/plugin/README.md +120 -0
- package/plugin/agents/implementor.md +92 -0
- package/plugin/agents/quality-reviewer.md +113 -0
- package/plugin/agents/spec-reviewer.md +90 -0
- package/plugin/hooks/hooks.json +3 -0
- package/plugin/references/review-criteria.md +72 -0
- package/plugin/references/wish-template.md +92 -0
- package/plugin/scripts/genie.cjs +141 -0
- package/plugin/scripts/smart-install.js +308 -0
- package/plugin/scripts/src/install-genie-cli.sh +120 -0
- package/plugin/scripts/src/validate-completion.ts +142 -0
- package/plugin/scripts/src/validate-wish.ts +137 -0
- package/plugin/scripts/term.cjs +229 -0
- package/plugin/scripts/validate-completion.cjs +16 -0
- package/plugin/scripts/validate-wish.cjs +17 -0
- package/plugin/scripts/worker-service.cjs +28 -0
- package/plugin/skills/brainstorm/SKILL.md +106 -0
- package/plugin/skills/forge/SKILL.md +171 -0
- package/plugin/skills/genie-base/SKILL.md +99 -0
- package/plugin/skills/genie-base/assets/workspace/AGENTS.md +191 -0
- package/plugin/skills/genie-base/assets/workspace/ENVIRONMENT.md +18 -0
- package/plugin/skills/genie-base/assets/workspace/HEARTBEAT.md +4 -0
- package/plugin/skills/genie-base/assets/workspace/IDENTITY.md +17 -0
- package/plugin/skills/genie-base/assets/workspace/MEMORY.md +16 -0
- package/plugin/skills/genie-base/assets/workspace/ROLE.md +14 -0
- package/plugin/skills/genie-base/assets/workspace/SOUL.md +36 -0
- package/plugin/skills/genie-base/assets/workspace/TOOLS.md +25 -0
- package/plugin/skills/genie-base/assets/workspace/USER.md +13 -0
- package/plugin/skills/genie-base/scripts/install-workspace.sh +107 -0
- package/plugin/skills/genie-base/scripts/sanity-sweep.sh +60 -0
- package/plugin/skills/genie-blank-init/SKILL.md +73 -0
- package/plugin/skills/genie-blank-init/assets/BOOTSTRAP.md +44 -0
- package/plugin/skills/genie-blank-init/assets/IDENTITY.md +9 -0
- package/plugin/skills/genie-blank-init/assets/SOUL.md +10 -0
- package/plugin/skills/genie-blank-init/assets/USER.md +9 -0
- package/plugin/skills/genie-blank-init/scripts/apply-blank-init.sh +117 -0
- package/plugin/skills/genie-cli-dev/CLAUDE.md +19 -0
- package/plugin/skills/genie-cli-dev/SKILL.md +292 -0
- package/plugin/skills/plan-review/SKILL.md +101 -0
- package/plugin/skills/review/SKILL.md +221 -0
- package/plugin/skills/wish/SKILL.md +110 -0
- package/plugin/skills/work-orchestration/SKILL.md +110 -0
- package/scripts/build.js +132 -0
- package/scripts/smart-install.js +308 -0
- package/scripts/sync.js +134 -0
- package/src/lib/beads-registry.ts +595 -0
- package/src/lib/orchestrator/event-monitor.ts +2 -0
- package/src/lib/skill-loader.ts +215 -0
- package/src/lib/tmux.ts +30 -11
- package/src/lib/version.ts +1 -1
- package/src/lib/worker-registry.ts +10 -0
- package/src/services/worker-service.ts +351 -0
- package/src/term-commands/close.ts +48 -3
- package/src/term-commands/create.ts +95 -0
- package/src/term-commands/daemon.ts +176 -0
- package/src/term-commands/kill.ts +56 -2
- package/src/term-commands/orchestrate.ts +3 -2
- package/src/term-commands/send.ts +43 -15
- package/src/term-commands/spawn.ts +446 -0
- package/src/term-commands/split.ts +20 -8
- package/src/term-commands/work.ts +279 -37
- package/src/term-commands/workers.ts +36 -2
- package/src/term.ts +120 -7
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "review"
|
|
3
|
+
description: "Use when all forge tasks are complete and work needs final validation - produces pass/fail verdict with categorized gaps"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Review - Final Validation
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
After all forge tasks complete, run a final review of the entire wish. Check every success criterion, run integration tests, optionally run browser tests, and produce a verdict.
|
|
11
|
+
|
|
12
|
+
**Three verdicts: SHIP / FIX-FIRST / BLOCKED**
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## The Flow
|
|
17
|
+
|
|
18
|
+
### 1. Load Wish
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Read .genie/wishes/<slug>/wish.md
|
|
22
|
+
Parse all success criteria
|
|
23
|
+
Verify all forge tasks are marked complete
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 2. Wish Audit (Criterion by Criterion)
|
|
27
|
+
|
|
28
|
+
For each success criterion in the wish document:
|
|
29
|
+
|
|
30
|
+
- **PASS**: Evidence exists. Describe the evidence.
|
|
31
|
+
- **FAIL**: Not met. Categorize the gap.
|
|
32
|
+
|
|
33
|
+
**Gap Categories:**
|
|
34
|
+
|
|
35
|
+
| Severity | Meaning | Blocks Ship? |
|
|
36
|
+
|----------|---------|--------------|
|
|
37
|
+
| CRITICAL | Broken functionality, security flaw, data loss | Yes |
|
|
38
|
+
| HIGH | Missing feature, major bug, test failure | Yes |
|
|
39
|
+
| MEDIUM | Missing edge case, incomplete docs | No |
|
|
40
|
+
| LOW | Style, naming, minor polish | No |
|
|
41
|
+
|
|
42
|
+
### 3. Integration Verification
|
|
43
|
+
|
|
44
|
+
Run validation commands from the wish document:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
For each execution group:
|
|
48
|
+
Run its validation command
|
|
49
|
+
Record: PASS or FAIL with output
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 4. Browser Tests (Optional)
|
|
53
|
+
|
|
54
|
+
If the wish involves user-facing changes and agent-browser is available:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Use agent-browser to:
|
|
58
|
+
- Navigate to relevant pages
|
|
59
|
+
- Verify user-visible behavior
|
|
60
|
+
- Capture screenshots as evidence
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**If agent-browser is not available:** Skip gracefully. Note in report: "Browser tests skipped - agent-browser not available."
|
|
64
|
+
|
|
65
|
+
### 5. Verdict
|
|
66
|
+
|
|
67
|
+
**SHIP** - All criteria pass. No CRITICAL or HIGH gaps.
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
Conditions:
|
|
71
|
+
- Zero CRITICAL gaps
|
|
72
|
+
- Zero HIGH gaps
|
|
73
|
+
- All validation commands pass
|
|
74
|
+
- MEDIUM/LOW gaps are advisory only
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**FIX-FIRST** - Fixable issues found. Return to forge.
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Conditions:
|
|
81
|
+
- One or more HIGH gaps (fixable)
|
|
82
|
+
- Or validation commands failing
|
|
83
|
+
- Provide specific fix list for /genie:forge
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**BLOCKED** - Fundamental issues. Return to wish.
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
Conditions:
|
|
90
|
+
- CRITICAL gaps that require scope changes
|
|
91
|
+
- Or architectural problems that can't be fixed in forge
|
|
92
|
+
- Provide specific issues requiring wish revision
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 6. Write Results
|
|
96
|
+
|
|
97
|
+
Update the wish document with review results:
|
|
98
|
+
|
|
99
|
+
```markdown
|
|
100
|
+
## Review Results
|
|
101
|
+
|
|
102
|
+
**Verdict:** SHIP | FIX-FIRST | BLOCKED
|
|
103
|
+
**Date:** YYYY-MM-DD
|
|
104
|
+
|
|
105
|
+
### Criteria Check
|
|
106
|
+
- [x] Criterion 1 - PASS: [evidence]
|
|
107
|
+
- [ ] Criterion 2 - FAIL (HIGH): [gap description]
|
|
108
|
+
|
|
109
|
+
### Validation Commands
|
|
110
|
+
- [x] `command 1` - PASS
|
|
111
|
+
- [ ] `command 2` - FAIL: [output]
|
|
112
|
+
|
|
113
|
+
### Browser Tests
|
|
114
|
+
- [x] Page loads correctly
|
|
115
|
+
- Skipped: agent-browser not available
|
|
116
|
+
|
|
117
|
+
### Gaps
|
|
118
|
+
| # | Severity | Description | Fix |
|
|
119
|
+
|---|----------|-------------|-----|
|
|
120
|
+
| 1 | HIGH | Missing error handling | Add try/catch in handler.ts |
|
|
121
|
+
| 2 | MEDIUM | No edge case test | Add test for empty input |
|
|
122
|
+
|
|
123
|
+
### Recommendation
|
|
124
|
+
[One paragraph: what to do next]
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## After Review
|
|
130
|
+
|
|
131
|
+
**If SHIP:** Work is done. Inform the user.
|
|
132
|
+
|
|
133
|
+
**If FIX-FIRST:**
|
|
134
|
+
```
|
|
135
|
+
"Review found fixable issues. Run /genie:forge to address:
|
|
136
|
+
1. [gap 1]
|
|
137
|
+
2. [gap 2]
|
|
138
|
+
Then run /genie:review again."
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**If BLOCKED:**
|
|
142
|
+
```
|
|
143
|
+
"Review found fundamental issues requiring scope changes.
|
|
144
|
+
Revise the wish document to address:
|
|
145
|
+
1. [issue 1]
|
|
146
|
+
2. [issue 2]
|
|
147
|
+
Then run /genie:forge and /genie:review again."
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Key Principles
|
|
153
|
+
|
|
154
|
+
- **Every criterion checked** - No skipping, no "probably fine"
|
|
155
|
+
- **Evidence required** - PASS needs proof, not assumption
|
|
156
|
+
- **Gaps categorized** - Severity determines whether it blocks
|
|
157
|
+
- **Actionable feedback** - Every FAIL includes how to fix
|
|
158
|
+
- **Browser tests graceful** - Skip if agent-browser unavailable, don't fail
|
|
159
|
+
- **Results written to wish** - Review results live in the wish document
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Never Do
|
|
164
|
+
|
|
165
|
+
- Declare SHIP with CRITICAL or HIGH gaps
|
|
166
|
+
- Skip validation commands
|
|
167
|
+
- Mark criteria PASS without evidence
|
|
168
|
+
- Re-implement fixes during review (that's forge's job)
|
|
169
|
+
- Change scope during review (that's wish's job)
|
|
170
|
+
- Block on MEDIUM or LOW gaps
|
|
171
|
+
- Forget to write results back to the wish document
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "wish"
|
|
3
|
+
description: "Use when starting any non-trivial work that needs structured planning - converts ideas into wish documents with scope, acceptance criteria, and execution tasks"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Wish - Turn Ideas Into Plans
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Convert an idea into a structured wish document through collaborative brainstorming, then create native Claude Code tasks for execution.
|
|
11
|
+
|
|
12
|
+
**Output:** `.genie/wishes/<slug>/wish.md` + native tasks ready for `/forge`
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## The Flow
|
|
17
|
+
|
|
18
|
+
### Phase 1: Brainstorm (Explore Mode)
|
|
19
|
+
|
|
20
|
+
Enter plan mode to explore the codebase read-only. Understand the landscape before proposing anything.
|
|
21
|
+
|
|
22
|
+
**One question at a time. Multiple choice when possible.**
|
|
23
|
+
|
|
24
|
+
1. **Resonate** - Understand the intent
|
|
25
|
+
- What does the user actually want? (not just what they said)
|
|
26
|
+
- Ask clarifying questions, one at a time
|
|
27
|
+
- Prefer multiple choice: "Which of these best describes what you want?"
|
|
28
|
+
|
|
29
|
+
2. **Explore approaches** - Propose 2-3 alternatives
|
|
30
|
+
- Present options with trade-offs
|
|
31
|
+
- Lead with your recommendation and explain why
|
|
32
|
+
- Let the user choose (or propose something different)
|
|
33
|
+
|
|
34
|
+
3. **Align on scope** - Define boundaries
|
|
35
|
+
- What's IN scope?
|
|
36
|
+
- What's explicitly OUT of scope?
|
|
37
|
+
- What assumptions are we making?
|
|
38
|
+
|
|
39
|
+
### Phase 2: Design (200-300 Word Sections)
|
|
40
|
+
|
|
41
|
+
Present the design incrementally. Check after each section.
|
|
42
|
+
|
|
43
|
+
**Sections to cover:**
|
|
44
|
+
- Summary (what and why, 2-3 sentences)
|
|
45
|
+
- Architecture approach
|
|
46
|
+
- Key decisions with rationale
|
|
47
|
+
- Risks and mitigations
|
|
48
|
+
|
|
49
|
+
### Phase 3: Plan (Bite-Sized Tasks)
|
|
50
|
+
|
|
51
|
+
Break the design into execution groups. Each task should be:
|
|
52
|
+
- **Small enough** to implement in one focused session
|
|
53
|
+
- **Testable** with clear acceptance criteria
|
|
54
|
+
- **Independent** where possible (minimize blocking dependencies)
|
|
55
|
+
|
|
56
|
+
**Per task, define:**
|
|
57
|
+
- What to do (deliverables)
|
|
58
|
+
- Acceptance criteria (checkboxes)
|
|
59
|
+
- Validation command (how to verify it worked)
|
|
60
|
+
- Files likely touched
|
|
61
|
+
|
|
62
|
+
### Phase 4: Write the Wish Document
|
|
63
|
+
|
|
64
|
+
Write to `.genie/wishes/<slug>/wish.md` using the template structure:
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
# Wish: <Title>
|
|
68
|
+
|
|
69
|
+
**Status:** DRAFT
|
|
70
|
+
**Slug:** `<slug>`
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Summary
|
|
75
|
+
<2-3 sentences: what and why>
|
|
76
|
+
|
|
77
|
+
## Scope
|
|
78
|
+
### IN
|
|
79
|
+
- <what we're doing>
|
|
80
|
+
|
|
81
|
+
### OUT
|
|
82
|
+
- <what we're not doing>
|
|
83
|
+
|
|
84
|
+
## Decisions
|
|
85
|
+
- **DEC-1:** <key decision with rationale>
|
|
86
|
+
|
|
87
|
+
## Success Criteria
|
|
88
|
+
- [ ] <overall criterion 1>
|
|
89
|
+
- [ ] <overall criterion 2>
|
|
90
|
+
|
|
91
|
+
## Execution Groups
|
|
92
|
+
|
|
93
|
+
### Group A: <Name>
|
|
94
|
+
**Goal:** <one sentence>
|
|
95
|
+
|
|
96
|
+
**Deliverables:**
|
|
97
|
+
- <concrete output>
|
|
98
|
+
|
|
99
|
+
**Acceptance Criteria:**
|
|
100
|
+
- [ ] <testable criterion>
|
|
101
|
+
|
|
102
|
+
**Validation:** `<command to verify>`
|
|
103
|
+
|
|
104
|
+
### Group B: <Name>
|
|
105
|
+
...
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Phase 5: Create Native Tasks
|
|
109
|
+
|
|
110
|
+
After writing the wish document:
|
|
111
|
+
- Use `TaskCreate` for each execution group
|
|
112
|
+
- Set up `addBlockedBy` dependencies between tasks
|
|
113
|
+
- Include wish slug and group name in task description
|
|
114
|
+
|
|
115
|
+
### Phase 6: Handoff
|
|
116
|
+
|
|
117
|
+
Output: **"Wish documented. Run `/wish-review` to validate, then `/forge` to begin execution."**
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Key Principles
|
|
122
|
+
|
|
123
|
+
- **One question at a time** - Never ask multiple questions in one message
|
|
124
|
+
- **Multiple choice preferred** - Easier for users to answer
|
|
125
|
+
- **YAGNI ruthlessly** - Remove unnecessary features from all designs
|
|
126
|
+
- **Acceptance criteria are king** - Every task must have testable criteria
|
|
127
|
+
- **Validation commands required** - Every task must have a way to verify completion
|
|
128
|
+
- **Explore before proposing** - Read code before designing changes
|
|
129
|
+
- **Small tasks** - If a task feels big, split it
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Never Do
|
|
134
|
+
|
|
135
|
+
- Skip brainstorming and jump to plan writing
|
|
136
|
+
- Ask more than one question per message
|
|
137
|
+
- Create tasks without acceptance criteria
|
|
138
|
+
- Create tasks without validation commands
|
|
139
|
+
- Write a wish without user agreement on scope
|
|
140
|
+
- Start implementation during wish creation (plan mode only)
|
|
141
|
+
- Create overly broad tasks ("implement everything")
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "namastexlabs",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "Namastex Labs"
|
|
5
|
+
},
|
|
6
|
+
"metadata": {
|
|
7
|
+
"description": "Plugins by Namastex Labs",
|
|
8
|
+
"homepage": "https://github.com/namastexlabs/genie-cli"
|
|
9
|
+
},
|
|
10
|
+
"plugins": [
|
|
11
|
+
{
|
|
12
|
+
"name": "automagik-genie",
|
|
13
|
+
"version": "2026.02.02",
|
|
14
|
+
"source": "./plugin",
|
|
15
|
+
"description": "Human-AI partnership for Claude Code. Share a terminal, orchestrate workers, evolve together. Brainstorm ideas, wish them into plans, forge with parallel agents, ship as one team. A coding genie that grows with your project."
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
package/.genie/.gitkeep
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Hooks v2 - Intelligent Session Awareness
|
|
2
|
+
|
|
3
|
+
**Status:** Parked (removed 2026-02-02)
|
|
4
|
+
**Why parked:** Scripts weren't being copied to plugin cache + bun dependency
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## The Soul
|
|
9
|
+
|
|
10
|
+
Hooks that make Genie *aware* of the session flow:
|
|
11
|
+
- Know when a wish task is being written (validate structure live)
|
|
12
|
+
- Know when Claude stops (did we actually complete what was asked?)
|
|
13
|
+
- Know session context (what wish are we forging? what task?)
|
|
14
|
+
|
|
15
|
+
## What We Had (v1 - broken)
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"hooks": [
|
|
20
|
+
{
|
|
21
|
+
"event": "PreToolUse",
|
|
22
|
+
"matcher": { "tool_name": "Write", "file_path": ".genie/wishes/**/*.md" },
|
|
23
|
+
"command": "bun ${CLAUDE_PLUGIN_ROOT}/scripts/validate-wish.ts --file \"$CLAUDE_FILE_PATH\"",
|
|
24
|
+
"timeout_ms": 5000,
|
|
25
|
+
"on_failure": "warn"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"event": "Stop",
|
|
29
|
+
"matcher": { "stop_reason": "end_turn" },
|
|
30
|
+
"command": "bun ${CLAUDE_PLUGIN_ROOT}/scripts/validate-completion.ts --session \"$CLAUDE_SESSION_ID\"",
|
|
31
|
+
"timeout_ms": 10000,
|
|
32
|
+
"on_failure": "ignore"
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Problems
|
|
39
|
+
1. `.ts` files not copied to plugin cache (only `smart-install.js` was)
|
|
40
|
+
2. `bun` dependency - not always available
|
|
41
|
+
3. Scripts need to be self-contained `.js` or `.cjs`
|
|
42
|
+
|
|
43
|
+
## Ideas for v2
|
|
44
|
+
|
|
45
|
+
### Wish Validation Hook
|
|
46
|
+
- Validate wish.md structure before write
|
|
47
|
+
- Check: scope section exists, acceptance criteria present, tasks defined
|
|
48
|
+
- Output: warn if missing sections, suggest fixes
|
|
49
|
+
- Could use prompt-based hook instead of script?
|
|
50
|
+
|
|
51
|
+
### Completion Awareness Hook
|
|
52
|
+
- On Stop: check if we're in a forge session
|
|
53
|
+
- Did we complete the current task?
|
|
54
|
+
- Should we mark task done? Move to next?
|
|
55
|
+
- Auto-update task status in wish.md?
|
|
56
|
+
|
|
57
|
+
### Session Context Hook
|
|
58
|
+
- SessionStart: detect if we're resuming a wish/forge
|
|
59
|
+
- Load context automatically
|
|
60
|
+
- "Welcome back, you were working on wish X, task 3"
|
|
61
|
+
|
|
62
|
+
### Prompt-Based Alternative
|
|
63
|
+
Instead of scripts, use Claude's own judgment via prompt hooks:
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"event": "Stop",
|
|
67
|
+
"hooks": [{
|
|
68
|
+
"type": "prompt",
|
|
69
|
+
"prompt": "Check if the current task from .genie/active-wish was completed..."
|
|
70
|
+
}]
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Questions to Brainstorm
|
|
75
|
+
- What's the minimal viable hook that adds value?
|
|
76
|
+
- Script vs prompt-based - which fits genie's soul better?
|
|
77
|
+
- How to track "active wish" and "active task" across sessions?
|
|
78
|
+
- Should hooks modify files or just inform?
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
*This is a parking lot for hook ideas. When ready, run /wish to plan implementation.*
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Wish: Upgrade Brainstorm Skill with Handoff Output
|
|
2
|
+
|
|
3
|
+
**Status:** DRAFT
|
|
4
|
+
**Slug:** `upgrade-brainstorm-handoff`
|
|
5
|
+
**Created:** 2026-02-02
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Summary
|
|
10
|
+
|
|
11
|
+
Merge the best parts from local and plugin brainstorm skill versions, and add a structured handoff output to `.genie/brainstorms/<slug>/design.md` that provides the perfect input for `/wish` to begin execution planning.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Scope
|
|
16
|
+
|
|
17
|
+
### IN
|
|
18
|
+
- Merge local `.claude/skills/brainstorm/` improvements into plugin
|
|
19
|
+
- Add design.md output template as a reference file
|
|
20
|
+
- Update SKILL.md to include handoff phase
|
|
21
|
+
- Delete local duplicate after merge
|
|
22
|
+
- Test the upgraded skill works
|
|
23
|
+
|
|
24
|
+
### OUT
|
|
25
|
+
- Changes to other skills (wish, forge, review)
|
|
26
|
+
- New features beyond the handoff document
|
|
27
|
+
- Changes to the wish template (wish reads brainstorm output, not the other way)
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Decisions
|
|
32
|
+
|
|
33
|
+
- **DEC-1:** Output location is `.genie/brainstorms/<slug>/design.md` — keeps brainstorm artifacts separate from wishes
|
|
34
|
+
- **DEC-2:** Handoff document uses markdown table format for decisions/risks — scannable and structured
|
|
35
|
+
- **DEC-3:** Status field in design.md is `VALIDATED` — signals ready for /wish consumption
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Success Criteria
|
|
40
|
+
|
|
41
|
+
- [ ] Plugin brainstorm skill includes all best practices from both versions
|
|
42
|
+
- [ ] Running `/brainstorm` produces `.genie/brainstorms/<slug>/design.md` on completion
|
|
43
|
+
- [ ] Design.md format includes: Problem, Solution, Scope IN/OUT, Decisions, Risks, Success definition
|
|
44
|
+
- [ ] Local `.claude/skills/brainstorm/` is deleted
|
|
45
|
+
- [ ] No duplicate brainstorm skills exist
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Assumptions
|
|
50
|
+
|
|
51
|
+
- **ASM-1:** The plugin can be updated and reinstalled locally for testing
|
|
52
|
+
- **ASM-2:** The design.md template is sufficient for /wish to begin planning
|
|
53
|
+
|
|
54
|
+
## Risks
|
|
55
|
+
|
|
56
|
+
- **RISK-1:** Breaking existing brainstorm behavior — Mitigation: Test with a real brainstorm session before deleting local
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Execution Groups
|
|
61
|
+
|
|
62
|
+
### Group A: Create Design Template Reference
|
|
63
|
+
|
|
64
|
+
**Goal:** Add the design.md template as a reference file in the plugin.
|
|
65
|
+
|
|
66
|
+
**Deliverables:**
|
|
67
|
+
- `plugin/references/design-template.md` with the agreed format
|
|
68
|
+
|
|
69
|
+
**Acceptance Criteria:**
|
|
70
|
+
- [ ] Template file exists at `plugin/references/design-template.md`
|
|
71
|
+
- [ ] Template includes all agreed sections (Problem, Solution, Scope, Design, Constraints, Success)
|
|
72
|
+
|
|
73
|
+
**Validation:** `cat plugin/references/design-template.md | head -30`
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
### Group B: Upgrade Brainstorm SKILL.md
|
|
78
|
+
|
|
79
|
+
**Goal:** Merge best practices and add handoff phase to the brainstorm skill.
|
|
80
|
+
|
|
81
|
+
**Deliverables:**
|
|
82
|
+
- Updated `plugin/skills/brainstorm/SKILL.md` with:
|
|
83
|
+
- Merged content from both versions
|
|
84
|
+
- New Phase 6: Write Handoff Document
|
|
85
|
+
- Reference to design-template.md
|
|
86
|
+
|
|
87
|
+
**Acceptance Criteria:**
|
|
88
|
+
- [ ] SKILL.md includes all 6 phases
|
|
89
|
+
- [ ] Phase 6 writes to `.genie/brainstorms/<slug>/design.md`
|
|
90
|
+
- [ ] References the design-template.md for format
|
|
91
|
+
- [ ] Includes "Never Do" guardrails
|
|
92
|
+
|
|
93
|
+
**Validation:** `grep -c "Phase\|design-template\|\.genie/brainstorms" plugin/skills/brainstorm/SKILL.md`
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### Group C: Delete Local Duplicate
|
|
98
|
+
|
|
99
|
+
**Goal:** Remove the local `.claude/skills/brainstorm/` now that plugin is upgraded.
|
|
100
|
+
|
|
101
|
+
**Deliverables:**
|
|
102
|
+
- Delete `.claude/skills/brainstorm/` directory
|
|
103
|
+
|
|
104
|
+
**Acceptance Criteria:**
|
|
105
|
+
- [ ] `.claude/skills/brainstorm/` no longer exists
|
|
106
|
+
- [ ] No errors when running `/brainstorm` (uses plugin version)
|
|
107
|
+
|
|
108
|
+
**Validation:** `ls .claude/skills/brainstorm 2>&1 | grep -c "No such file"`
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Review Results
|
|
113
|
+
|
|
114
|
+
_Populated by `/review` after forge execution completes._
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Files to Create/Modify
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
plugin/references/design-template.md (CREATE)
|
|
122
|
+
plugin/skills/brainstorm/SKILL.md (MODIFY)
|
|
123
|
+
.claude/skills/brainstorm/ (DELETE)
|
|
124
|
+
```
|
package/.gitattributes
ADDED
package/AGENTS.md
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Agent Instructions
|
|
2
|
+
|
|
3
|
+
This project uses **bd** (beads) for issue tracking. Run `bd onboard` to get started.
|
|
4
|
+
|
|
5
|
+
## Quick Reference
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
bd ready # Find available work
|
|
9
|
+
bd show <id> # View issue details
|
|
10
|
+
bd update <id> --status in_progress # Claim work
|
|
11
|
+
bd close <id> # Complete work
|
|
12
|
+
bd sync # Sync with git
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Co-Orchestration Mode
|
|
16
|
+
|
|
17
|
+
When working as a **spawned worker** via `term work`, you are part of a multi-agent system:
|
|
18
|
+
|
|
19
|
+
1. **You are bound to a specific issue** - Focus ONLY on that task
|
|
20
|
+
2. **Your state is tracked** - The orchestrator sees your status (working/idle/permission/etc.)
|
|
21
|
+
3. **You work in an isolated worktree** - Your changes don't affect other workers
|
|
22
|
+
4. **Beads syncs automatically** - The daemon handles commits
|
|
23
|
+
|
|
24
|
+
### CLI Improvement Rule (CRITICAL)
|
|
25
|
+
|
|
26
|
+
**DO NOT implement CLI improvements directly.** When you identify an opportunity to improve genie-cli:
|
|
27
|
+
|
|
28
|
+
1. Create an issue: `bd create "CLI: <improvement>" --label cli-improvement`
|
|
29
|
+
2. Continue with your assigned task
|
|
30
|
+
3. A dedicated `genie-cli-improver` worker will handle CLI changes
|
|
31
|
+
|
|
32
|
+
This ensures:
|
|
33
|
+
- Your current task stays focused
|
|
34
|
+
- CLI changes are isolated and reviewable
|
|
35
|
+
- No scope creep in your work
|
|
36
|
+
|
|
37
|
+
### Worker Lifecycle
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
term work bd-X → You start → Work on task → Signal completion → term close bd-X
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
When done with your task:
|
|
44
|
+
1. Commit your changes
|
|
45
|
+
2. Inform the orchestrator you're done (just say "Done" or similar)
|
|
46
|
+
3. The orchestrator will run `term close bd-X` to clean up
|
|
47
|
+
|
|
48
|
+
See `docs/CO-ORCHESTRATION-GUIDE.md` for the full orchestration workflow.
|
|
49
|
+
|
|
50
|
+
## Landing the Plane (Session Completion)
|
|
51
|
+
|
|
52
|
+
**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.
|
|
53
|
+
|
|
54
|
+
**MANDATORY WORKFLOW:**
|
|
55
|
+
|
|
56
|
+
1. **File issues for remaining work** - Create issues for anything that needs follow-up
|
|
57
|
+
2. **Run quality gates** (if code changed) - Tests, linters, builds
|
|
58
|
+
3. **Update issue status** - Close finished work, update in-progress items
|
|
59
|
+
4. **PUSH TO REMOTE** - This is MANDATORY:
|
|
60
|
+
```bash
|
|
61
|
+
git pull --rebase
|
|
62
|
+
bd sync
|
|
63
|
+
git push
|
|
64
|
+
git status # MUST show "up to date with origin"
|
|
65
|
+
```
|
|
66
|
+
5. **Clean up** - Clear stashes, prune remote branches
|
|
67
|
+
6. **Verify** - All changes committed AND pushed
|
|
68
|
+
7. **Hand off** - Provide context for next session
|
|
69
|
+
|
|
70
|
+
**CRITICAL RULES:**
|
|
71
|
+
- Work is NOT complete until `git push` succeeds
|
|
72
|
+
- NEVER stop before pushing - that leaves work stranded locally
|
|
73
|
+
- NEVER say "ready to push when you are" - YOU must push
|
|
74
|
+
- If push fails, resolve and retry until it succeeds
|
|
75
|
+
|