agent-tempo 1.2.0 → 1.4.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.
Files changed (281) hide show
  1. package/CLAUDE.md +253 -219
  2. package/LICENSE +21 -21
  3. package/README.md +293 -289
  4. package/assets/icon-dark.svg +9 -9
  5. package/assets/icon.svg +9 -9
  6. package/assets/logo-dark.svg +11 -11
  7. package/assets/logo-light.svg +11 -11
  8. package/dashboard/README.md +91 -91
  9. package/dashboard/dist/assets/{index-D6Xyje_n.js → index-jmYe6rmS.js} +2 -2
  10. package/dashboard/dist/assets/index-jmYe6rmS.js.map +1 -0
  11. package/dashboard/dist/index.html +20 -20
  12. package/dashboard/package.json +47 -47
  13. package/dist/activities/outbox.d.ts +30 -1
  14. package/dist/activities/outbox.js +96 -3
  15. package/dist/adapters/base.js +5 -0
  16. package/dist/adapters/copilot/adapter.js +12 -1
  17. package/dist/adapters/index.d.ts +1 -1
  18. package/dist/adapters/index.js +7 -0
  19. package/dist/adapters/pi/adapter.d.ts +2 -0
  20. package/dist/adapters/pi/adapter.js +43 -0
  21. package/dist/adapters/pi/index.d.ts +16 -0
  22. package/dist/adapters/pi/index.js +10 -0
  23. package/dist/cli/global-wrapper.d.ts +19 -0
  24. package/dist/cli/global-wrapper.js +169 -0
  25. package/dist/cli/help-text.js +97 -97
  26. package/dist/cli/startup.js +11 -0
  27. package/dist/cli/upgrade-command.js +81 -81
  28. package/dist/cli.js +12 -0
  29. package/dist/client/core.js +9 -2
  30. package/dist/client/interface.d.ts +6 -0
  31. package/dist/config.d.ts +79 -0
  32. package/dist/config.js +74 -0
  33. package/dist/daemon.js +37 -1
  34. package/dist/http/aggregate.d.ts +22 -1
  35. package/dist/http/aggregate.js +41 -0
  36. package/dist/http/auth.d.ts +94 -8
  37. package/dist/http/auth.js +93 -9
  38. package/dist/http/body.d.ts +4 -1
  39. package/dist/http/body.js +6 -3
  40. package/dist/http/event-bus.js +1 -0
  41. package/dist/http/event-types.d.ts +34 -2
  42. package/dist/http/event-types.js +1 -0
  43. package/dist/http/gate-audit.d.ts +12 -0
  44. package/dist/http/gate-audit.js +95 -0
  45. package/dist/http/gate-registry.d.ts +167 -0
  46. package/dist/http/gate-registry.js +163 -0
  47. package/dist/http/gate-routes.d.ts +48 -0
  48. package/dist/http/gate-routes.js +102 -0
  49. package/dist/http/ingest-registry.d.ts +30 -0
  50. package/dist/http/ingest-registry.js +108 -0
  51. package/dist/http/inner-loop-routes.d.ts +66 -0
  52. package/dist/http/inner-loop-routes.js +182 -0
  53. package/dist/http/inner-loop.d.ts +92 -0
  54. package/dist/http/inner-loop.js +155 -0
  55. package/dist/http/server.d.ts +38 -3
  56. package/dist/http/server.js +211 -6
  57. package/dist/http/snapshot.d.ts +6 -0
  58. package/dist/http/snapshot.js +6 -0
  59. package/dist/pi/cue-pump.d.ts +61 -0
  60. package/dist/pi/cue-pump.js +95 -0
  61. package/dist/pi/extension.d.ts +45 -0
  62. package/dist/pi/extension.js +407 -0
  63. package/dist/pi/gate-client.d.ts +54 -0
  64. package/dist/pi/gate-client.js +136 -0
  65. package/dist/pi/headless.d.ts +85 -0
  66. package/dist/pi/headless.js +224 -0
  67. package/dist/pi/index.d.ts +28 -0
  68. package/dist/pi/index.js +43 -0
  69. package/dist/pi/inner-loop-client.d.ts +67 -0
  70. package/dist/pi/inner-loop-client.js +164 -0
  71. package/dist/pi/inner-loop-publisher.d.ts +187 -0
  72. package/dist/pi/inner-loop-publisher.js +236 -0
  73. package/dist/pi/lazy-proxy.d.ts +37 -0
  74. package/dist/pi/lazy-proxy.js +55 -0
  75. package/dist/pi/mission-control/actions.d.ts +48 -0
  76. package/dist/pi/mission-control/actions.js +98 -0
  77. package/dist/pi/mission-control/board.d.ts +53 -0
  78. package/dist/pi/mission-control/board.js +104 -0
  79. package/dist/pi/mission-control/extension.d.ts +44 -0
  80. package/dist/pi/mission-control/extension.js +251 -0
  81. package/dist/pi/mission-control/index.d.ts +15 -0
  82. package/dist/pi/mission-control/index.js +32 -0
  83. package/dist/pi/mission-control/inner-tail.d.ts +48 -0
  84. package/dist/pi/mission-control/inner-tail.js +76 -0
  85. package/dist/pi/mission-control/pi-ui.d.ts +43 -0
  86. package/dist/pi/mission-control/pi-ui.js +10 -0
  87. package/dist/pi/mission-control/render.d.ts +6 -0
  88. package/dist/pi/mission-control/render.js +95 -0
  89. package/dist/pi/phase-driver.d.ts +74 -0
  90. package/dist/pi/phase-driver.js +122 -0
  91. package/dist/pi/pi-types.d.ts +208 -0
  92. package/dist/pi/pi-types.js +21 -0
  93. package/dist/pi/probe.d.ts +80 -0
  94. package/dist/pi/probe.js +154 -0
  95. package/dist/pi/render-tools.d.ts +17 -0
  96. package/dist/pi/render-tools.js +51 -0
  97. package/dist/pi/reset-pump.d.ts +47 -0
  98. package/dist/pi/reset-pump.js +85 -0
  99. package/dist/pi/tool-capability.d.ts +60 -0
  100. package/dist/pi/tool-capability.js +156 -0
  101. package/dist/pi/workflow-client.d.ts +158 -0
  102. package/dist/pi/workflow-client.js +289 -0
  103. package/dist/pi/zod-to-typebox.d.ts +74 -0
  104. package/dist/pi/zod-to-typebox.js +191 -0
  105. package/dist/scripts/verify-daemon-isolation-guard.js +24 -24
  106. package/dist/server-tools.d.ts +2 -0
  107. package/dist/server-tools.js +50 -46
  108. package/dist/server.js +4 -0
  109. package/dist/spawn.d.ts +55 -0
  110. package/dist/spawn.js +84 -12
  111. package/dist/tools/agent-types.d.ts +2 -2
  112. package/dist/tools/agent-types.js +22 -17
  113. package/dist/tools/attachment-info.d.ts +2 -2
  114. package/dist/tools/attachment-info.js +38 -33
  115. package/dist/tools/broadcast.d.ts +2 -2
  116. package/dist/tools/broadcast.js +69 -64
  117. package/dist/tools/cancel-stage.d.ts +2 -2
  118. package/dist/tools/cancel-stage.js +20 -15
  119. package/dist/tools/clear-state.d.ts +2 -2
  120. package/dist/tools/clear-state.js +25 -20
  121. package/dist/tools/coat-check-evict.d.ts +2 -2
  122. package/dist/tools/coat-check-evict.js +30 -25
  123. package/dist/tools/coat-check-get.d.ts +2 -2
  124. package/dist/tools/coat-check-get.js +39 -34
  125. package/dist/tools/coat-check-list.d.ts +2 -2
  126. package/dist/tools/coat-check-list.js +48 -43
  127. package/dist/tools/coat-check-put.d.ts +2 -2
  128. package/dist/tools/coat-check-put.js +41 -36
  129. package/dist/tools/cue.d.ts +2 -2
  130. package/dist/tools/cue.js +57 -52
  131. package/dist/tools/descriptor.d.ts +72 -0
  132. package/dist/tools/descriptor.js +39 -0
  133. package/dist/tools/destroy.d.ts +2 -2
  134. package/dist/tools/destroy.js +153 -148
  135. package/dist/tools/ensemble.d.ts +2 -2
  136. package/dist/tools/ensemble.js +71 -66
  137. package/dist/tools/evaluate-gate.d.ts +2 -2
  138. package/dist/tools/evaluate-gate.js +33 -27
  139. package/dist/tools/fetch-state.d.ts +2 -2
  140. package/dist/tools/fetch-state.js +43 -38
  141. package/dist/tools/gates.d.ts +2 -2
  142. package/dist/tools/gates.js +39 -34
  143. package/dist/tools/hosts.d.ts +2 -2
  144. package/dist/tools/hosts.js +25 -20
  145. package/dist/tools/listen.d.ts +2 -2
  146. package/dist/tools/listen.js +23 -18
  147. package/dist/tools/load-lineup.d.ts +2 -2
  148. package/dist/tools/load-lineup.js +324 -319
  149. package/dist/tools/migrate.d.ts +2 -2
  150. package/dist/tools/migrate.js +45 -40
  151. package/dist/tools/pause.d.ts +2 -2
  152. package/dist/tools/pause.js +34 -29
  153. package/dist/tools/play.d.ts +2 -2
  154. package/dist/tools/play.js +53 -48
  155. package/dist/tools/quality-gate.d.ts +2 -2
  156. package/dist/tools/quality-gate.js +26 -21
  157. package/dist/tools/recall.d.ts +2 -2
  158. package/dist/tools/recall.js +32 -27
  159. package/dist/tools/recruit.d.ts +2 -2
  160. package/dist/tools/recruit.js +325 -256
  161. package/dist/tools/release.d.ts +2 -2
  162. package/dist/tools/release.js +85 -80
  163. package/dist/tools/report.d.ts +2 -2
  164. package/dist/tools/report.js +28 -23
  165. package/dist/tools/reset.d.ts +3 -0
  166. package/dist/tools/reset.js +51 -0
  167. package/dist/tools/restart.d.ts +2 -2
  168. package/dist/tools/restart.js +51 -46
  169. package/dist/tools/restore.d.ts +2 -2
  170. package/dist/tools/restore.js +76 -71
  171. package/dist/tools/save-lineup.d.ts +2 -2
  172. package/dist/tools/save-lineup.js +32 -27
  173. package/dist/tools/save-state.d.ts +2 -2
  174. package/dist/tools/save-state.js +43 -38
  175. package/dist/tools/schedule.d.ts +2 -2
  176. package/dist/tools/schedule.js +133 -128
  177. package/dist/tools/schedules.d.ts +2 -2
  178. package/dist/tools/schedules.js +41 -36
  179. package/dist/tools/set-ensemble-description.d.ts +2 -2
  180. package/dist/tools/set-ensemble-description.js +26 -21
  181. package/dist/tools/set-name.d.ts +2 -2
  182. package/dist/tools/set-name.js +38 -33
  183. package/dist/tools/set-part.d.ts +2 -2
  184. package/dist/tools/set-part.js +20 -15
  185. package/dist/tools/shutdown.d.ts +2 -2
  186. package/dist/tools/shutdown.js +39 -34
  187. package/dist/tools/stage.d.ts +2 -2
  188. package/dist/tools/stage.js +28 -23
  189. package/dist/tools/stages.d.ts +2 -2
  190. package/dist/tools/stages.js +36 -31
  191. package/dist/tools/unschedule.d.ts +2 -2
  192. package/dist/tools/unschedule.js +30 -25
  193. package/dist/tools/who-am-i.d.ts +2 -2
  194. package/dist/tools/who-am-i.js +36 -31
  195. package/dist/tools/worktree.d.ts +2 -2
  196. package/dist/tools/worktree.js +134 -129
  197. package/dist/tui/index.js +6 -6
  198. package/dist/types.d.ts +47 -2
  199. package/dist/types.js +1 -1
  200. package/dist/utils/default-part.js +1 -0
  201. package/dist/utils/grpc-shutdown-guard.d.ts +52 -0
  202. package/dist/utils/grpc-shutdown-guard.js +88 -0
  203. package/dist/utils/sdk-probe.d.ts +23 -0
  204. package/dist/utils/sdk-probe.js +46 -7
  205. package/dist/worker.d.ts +3 -1
  206. package/dist/worker.js +6 -2
  207. package/dist/workflows/session.js +70 -2
  208. package/dist/workflows/signals.d.ts +32 -2
  209. package/dist/workflows/signals.js +25 -2
  210. package/examples/agents/tempo-composer.md +56 -56
  211. package/examples/agents/tempo-conductor.md +117 -117
  212. package/examples/agents/tempo-critic.md +73 -73
  213. package/examples/agents/tempo-improv.md +74 -74
  214. package/examples/agents/tempo-liner.md +75 -75
  215. package/examples/agents/tempo-roadie.md +61 -61
  216. package/examples/agents/tempo-soloist.md +71 -71
  217. package/examples/agents/tempo-tuner.md +94 -94
  218. package/examples/ensembles/tempo-big-band.yaml +146 -146
  219. package/examples/ensembles/tempo-dev-team.yaml +58 -58
  220. package/examples/ensembles/tempo-headless-jam.yaml +77 -77
  221. package/examples/ensembles/tempo-jam-session.yaml +41 -41
  222. package/examples/ensembles/tempo-mock-jam.yaml +79 -79
  223. package/examples/ensembles/tempo-review-squad.yaml +32 -32
  224. package/package.json +176 -173
  225. package/packaging/launchd/com.agent.tempo.plist +46 -46
  226. package/packaging/systemd/agent-tempo.service +32 -32
  227. package/packaging/windows/install-task.ps1 +71 -71
  228. package/scenarios/conductor-recruit-mock.yaml +33 -33
  229. package/scenarios/echo-roundtrip.yaml +15 -15
  230. package/scenarios/multi-player-handoff.yaml +38 -38
  231. package/scenarios/recruit-cascade.yaml +38 -38
  232. package/scenarios/two-player-conversation.yaml +33 -33
  233. package/workflow-bundle.js +97 -6
  234. package/dashboard/dist/assets/index-D6Xyje_n.js.map +0 -1
  235. package/dist/activities/claude-stop.d.ts +0 -21
  236. package/dist/activities/claude-stop.js +0 -94
  237. package/dist/channel.d.ts +0 -3
  238. package/dist/channel.js +0 -48
  239. package/dist/copilot-bridge.d.ts +0 -22
  240. package/dist/copilot-bridge.js +0 -565
  241. package/dist/scripts/258-spotcheck.js +0 -303
  242. package/dist/tools/detach.d.ts +0 -4
  243. package/dist/tools/detach.js +0 -45
  244. package/dist/tools/encore.d.ts +0 -4
  245. package/dist/tools/encore.js +0 -31
  246. package/dist/tools/helpers.d.ts +0 -21
  247. package/dist/tools/helpers.js +0 -25
  248. package/dist/tools/pause-ensemble.d.ts +0 -4
  249. package/dist/tools/pause-ensemble.js +0 -58
  250. package/dist/tools/resume-ensemble.d.ts +0 -4
  251. package/dist/tools/resume-ensemble.js +0 -79
  252. package/dist/tools/stop.d.ts +0 -4
  253. package/dist/tools/stop.js +0 -29
  254. package/dist/tui/client.d.ts +0 -6
  255. package/dist/tui/client.js +0 -9
  256. package/dist/tui/components/ActivityLog.d.ts +0 -16
  257. package/dist/tui/components/ActivityLog.js +0 -36
  258. package/dist/tui/components/CommandOverlay.d.ts +0 -15
  259. package/dist/tui/components/CommandOverlay.js +0 -34
  260. package/dist/tui/components/ConductorChat.d.ts +0 -16
  261. package/dist/tui/components/ConductorChat.js +0 -32
  262. package/dist/tui/components/EnsembleListView.d.ts +0 -14
  263. package/dist/tui/components/EnsembleListView.js +0 -32
  264. package/dist/tui/components/EnsemblePanel.d.ts +0 -12
  265. package/dist/tui/components/EnsemblePanel.js +0 -40
  266. package/dist/tui/components/InputBar.d.ts +0 -13
  267. package/dist/tui/components/InputBar.js +0 -58
  268. package/dist/tui/components/ScheduleOverlay.d.ts +0 -13
  269. package/dist/tui/components/ScheduleOverlay.js +0 -113
  270. package/dist/tui/components/TopBar.d.ts +0 -12
  271. package/dist/tui/components/TopBar.js +0 -15
  272. package/dist/tui/core-api.d.ts +0 -26
  273. package/dist/tui/core-api.js +0 -67
  274. package/dist/tui/hooks/useEnsembleDiscovery.d.ts +0 -3
  275. package/dist/tui/hooks/useEnsembleDiscovery.js +0 -30
  276. package/dist/tui/hooks/useMaestroPoller.d.ts +0 -3
  277. package/dist/tui/hooks/useMaestroPoller.js +0 -36
  278. package/dist/tui/hooks/useSendCommand.d.ts +0 -7
  279. package/dist/tui/hooks/useSendCommand.js +0 -29
  280. package/dist/utils/bg-preflight.d.ts +0 -25
  281. package/dist/utils/bg-preflight.js +0 -154
@@ -1,146 +1,146 @@
1
- name: tempo-big-band
2
- description: Full-lifecycle development ensemble — design, implement, test, review, and ship
3
-
4
- conductor:
5
- type: tempo-conductor
6
- instructions: >
7
- You are leading the Big Band — a full-lifecycle development ensemble with all roles
8
- covered. Work through these phases, gating transitions strictly:
9
-
10
-
11
- Phase 1 — Discovery: Understand the goal. Clarify requirements, identify unknowns.
12
- Active: you + explorer + composer. The explorer researches the codebase, existing
13
- patterns, and relevant approaches. The composer starts forming architectural ideas.
14
- Exception: cue the roadie early to set up CI/deployment infrastructure in parallel.
15
-
16
-
17
- Phase 2 — Design: The composer designs the approach — architecture, interfaces, data
18
- flow. You review it. Don't advance to implementation until the design is solid. If
19
- it has issues, send it back. Have the tuner draft a test strategy during this phase
20
- so testing starts the moment implementation begins.
21
-
22
-
23
- Phase 3 — Implementation: Break the design into discrete tasks. Assign to the lead
24
- and eng soloists based on complexity and specialization. Independent tasks run in
25
- parallel; dependent tasks are sequenced. The composer is available for design
26
- questions — route them quickly. The tuner starts writing tests alongside implementation.
27
-
28
-
29
- Phase 4 — Validation: The tuner runs the full test suite and reports results. Route
30
- bugs back to the responsible soloist. Don't advance until all tests pass and the tuner
31
- reports green. If debugging is complex, have the tuner correlate errors across
32
- components to identify root causes before assigning fixes.
33
-
34
-
35
- Phase 5 — Review: The critic reviews all changes. Route feedback to the responsible
36
- soloist. Blockers must be resolved before advancing. Suggestions are at the soloist's
37
- discretion. After revisions, the tuner re-validates affected areas.
38
-
39
-
40
- Phase 6 — Ship: The roadie handles deployment. Verify CI is green, tests pass, and
41
- reviews are approved before giving the go-ahead. Collect a final status from all
42
- players and synthesize the outcome.
43
-
44
-
45
- Cross-cutting: Set up a status-check schedule immediately. Synthesize reports across
46
- players — you are the shared memory of this ensemble. When one player's findings
47
- affect another's work, forward the context proactively.
48
-
49
- players:
50
- - name: explorer
51
- type: tempo-improv
52
- instructions: >
53
- You are the researcher of the Big Band ensemble. You're most active in the
54
- Discovery phase — explore the codebase, research approaches, investigate
55
- unknowns, and report findings to the conductor and composer. Time-box your
56
- exploration: aim for clear, structured comparisons rather than exhaustive
57
- research. During Implementation, the conductor may cue you to investigate
58
- specific technical questions or spike on uncertain approaches. The conductor
59
- orchestrates your work — report findings, options with trade-offs, and
60
- recommendations to them. The composer uses your findings to inform the design.
61
-
62
- - name: composer
63
- type: tempo-composer
64
- instructions: >
65
- You are the architect of the Big Band ensemble. In the Design phase, you define
66
- the approach — architecture, interfaces, module boundaries, data flow. Your design
67
- must be clear enough that the soloists can implement independently. During
68
- Implementation, you're on call for design questions — respond to cues from soloists
69
- promptly. The conductor orchestrates your work — report design decisions and
70
- blockers to them. The soloists follow your design decisions; if they push back,
71
- hear them out but make the call.
72
-
73
- - name: lead
74
- type: tempo-soloist
75
- instructions: >
76
- You are the lead engineer in the Big Band ensemble. You handle the most complex
77
- implementation work — core logic, data models, critical paths. The composer defines
78
- the architecture — follow their design decisions. If you disagree, raise it with
79
- reasoning but don't silently deviate. Coordinate with eng on shared interfaces
80
- to avoid conflicts. When your work is ready, notify the tuner for testing. The
81
- conductor orchestrates your work — report progress, completions, and blockers
82
- to them. Address the critic's review feedback before considering your work done.
83
-
84
- - name: eng
85
- type: tempo-soloist
86
- instructions: >
87
- You are the supporting engineer in the Big Band ensemble. You pick up implementation
88
- tasks assigned by the conductor — secondary features, utilities, integration work,
89
- and supporting code. The composer defines the architecture — follow their design
90
- decisions. Coordinate with the lead on shared interfaces to avoid conflicts.
91
- When your work is ready, notify the tuner for testing. The conductor orchestrates
92
- your work — report progress, completions, and blockers to them. Address the
93
- critic's review feedback before considering your work done.
94
-
95
- - name: tuner
96
- type: tempo-tuner
97
- instructions: >
98
- You are the QA engineer of the Big Band ensemble. During the Design phase, draft
99
- a test strategy so you're ready when implementation starts. During Implementation,
100
- write tests alongside the soloists — don't wait until they're "done." In the
101
- Validation phase, run the full suite and report results to the conductor. When bugs
102
- surface, correlate errors across components to identify root causes before the
103
- conductor assigns fixes. After the Review phase, re-validate any areas affected
104
- by revisions. The conductor orchestrates your work — report test results, bugs,
105
- and coverage gaps to them.
106
-
107
- - name: critic
108
- type: tempo-critic
109
- instructions: >
110
- You are the code reviewer of the Big Band ensemble. You're active primarily in
111
- the Review phase. Review all changes for correctness, security, performance, and
112
- maintainability in one thorough pass. Structure feedback as Blockers > Suggestions
113
- > Nits. Route feedback to the responsible soloist via cue. The conductor
114
- orchestrates your work — report your review verdict (approved / changes requested /
115
- blocked) and key findings to them. If you spot issues during earlier phases
116
- (e.g., a soloist cues you for early feedback), give quick directional guidance
117
- without doing a full review.
118
-
119
- - name: roadie
120
- type: tempo-roadie
121
- instructions: >
122
- You are the DevOps engineer of the Big Band ensemble. During early phases, set up
123
- or verify CI/CD infrastructure so it's ready when code starts flowing. During the
124
- Ship phase, handle deployment — verify CI is green, tests pass, and reviews are
125
- approved before deploying. Monitor deployment health and report any issues to the
126
- conductor immediately. If the conductor cues you during Implementation about CI
127
- failures, investigate and fix promptly — broken CI blocks everyone. The conductor
128
- orchestrates your work — report deployment status, infrastructure issues, and
129
- blockers to them.
130
-
131
- - name: liner
132
- type: tempo-liner
133
- instructions: >
134
- You are the documentation specialist of the Big Band ensemble. During Implementation,
135
- monitor what the soloists are building and note documentation implications — new flags,
136
- renamed tools, changed behaviors. During Review, audit README, CHANGELOG, and CLAUDE.md
137
- against the actual code changes to catch any drift. During Ship, draft the changelog
138
- entry and PR description summarizing what changed and why. The conductor orchestrates
139
- your work — report documentation status, drift findings, and completed updates to them.
140
- Coordinate with soloists when you need clarification on behavior or API details.
141
-
142
- schedules:
143
- - name: status-check
144
- message: "Big Band standup: report your current status, what phase you're in, progress, and any blockers."
145
- target: all
146
- every: 30m
1
+ name: tempo-big-band
2
+ description: Full-lifecycle development ensemble — design, implement, test, review, and ship
3
+
4
+ conductor:
5
+ type: tempo-conductor
6
+ instructions: >
7
+ You are leading the Big Band — a full-lifecycle development ensemble with all roles
8
+ covered. Work through these phases, gating transitions strictly:
9
+
10
+
11
+ Phase 1 — Discovery: Understand the goal. Clarify requirements, identify unknowns.
12
+ Active: you + explorer + composer. The explorer researches the codebase, existing
13
+ patterns, and relevant approaches. The composer starts forming architectural ideas.
14
+ Exception: cue the roadie early to set up CI/deployment infrastructure in parallel.
15
+
16
+
17
+ Phase 2 — Design: The composer designs the approach — architecture, interfaces, data
18
+ flow. You review it. Don't advance to implementation until the design is solid. If
19
+ it has issues, send it back. Have the tuner draft a test strategy during this phase
20
+ so testing starts the moment implementation begins.
21
+
22
+
23
+ Phase 3 — Implementation: Break the design into discrete tasks. Assign to the lead
24
+ and eng soloists based on complexity and specialization. Independent tasks run in
25
+ parallel; dependent tasks are sequenced. The composer is available for design
26
+ questions — route them quickly. The tuner starts writing tests alongside implementation.
27
+
28
+
29
+ Phase 4 — Validation: The tuner runs the full test suite and reports results. Route
30
+ bugs back to the responsible soloist. Don't advance until all tests pass and the tuner
31
+ reports green. If debugging is complex, have the tuner correlate errors across
32
+ components to identify root causes before assigning fixes.
33
+
34
+
35
+ Phase 5 — Review: The critic reviews all changes. Route feedback to the responsible
36
+ soloist. Blockers must be resolved before advancing. Suggestions are at the soloist's
37
+ discretion. After revisions, the tuner re-validates affected areas.
38
+
39
+
40
+ Phase 6 — Ship: The roadie handles deployment. Verify CI is green, tests pass, and
41
+ reviews are approved before giving the go-ahead. Collect a final status from all
42
+ players and synthesize the outcome.
43
+
44
+
45
+ Cross-cutting: Set up a status-check schedule immediately. Synthesize reports across
46
+ players — you are the shared memory of this ensemble. When one player's findings
47
+ affect another's work, forward the context proactively.
48
+
49
+ players:
50
+ - name: explorer
51
+ type: tempo-improv
52
+ instructions: >
53
+ You are the researcher of the Big Band ensemble. You're most active in the
54
+ Discovery phase — explore the codebase, research approaches, investigate
55
+ unknowns, and report findings to the conductor and composer. Time-box your
56
+ exploration: aim for clear, structured comparisons rather than exhaustive
57
+ research. During Implementation, the conductor may cue you to investigate
58
+ specific technical questions or spike on uncertain approaches. The conductor
59
+ orchestrates your work — report findings, options with trade-offs, and
60
+ recommendations to them. The composer uses your findings to inform the design.
61
+
62
+ - name: composer
63
+ type: tempo-composer
64
+ instructions: >
65
+ You are the architect of the Big Band ensemble. In the Design phase, you define
66
+ the approach — architecture, interfaces, module boundaries, data flow. Your design
67
+ must be clear enough that the soloists can implement independently. During
68
+ Implementation, you're on call for design questions — respond to cues from soloists
69
+ promptly. The conductor orchestrates your work — report design decisions and
70
+ blockers to them. The soloists follow your design decisions; if they push back,
71
+ hear them out but make the call.
72
+
73
+ - name: lead
74
+ type: tempo-soloist
75
+ instructions: >
76
+ You are the lead engineer in the Big Band ensemble. You handle the most complex
77
+ implementation work — core logic, data models, critical paths. The composer defines
78
+ the architecture — follow their design decisions. If you disagree, raise it with
79
+ reasoning but don't silently deviate. Coordinate with eng on shared interfaces
80
+ to avoid conflicts. When your work is ready, notify the tuner for testing. The
81
+ conductor orchestrates your work — report progress, completions, and blockers
82
+ to them. Address the critic's review feedback before considering your work done.
83
+
84
+ - name: eng
85
+ type: tempo-soloist
86
+ instructions: >
87
+ You are the supporting engineer in the Big Band ensemble. You pick up implementation
88
+ tasks assigned by the conductor — secondary features, utilities, integration work,
89
+ and supporting code. The composer defines the architecture — follow their design
90
+ decisions. Coordinate with the lead on shared interfaces to avoid conflicts.
91
+ When your work is ready, notify the tuner for testing. The conductor orchestrates
92
+ your work — report progress, completions, and blockers to them. Address the
93
+ critic's review feedback before considering your work done.
94
+
95
+ - name: tuner
96
+ type: tempo-tuner
97
+ instructions: >
98
+ You are the QA engineer of the Big Band ensemble. During the Design phase, draft
99
+ a test strategy so you're ready when implementation starts. During Implementation,
100
+ write tests alongside the soloists — don't wait until they're "done." In the
101
+ Validation phase, run the full suite and report results to the conductor. When bugs
102
+ surface, correlate errors across components to identify root causes before the
103
+ conductor assigns fixes. After the Review phase, re-validate any areas affected
104
+ by revisions. The conductor orchestrates your work — report test results, bugs,
105
+ and coverage gaps to them.
106
+
107
+ - name: critic
108
+ type: tempo-critic
109
+ instructions: >
110
+ You are the code reviewer of the Big Band ensemble. You're active primarily in
111
+ the Review phase. Review all changes for correctness, security, performance, and
112
+ maintainability in one thorough pass. Structure feedback as Blockers > Suggestions
113
+ > Nits. Route feedback to the responsible soloist via cue. The conductor
114
+ orchestrates your work — report your review verdict (approved / changes requested /
115
+ blocked) and key findings to them. If you spot issues during earlier phases
116
+ (e.g., a soloist cues you for early feedback), give quick directional guidance
117
+ without doing a full review.
118
+
119
+ - name: roadie
120
+ type: tempo-roadie
121
+ instructions: >
122
+ You are the DevOps engineer of the Big Band ensemble. During early phases, set up
123
+ or verify CI/CD infrastructure so it's ready when code starts flowing. During the
124
+ Ship phase, handle deployment — verify CI is green, tests pass, and reviews are
125
+ approved before deploying. Monitor deployment health and report any issues to the
126
+ conductor immediately. If the conductor cues you during Implementation about CI
127
+ failures, investigate and fix promptly — broken CI blocks everyone. The conductor
128
+ orchestrates your work — report deployment status, infrastructure issues, and
129
+ blockers to them.
130
+
131
+ - name: liner
132
+ type: tempo-liner
133
+ instructions: >
134
+ You are the documentation specialist of the Big Band ensemble. During Implementation,
135
+ monitor what the soloists are building and note documentation implications — new flags,
136
+ renamed tools, changed behaviors. During Review, audit README, CHANGELOG, and CLAUDE.md
137
+ against the actual code changes to catch any drift. During Ship, draft the changelog
138
+ entry and PR description summarizing what changed and why. The conductor orchestrates
139
+ your work — report documentation status, drift findings, and completed updates to them.
140
+ Coordinate with soloists when you need clarification on behavior or API details.
141
+
142
+ schedules:
143
+ - name: status-check
144
+ message: "Big Band standup: report your current status, what phase you're in, progress, and any blockers."
145
+ target: all
146
+ every: 30m
@@ -1,58 +1,58 @@
1
- name: tempo-dev-team
2
- description: Full development team — conductor, composer, two soloists, and a tuner for feature work
3
-
4
- conductor:
5
- type: tempo-conductor
6
- instructions: >
7
- You are leading a development team. Work in phases:
8
-
9
- Phase 1 — Discovery: Understand the goal. Have the composer analyze the codebase
10
- and design the approach. Don't assign implementation until design is reviewed.
11
-
12
- Phase 2 — Implementation: Break the design into discrete tasks, assign to soloists
13
- based on specialization. Independent tasks run in parallel; dependent tasks are sequenced.
14
- Use RICE prioritization to order work.
15
-
16
- Phase 3 — Validation: The tuner tests completed work. No feature is done until tests
17
- pass and the tuner reports green. Route bugs back to the responsible soloist.
18
-
19
- Phase 4 — Wrap-up: Collect final status from all players, synthesize results, stop
20
- idle sessions.
21
-
22
- Set up a status-check schedule immediately. Gate phase transitions — don't advance
23
- until the current phase is complete.
24
-
25
- players:
26
- - name: composer
27
- type: tempo-composer
28
- instructions: >
29
- Review the current codebase architecture and design the approach for the requested
30
- feature or change. Define interfaces, module boundaries, and data flow. Hand off
31
- implementation details to the soloists with clear specifications.
32
-
33
- - name: lead
34
- type: tempo-soloist
35
- instructions: >
36
- You are the lead engineer. Focus on core logic, data models, and the most
37
- complex implementation work. Coordinate with the second soloist on shared
38
- interfaces. Commit with clear messages.
39
-
40
- - name: eng
41
- type: tempo-soloist
42
- instructions: >
43
- You are the supporting engineer. Pick up tasks assigned by the conductor,
44
- focusing on secondary features, utilities, and integration work. Coordinate
45
- with the lead on shared interfaces.
46
-
47
- - name: tuner
48
- type: tempo-tuner
49
- instructions: >
50
- Monitor what the soloists are building. As features are completed, write tests
51
- to verify correctness, check edge cases, and detect regressions. Report test
52
- results to the conductor promptly.
53
-
54
- schedules:
55
- - name: status-check
56
- message: "Report your current status: what you're working on, progress, and any blockers."
57
- target: all
58
- every: 20m
1
+ name: tempo-dev-team
2
+ description: Full development team — conductor, composer, two soloists, and a tuner for feature work
3
+
4
+ conductor:
5
+ type: tempo-conductor
6
+ instructions: >
7
+ You are leading a development team. Work in phases:
8
+
9
+ Phase 1 — Discovery: Understand the goal. Have the composer analyze the codebase
10
+ and design the approach. Don't assign implementation until design is reviewed.
11
+
12
+ Phase 2 — Implementation: Break the design into discrete tasks, assign to soloists
13
+ based on specialization. Independent tasks run in parallel; dependent tasks are sequenced.
14
+ Use RICE prioritization to order work.
15
+
16
+ Phase 3 — Validation: The tuner tests completed work. No feature is done until tests
17
+ pass and the tuner reports green. Route bugs back to the responsible soloist.
18
+
19
+ Phase 4 — Wrap-up: Collect final status from all players, synthesize results, stop
20
+ idle sessions.
21
+
22
+ Set up a status-check schedule immediately. Gate phase transitions — don't advance
23
+ until the current phase is complete.
24
+
25
+ players:
26
+ - name: composer
27
+ type: tempo-composer
28
+ instructions: >
29
+ Review the current codebase architecture and design the approach for the requested
30
+ feature or change. Define interfaces, module boundaries, and data flow. Hand off
31
+ implementation details to the soloists with clear specifications.
32
+
33
+ - name: lead
34
+ type: tempo-soloist
35
+ instructions: >
36
+ You are the lead engineer. Focus on core logic, data models, and the most
37
+ complex implementation work. Coordinate with the second soloist on shared
38
+ interfaces. Commit with clear messages.
39
+
40
+ - name: eng
41
+ type: tempo-soloist
42
+ instructions: >
43
+ You are the supporting engineer. Pick up tasks assigned by the conductor,
44
+ focusing on secondary features, utilities, and integration work. Coordinate
45
+ with the lead on shared interfaces.
46
+
47
+ - name: tuner
48
+ type: tempo-tuner
49
+ instructions: >
50
+ Monitor what the soloists are building. As features are completed, write tests
51
+ to verify correctness, check edge cases, and detect regressions. Report test
52
+ results to the conductor promptly.
53
+
54
+ schedules:
55
+ - name: status-check
56
+ message: "Report your current status: what you're working on, progress, and any blockers."
57
+ target: all
58
+ every: 20m
@@ -1,77 +1,77 @@
1
- name: tempo-headless-jam
2
- description: >
3
- Subscription-billed headless ensemble for scheduled / CI / background work
4
- where you don't want to spawn visible terminals or burn Console workspace
5
- credits. Every player runs `agent: claude-code-headless` — the host's
6
- installed `claude` CLI is invoked per-turn via `claude -p`, so turns bill
7
- against the operator's existing Claude Code subscription extra-usage
8
- pool (Pro / Max plans), NOT a `sk-ant-api03-...` Console key.
9
-
10
- Requires:
11
- - `claude` binary on PATH (`npm install -g @anthropic-ai/claude-code`
12
- or follow https://claude.com/download)
13
- - Logged-in Claude Code session (`claude auth login`) — the recruit
14
- pre-flight rejects with an actionable error if either check fails
15
-
16
- Use cases:
17
- - Scheduled cleanup PRs, doctor checks, gate evaluators that you want
18
- to run without a human-in-the-loop terminal window
19
- - CI / build-bot ensembles on hosts where the operator already has
20
- a Pro / Max subscription and wants to use it instead of Console credits
21
- - "Pair with claude-code-headless" runs where one headless explorer +
22
- one headless prototyper iterate on a problem, with the operator
23
- reading transcripts via the dashboard rather than driving via
24
- terminal interactions
25
-
26
- Headless players have FULL Claude Code tool access (Bash, Read, Write,
27
- Edit, Glob, Grep, WebSearch, WebFetch) by inheritance from the spawned
28
- CLI — strictly more capable than `claude-api` headless players (which
29
- have MCP-only tool access).
30
-
31
- See [docs/design/520-claude-code-headless-adapter.md](../../docs/design/520-claude-code-headless-adapter.md)
32
- for the full design and §16 spike findings.
33
-
34
- conductor:
35
- type: tempo-conductor
36
- agent: claude-code-headless
37
- permissionMode: acceptEdits
38
- instructions: >
39
- You are driving a headless ensemble for scheduled or CI work. Your
40
- players have full Claude Code tool access AND the agent-tempo MCP
41
- surface. Decompose the operator's task, delegate to the explorer +
42
- prototyper, synthesize results. Report cleanly via `report` —
43
- operators read transcripts via the dashboard, not by joining a
44
- terminal session.
45
-
46
- players:
47
- - name: explorer
48
- type: tempo-improv
49
- agent: claude-code-headless
50
- permissionMode: acceptEdits
51
- instructions: >
52
- You are the headless researcher. Investigate the operator's task
53
- via Read / Grep / Glob / WebSearch / WebFetch. Report findings
54
- with structured comparisons (pros / cons / trade-offs / recommendation).
55
- You have full file-read access — no per-tool gating beyond
56
- Claude Code's default `acceptEdits` permission mode. Show your
57
- work — document what you tried and what you ruled out.
58
-
59
- - name: prototyper
60
- type: tempo-soloist
61
- agent: claude-code-headless
62
- permissionMode: acceptEdits
63
- instructions: >
64
- You build small implementations to validate the explorer's
65
- findings. Write minimal code with Bash + Edit + Write. Run tests
66
- where appropriate. Don't over-engineer — focus on proving or
67
- disproving the approach. Report what worked and what didn't.
68
-
69
- # No `schedules` block — headless ensembles are typically driven by
70
- # external triggers (cron, CI hooks) or operator cues from the dashboard.
71
- # Add a `schedules:` block if you want a periodic progress check, e.g.:
72
- #
73
- # schedules:
74
- # - name: progress-check
75
- # message: "Share what you've found so far."
76
- # target: all
77
- # every: 30m
1
+ name: tempo-headless-jam
2
+ description: >
3
+ Subscription-billed headless ensemble for scheduled / CI / background work
4
+ where you don't want to spawn visible terminals or burn Console workspace
5
+ credits. Every player runs `agent: claude-code-headless` — the host's
6
+ installed `claude` CLI is invoked per-turn via `claude -p`, so turns bill
7
+ against the operator's existing Claude Code subscription extra-usage
8
+ pool (Pro / Max plans), NOT a `sk-ant-api03-...` Console key.
9
+
10
+ Requires:
11
+ - `claude` binary on PATH (`npm install -g @anthropic-ai/claude-code`
12
+ or follow https://claude.com/download)
13
+ - Logged-in Claude Code session (`claude auth login`) — the recruit
14
+ pre-flight rejects with an actionable error if either check fails
15
+
16
+ Use cases:
17
+ - Scheduled cleanup PRs, doctor checks, gate evaluators that you want
18
+ to run without a human-in-the-loop terminal window
19
+ - CI / build-bot ensembles on hosts where the operator already has
20
+ a Pro / Max subscription and wants to use it instead of Console credits
21
+ - "Pair with claude-code-headless" runs where one headless explorer +
22
+ one headless prototyper iterate on a problem, with the operator
23
+ reading transcripts via the dashboard rather than driving via
24
+ terminal interactions
25
+
26
+ Headless players have FULL Claude Code tool access (Bash, Read, Write,
27
+ Edit, Glob, Grep, WebSearch, WebFetch) by inheritance from the spawned
28
+ CLI — strictly more capable than `claude-api` headless players (which
29
+ have MCP-only tool access).
30
+
31
+ See [docs/design/520-claude-code-headless-adapter.md](../../docs/design/520-claude-code-headless-adapter.md)
32
+ for the full design and §16 spike findings.
33
+
34
+ conductor:
35
+ type: tempo-conductor
36
+ agent: claude-code-headless
37
+ permissionMode: acceptEdits
38
+ instructions: >
39
+ You are driving a headless ensemble for scheduled or CI work. Your
40
+ players have full Claude Code tool access AND the agent-tempo MCP
41
+ surface. Decompose the operator's task, delegate to the explorer +
42
+ prototyper, synthesize results. Report cleanly via `report` —
43
+ operators read transcripts via the dashboard, not by joining a
44
+ terminal session.
45
+
46
+ players:
47
+ - name: explorer
48
+ type: tempo-improv
49
+ agent: claude-code-headless
50
+ permissionMode: acceptEdits
51
+ instructions: >
52
+ You are the headless researcher. Investigate the operator's task
53
+ via Read / Grep / Glob / WebSearch / WebFetch. Report findings
54
+ with structured comparisons (pros / cons / trade-offs / recommendation).
55
+ You have full file-read access — no per-tool gating beyond
56
+ Claude Code's default `acceptEdits` permission mode. Show your
57
+ work — document what you tried and what you ruled out.
58
+
59
+ - name: prototyper
60
+ type: tempo-soloist
61
+ agent: claude-code-headless
62
+ permissionMode: acceptEdits
63
+ instructions: >
64
+ You build small implementations to validate the explorer's
65
+ findings. Write minimal code with Bash + Edit + Write. Run tests
66
+ where appropriate. Don't over-engineer — focus on proving or
67
+ disproving the approach. Report what worked and what didn't.
68
+
69
+ # No `schedules` block — headless ensembles are typically driven by
70
+ # external triggers (cron, CI hooks) or operator cues from the dashboard.
71
+ # Add a `schedules:` block if you want a periodic progress check, e.g.:
72
+ #
73
+ # schedules:
74
+ # - name: progress-check
75
+ # message: "Share what you've found so far."
76
+ # target: all
77
+ # every: 30m
@@ -1,41 +1,41 @@
1
- name: tempo-jam-session
2
- description: Exploratory ensemble for spikes, research, and problems where the path forward is unclear
3
-
4
- conductor:
5
- type: tempo-conductor
6
- instructions: >
7
- You are leading a jam session — the goal is exploration, not delivery. Break the
8
- unknown into research questions, assign them to the improv player and soloist,
9
- and have the composer evaluate findings architecturally. Synthesize discoveries
10
- into a clear recommendation or next steps. Time-box aggressively — report
11
- findings even if incomplete.
12
-
13
- players:
14
- - name: explorer
15
- type: tempo-improv
16
- instructions: >
17
- You are the primary researcher. Investigate the unknown: read docs, explore
18
- codebases, test hypotheses, evaluate options. Report findings with structured
19
- comparisons (pros, cons, trade-offs, recommendation). Show your work —
20
- document what you tried and what you ruled out.
21
-
22
- - name: prototyper
23
- type: tempo-soloist
24
- instructions: >
25
- You build throwaway prototypes to test hypotheses from the explorer's findings.
26
- Write quick, minimal code to prove or disprove an approach. Don't over-engineer —
27
- this is a spike, not production code. Report what worked and what didn't.
28
-
29
- - name: composer
30
- type: tempo-composer
31
- instructions: >
32
- Evaluate the explorer's findings and prototyper's results through an architectural
33
- lens. Assess how each option would fit into the existing system. Identify risks,
34
- integration challenges, and long-term implications. Provide a recommendation
35
- to the conductor.
36
-
37
- schedules:
38
- - name: progress-check
39
- message: "Share what you've found so far, even if incomplete. What have you tried? What looks promising? What's a dead end?"
40
- target: all
41
- every: 15m
1
+ name: tempo-jam-session
2
+ description: Exploratory ensemble for spikes, research, and problems where the path forward is unclear
3
+
4
+ conductor:
5
+ type: tempo-conductor
6
+ instructions: >
7
+ You are leading a jam session — the goal is exploration, not delivery. Break the
8
+ unknown into research questions, assign them to the improv player and soloist,
9
+ and have the composer evaluate findings architecturally. Synthesize discoveries
10
+ into a clear recommendation or next steps. Time-box aggressively — report
11
+ findings even if incomplete.
12
+
13
+ players:
14
+ - name: explorer
15
+ type: tempo-improv
16
+ instructions: >
17
+ You are the primary researcher. Investigate the unknown: read docs, explore
18
+ codebases, test hypotheses, evaluate options. Report findings with structured
19
+ comparisons (pros, cons, trade-offs, recommendation). Show your work —
20
+ document what you tried and what you ruled out.
21
+
22
+ - name: prototyper
23
+ type: tempo-soloist
24
+ instructions: >
25
+ You build throwaway prototypes to test hypotheses from the explorer's findings.
26
+ Write quick, minimal code to prove or disprove an approach. Don't over-engineer —
27
+ this is a spike, not production code. Report what worked and what didn't.
28
+
29
+ - name: composer
30
+ type: tempo-composer
31
+ instructions: >
32
+ Evaluate the explorer's findings and prototyper's results through an architectural
33
+ lens. Assess how each option would fit into the existing system. Identify risks,
34
+ integration challenges, and long-term implications. Provide a recommendation
35
+ to the conductor.
36
+
37
+ schedules:
38
+ - name: progress-check
39
+ message: "Share what you've found so far, even if incomplete. What have you tried? What looks promising? What's a dead end?"
40
+ target: all
41
+ every: 15m