@bradygaster/squad-cli 0.9.1 → 0.9.2-insider.6

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 (320) hide show
  1. package/README.md +329 -329
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +10 -10
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/config.d.ts +12 -0
  6. package/dist/cli/commands/config.d.ts.map +1 -0
  7. package/dist/cli/commands/config.js +157 -0
  8. package/dist/cli/commands/config.js.map +1 -0
  9. package/dist/cli/commands/consult.d.ts.map +1 -1
  10. package/dist/cli/commands/consult.js +9 -4
  11. package/dist/cli/commands/consult.js.map +1 -1
  12. package/dist/cli/commands/copilot.d.ts.map +1 -1
  13. package/dist/cli/commands/copilot.js +8 -7
  14. package/dist/cli/commands/copilot.js.map +1 -1
  15. package/dist/cli/commands/doctor.d.ts.map +1 -1
  16. package/dist/cli/commands/doctor.js +50 -17
  17. package/dist/cli/commands/doctor.js.map +1 -1
  18. package/dist/cli/commands/economy.d.ts.map +1 -1
  19. package/dist/cli/commands/economy.js +3 -2
  20. package/dist/cli/commands/economy.js.map +1 -1
  21. package/dist/cli/commands/export.d.ts.map +1 -1
  22. package/dist/cli/commands/export.js +22 -16
  23. package/dist/cli/commands/export.js.map +1 -1
  24. package/dist/cli/commands/extract.d.ts.map +1 -1
  25. package/dist/cli/commands/extract.js +14 -10
  26. package/dist/cli/commands/extract.js.map +1 -1
  27. package/dist/cli/commands/import.d.ts.map +1 -1
  28. package/dist/cli/commands/import.js +21 -18
  29. package/dist/cli/commands/import.js.map +1 -1
  30. package/dist/cli/commands/init-remote.d.ts.map +1 -1
  31. package/dist/cli/commands/init-remote.js +7 -6
  32. package/dist/cli/commands/init-remote.js.map +1 -1
  33. package/dist/cli/commands/link.d.ts.map +1 -1
  34. package/dist/cli/commands/link.js +11 -10
  35. package/dist/cli/commands/link.js.map +1 -1
  36. package/dist/cli/commands/migrate.d.ts.map +1 -1
  37. package/dist/cli/commands/migrate.js +19 -18
  38. package/dist/cli/commands/migrate.js.map +1 -1
  39. package/dist/cli/commands/personal.d.ts.map +1 -1
  40. package/dist/cli/commands/personal.js +57 -65
  41. package/dist/cli/commands/personal.js.map +1 -1
  42. package/dist/cli/commands/plugin.d.ts.map +1 -1
  43. package/dist/cli/commands/plugin.js +8 -7
  44. package/dist/cli/commands/plugin.js.map +1 -1
  45. package/dist/cli/commands/rc.d.ts.map +1 -1
  46. package/dist/cli/commands/rc.js +19 -12
  47. package/dist/cli/commands/rc.js.map +1 -1
  48. package/dist/cli/commands/schedule.d.ts.map +1 -1
  49. package/dist/cli/commands/schedule.js +6 -5
  50. package/dist/cli/commands/schedule.js.map +1 -1
  51. package/dist/cli/commands/start.d.ts.map +1 -1
  52. package/dist/cli/commands/start.js +18 -11
  53. package/dist/cli/commands/start.js.map +1 -1
  54. package/dist/cli/commands/streams.d.ts.map +1 -1
  55. package/dist/cli/commands/streams.js +3 -2
  56. package/dist/cli/commands/streams.js.map +1 -1
  57. package/dist/cli/commands/upstream.d.ts.map +1 -1
  58. package/dist/cli/commands/upstream.js +23 -19
  59. package/dist/cli/commands/upstream.js.map +1 -1
  60. package/dist/cli/commands/watch/capabilities/board.d.ts +22 -0
  61. package/dist/cli/commands/watch/capabilities/board.d.ts.map +1 -0
  62. package/dist/cli/commands/watch/capabilities/board.js +121 -0
  63. package/dist/cli/commands/watch/capabilities/board.js.map +1 -0
  64. package/dist/cli/commands/watch/capabilities/budget-check.d.ts +29 -0
  65. package/dist/cli/commands/watch/capabilities/budget-check.d.ts.map +1 -0
  66. package/dist/cli/commands/watch/capabilities/budget-check.js +38 -0
  67. package/dist/cli/commands/watch/capabilities/budget-check.js.map +1 -0
  68. package/dist/cli/commands/watch/capabilities/circuit-breaker.d.ts +52 -0
  69. package/dist/cli/commands/watch/capabilities/circuit-breaker.d.ts.map +1 -0
  70. package/dist/cli/commands/watch/capabilities/circuit-breaker.js +152 -0
  71. package/dist/cli/commands/watch/capabilities/circuit-breaker.js.map +1 -0
  72. package/dist/cli/commands/watch/capabilities/decision-hygiene.d.ts +14 -0
  73. package/dist/cli/commands/watch/capabilities/decision-hygiene.d.ts.map +1 -0
  74. package/dist/cli/commands/watch/capabilities/decision-hygiene.js +72 -0
  75. package/dist/cli/commands/watch/capabilities/decision-hygiene.js.map +1 -0
  76. package/dist/cli/commands/watch/capabilities/execute.d.ts +33 -0
  77. package/dist/cli/commands/watch/capabilities/execute.d.ts.map +1 -0
  78. package/dist/cli/commands/watch/capabilities/execute.js +156 -0
  79. package/dist/cli/commands/watch/capabilities/execute.js.map +1 -0
  80. package/dist/cli/commands/watch/capabilities/health-check.d.ts +29 -0
  81. package/dist/cli/commands/watch/capabilities/health-check.d.ts.map +1 -0
  82. package/dist/cli/commands/watch/capabilities/health-check.js +139 -0
  83. package/dist/cli/commands/watch/capabilities/health-check.js.map +1 -0
  84. package/dist/cli/commands/watch/capabilities/heartbeat.d.ts +48 -0
  85. package/dist/cli/commands/watch/capabilities/heartbeat.d.ts.map +1 -0
  86. package/dist/cli/commands/watch/capabilities/heartbeat.js +115 -0
  87. package/dist/cli/commands/watch/capabilities/heartbeat.js.map +1 -0
  88. package/dist/cli/commands/watch/capabilities/index.d.ts +9 -0
  89. package/dist/cli/commands/watch/capabilities/index.d.ts.map +1 -0
  90. package/dist/cli/commands/watch/capabilities/index.js +40 -0
  91. package/dist/cli/commands/watch/capabilities/index.js.map +1 -0
  92. package/dist/cli/commands/watch/capabilities/lockfile.d.ts +30 -0
  93. package/dist/cli/commands/watch/capabilities/lockfile.d.ts.map +1 -0
  94. package/dist/cli/commands/watch/capabilities/lockfile.js +100 -0
  95. package/dist/cli/commands/watch/capabilities/lockfile.js.map +1 -0
  96. package/dist/cli/commands/watch/capabilities/machine-capabilities.d.ts +30 -0
  97. package/dist/cli/commands/watch/capabilities/machine-capabilities.d.ts.map +1 -0
  98. package/dist/cli/commands/watch/capabilities/machine-capabilities.js +103 -0
  99. package/dist/cli/commands/watch/capabilities/machine-capabilities.js.map +1 -0
  100. package/dist/cli/commands/watch/capabilities/monitor-email.d.ts +14 -0
  101. package/dist/cli/commands/watch/capabilities/monitor-email.d.ts.map +1 -0
  102. package/dist/cli/commands/watch/capabilities/monitor-email.js +54 -0
  103. package/dist/cli/commands/watch/capabilities/monitor-email.js.map +1 -0
  104. package/dist/cli/commands/watch/capabilities/monitor-teams.d.ts +14 -0
  105. package/dist/cli/commands/watch/capabilities/monitor-teams.d.ts.map +1 -0
  106. package/dist/cli/commands/watch/capabilities/monitor-teams.js +55 -0
  107. package/dist/cli/commands/watch/capabilities/monitor-teams.js.map +1 -0
  108. package/dist/cli/commands/watch/capabilities/post-failure.d.ts +19 -0
  109. package/dist/cli/commands/watch/capabilities/post-failure.d.ts.map +1 -0
  110. package/dist/cli/commands/watch/capabilities/post-failure.js +58 -0
  111. package/dist/cli/commands/watch/capabilities/post-failure.js.map +1 -0
  112. package/dist/cli/commands/watch/capabilities/priority.d.ts +59 -0
  113. package/dist/cli/commands/watch/capabilities/priority.d.ts.map +1 -0
  114. package/dist/cli/commands/watch/capabilities/priority.js +101 -0
  115. package/dist/cli/commands/watch/capabilities/priority.js.map +1 -0
  116. package/dist/cli/commands/watch/capabilities/rate-pool.d.ts +67 -0
  117. package/dist/cli/commands/watch/capabilities/rate-pool.d.ts.map +1 -0
  118. package/dist/cli/commands/watch/capabilities/rate-pool.js +187 -0
  119. package/dist/cli/commands/watch/capabilities/rate-pool.js.map +1 -0
  120. package/dist/cli/commands/watch/capabilities/retro.d.ts +14 -0
  121. package/dist/cli/commands/watch/capabilities/retro.d.ts.map +1 -0
  122. package/dist/cli/commands/watch/capabilities/retro.js +81 -0
  123. package/dist/cli/commands/watch/capabilities/retro.js.map +1 -0
  124. package/dist/cli/commands/watch/capabilities/self-pull.d.ts +14 -0
  125. package/dist/cli/commands/watch/capabilities/self-pull.d.ts.map +1 -0
  126. package/dist/cli/commands/watch/capabilities/self-pull.js +33 -0
  127. package/dist/cli/commands/watch/capabilities/self-pull.js.map +1 -0
  128. package/dist/cli/commands/watch/capabilities/stale-reclaim.d.ts +23 -0
  129. package/dist/cli/commands/watch/capabilities/stale-reclaim.d.ts.map +1 -0
  130. package/dist/cli/commands/watch/capabilities/stale-reclaim.js +87 -0
  131. package/dist/cli/commands/watch/capabilities/stale-reclaim.js.map +1 -0
  132. package/dist/cli/commands/watch/capabilities/two-pass.d.ts +14 -0
  133. package/dist/cli/commands/watch/capabilities/two-pass.d.ts.map +1 -0
  134. package/dist/cli/commands/watch/capabilities/two-pass.js +66 -0
  135. package/dist/cli/commands/watch/capabilities/two-pass.js.map +1 -0
  136. package/dist/cli/commands/watch/capabilities/wave-dispatch.d.ts +14 -0
  137. package/dist/cli/commands/watch/capabilities/wave-dispatch.d.ts.map +1 -0
  138. package/dist/cli/commands/watch/capabilities/wave-dispatch.js +117 -0
  139. package/dist/cli/commands/watch/capabilities/wave-dispatch.js.map +1 -0
  140. package/dist/cli/commands/watch/capabilities/webhook-alerts.d.ts +29 -0
  141. package/dist/cli/commands/watch/capabilities/webhook-alerts.d.ts.map +1 -0
  142. package/dist/cli/commands/watch/capabilities/webhook-alerts.js +114 -0
  143. package/dist/cli/commands/watch/capabilities/webhook-alerts.js.map +1 -0
  144. package/dist/cli/commands/watch/config.d.ts +40 -0
  145. package/dist/cli/commands/watch/config.d.ts.map +1 -0
  146. package/dist/cli/commands/watch/config.js +129 -0
  147. package/dist/cli/commands/watch/config.js.map +1 -0
  148. package/dist/cli/commands/watch/index.d.ts +109 -0
  149. package/dist/cli/commands/watch/index.d.ts.map +1 -0
  150. package/dist/cli/commands/watch/index.js +757 -0
  151. package/dist/cli/commands/watch/index.js.map +1 -0
  152. package/dist/cli/commands/watch/registry.d.ts +19 -0
  153. package/dist/cli/commands/watch/registry.d.ts.map +1 -0
  154. package/dist/cli/commands/watch/registry.js +28 -0
  155. package/dist/cli/commands/watch/registry.js.map +1 -0
  156. package/dist/cli/commands/watch/types.d.ts +57 -0
  157. package/dist/cli/commands/watch/types.d.ts.map +1 -0
  158. package/dist/cli/commands/watch/types.js +8 -0
  159. package/dist/cli/commands/watch/types.js.map +1 -0
  160. package/dist/cli/core/cast.d.ts.map +1 -1
  161. package/dist/cli/core/cast.js +15 -19
  162. package/dist/cli/core/cast.js.map +1 -1
  163. package/dist/cli/core/detect-squad-dir.d.ts.map +1 -1
  164. package/dist/cli/core/detect-squad-dir.js +12 -10
  165. package/dist/cli/core/detect-squad-dir.js.map +1 -1
  166. package/dist/cli/core/email-scrub.d.ts.map +1 -1
  167. package/dist/cli/core/email-scrub.js +12 -11
  168. package/dist/cli/core/email-scrub.js.map +1 -1
  169. package/dist/cli/core/gh-cli.d.ts +13 -0
  170. package/dist/cli/core/gh-cli.d.ts.map +1 -1
  171. package/dist/cli/core/gh-cli.js +24 -0
  172. package/dist/cli/core/gh-cli.js.map +1 -1
  173. package/dist/cli/core/init.d.ts +2 -0
  174. package/dist/cli/core/init.d.ts.map +1 -1
  175. package/dist/cli/core/init.js +22 -5
  176. package/dist/cli/core/init.js.map +1 -1
  177. package/dist/cli/core/migrate-directory.d.ts.map +1 -1
  178. package/dist/cli/core/migrate-directory.js +14 -13
  179. package/dist/cli/core/migrate-directory.js.map +1 -1
  180. package/dist/cli/core/migrations.d.ts.map +1 -1
  181. package/dist/cli/core/migrations.js +22 -8
  182. package/dist/cli/core/migrations.js.map +1 -1
  183. package/dist/cli/core/nap.d.ts.map +1 -1
  184. package/dist/cli/core/nap.js +116 -49
  185. package/dist/cli/core/nap.js.map +1 -1
  186. package/dist/cli/core/project-type.d.ts.map +1 -1
  187. package/dist/cli/core/project-type.js +11 -10
  188. package/dist/cli/core/project-type.js.map +1 -1
  189. package/dist/cli/core/team-md.d.ts.map +1 -1
  190. package/dist/cli/core/team-md.js +43 -38
  191. package/dist/cli/core/team-md.js.map +1 -1
  192. package/dist/cli/core/templates.d.ts.map +1 -1
  193. package/dist/cli/core/templates.js +4 -3
  194. package/dist/cli/core/templates.js.map +1 -1
  195. package/dist/cli/core/upgrade.d.ts.map +1 -1
  196. package/dist/cli/core/upgrade.js +68 -55
  197. package/dist/cli/core/upgrade.js.map +1 -1
  198. package/dist/cli/core/version.d.ts.map +1 -1
  199. package/dist/cli/core/version.js +8 -7
  200. package/dist/cli/core/version.js.map +1 -1
  201. package/dist/cli/index.d.ts +1 -1
  202. package/dist/cli/index.d.ts.map +1 -1
  203. package/dist/cli/index.js +1 -1
  204. package/dist/cli/index.js.map +1 -1
  205. package/dist/cli/self-update.d.ts.map +1 -1
  206. package/dist/cli/self-update.js +7 -4
  207. package/dist/cli/self-update.js.map +1 -1
  208. package/dist/cli/shell/agent-name-parser.d.ts +16 -0
  209. package/dist/cli/shell/agent-name-parser.d.ts.map +1 -0
  210. package/dist/cli/shell/agent-name-parser.js +54 -0
  211. package/dist/cli/shell/agent-name-parser.js.map +1 -0
  212. package/dist/cli/shell/commands.d.ts.map +1 -1
  213. package/dist/cli/shell/commands.js +4 -3
  214. package/dist/cli/shell/commands.js.map +1 -1
  215. package/dist/cli/shell/coordinator.d.ts +4 -1
  216. package/dist/cli/shell/coordinator.d.ts.map +1 -1
  217. package/dist/cli/shell/coordinator.js +29 -26
  218. package/dist/cli/shell/coordinator.js.map +1 -1
  219. package/dist/cli/shell/index.d.ts.map +1 -1
  220. package/dist/cli/shell/index.js +33 -35
  221. package/dist/cli/shell/index.js.map +1 -1
  222. package/dist/cli/shell/lifecycle.d.ts +13 -2
  223. package/dist/cli/shell/lifecycle.d.ts.map +1 -1
  224. package/dist/cli/shell/lifecycle.js +26 -13
  225. package/dist/cli/shell/lifecycle.js.map +1 -1
  226. package/dist/cli/shell/session-store.d.ts.map +1 -1
  227. package/dist/cli/shell/session-store.js +16 -12
  228. package/dist/cli/shell/session-store.js.map +1 -1
  229. package/dist/cli/shell/spawn.d.ts +4 -1
  230. package/dist/cli/shell/spawn.d.ts.map +1 -1
  231. package/dist/cli/shell/spawn.js +28 -10
  232. package/dist/cli/shell/spawn.js.map +1 -1
  233. package/dist/cli-entry.js +136 -12
  234. package/dist/cli-entry.js.map +1 -1
  235. package/package.json +8 -4
  236. package/scripts/patch-esm-imports.mjs +105 -105
  237. package/scripts/patch-ink-rendering.mjs +115 -115
  238. package/templates/casting/Futurama.json +9 -9
  239. package/templates/casting-history.json +4 -4
  240. package/templates/casting-policy.json +37 -37
  241. package/templates/casting-reference.md +104 -104
  242. package/templates/casting-registry.json +3 -3
  243. package/templates/ceremonies.md +41 -41
  244. package/templates/charter.md +53 -53
  245. package/templates/constraint-tracking.md +38 -38
  246. package/templates/cooperative-rate-limiting.md +229 -229
  247. package/templates/copilot-instructions.md +46 -46
  248. package/templates/history.md +10 -10
  249. package/templates/identity/now.md +9 -9
  250. package/templates/identity/wisdom.md +15 -15
  251. package/templates/issue-lifecycle.md +412 -412
  252. package/templates/keda-scaler.md +164 -164
  253. package/templates/machine-capabilities.md +74 -74
  254. package/templates/mcp-config.md +90 -90
  255. package/templates/multi-agent-format.md +28 -28
  256. package/templates/orchestration-log.md +27 -27
  257. package/templates/plugin-marketplace.md +49 -49
  258. package/templates/ralph-circuit-breaker.md +313 -313
  259. package/templates/raw-agent-output.md +37 -37
  260. package/templates/roster.md +60 -60
  261. package/templates/routing.md +39 -39
  262. package/templates/run-output.md +50 -50
  263. package/templates/scribe-charter.md +123 -119
  264. package/templates/skill.md +24 -24
  265. package/templates/skills/agent-collaboration/SKILL.md +42 -42
  266. package/templates/skills/agent-conduct/SKILL.md +24 -24
  267. package/templates/skills/architectural-proposals/SKILL.md +151 -151
  268. package/templates/skills/ci-validation-gates/SKILL.md +84 -84
  269. package/templates/skills/cli-wiring/SKILL.md +47 -47
  270. package/templates/skills/client-compatibility/SKILL.md +89 -89
  271. package/templates/skills/cross-machine-coordination/SKILL.md +434 -0
  272. package/templates/skills/cross-squad/SKILL.md +114 -114
  273. package/templates/skills/distributed-mesh/SKILL.md +287 -287
  274. package/templates/skills/distributed-mesh/mesh.json.example +30 -30
  275. package/templates/skills/distributed-mesh/sync-mesh.ps1 +111 -111
  276. package/templates/skills/distributed-mesh/sync-mesh.sh +104 -104
  277. package/templates/skills/docs-standards/SKILL.md +71 -71
  278. package/templates/skills/economy-mode/SKILL.md +114 -114
  279. package/templates/skills/error-recovery/SKILL.md +99 -0
  280. package/templates/skills/external-comms/SKILL.md +329 -329
  281. package/templates/skills/gh-auth-isolation/SKILL.md +183 -183
  282. package/templates/skills/git-workflow/SKILL.md +204 -204
  283. package/templates/skills/github-multi-account/SKILL.md +95 -95
  284. package/templates/skills/history-hygiene/SKILL.md +36 -36
  285. package/templates/skills/humanizer/SKILL.md +105 -105
  286. package/templates/skills/init-mode/SKILL.md +102 -102
  287. package/templates/skills/iterative-retrieval/SKILL.md +165 -0
  288. package/templates/skills/model-selection/SKILL.md +117 -117
  289. package/templates/skills/nap/SKILL.md +24 -24
  290. package/templates/skills/notification-routing/SKILL.md +105 -0
  291. package/templates/skills/personal-squad/SKILL.md +57 -57
  292. package/templates/skills/pr-screenshots/SKILL.md +149 -0
  293. package/templates/skills/ralph-two-pass-scan/SKILL.md +35 -0
  294. package/templates/skills/reflect/SKILL.md +229 -0
  295. package/templates/skills/release-process/SKILL.md +131 -423
  296. package/templates/skills/reskill/SKILL.md +92 -92
  297. package/templates/skills/retro-enforcement/SKILL.md +148 -0
  298. package/templates/skills/reviewer-protocol/SKILL.md +79 -79
  299. package/templates/skills/secret-handling/SKILL.md +200 -200
  300. package/templates/skills/session-recovery/SKILL.md +155 -155
  301. package/templates/skills/squad-conventions/SKILL.md +69 -69
  302. package/templates/skills/test-discipline/SKILL.md +37 -37
  303. package/templates/skills/tiered-memory/SKILL.md +234 -0
  304. package/templates/skills/windows-compatibility/SKILL.md +98 -74
  305. package/templates/{squad.agent.md → squad.agent.md.template} +1316 -1287
  306. package/templates/workflows/squad-ci.yml +24 -24
  307. package/templates/workflows/squad-docs.yml +54 -54
  308. package/templates/workflows/squad-heartbeat.yml +0 -4
  309. package/templates/workflows/squad-insider-release.yml +61 -61
  310. package/templates/workflows/squad-issue-assign.yml +161 -161
  311. package/templates/workflows/squad-label-enforce.yml +181 -181
  312. package/templates/workflows/squad-preview.yml +55 -55
  313. package/templates/workflows/squad-promote.yml +120 -120
  314. package/templates/workflows/squad-release.yml +77 -77
  315. package/templates/workflows/squad-triage.yml +260 -260
  316. package/templates/workflows/sync-squad-labels.yml +169 -169
  317. package/dist/cli/commands/watch.d.ts +0 -18
  318. package/dist/cli/commands/watch.d.ts.map +0 -1
  319. package/dist/cli/commands/watch.js +0 -306
  320. package/dist/cli/commands/watch.js.map +0 -1
@@ -1,92 +1,92 @@
1
- ---
2
- name: "reskill"
3
- description: "Team-wide charter and history optimization through skill extraction"
4
- domain: "team-optimization"
5
- confidence: "high"
6
- source: "manual — Brady directive to reduce per-agent context overhead"
7
- ---
8
-
9
- ## Context
10
-
11
- When the coordinator hears "team, reskill" (or similar: "optimize context", "slim down charters"), trigger a team-wide optimization pass. The goal: reduce per-agent context consumption by extracting shared patterns from charters and histories into reusable skills.
12
-
13
- This is a periodic maintenance activity. Run whenever charter/history bloat is suspected.
14
-
15
- ## Process
16
-
17
- ### Step 1: Audit
18
- Read all agent charters and histories. Measure byte sizes. Identify:
19
-
20
- - **Boilerplate** — sections repeated across ≥3 charters with <10% variation (collaboration, model, boundaries template)
21
- - **Shared knowledge** — domain knowledge duplicated in 2+ charters (incident postmortems, technical patterns)
22
- - **Mature learnings** — history entries appearing 3+ times across agents that should be promoted to skills
23
-
24
- ### Step 2: Extract
25
- For each identified pattern:
26
- 1. Create or update a skill at `.squad/skills/{skill-name}/SKILL.md`
27
- 2. Follow the skill template format (frontmatter + Context + Patterns + Examples + Anti-Patterns)
28
- 3. Set confidence: low (first observation), medium (2+ agents), high (team-wide)
29
-
30
- ### Step 3: Trim
31
- **Charters** — target ≤1.5KB per agent:
32
- - Remove Collaboration section entirely (spawn prompt + agent-collaboration skill covers it)
33
- - Remove Voice section (tagline blockquote at top of charter already captures it)
34
- - Trim Model section to single line: `Preferred: {model}`
35
- - Remove "When I'm unsure" boilerplate from Boundaries
36
- - Remove domain knowledge now covered by a skill — add skill reference comment if helpful
37
- - Keep: Identity, What I Own, unique How I Work patterns, Boundaries (domain list only)
38
-
39
- **Histories** — target ≤8KB per agent:
40
- - Apply history-hygiene skill to any history >12KB
41
- - Promote recurring patterns (3+ occurrences across agents) to skills
42
- - Summarize old entries into `## Core Context` section
43
- - Remove session-specific metadata (dates, branch names, requester names)
44
-
45
- ### Step 4: Report
46
- Output a savings table:
47
-
48
- | Agent | Charter Before | Charter After | History Before | History After | Saved |
49
- |-------|---------------|---------------|----------------|---------------|-------|
50
-
51
- Include totals and percentage reduction.
52
-
53
- ## Patterns
54
-
55
- ### Minimal Charter Template (target format after reskill)
56
-
57
- ```
58
- # {Name} — {Role}
59
-
60
- > {Tagline — one sentence capturing voice and philosophy}
61
-
62
- ## Identity
63
- - **Name:** {Name}
64
- - **Role:** {Role}
65
- - **Expertise:** {comma-separated list}
66
-
67
- ## What I Own
68
- - {bullet list of owned artifacts/domains}
69
-
70
- ## How I Work
71
- - {unique patterns and principles — NOT boilerplate}
72
-
73
- ## Boundaries
74
- **I handle:** {domain list}
75
- **I don't handle:** {explicit exclusions}
76
-
77
- ## Model
78
- Preferred: {model}
79
- ```
80
-
81
- ### Skill Extraction Threshold
82
- - **1 charter** → leave in charter (unique to that agent)
83
- - **2 charters** → consider extracting if >500 bytes of overlap
84
- - **3+ charters** → always extract to a shared skill
85
-
86
- ## Anti-Patterns
87
- - Don't delete unique per-agent identity or domain-specific knowledge
88
- - Don't create skills for content only one agent uses
89
- - Don't merge unrelated patterns into a single mega-skill
90
- - Don't remove Model preference line (coordinator needs it for model selection)
91
- - Don't touch `.squad/decisions.md` during reskill
92
- - Don't remove the tagline blockquote — it's the charter's soul in one line
1
+ ---
2
+ name: "reskill"
3
+ description: "Team-wide charter and history optimization through skill extraction"
4
+ domain: "team-optimization"
5
+ confidence: "high"
6
+ source: "manual — Brady directive to reduce per-agent context overhead"
7
+ ---
8
+
9
+ ## Context
10
+
11
+ When the coordinator hears "team, reskill" (or similar: "optimize context", "slim down charters"), trigger a team-wide optimization pass. The goal: reduce per-agent context consumption by extracting shared patterns from charters and histories into reusable skills.
12
+
13
+ This is a periodic maintenance activity. Run whenever charter/history bloat is suspected.
14
+
15
+ ## Process
16
+
17
+ ### Step 1: Audit
18
+ Read all agent charters and histories. Measure byte sizes. Identify:
19
+
20
+ - **Boilerplate** — sections repeated across ≥3 charters with <10% variation (collaboration, model, boundaries template)
21
+ - **Shared knowledge** — domain knowledge duplicated in 2+ charters (incident postmortems, technical patterns)
22
+ - **Mature learnings** — history entries appearing 3+ times across agents that should be promoted to skills
23
+
24
+ ### Step 2: Extract
25
+ For each identified pattern:
26
+ 1. Create or update a skill at `.squad/skills/{skill-name}/SKILL.md`
27
+ 2. Follow the skill template format (frontmatter + Context + Patterns + Examples + Anti-Patterns)
28
+ 3. Set confidence: low (first observation), medium (2+ agents), high (team-wide)
29
+
30
+ ### Step 3: Trim
31
+ **Charters** — target ≤1.5KB per agent:
32
+ - Remove Collaboration section entirely (spawn prompt + agent-collaboration skill covers it)
33
+ - Remove Voice section (tagline blockquote at top of charter already captures it)
34
+ - Trim Model section to single line: `Preferred: {model}`
35
+ - Remove "When I'm unsure" boilerplate from Boundaries
36
+ - Remove domain knowledge now covered by a skill — add skill reference comment if helpful
37
+ - Keep: Identity, What I Own, unique How I Work patterns, Boundaries (domain list only)
38
+
39
+ **Histories** — target ≤8KB per agent:
40
+ - Apply history-hygiene skill to any history >12KB
41
+ - Promote recurring patterns (3+ occurrences across agents) to skills
42
+ - Summarize old entries into `## Core Context` section
43
+ - Remove session-specific metadata (dates, branch names, requester names)
44
+
45
+ ### Step 4: Report
46
+ Output a savings table:
47
+
48
+ | Agent | Charter Before | Charter After | History Before | History After | Saved |
49
+ |-------|---------------|---------------|----------------|---------------|-------|
50
+
51
+ Include totals and percentage reduction.
52
+
53
+ ## Patterns
54
+
55
+ ### Minimal Charter Template (target format after reskill)
56
+
57
+ ```
58
+ # {Name} — {Role}
59
+
60
+ > {Tagline — one sentence capturing voice and philosophy}
61
+
62
+ ## Identity
63
+ - **Name:** {Name}
64
+ - **Role:** {Role}
65
+ - **Expertise:** {comma-separated list}
66
+
67
+ ## What I Own
68
+ - {bullet list of owned artifacts/domains}
69
+
70
+ ## How I Work
71
+ - {unique patterns and principles — NOT boilerplate}
72
+
73
+ ## Boundaries
74
+ **I handle:** {domain list}
75
+ **I don't handle:** {explicit exclusions}
76
+
77
+ ## Model
78
+ Preferred: {model}
79
+ ```
80
+
81
+ ### Skill Extraction Threshold
82
+ - **1 charter** → leave in charter (unique to that agent)
83
+ - **2 charters** → consider extracting if >500 bytes of overlap
84
+ - **3+ charters** → always extract to a shared skill
85
+
86
+ ## Anti-Patterns
87
+ - Don't delete unique per-agent identity or domain-specific knowledge
88
+ - Don't create skills for content only one agent uses
89
+ - Don't merge unrelated patterns into a single mega-skill
90
+ - Don't remove Model preference line (coordinator needs it for model selection)
91
+ - Don't touch `.squad/decisions.md` during reskill
92
+ - Don't remove the tagline blockquote — it's the charter's soul in one line
@@ -0,0 +1,148 @@
1
+ # Skill: Retro Enforcement
2
+
3
+ ## Purpose
4
+
5
+ Ensure retrospectives happen on schedule and that their action items are tracked in GitHub Issues — not markdown checklists.
6
+
7
+ This skill addresses a specific, measured failure mode: **0% completion rate on markdown retro action items across 6 consecutive retrospectives**. GitHub Issues have an 85%+ completion rate in the same squad. The format was the problem, not the people.
8
+
9
+ ## Core Function: Test-RetroOverdue
10
+
11
+ ```powershell
12
+ function Test-RetroOverdue {
13
+ param(
14
+ [string]$LogDir = ".squad/log",
15
+ [int]$WindowDays = 7,
16
+ [string]$Pattern = "*retrospective*"
17
+ )
18
+
19
+ $cutoff = (Get-Date).AddDays(-$WindowDays)
20
+
21
+ $retroLogs = Get-ChildItem -Path $LogDir -Filter $Pattern -ErrorAction SilentlyContinue |
22
+ Where-Object { $_.LastWriteTime -ge $cutoff }
23
+
24
+ return ($retroLogs.Count -eq 0)
25
+ }
26
+ ```
27
+
28
+ ### Returns
29
+ - `$true` — No retro log found within the window. **Retro is overdue. Block other work.**
30
+ - `$false` — At least one retro log found within the window. Proceed normally.
31
+
32
+ ### Detection Logic
33
+
34
+ The function checks `.squad/log/` for any file matching `*retrospective*` dated within the last `$WindowDays` days (default: 7). If none is found, the retro is overdue.
35
+
36
+ **File naming convention:** `.squad/log/{ISO8601-timestamp}-retrospective.md`
37
+
38
+ Example: `.squad/log/2026-03-24T14-45-00Z-retrospective.md`
39
+
40
+ ## Coordinator Integration
41
+
42
+ Call `Test-RetroOverdue` **at the start of every round**, before building the work queue.
43
+
44
+ ```powershell
45
+ # At round start — before any work queue construction
46
+ if (Test-RetroOverdue -LogDir ".squad/log" -WindowDays 7) {
47
+ Write-Host "[RETRO] Retrospective overdue. Running before other work."
48
+
49
+ # Spawn retro facilitator
50
+ Invoke-RetroSession -Mode "catch-up"
51
+
52
+ # Wait for retro log to be written
53
+ # Then resume normal round
54
+ }
55
+
56
+ # Proceed with normal work queue
57
+ $workQueue = Get-PendingIssues | Sort-Object -Property Priority
58
+ ```
59
+
60
+ ### Blocking Semantics
61
+
62
+ When `Test-RetroOverdue` returns `$true`:
63
+
64
+ 1. **Do not start any other work** until the retro completes
65
+ 2. **Spawn the facilitator agent** (Scribe or designated) with retro mode
66
+ 3. **Wait for the log file** to be written to `.squad/log/`
67
+ 4. **Verify action items** were created as GitHub Issues (not markdown)
68
+ 5. **Resume normal round** after retro log confirmed
69
+
70
+ ## Action Item Enforcement
71
+
72
+ Every retro action item MUST become a GitHub Issue. The facilitator agent is responsible for this. The coordinator verifies.
73
+
74
+ ### Verification Check
75
+
76
+ ```powershell
77
+ function Test-RetroActionItemsCreated {
78
+ param([string]$RetroLogPath)
79
+
80
+ $content = Get-Content $RetroLogPath -Raw
81
+
82
+ # Check for Issue references (e.g., #1478, https://github.com/.../issues/1478)
83
+ $issueRefs = [regex]::Matches($content, '(?:#\d{3,}|issues/\d{3,})')
84
+
85
+ # Check for unclosed markdown checkboxes (bad pattern)
86
+ $openCheckboxes = [regex]::Matches($content, '- \[ \]')
87
+
88
+ if ($openCheckboxes.Count -gt 0) {
89
+ Write-Warning "[RETRO] Found $($openCheckboxes.Count) markdown checkboxes — convert to Issues"
90
+ return $false
91
+ }
92
+
93
+ return ($issueRefs.Count -gt 0)
94
+ }
95
+ ```
96
+
97
+ ### Why Not Markdown Checklists
98
+
99
+ From production data in tamirdresher/tamresearch1:
100
+
101
+ | Retro | Action Items Format | Completion |
102
+ |-------|---------------------|------------|
103
+ | 2025-12-05 | Markdown `- [ ]` | 0/4 = **0%** |
104
+ | 2025-12-19 | Markdown `- [ ]` | 0/3 = **0%** |
105
+ | 2026-01-09 | Markdown `- [ ]` | 0/5 = **0%** |
106
+ | 2026-01-23 | Markdown `- [ ]` | 0/4 = **0%** |
107
+ | 2026-02-07 | Markdown `- [ ]` | 0/3 = **0%** |
108
+ | 2026-02-21 | Markdown `- [ ]` | 0/4 = **0%** |
109
+ | 2026-03-24 | GitHub Issues | 4/4 = **100%** (after enforcement) |
110
+
111
+ **Root cause:** Markdown checklists have no assignee, no notifications, no close event, and no query surface. They are invisible to every workflow that drives completion.
112
+
113
+ ## Cadence Enforcement
114
+
115
+ ### Recommended schedule
116
+ - Weekly squads: window = 7 days
117
+ - Bi-weekly squads: window = 14 days
118
+
119
+ ### Ralph integration example
120
+
121
+ ```powershell
122
+ # ralph-watch.ps1 — round start hook
123
+ function Invoke-RoundStart {
124
+ # 1. Always check retro first
125
+ if (Test-RetroOverdue -LogDir "$RepoRoot/.squad/log" -WindowDays 7) {
126
+ Write-Host "[RALPH] Retro overdue — enforcing before work queue"
127
+ Invoke-RetroSession
128
+ return # Re-enter round after retro completes
129
+ }
130
+
131
+ # 2. Normal work queue
132
+ $issues = Get-ReadyIssues
133
+ foreach ($issue in $issues) {
134
+ Invoke-WorkItem -Issue $issue
135
+ }
136
+ }
137
+ ```
138
+
139
+ ## Skill Metadata
140
+
141
+ | Field | Value |
142
+ |-------|-------|
143
+ | **Skill ID** | `retro-enforcement` |
144
+ | **Category** | Ceremonies / Process |
145
+ | **Trigger** | Coordinator round start |
146
+ | **Dependencies** | `.squad/log/` directory, GitHub Issues API |
147
+ | **Tested in** | tamirdresher/tamresearch1 (production, March 2026) |
148
+ | **Outcome** | Retro cadence restored; action item completion 0% → 100% |
@@ -1,79 +1,79 @@
1
- ---
2
- name: "reviewer-protocol"
3
- description: "Reviewer rejection workflow and strict lockout semantics"
4
- domain: "orchestration"
5
- confidence: "high"
6
- source: "extracted"
7
- ---
8
-
9
- ## Context
10
-
11
- When a team member has a **Reviewer** role (e.g., Tester, Code Reviewer, Lead), they may approve or reject work from other agents. On rejection, the coordinator enforces strict lockout rules to ensure the original author does NOT self-revise. This prevents defensive feedback loops and ensures independent review.
12
-
13
- ## Patterns
14
-
15
- ### Reviewer Rejection Protocol
16
-
17
- When a team member has a **Reviewer** role:
18
-
19
- - Reviewers may **approve** or **reject** work from other agents.
20
- - On **rejection**, the Reviewer may choose ONE of:
21
- 1. **Reassign:** Require a *different* agent to do the revision (not the original author).
22
- 2. **Escalate:** Require a *new* agent be spawned with specific expertise.
23
- - The Coordinator MUST enforce this. If the Reviewer says "someone else should fix this," the original agent does NOT get to self-revise.
24
- - If the Reviewer approves, work proceeds normally.
25
-
26
- ### Strict Lockout Semantics
27
-
28
- When an artifact is **rejected** by a Reviewer:
29
-
30
- 1. **The original author is locked out.** They may NOT produce the next version of that artifact. No exceptions.
31
- 2. **A different agent MUST own the revision.** The Coordinator selects the revision author based on the Reviewer's recommendation (reassign or escalate).
32
- 3. **The Coordinator enforces this mechanically.** Before spawning a revision agent, the Coordinator MUST verify that the selected agent is NOT the original author. If the Reviewer names the original author as the fix agent, the Coordinator MUST refuse and ask the Reviewer to name a different agent.
33
- 4. **The locked-out author may NOT contribute to the revision** in any form — not as a co-author, advisor, or pair. The revision must be independently produced.
34
- 5. **Lockout scope:** The lockout applies to the specific artifact that was rejected. The original author may still work on other unrelated artifacts.
35
- 6. **Lockout duration:** The lockout persists for that revision cycle. If the revision is also rejected, the same rule applies again — the revision author is now also locked out, and a third agent must revise.
36
- 7. **Deadlock handling:** If all eligible agents have been locked out of an artifact, the Coordinator MUST escalate to the user rather than re-admitting a locked-out author.
37
-
38
- ## Examples
39
-
40
- **Example 1: Reassign after rejection**
41
- 1. Fenster writes authentication module
42
- 2. Hockney (Tester) reviews → rejects: "Error handling is missing. Verbal should fix this."
43
- 3. Coordinator: Fenster is now locked out of this artifact
44
- 4. Coordinator spawns Verbal to revise the authentication module
45
- 5. Verbal produces v2
46
- 6. Hockney reviews v2 → approves
47
- 7. Lockout clears for next artifact
48
-
49
- **Example 2: Escalate for expertise**
50
- 1. Edie writes TypeScript config
51
- 2. Keaton (Lead) reviews → rejects: "Need someone with deeper TS knowledge. Escalate."
52
- 3. Coordinator: Edie is now locked out
53
- 4. Coordinator spawns new agent (or existing TS expert) to revise
54
- 5. New agent produces v2
55
- 6. Keaton reviews v2
56
-
57
- **Example 3: Deadlock handling**
58
- 1. Fenster writes module → rejected
59
- 2. Verbal revises → rejected
60
- 3. Hockney revises → rejected
61
- 4. All 3 eligible agents are now locked out
62
- 5. Coordinator: "All eligible agents have been locked out. Escalating to user: [artifact details]"
63
-
64
- **Example 4: Reviewer accidentally names original author**
65
- 1. Fenster writes module → rejected
66
- 2. Hockney says: "Fenster should fix the error handling"
67
- 3. Coordinator: "Fenster is locked out as the original author. Please name a different agent."
68
- 4. Hockney: "Verbal, then"
69
- 5. Coordinator spawns Verbal
70
-
71
- ## Anti-Patterns
72
-
73
- - ❌ Allowing the original author to self-revise after rejection
74
- - ❌ Treating the locked-out author as an "advisor" or "co-author" on the revision
75
- - ❌ Re-admitting a locked-out author when deadlock occurs (must escalate to user)
76
- - ❌ Applying lockout across unrelated artifacts (scope is per-artifact)
77
- - ❌ Accepting the Reviewer's assignment when they name the original author (must refuse and ask for a different agent)
78
- - ❌ Clearing lockout before the revision is approved (lockout persists through revision cycle)
79
- - ❌ Skipping verification that the revision agent is not the original author
1
+ ---
2
+ name: "reviewer-protocol"
3
+ description: "Reviewer rejection workflow and strict lockout semantics"
4
+ domain: "orchestration"
5
+ confidence: "high"
6
+ source: "extracted"
7
+ ---
8
+
9
+ ## Context
10
+
11
+ When a team member has a **Reviewer** role (e.g., Tester, Code Reviewer, Lead), they may approve or reject work from other agents. On rejection, the coordinator enforces strict lockout rules to ensure the original author does NOT self-revise. This prevents defensive feedback loops and ensures independent review.
12
+
13
+ ## Patterns
14
+
15
+ ### Reviewer Rejection Protocol
16
+
17
+ When a team member has a **Reviewer** role:
18
+
19
+ - Reviewers may **approve** or **reject** work from other agents.
20
+ - On **rejection**, the Reviewer may choose ONE of:
21
+ 1. **Reassign:** Require a *different* agent to do the revision (not the original author).
22
+ 2. **Escalate:** Require a *new* agent be spawned with specific expertise.
23
+ - The Coordinator MUST enforce this. If the Reviewer says "someone else should fix this," the original agent does NOT get to self-revise.
24
+ - If the Reviewer approves, work proceeds normally.
25
+
26
+ ### Strict Lockout Semantics
27
+
28
+ When an artifact is **rejected** by a Reviewer:
29
+
30
+ 1. **The original author is locked out.** They may NOT produce the next version of that artifact. No exceptions.
31
+ 2. **A different agent MUST own the revision.** The Coordinator selects the revision author based on the Reviewer's recommendation (reassign or escalate).
32
+ 3. **The Coordinator enforces this mechanically.** Before spawning a revision agent, the Coordinator MUST verify that the selected agent is NOT the original author. If the Reviewer names the original author as the fix agent, the Coordinator MUST refuse and ask the Reviewer to name a different agent.
33
+ 4. **The locked-out author may NOT contribute to the revision** in any form — not as a co-author, advisor, or pair. The revision must be independently produced.
34
+ 5. **Lockout scope:** The lockout applies to the specific artifact that was rejected. The original author may still work on other unrelated artifacts.
35
+ 6. **Lockout duration:** The lockout persists for that revision cycle. If the revision is also rejected, the same rule applies again — the revision author is now also locked out, and a third agent must revise.
36
+ 7. **Deadlock handling:** If all eligible agents have been locked out of an artifact, the Coordinator MUST escalate to the user rather than re-admitting a locked-out author.
37
+
38
+ ## Examples
39
+
40
+ **Example 1: Reassign after rejection**
41
+ 1. Fenster writes authentication module
42
+ 2. Hockney (Tester) reviews → rejects: "Error handling is missing. Verbal should fix this."
43
+ 3. Coordinator: Fenster is now locked out of this artifact
44
+ 4. Coordinator spawns Verbal to revise the authentication module
45
+ 5. Verbal produces v2
46
+ 6. Hockney reviews v2 → approves
47
+ 7. Lockout clears for next artifact
48
+
49
+ **Example 2: Escalate for expertise**
50
+ 1. Edie writes TypeScript config
51
+ 2. Keaton (Lead) reviews → rejects: "Need someone with deeper TS knowledge. Escalate."
52
+ 3. Coordinator: Edie is now locked out
53
+ 4. Coordinator spawns new agent (or existing TS expert) to revise
54
+ 5. New agent produces v2
55
+ 6. Keaton reviews v2
56
+
57
+ **Example 3: Deadlock handling**
58
+ 1. Fenster writes module → rejected
59
+ 2. Verbal revises → rejected
60
+ 3. Hockney revises → rejected
61
+ 4. All 3 eligible agents are now locked out
62
+ 5. Coordinator: "All eligible agents have been locked out. Escalating to user: [artifact details]"
63
+
64
+ **Example 4: Reviewer accidentally names original author**
65
+ 1. Fenster writes module → rejected
66
+ 2. Hockney says: "Fenster should fix the error handling"
67
+ 3. Coordinator: "Fenster is locked out as the original author. Please name a different agent."
68
+ 4. Hockney: "Verbal, then"
69
+ 5. Coordinator spawns Verbal
70
+
71
+ ## Anti-Patterns
72
+
73
+ - ❌ Allowing the original author to self-revise after rejection
74
+ - ❌ Treating the locked-out author as an "advisor" or "co-author" on the revision
75
+ - ❌ Re-admitting a locked-out author when deadlock occurs (must escalate to user)
76
+ - ❌ Applying lockout across unrelated artifacts (scope is per-artifact)
77
+ - ❌ Accepting the Reviewer's assignment when they name the original author (must refuse and ask for a different agent)
78
+ - ❌ Clearing lockout before the revision is approved (lockout persists through revision cycle)
79
+ - ❌ Skipping verification that the revision agent is not the original author