@automagik/genie 0.260203.629 → 0.260203.711

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.
Files changed (29) hide show
  1. package/.genie/tasks/agent-delegation-handover.md +85 -0
  2. package/dist/claudio.js +1 -1
  3. package/dist/genie.js +1 -1
  4. package/dist/term.js +54 -54
  5. package/package.json +1 -1
  6. package/plugins/automagik-genie/README.md +7 -7
  7. package/plugins/automagik-genie/agents/council--architect.md +225 -0
  8. package/plugins/automagik-genie/agents/council--benchmarker.md +252 -0
  9. package/plugins/automagik-genie/agents/council--deployer.md +224 -0
  10. package/plugins/automagik-genie/agents/council--ergonomist.md +226 -0
  11. package/plugins/automagik-genie/agents/council--measurer.md +240 -0
  12. package/plugins/automagik-genie/agents/council--operator.md +223 -0
  13. package/plugins/automagik-genie/agents/council--questioner.md +212 -0
  14. package/plugins/automagik-genie/agents/council--sentinel.md +225 -0
  15. package/plugins/automagik-genie/agents/council--simplifier.md +221 -0
  16. package/plugins/automagik-genie/agents/council--tracer.md +280 -0
  17. package/plugins/automagik-genie/agents/council.md +146 -0
  18. package/plugins/automagik-genie/agents/implementor.md +1 -1
  19. package/plugins/automagik-genie/references/review-criteria.md +1 -1
  20. package/plugins/automagik-genie/references/wish-template.md +1 -1
  21. package/plugins/automagik-genie/skills/council/SKILL.md +80 -0
  22. package/plugins/automagik-genie/skills/{forge → make}/SKILL.md +3 -3
  23. package/plugins/automagik-genie/skills/plan-review/SKILL.md +2 -2
  24. package/plugins/automagik-genie/skills/review/SKILL.md +13 -13
  25. package/plugins/automagik-genie/skills/wish/SKILL.md +2 -2
  26. package/src/lib/log-reader.ts +11 -5
  27. package/src/lib/orchestrator/event-monitor.ts +5 -2
  28. package/src/lib/version.ts +1 -1
  29. /package/.genie/{wishes/upgrade-brainstorm-handoff/wish.md → backlog/upgrade-brainstorm.md} +0 -0
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: council
3
+ description: "Multi-perspective brainstorming and critique with 10 specialized council members. Use during architecture decisions, wish planning, or reviews to get diverse viewpoints."
4
+ ---
5
+
6
+ # /council - Multi-Perspective Review
7
+
8
+ Use the council (a crew of specialist subagents) to brainstorm, critique, or vote.
9
+
10
+ ## When to Use
11
+
12
+ - During `/wish`: Generate 2-3 approaches with tradeoffs
13
+ - During `/review`: Find risks and gaps
14
+ - During architecture decisions: Get independent perspectives
15
+ - When stuck: Fresh viewpoints break deadlocks
16
+
17
+ ## Council Members
18
+
19
+ | Member | Focus | Philosophy |
20
+ |--------|-------|------------|
21
+ | **questioner** | Challenge assumptions | "Why? Is there a simpler way?" |
22
+ | **benchmarker** | Performance evidence | "Show me the benchmarks." |
23
+ | **simplifier** | Complexity reduction | "Delete code. Ship features." |
24
+ | **sentinel** | Security oversight | "Where are the secrets? What's the blast radius?" |
25
+ | **ergonomist** | Developer experience | "If you need to read the docs, the API failed." |
26
+ | **architect** | Systems thinking | "Talk is cheap. Show me the code." |
27
+ | **operator** | Operations reality | "No one wants to run your code." |
28
+ | **deployer** | Zero-config deployment | "Zero-config with infinite scale." |
29
+ | **measurer** | Observability | "Measure, don't guess." |
30
+ | **tracer** | Production debugging | "You will debug this in production." |
31
+
32
+ ## Smart Routing
33
+
34
+ Not every decision needs all 10 perspectives:
35
+
36
+ | Topic | Members |
37
+ |-------|---------|
38
+ | Architecture | questioner, benchmarker, simplifier, architect |
39
+ | Performance | benchmarker, questioner, architect, measurer |
40
+ | Security | questioner, simplifier, sentinel |
41
+ | API Design | questioner, simplifier, ergonomist, deployer |
42
+ | Operations | operator, tracer, measurer |
43
+ | Full Review | all 10 |
44
+
45
+ **Default:** Core trio (questioner, benchmarker, simplifier)
46
+
47
+ ## Output Format
48
+
49
+ ```markdown
50
+ ## Council Advisory
51
+
52
+ ### Topic: [Detected Topic]
53
+ ### Members Consulted: [List]
54
+
55
+ ### Perspectives
56
+
57
+ **questioner:**
58
+ - [Key point]
59
+ - Vote: [APPROVE/REJECT/MODIFY]
60
+
61
+ **simplifier:**
62
+ - [Key point]
63
+ - Vote: [APPROVE/REJECT/MODIFY]
64
+
65
+ ...
66
+
67
+ ### Vote Summary
68
+ - Approve: X
69
+ - Reject: X
70
+ - Modify: X
71
+
72
+ ### Synthesized Recommendation
73
+ [Council's collective advisory]
74
+ ```
75
+
76
+ ## Philosophy
77
+
78
+ **The council advises, the user decides.**
79
+
80
+ Value is in diverse perspective, not gatekeeping. Each member surfaces blind spots and challenges assumptions.
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: forge
2
+ name: make
3
3
  description: "Use when executing an approved wish plan - dispatches implementor subagents per task with two-stage review (spec + quality) and fix loops."
4
4
  ---
5
5
 
6
- # Forge - Execute the Plan
6
+ # Make - Execute the Plan
7
7
 
8
8
  ## Overview
9
9
 
@@ -114,7 +114,7 @@ Return to step 2 until all tasks are complete.
114
114
 
115
115
  ```
116
116
  All tasks complete.
117
- Output: "All forge tasks complete. Run /review for final validation."
117
+ Output: "All make tasks complete. Run /review for final validation."
118
118
  ```
119
119
 
120
120
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: plan-review
3
- description: "Validate a wish document (structure, scope boundaries, acceptance criteria, validation commands). Use after creating or editing .genie/wishes/<slug>/wish.md to catch missing sections before forge."
3
+ description: "Validate a wish document (structure, scope boundaries, acceptance criteria, validation commands). Use after creating or editing .genie/wishes/<slug>/wish.md to catch missing sections before make."
4
4
  ---
5
5
 
6
6
  # Plan Review - Validate Wish Documents
@@ -61,7 +61,7 @@ Fast structural/quality check on wish documents before execution. Catches missin
61
61
  ```
62
62
  Plan review: PASS
63
63
 
64
- Wish document is well-structured and ready for /forge.
64
+ Wish document is well-structured and ready for /make.
65
65
  ```
66
66
 
67
67
  **If checks fail:**
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: review
3
- description: "Use when all forge tasks are complete and work needs final validation - produces SHIP/FIX-FIRST/BLOCKED verdict with categorized gaps."
3
+ description: "Use when all make tasks are complete and work needs final validation - produces SHIP/FIX-FIRST/BLOCKED verdict with categorized gaps."
4
4
  ---
5
5
 
6
6
  # Review - Final Validation
7
7
 
8
8
  ## Overview
9
9
 
10
- After forge completes all tasks, run comprehensive final review. Check every success criterion with evidence, run validation commands, do quality spot-check, and produce the ship decision.
10
+ After make completes all tasks, run comprehensive final review. Check every success criterion with evidence, run validation commands, do quality spot-check, and produce the ship decision.
11
11
 
12
12
  **Three verdicts: SHIP / FIX-FIRST / BLOCKED**
13
13
 
@@ -23,14 +23,14 @@ Check TaskList for wish tasks
23
23
  Verify all tasks marked complete
24
24
  ```
25
25
 
26
- **If tasks incomplete:** Stop. Output: "Forge not complete. [N] tasks remaining. Run /forge to continue."
26
+ **If tasks incomplete:** Stop. Output: "Make not complete. [N] tasks remaining. Run /make to continue."
27
27
 
28
28
  ### 2. Task Completion Audit
29
29
 
30
30
  For each execution group in the wish:
31
31
  - Check the task was completed
32
32
  - Verify acceptance criteria checkboxes are checked
33
- - Note any tasks that were BLOCKED during forge
33
+ - Note any tasks that were BLOCKED during make
34
34
 
35
35
  **Output per group:**
36
36
  ```
@@ -108,14 +108,14 @@ Conditions:
108
108
  - MEDIUM/LOW gaps are advisory only
109
109
  ```
110
110
 
111
- **FIX-FIRST** - Fixable issues found. Return to forge.
111
+ **FIX-FIRST** - Fixable issues found. Return to make.
112
112
 
113
113
  ```
114
114
  Conditions:
115
115
  - One or more HIGH gaps (fixable)
116
116
  - Or validation commands failing
117
117
  - Quality spot-check found significant concerns
118
- - Provide specific fix list for /forge
118
+ - Provide specific fix list for /make
119
119
  ```
120
120
 
121
121
  **BLOCKED** - Fundamental issues. Return to wish.
@@ -123,8 +123,8 @@ Conditions:
123
123
  ```
124
124
  Conditions:
125
125
  - CRITICAL gaps that require scope changes
126
- - Or architectural problems that can't be fixed in forge
127
- - Any BLOCKED tasks from forge
126
+ - Or architectural problems that can't be fixed in make
127
+ - Any BLOCKED tasks from make
128
128
  - Provide specific issues requiring wish revision
129
129
  ```
130
130
 
@@ -181,7 +181,7 @@ Notes: [brief notes if any]
181
181
 
182
182
  **If FIX-FIRST:**
183
183
  ```
184
- "Review found fixable issues. Run /forge to address:
184
+ "Review found fixable issues. Run /make to address:
185
185
  1. [gap 1]
186
186
  2. [gap 2]
187
187
  Then run /review again."
@@ -193,7 +193,7 @@ Then run /review again."
193
193
  Revise the wish document to address:
194
194
  1. [issue 1]
195
195
  2. [issue 2]
196
- Then run /forge and /review again."
196
+ Then run /make and /review again."
197
197
  ```
198
198
 
199
199
  ---
@@ -214,8 +214,8 @@ Then run /forge and /review again."
214
214
  - Declare SHIP with CRITICAL or HIGH gaps
215
215
  - Skip validation commands
216
216
  - Mark criteria PASS without evidence
217
- - Re-implement fixes during review (that's forge's job)
217
+ - Re-implement fixes during review (that's make's job)
218
218
  - Change scope during review (that's wish's job)
219
219
  - Block on MEDIUM or LOW gaps
220
- - Pass with BLOCKED tasks from forge
221
- - Forget to write results back to the wish document
220
+ - Pass with BLOCKED tasks from make
221
+ - Maket to write results back to the wish document
@@ -9,7 +9,7 @@ description: "Use when starting non-trivial work that needs structured planning
9
9
 
10
10
  Convert a validated design (from `/brainstorm`) or direct request into a structured wish document. Create native Claude Code tasks for execution.
11
11
 
12
- **Output:** `.genie/wishes/<slug>/wish.md` + native tasks ready for `/forge`
12
+ **Output:** `.genie/wishes/<slug>/wish.md` + native tasks ready for `/make`
13
13
 
14
14
  ---
15
15
 
@@ -82,7 +82,7 @@ After writing the wish document:
82
82
 
83
83
  ### Phase 6: Handoff
84
84
 
85
- Output: **"Wish documented. Run `/plan-review` to validate, then `/forge` to begin execution."**
85
+ Output: **"Wish documented. Run `/plan-review` to validate, then `/make` to begin execution."**
86
86
 
87
87
  ---
88
88
 
@@ -67,18 +67,21 @@ export async function readSessionLogs(
67
67
  throw new Error(`Session "${sessionName}" not found`);
68
68
  }
69
69
 
70
- // Get first window and pane
70
+ // Get active window and pane (never assume index 0)
71
71
  const windows = await tmux.listWindows(session.id);
72
72
  if (!windows || windows.length === 0) {
73
73
  throw new Error(`No windows found in session "${sessionName}"`);
74
74
  }
75
75
 
76
- const panes = await tmux.listPanes(windows[0].id);
76
+ const activeWindow = windows.find(w => w.active) || windows[0];
77
+
78
+ const panes = await tmux.listPanes(activeWindow.id);
77
79
  if (!panes || panes.length === 0) {
78
80
  throw new Error(`No panes found in session "${sessionName}"`);
79
81
  }
80
82
 
81
- const paneId = panes[0].id;
83
+ const activePane = panes.find(p => p.active) || panes[0];
84
+ const paneId = activePane.id;
82
85
 
83
86
  // Parse range if provided
84
87
  if (options.range) {
@@ -162,12 +165,15 @@ export async function followSessionLogs(
162
165
  throw new Error(`No windows found in session "${sessionName}"`);
163
166
  }
164
167
 
165
- const panes = await tmux.listPanes(windows[0].id);
168
+ const activeWindow = windows.find(w => w.active) || windows[0];
169
+
170
+ const panes = await tmux.listPanes(activeWindow.id);
166
171
  if (!panes || panes.length === 0) {
167
172
  throw new Error(`No panes found in session "${sessionName}"`);
168
173
  }
169
174
 
170
- const paneId = panes[0].id;
175
+ const activePane = panes.find(p => p.active) || panes[0];
176
+ const paneId = activePane.id;
171
177
  let lastContent = '';
172
178
  let following = true;
173
179
 
@@ -81,12 +81,15 @@ export class EventMonitor extends EventEmitter {
81
81
  throw new Error(`No windows found in session "${this.sessionName}"`);
82
82
  }
83
83
 
84
- const panes = await tmux.listPanes(windows[0].id);
84
+ const activeWindow = windows.find(w => w.active) || windows[0];
85
+
86
+ const panes = await tmux.listPanes(activeWindow.id);
85
87
  if (!panes || panes.length === 0) {
86
88
  throw new Error(`No panes found in session "${this.sessionName}"`);
87
89
  }
88
90
 
89
- this.paneId = panes[0].id;
91
+ const activePane = panes.find(p => p.active) || panes[0];
92
+ this.paneId = activePane.id;
90
93
  }
91
94
 
92
95
  this.running = true;
@@ -1,5 +1,5 @@
1
1
  // Runtime version (baked in at build time)
2
- export const VERSION = '0.260203.0629';
2
+ export const VERSION = '0.260203.0711';
3
3
 
4
4
  // Generate version string from current datetime
5
5
  // Format: 0.YYMMDD.HHMM (e.g., 0.260201.1430 = Feb 1, 2026 at 14:30)