@pennyfarthing/core 7.0.2 → 7.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 (692) hide show
  1. package/{packages/core/dist → dist}/cli/commands/cyclist.d.ts +2 -2
  2. package/{packages/core/dist → dist}/cli/commands/cyclist.d.ts.map +1 -1
  3. package/{packages/core/dist → dist}/cli/commands/cyclist.js +8 -9
  4. package/dist/cli/commands/cyclist.js.map +1 -0
  5. package/{packages/core/dist → dist}/cli/commands/cyclist.test.js +6 -4
  6. package/dist/cli/commands/cyclist.test.js.map +1 -0
  7. package/{packages/core/dist → dist}/cli/commands/update.d.ts.map +1 -1
  8. package/{packages/core/dist → dist}/cli/commands/update.js +9 -136
  9. package/dist/cli/commands/update.js.map +1 -0
  10. package/{packages/core/dist → dist}/cli/cyclist-migration.test.js +4 -3
  11. package/{packages/core/dist → dist}/cli/cyclist-migration.test.js.map +1 -1
  12. package/{packages/core/dist → dist}/cli/utils/constants.d.ts +7 -1
  13. package/dist/cli/utils/constants.d.ts.map +1 -0
  14. package/{packages/core/dist → dist}/cli/utils/constants.js +4 -2
  15. package/{packages/core/dist → dist}/cli/utils/constants.js.map +1 -1
  16. package/{packages/core/dist → dist}/cli/utils/themes.d.ts +1 -4
  17. package/{packages/core/dist → dist}/cli/utils/themes.d.ts.map +1 -1
  18. package/{packages/core/dist → dist}/cli/utils/themes.js +2 -22
  19. package/dist/cli/utils/themes.js.map +1 -0
  20. package/dist/cli/utils/themes.test.d.ts +12 -0
  21. package/{packages/core/dist → dist}/cli/utils/themes.test.js +16 -13
  22. package/dist/cli/utils/themes.test.js.map +1 -0
  23. package/{packages/core/dist → dist}/cli/workspace.test.js +5 -8
  24. package/{packages/core/dist → dist}/cli/workspace.test.js.map +1 -1
  25. package/{packages/core/dist → dist}/index.d.ts +1 -0
  26. package/{packages/core/dist → dist}/index.d.ts.map +1 -1
  27. package/{packages/core/dist → dist}/index.js +10 -0
  28. package/{packages/core/dist → dist}/index.js.map +1 -1
  29. package/dist/jira/jira-epic-creation.d.ts +109 -0
  30. package/dist/jira/jira-epic-creation.d.ts.map +1 -0
  31. package/dist/jira/jira-epic-creation.js +253 -0
  32. package/dist/jira/jira-epic-creation.js.map +1 -0
  33. package/dist/jira/jira-epic-creation.test.d.ts +16 -0
  34. package/dist/jira/jira-epic-creation.test.d.ts.map +1 -0
  35. package/dist/jira/jira-epic-creation.test.js +387 -0
  36. package/dist/jira/jira-epic-creation.test.js.map +1 -0
  37. package/dist/jira/jira-sprint-sync.d.ts +247 -0
  38. package/dist/jira/jira-sprint-sync.d.ts.map +1 -0
  39. package/dist/jira/jira-sprint-sync.js +670 -0
  40. package/dist/jira/jira-sprint-sync.js.map +1 -0
  41. package/dist/jira/jira-sprint-sync.test.d.ts +16 -0
  42. package/dist/jira/jira-sprint-sync.test.d.ts.map +1 -0
  43. package/dist/jira/jira-sprint-sync.test.js +845 -0
  44. package/dist/jira/jira-sprint-sync.test.js.map +1 -0
  45. package/{packages/core/dist → dist}/scripts/generate-spider.d.ts +11 -1
  46. package/{packages/core/dist → dist}/scripts/generate-spider.d.ts.map +1 -1
  47. package/{packages/core/dist → dist}/scripts/generate-spider.js +24 -1
  48. package/dist/scripts/generate-spider.js.map +1 -0
  49. package/{packages/core/dist → dist}/scripts/generate-spider.test.js +6 -4
  50. package/dist/scripts/generate-spider.test.js.map +1 -0
  51. package/dist/workflow/gate-handler.d.ts +94 -0
  52. package/dist/workflow/gate-handler.d.ts.map +1 -0
  53. package/dist/workflow/gate-handler.js +189 -0
  54. package/dist/workflow/gate-handler.js.map +1 -0
  55. package/dist/workflow/gate-handler.test.d.ts +14 -0
  56. package/dist/workflow/gate-handler.test.d.ts.map +1 -0
  57. package/dist/workflow/gate-handler.test.js +543 -0
  58. package/dist/workflow/gate-handler.test.js.map +1 -0
  59. package/{packages/core/dist → dist}/workflow/generic-handoff.d.ts +46 -0
  60. package/{packages/core/dist → dist}/workflow/generic-handoff.d.ts.map +1 -1
  61. package/{packages/core/dist → dist}/workflow/generic-handoff.js +53 -0
  62. package/{packages/core/dist → dist}/workflow/generic-handoff.js.map +1 -1
  63. package/{packages/core/dist → dist}/workflow/generic-handoff.test.js +2 -2
  64. package/{packages/core/dist → dist}/workflow/generic-handoff.test.js.map +1 -1
  65. package/dist/workflow/index.d.ts +16 -0
  66. package/dist/workflow/index.d.ts.map +1 -0
  67. package/dist/workflow/index.js +24 -0
  68. package/dist/workflow/index.js.map +1 -0
  69. package/dist/workflow/session-state.d.ts +92 -0
  70. package/dist/workflow/session-state.d.ts.map +1 -0
  71. package/dist/workflow/session-state.js +198 -0
  72. package/dist/workflow/session-state.js.map +1 -0
  73. package/dist/workflow/session-state.test.d.ts +8 -0
  74. package/dist/workflow/session-state.test.d.ts.map +1 -0
  75. package/dist/workflow/session-state.test.js +551 -0
  76. package/dist/workflow/session-state.test.js.map +1 -0
  77. package/dist/workflow/step-parser.d.ts +45 -0
  78. package/dist/workflow/step-parser.d.ts.map +1 -0
  79. package/dist/workflow/step-parser.js +147 -0
  80. package/dist/workflow/step-parser.js.map +1 -0
  81. package/dist/workflow/step-parser.test.d.ts +14 -0
  82. package/dist/workflow/step-parser.test.d.ts.map +1 -0
  83. package/dist/workflow/step-parser.test.js +470 -0
  84. package/dist/workflow/step-parser.test.js.map +1 -0
  85. package/dist/workflow/trimodal.d.ts +86 -0
  86. package/dist/workflow/trimodal.d.ts.map +1 -0
  87. package/dist/workflow/trimodal.js +118 -0
  88. package/dist/workflow/trimodal.js.map +1 -0
  89. package/dist/workflow/trimodal.test.d.ts +11 -0
  90. package/dist/workflow/trimodal.test.d.ts.map +1 -0
  91. package/dist/workflow/trimodal.test.js +395 -0
  92. package/dist/workflow/trimodal.test.js.map +1 -0
  93. package/dist/workflow/variable-resolver.d.ts +67 -0
  94. package/dist/workflow/variable-resolver.d.ts.map +1 -0
  95. package/dist/workflow/variable-resolver.js +156 -0
  96. package/dist/workflow/variable-resolver.js.map +1 -0
  97. package/dist/workflow/variable-resolver.test.d.ts +14 -0
  98. package/dist/workflow/variable-resolver.test.d.ts.map +1 -0
  99. package/dist/workflow/variable-resolver.test.js +400 -0
  100. package/dist/workflow/variable-resolver.test.js.map +1 -0
  101. package/dist/workflow/workflow-executor.d.ts +163 -0
  102. package/dist/workflow/workflow-executor.d.ts.map +1 -0
  103. package/dist/workflow/workflow-executor.js +197 -0
  104. package/dist/workflow/workflow-executor.js.map +1 -0
  105. package/dist/workflow/workflow-executor.test.d.ts +8 -0
  106. package/dist/workflow/workflow-executor.test.d.ts.map +1 -0
  107. package/dist/workflow/workflow-executor.test.js +444 -0
  108. package/dist/workflow/workflow-executor.test.js.map +1 -0
  109. package/{packages/core/dist → dist}/workflow/workflow-loader.test.js +5 -5
  110. package/dist/workflow/workflow-loader.test.js.map +1 -0
  111. package/{packages/core/dist → dist}/workflow/workflow-migration.test.js +8 -9
  112. package/{packages/core/dist → dist}/workflow/workflow-migration.test.js.map +1 -1
  113. package/dist/workflow/workflow-permissions.d.ts +55 -0
  114. package/dist/workflow/workflow-permissions.d.ts.map +1 -0
  115. package/dist/workflow/workflow-permissions.js +64 -0
  116. package/dist/workflow/workflow-permissions.js.map +1 -0
  117. package/dist/workflow/workflow-permissions.test.d.ts +15 -0
  118. package/dist/workflow/workflow-permissions.test.d.ts.map +1 -0
  119. package/dist/workflow/workflow-permissions.test.js +301 -0
  120. package/dist/workflow/workflow-permissions.test.js.map +1 -0
  121. package/{packages/core/dist → dist}/workflow/workflow-schema.d.ts +61 -2
  122. package/dist/workflow/workflow-schema.d.ts.map +1 -0
  123. package/dist/workflow/workflow-schema.js +454 -0
  124. package/dist/workflow/workflow-schema.js.map +1 -0
  125. package/{packages/core/dist → dist}/workflow/workflow-schema.test.js +6 -6
  126. package/{packages/core/dist → dist}/workflow/workflow-schema.test.js.map +1 -1
  127. package/dist/workflow/workflow-stepped-schema.test.d.ts +18 -0
  128. package/dist/workflow/workflow-stepped-schema.test.d.ts.map +1 -0
  129. package/dist/workflow/workflow-stepped-schema.test.js +608 -0
  130. package/dist/workflow/workflow-stepped-schema.test.js.map +1 -0
  131. package/package.json +38 -32
  132. package/README.md +0 -301
  133. package/packages/core/dist/cli/commands/cyclist.js.map +0 -1
  134. package/packages/core/dist/cli/commands/cyclist.test.js.map +0 -1
  135. package/packages/core/dist/cli/commands/update.js.map +0 -1
  136. package/packages/core/dist/cli/utils/constants.d.ts.map +0 -1
  137. package/packages/core/dist/cli/utils/themes.js.map +0 -1
  138. package/packages/core/dist/cli/utils/themes.test.d.ts +0 -12
  139. package/packages/core/dist/cli/utils/themes.test.js.map +0 -1
  140. package/packages/core/dist/scripts/generate-all-faces.d.ts +0 -10
  141. package/packages/core/dist/scripts/generate-all-faces.d.ts.map +0 -1
  142. package/packages/core/dist/scripts/generate-all-faces.js +0 -256
  143. package/packages/core/dist/scripts/generate-all-faces.js.map +0 -1
  144. package/packages/core/dist/scripts/generate-all-faces.test.d.ts +0 -17
  145. package/packages/core/dist/scripts/generate-all-faces.test.d.ts.map +0 -1
  146. package/packages/core/dist/scripts/generate-all-faces.test.js +0 -372
  147. package/packages/core/dist/scripts/generate-all-faces.test.js.map +0 -1
  148. package/packages/core/dist/scripts/generate-ascii-face.d.ts +0 -52
  149. package/packages/core/dist/scripts/generate-ascii-face.d.ts.map +0 -1
  150. package/packages/core/dist/scripts/generate-ascii-face.js +0 -155
  151. package/packages/core/dist/scripts/generate-ascii-face.js.map +0 -1
  152. package/packages/core/dist/scripts/generate-face.d.ts +0 -52
  153. package/packages/core/dist/scripts/generate-face.d.ts.map +0 -1
  154. package/packages/core/dist/scripts/generate-face.js +0 -199
  155. package/packages/core/dist/scripts/generate-face.js.map +0 -1
  156. package/packages/core/dist/scripts/generate-face.test.d.ts +0 -13
  157. package/packages/core/dist/scripts/generate-face.test.d.ts.map +0 -1
  158. package/packages/core/dist/scripts/generate-face.test.js +0 -301
  159. package/packages/core/dist/scripts/generate-face.test.js.map +0 -1
  160. package/packages/core/dist/scripts/generate-spider.js.map +0 -1
  161. package/packages/core/dist/scripts/generate-spider.test.js.map +0 -1
  162. package/packages/core/dist/workflow/workflow-loader.test.js.map +0 -1
  163. package/packages/core/dist/workflow/workflow-schema.d.ts.map +0 -1
  164. package/packages/core/dist/workflow/workflow-schema.js +0 -230
  165. package/packages/core/dist/workflow/workflow-schema.js.map +0 -1
  166. package/pennyfarthing-dist/agents/README.md +0 -411
  167. package/pennyfarthing-dist/agents/architect.md +0 -185
  168. package/pennyfarthing-dist/agents/dev.md +0 -239
  169. package/pennyfarthing-dist/agents/devops.md +0 -197
  170. package/pennyfarthing-dist/agents/generic-handoff.md +0 -454
  171. package/pennyfarthing-dist/agents/generic-sm-finish.md +0 -261
  172. package/pennyfarthing-dist/agents/generic-sm-setup.md +0 -214
  173. package/pennyfarthing-dist/agents/orchestrator.md +0 -333
  174. package/pennyfarthing-dist/agents/pm.md +0 -164
  175. package/pennyfarthing-dist/agents/reviewer-preflight.md +0 -182
  176. package/pennyfarthing-dist/agents/reviewer.md +0 -335
  177. package/pennyfarthing-dist/agents/sm-file-summary.md +0 -109
  178. package/pennyfarthing-dist/agents/sm-handoff.md +0 -97
  179. package/pennyfarthing-dist/agents/sm.md +0 -509
  180. package/pennyfarthing-dist/agents/tea.md +0 -205
  181. package/pennyfarthing-dist/agents/tech-writer.md +0 -148
  182. package/pennyfarthing-dist/agents/testing-runner.md +0 -423
  183. package/pennyfarthing-dist/agents/ux-designer.md +0 -158
  184. package/pennyfarthing-dist/agents/workflow-status-check.md +0 -332
  185. package/pennyfarthing-dist/commands/architect.md +0 -62
  186. package/pennyfarthing-dist/commands/benchmark-control.md +0 -69
  187. package/pennyfarthing-dist/commands/benchmark.md +0 -467
  188. package/pennyfarthing-dist/commands/brainstorm.md +0 -91
  189. package/pennyfarthing-dist/commands/check.md +0 -156
  190. package/pennyfarthing-dist/commands/chore.md +0 -178
  191. package/pennyfarthing-dist/commands/close-epic.md +0 -136
  192. package/pennyfarthing-dist/commands/continue-session.md +0 -184
  193. package/pennyfarthing-dist/commands/create-branches-from-story.md +0 -374
  194. package/pennyfarthing-dist/commands/create-theme.md +0 -29
  195. package/pennyfarthing-dist/commands/dev.md +0 -60
  196. package/pennyfarthing-dist/commands/devops.md +0 -59
  197. package/pennyfarthing-dist/commands/git-cleanup.md +0 -340
  198. package/pennyfarthing-dist/commands/health-check.md +0 -108
  199. package/pennyfarthing-dist/commands/help.md +0 -264
  200. package/pennyfarthing-dist/commands/job-fair.md +0 -102
  201. package/pennyfarthing-dist/commands/list-themes.md +0 -17
  202. package/pennyfarthing-dist/commands/new-work.md +0 -127
  203. package/pennyfarthing-dist/commands/orchestrator.md +0 -56
  204. package/pennyfarthing-dist/commands/parallel-work.md +0 -71
  205. package/pennyfarthing-dist/commands/party-mode.md +0 -67
  206. package/pennyfarthing-dist/commands/permissions.md +0 -193
  207. package/pennyfarthing-dist/commands/pm.md +0 -60
  208. package/pennyfarthing-dist/commands/prime.md +0 -140
  209. package/pennyfarthing-dist/commands/release.md +0 -58
  210. package/pennyfarthing-dist/commands/repo-status.md +0 -49
  211. package/pennyfarthing-dist/commands/retro.md +0 -200
  212. package/pennyfarthing-dist/commands/reviewer.md +0 -64
  213. package/pennyfarthing-dist/commands/run-ci.md +0 -116
  214. package/pennyfarthing-dist/commands/set-theme.md +0 -52
  215. package/pennyfarthing-dist/commands/show-theme.md +0 -21
  216. package/pennyfarthing-dist/commands/sm.md +0 -70
  217. package/pennyfarthing-dist/commands/solo.md +0 -411
  218. package/pennyfarthing-dist/commands/sprint-planning.md +0 -109
  219. package/pennyfarthing-dist/commands/start-epic.md +0 -156
  220. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +0 -184
  221. package/pennyfarthing-dist/commands/sync-work-with-sprint.md +0 -376
  222. package/pennyfarthing-dist/commands/tea.md +0 -63
  223. package/pennyfarthing-dist/commands/tech-writer.md +0 -53
  224. package/pennyfarthing-dist/commands/theme-maker.md +0 -671
  225. package/pennyfarthing-dist/commands/update-domain-docs.md +0 -83
  226. package/pennyfarthing-dist/commands/ux-designer.md +0 -62
  227. package/pennyfarthing-dist/commands/work.md +0 -111
  228. package/pennyfarthing-dist/guides/AGENT-COORDINATION.md +0 -480
  229. package/pennyfarthing-dist/guides/AGENT-SCOPES.md +0 -201
  230. package/pennyfarthing-dist/guides/HOOKS.md +0 -230
  231. package/pennyfarthing-dist/guides/PROMPT-PATTERNS.md +0 -338
  232. package/pennyfarthing-dist/guides/SESSION-ARTIFACTS.md +0 -193
  233. package/pennyfarthing-dist/guides/agent-template-strategic.md +0 -148
  234. package/pennyfarthing-dist/guides/agent-template-tactical.md +0 -162
  235. package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +0 -746
  236. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +0 -574
  237. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +0 -488
  238. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +0 -402
  239. package/pennyfarthing-dist/guides/permission-protocol.md +0 -188
  240. package/pennyfarthing-dist/guides/persona-loading.md +0 -46
  241. package/pennyfarthing-dist/guides/persona-system.md +0 -294
  242. package/pennyfarthing-dist/guides/shared-agent-behavior.md +0 -388
  243. package/pennyfarthing-dist/guides/shared-context.md +0 -147
  244. package/pennyfarthing-dist/guides/strategic-agent-behavior.md +0 -348
  245. package/pennyfarthing-dist/guides/tactical-agent-behavior.md +0 -1041
  246. package/pennyfarthing-dist/guides/workflow-schema.md +0 -195
  247. package/pennyfarthing-dist/guides/worktree-mode.md +0 -113
  248. package/pennyfarthing-dist/output-styles/teaching.md +0 -33
  249. package/pennyfarthing-dist/output-styles/terse.md +0 -20
  250. package/pennyfarthing-dist/output-styles/verbose.md +0 -28
  251. package/pennyfarthing-dist/personas/themes/1984.yaml +0 -312
  252. package/pennyfarthing-dist/personas/themes/a-team.yaml +0 -207
  253. package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +0 -300
  254. package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +0 -330
  255. package/pennyfarthing-dist/personas/themes/all-stars.yaml +0 -332
  256. package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +0 -320
  257. package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +0 -306
  258. package/pennyfarthing-dist/personas/themes/arcane.yaml +0 -288
  259. package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +0 -331
  260. package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +0 -288
  261. package/pennyfarthing-dist/personas/themes/babylon-5.yaml +0 -288
  262. package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +0 -288
  263. package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +0 -288
  264. package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +0 -300
  265. package/pennyfarthing-dist/personas/themes/black-sails.yaml +0 -300
  266. package/pennyfarthing-dist/personas/themes/blade-runner.yaml +0 -295
  267. package/pennyfarthing-dist/personas/themes/bobiverse.yaml +0 -288
  268. package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +0 -327
  269. package/pennyfarthing-dist/personas/themes/catch-22.yaml +0 -316
  270. package/pennyfarthing-dist/personas/themes/classical-composers.yaml +0 -310
  271. package/pennyfarthing-dist/personas/themes/control.yaml +0 -197
  272. package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +0 -320
  273. package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +0 -323
  274. package/pennyfarthing-dist/personas/themes/deadwood.yaml +0 -300
  275. package/pennyfarthing-dist/personas/themes/dickens.yaml +0 -320
  276. package/pennyfarthing-dist/personas/themes/discworld.yaml +0 -332
  277. package/pennyfarthing-dist/personas/themes/doctor-who.yaml +0 -290
  278. package/pennyfarthing-dist/personas/themes/don-quixote.yaml +0 -320
  279. package/pennyfarthing-dist/personas/themes/dune.yaml +0 -307
  280. package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +0 -320
  281. package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +0 -288
  282. package/pennyfarthing-dist/personas/themes/fargo.yaml +0 -330
  283. package/pennyfarthing-dist/personas/themes/film-auteurs.yaml +0 -312
  284. package/pennyfarthing-dist/personas/themes/firefly.yaml +0 -328
  285. package/pennyfarthing-dist/personas/themes/foundation.yaml +0 -290
  286. package/pennyfarthing-dist/personas/themes/futurama.yaml +0 -321
  287. package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +0 -290
  288. package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +0 -243
  289. package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +0 -308
  290. package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +0 -308
  291. package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +0 -330
  292. package/pennyfarthing-dist/personas/themes/hannibal.yaml +0 -300
  293. package/pennyfarthing-dist/personas/themes/harry-potter.yaml +0 -324
  294. package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +0 -291
  295. package/pennyfarthing-dist/personas/themes/historical-figures.yaml +0 -288
  296. package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +0 -331
  297. package/pennyfarthing-dist/personas/themes/house-md.yaml +0 -321
  298. package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +0 -289
  299. package/pennyfarthing-dist/personas/themes/inspector-morse.yaml +0 -300
  300. package/pennyfarthing-dist/personas/themes/jane-austen.yaml +0 -287
  301. package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +0 -320
  302. package/pennyfarthing-dist/personas/themes/justified.yaml +0 -300
  303. package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +0 -219
  304. package/pennyfarthing-dist/personas/themes/les-miserables.yaml +0 -299
  305. package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +0 -334
  306. package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +0 -334
  307. package/pennyfarthing-dist/personas/themes/mad-max.yaml +0 -355
  308. package/pennyfarthing-dist/personas/themes/mad-men.yaml +0 -289
  309. package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +0 -300
  310. package/pennyfarthing-dist/personas/themes/mash.yaml +0 -334
  311. package/pennyfarthing-dist/personas/themes/mass-effect.yaml +0 -289
  312. package/pennyfarthing-dist/personas/themes/military-commanders.yaml +0 -306
  313. package/pennyfarthing-dist/personas/themes/moby-dick.yaml +0 -320
  314. package/pennyfarthing-dist/personas/themes/monty-python.yaml +0 -303
  315. package/pennyfarthing-dist/personas/themes/neuromancer.yaml +0 -300
  316. package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +0 -329
  317. package/pennyfarthing-dist/personas/themes/parks-and-rec.yaml +0 -242
  318. package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +0 -298
  319. package/pennyfarthing-dist/personas/themes/princess-bride.yaml +0 -220
  320. package/pennyfarthing-dist/personas/themes/renaissance-masters.yaml +0 -320
  321. package/pennyfarthing-dist/personas/themes/rome.yaml +0 -300
  322. package/pennyfarthing-dist/personas/themes/russian-masters.yaml +0 -318
  323. package/pennyfarthing-dist/personas/themes/sandman.yaml +0 -288
  324. package/pennyfarthing-dist/personas/themes/scientific-revolutionaries.yaml +0 -320
  325. package/pennyfarthing-dist/personas/themes/shakespeare.yaml +0 -301
  326. package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +0 -289
  327. package/pennyfarthing-dist/personas/themes/snow-crash.yaml +0 -288
  328. package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +0 -300
  329. package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +0 -230
  330. package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +0 -210
  331. package/pennyfarthing-dist/personas/themes/star-wars.yaml +0 -303
  332. package/pennyfarthing-dist/personas/themes/succession.yaml +0 -300
  333. package/pennyfarthing-dist/personas/themes/superfriends.yaml +0 -208
  334. package/pennyfarthing-dist/personas/themes/ted-lasso.yaml +0 -236
  335. package/pennyfarthing-dist/personas/themes/the-americans.yaml +0 -300
  336. package/pennyfarthing-dist/personas/themes/the-crown.yaml +0 -300
  337. package/pennyfarthing-dist/personas/themes/the-expanse.yaml +0 -213
  338. package/pennyfarthing-dist/personas/themes/the-good-place.yaml +0 -322
  339. package/pennyfarthing-dist/personas/themes/the-matrix.yaml +0 -353
  340. package/pennyfarthing-dist/personas/themes/the-odyssey.yaml +0 -300
  341. package/pennyfarthing-dist/personas/themes/the-office.yaml +0 -330
  342. package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +0 -308
  343. package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +0 -300
  344. package/pennyfarthing-dist/personas/themes/the-wire.yaml +0 -311
  345. package/pennyfarthing-dist/personas/themes/the-witcher.yaml +0 -300
  346. package/pennyfarthing-dist/personas/themes/twin-peaks.yaml +0 -302
  347. package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +0 -300
  348. package/pennyfarthing-dist/personas/themes/watchmen.yaml +0 -291
  349. package/pennyfarthing-dist/personas/themes/west-wing.yaml +0 -291
  350. package/pennyfarthing-dist/personas/themes/world-explorers.yaml +0 -320
  351. package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +0 -307
  352. package/pennyfarthing-dist/personas/themes/x-files.yaml +0 -302
  353. package/pennyfarthing-dist/scripts/add-short-names.mjs +0 -264
  354. package/pennyfarthing-dist/scripts/agent-session.sh +0 -367
  355. package/pennyfarthing-dist/scripts/check-context.sh +0 -187
  356. package/pennyfarthing-dist/scripts/check.sh +0 -497
  357. package/pennyfarthing-dist/scripts/deploy.sh +0 -284
  358. package/pennyfarthing-dist/scripts/doctor-dogfood.sh +0 -395
  359. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +0 -61
  360. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +0 -66
  361. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -35
  362. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +0 -166
  363. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +0 -50
  364. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -71
  365. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +0 -54
  366. package/pennyfarthing-dist/scripts/hooks/session-start.sh +0 -98
  367. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +0 -59
  368. package/pennyfarthing-dist/scripts/install-git-hooks.sh +0 -91
  369. package/pennyfarthing-dist/scripts/prime.sh +0 -161
  370. package/pennyfarthing-dist/scripts/release.sh +0 -198
  371. package/pennyfarthing-dist/scripts/repo-utils.sh +0 -778
  372. package/pennyfarthing-dist/scripts/run-ci.sh +0 -219
  373. package/pennyfarthing-dist/scripts/run.sh +0 -65
  374. package/pennyfarthing-dist/scripts/statusline.sh +0 -264
  375. package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -582
  376. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +0 -107
  377. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +0 -597
  378. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +0 -514
  379. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +0 -517
  380. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -331
  381. package/pennyfarthing-dist/scripts/uninstall.sh +0 -271
  382. package/pennyfarthing-dist/scripts/utils/background-tasks.sh +0 -177
  383. package/pennyfarthing-dist/scripts/utils/check-status.sh +0 -251
  384. package/pennyfarthing-dist/scripts/utils/checkpoint.sh +0 -136
  385. package/pennyfarthing-dist/scripts/utils/common.sh +0 -157
  386. package/pennyfarthing-dist/scripts/utils/create-feature-branches.sh +0 -230
  387. package/pennyfarthing-dist/scripts/utils/file-lock.sh +0 -269
  388. package/pennyfarthing-dist/scripts/utils/find-related-work.sh +0 -231
  389. package/pennyfarthing-dist/scripts/utils/find-root.sh +0 -33
  390. package/pennyfarthing-dist/scripts/utils/generate-skill-docs.sh +0 -110
  391. package/pennyfarthing-dist/scripts/utils/git-status-all.sh +0 -127
  392. package/pennyfarthing-dist/scripts/utils/ground-truth-judge.py +0 -289
  393. package/pennyfarthing-dist/scripts/utils/jira/jira-lib.mjs +0 -443
  394. package/pennyfarthing-dist/scripts/utils/jira/jira-sync-story.mjs +0 -208
  395. package/pennyfarthing-dist/scripts/utils/jira/jira-sync.mjs +0 -198
  396. package/pennyfarthing-dist/scripts/utils/jira-claim-story.sh +0 -162
  397. package/pennyfarthing-dist/scripts/utils/jira-lib.sh +0 -463
  398. package/pennyfarthing-dist/scripts/utils/jira-sync-story.sh +0 -8
  399. package/pennyfarthing-dist/scripts/utils/jira-sync.sh +0 -8
  400. package/pennyfarthing-dist/scripts/utils/log-skill-usage.sh +0 -74
  401. package/pennyfarthing-dist/scripts/utils/logging.sh +0 -186
  402. package/pennyfarthing-dist/scripts/utils/repo-scan.sh +0 -141
  403. package/pennyfarthing-dist/scripts/utils/retry.sh +0 -76
  404. package/pennyfarthing-dist/scripts/utils/run-timestamp.sh +0 -7
  405. package/pennyfarthing-dist/scripts/utils/session-cleanup.sh +0 -319
  406. package/pennyfarthing-dist/scripts/utils/skill-usage-report.sh +0 -193
  407. package/pennyfarthing-dist/scripts/utils/sprint-common.sh +0 -286
  408. package/pennyfarthing-dist/scripts/utils/sprint-metrics.sh +0 -241
  409. package/pennyfarthing-dist/scripts/utils/swebench-judge.py +0 -400
  410. package/pennyfarthing-dist/scripts/utils/sync-epic-to-jira.sh +0 -16
  411. package/pennyfarthing-dist/scripts/utils/test-setup.sh +0 -337
  412. package/pennyfarthing-dist/scripts/utils/validate-subagent-frontmatter.sh +0 -160
  413. package/pennyfarthing-dist/scripts/worktree-manager.sh +0 -498
  414. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +0 -236
  415. package/pennyfarthing-dist/skills/changelog/SKILL.md +0 -367
  416. package/pennyfarthing-dist/skills/code-review/SKILL.md +0 -168
  417. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +0 -268
  418. package/pennyfarthing-dist/skills/cyclist/SKILL.md +0 -171
  419. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +0 -421
  420. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +0 -258
  421. package/pennyfarthing-dist/skills/jira/SKILL.md +0 -281
  422. package/pennyfarthing-dist/skills/judge/SKILL.md +0 -524
  423. package/pennyfarthing-dist/skills/just/SKILL.md +0 -160
  424. package/pennyfarthing-dist/skills/mermaid/SKILL.md +0 -240
  425. package/pennyfarthing-dist/skills/otel/skill.md +0 -222
  426. package/pennyfarthing-dist/skills/permissions/skill.md +0 -172
  427. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +0 -173
  428. package/pennyfarthing-dist/skills/skill-registry.schema.json +0 -102
  429. package/pennyfarthing-dist/skills/skill-registry.yaml +0 -335
  430. package/pennyfarthing-dist/skills/sprint-context/SKILL.md +0 -120
  431. package/pennyfarthing-dist/skills/story-management/SKILL.md +0 -208
  432. package/pennyfarthing-dist/skills/testing/SKILL.md +0 -99
  433. package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +0 -124
  434. package/pennyfarthing-dist/skills/theme/skill.md +0 -129
  435. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +0 -169
  436. package/pennyfarthing-dist/skills/workflow/SKILL.md +0 -160
  437. package/pennyfarthing-dist/skills/yq/SKILL.md +0 -264
  438. package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +0 -187
  439. package/pennyfarthing-dist/templates/LEADERBOARD.template.md +0 -59
  440. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +0 -276
  441. package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +0 -61
  442. package/pennyfarthing-dist/templates/persona-config.yaml.template +0 -22
  443. package/pennyfarthing-dist/templates/preferences.yaml.template +0 -15
  444. package/pennyfarthing-dist/templates/settings.local.json.template +0 -90
  445. package/pennyfarthing-dist/templates/setup-env.sh.template +0 -18
  446. package/pennyfarthing-dist/templates/shared-context.md.template +0 -70
  447. package/pennyfarthing-dist/templates/sidecar/decisions.md.template +0 -40
  448. package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +0 -37
  449. package/pennyfarthing-dist/templates/sidecar/patterns.md.template +0 -34
  450. package/pennyfarthing-dist/workflows/agent-docs.yaml +0 -70
  451. package/pennyfarthing-dist/workflows/bdd.yaml +0 -58
  452. package/pennyfarthing-dist/workflows/tdd.yaml +0 -50
  453. package/pennyfarthing-dist/workflows/trivial.yaml +0 -40
  454. /package/{packages/core/bin → bin}/pennyfarthing.js +0 -0
  455. /package/{packages/core/dist → dist}/bmad/context-reader.d.ts +0 -0
  456. /package/{packages/core/dist → dist}/bmad/context-reader.d.ts.map +0 -0
  457. /package/{packages/core/dist → dist}/bmad/context-reader.js +0 -0
  458. /package/{packages/core/dist → dist}/bmad/context-reader.js.map +0 -0
  459. /package/{packages/core/dist → dist}/bmad/context-reader.test.d.ts +0 -0
  460. /package/{packages/core/dist → dist}/bmad/context-reader.test.d.ts.map +0 -0
  461. /package/{packages/core/dist → dist}/bmad/context-reader.test.js +0 -0
  462. /package/{packages/core/dist → dist}/bmad/context-reader.test.js.map +0 -0
  463. /package/{packages/core/dist → dist}/bmad/epics-parser.d.ts +0 -0
  464. /package/{packages/core/dist → dist}/bmad/epics-parser.d.ts.map +0 -0
  465. /package/{packages/core/dist → dist}/bmad/epics-parser.js +0 -0
  466. /package/{packages/core/dist → dist}/bmad/epics-parser.js.map +0 -0
  467. /package/{packages/core/dist → dist}/bmad/epics-parser.test.d.ts +0 -0
  468. /package/{packages/core/dist → dist}/bmad/epics-parser.test.d.ts.map +0 -0
  469. /package/{packages/core/dist → dist}/bmad/epics-parser.test.js +0 -0
  470. /package/{packages/core/dist → dist}/bmad/epics-parser.test.js.map +0 -0
  471. /package/{packages/core/dist → dist}/bmad/index.d.ts +0 -0
  472. /package/{packages/core/dist → dist}/bmad/index.d.ts.map +0 -0
  473. /package/{packages/core/dist → dist}/bmad/index.js +0 -0
  474. /package/{packages/core/dist → dist}/bmad/index.js.map +0 -0
  475. /package/{packages/core/dist → dist}/bmad/status-sync.d.ts +0 -0
  476. /package/{packages/core/dist → dist}/bmad/status-sync.d.ts.map +0 -0
  477. /package/{packages/core/dist → dist}/bmad/status-sync.js +0 -0
  478. /package/{packages/core/dist → dist}/bmad/status-sync.js.map +0 -0
  479. /package/{packages/core/dist → dist}/bmad/status-sync.test.d.ts +0 -0
  480. /package/{packages/core/dist → dist}/bmad/status-sync.test.d.ts.map +0 -0
  481. /package/{packages/core/dist → dist}/bmad/status-sync.test.js +0 -0
  482. /package/{packages/core/dist → dist}/bmad/status-sync.test.js.map +0 -0
  483. /package/{packages/core/dist → dist}/bmad/story-exporter.d.ts +0 -0
  484. /package/{packages/core/dist → dist}/bmad/story-exporter.d.ts.map +0 -0
  485. /package/{packages/core/dist → dist}/bmad/story-exporter.js +0 -0
  486. /package/{packages/core/dist → dist}/bmad/story-exporter.js.map +0 -0
  487. /package/{packages/core/dist → dist}/bmad/story-exporter.test.d.ts +0 -0
  488. /package/{packages/core/dist → dist}/bmad/story-exporter.test.d.ts.map +0 -0
  489. /package/{packages/core/dist → dist}/bmad/story-exporter.test.js +0 -0
  490. /package/{packages/core/dist → dist}/bmad/story-exporter.test.js.map +0 -0
  491. /package/{packages/core/dist → dist}/bmad/story-parser.d.ts +0 -0
  492. /package/{packages/core/dist → dist}/bmad/story-parser.d.ts.map +0 -0
  493. /package/{packages/core/dist → dist}/bmad/story-parser.js +0 -0
  494. /package/{packages/core/dist → dist}/bmad/story-parser.js.map +0 -0
  495. /package/{packages/core/dist → dist}/bmad/story-parser.test.d.ts +0 -0
  496. /package/{packages/core/dist → dist}/bmad/story-parser.test.d.ts.map +0 -0
  497. /package/{packages/core/dist → dist}/bmad/story-parser.test.js +0 -0
  498. /package/{packages/core/dist → dist}/bmad/story-parser.test.js.map +0 -0
  499. /package/{packages/core/dist → dist}/cli/commands/command.d.ts +0 -0
  500. /package/{packages/core/dist → dist}/cli/commands/command.d.ts.map +0 -0
  501. /package/{packages/core/dist → dist}/cli/commands/command.js +0 -0
  502. /package/{packages/core/dist → dist}/cli/commands/command.js.map +0 -0
  503. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.d.ts +0 -0
  504. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.d.ts.map +0 -0
  505. /package/{packages/core/dist → dist}/cli/commands/doctor.d.ts +0 -0
  506. /package/{packages/core/dist → dist}/cli/commands/doctor.d.ts.map +0 -0
  507. /package/{packages/core/dist → dist}/cli/commands/doctor.js +0 -0
  508. /package/{packages/core/dist → dist}/cli/commands/doctor.js.map +0 -0
  509. /package/{packages/core/dist → dist}/cli/commands/init.d.ts +0 -0
  510. /package/{packages/core/dist → dist}/cli/commands/init.d.ts.map +0 -0
  511. /package/{packages/core/dist → dist}/cli/commands/init.js +0 -0
  512. /package/{packages/core/dist → dist}/cli/commands/init.js.map +0 -0
  513. /package/{packages/core/dist → dist}/cli/commands/skill.d.ts +0 -0
  514. /package/{packages/core/dist → dist}/cli/commands/skill.d.ts.map +0 -0
  515. /package/{packages/core/dist → dist}/cli/commands/skill.js +0 -0
  516. /package/{packages/core/dist → dist}/cli/commands/skill.js.map +0 -0
  517. /package/{packages/core/dist → dist}/cli/commands/theme.d.ts +0 -0
  518. /package/{packages/core/dist → dist}/cli/commands/theme.d.ts.map +0 -0
  519. /package/{packages/core/dist → dist}/cli/commands/theme.js +0 -0
  520. /package/{packages/core/dist → dist}/cli/commands/theme.js.map +0 -0
  521. /package/{packages/core/dist → dist}/cli/commands/uninstall.d.ts +0 -0
  522. /package/{packages/core/dist → dist}/cli/commands/uninstall.d.ts.map +0 -0
  523. /package/{packages/core/dist → dist}/cli/commands/uninstall.js +0 -0
  524. /package/{packages/core/dist → dist}/cli/commands/uninstall.js.map +0 -0
  525. /package/{packages/core/dist → dist}/cli/commands/update.d.ts +0 -0
  526. /package/{packages/core/dist → dist}/cli/commands/version.d.ts +0 -0
  527. /package/{packages/core/dist → dist}/cli/commands/version.d.ts.map +0 -0
  528. /package/{packages/core/dist → dist}/cli/commands/version.js +0 -0
  529. /package/{packages/core/dist → dist}/cli/commands/version.js.map +0 -0
  530. /package/{packages/core/dist → dist}/cli/customization.test.d.ts +0 -0
  531. /package/{packages/core/dist → dist}/cli/customization.test.d.ts.map +0 -0
  532. /package/{packages/core/dist → dist}/cli/customization.test.js +0 -0
  533. /package/{packages/core/dist → dist}/cli/customization.test.js.map +0 -0
  534. /package/{packages/core/dist → dist}/cli/cyclist-migration.test.d.ts +0 -0
  535. /package/{packages/core/dist → dist}/cli/cyclist-migration.test.d.ts.map +0 -0
  536. /package/{packages/core/dist → dist}/cli/index.d.ts +0 -0
  537. /package/{packages/core/dist → dist}/cli/index.d.ts.map +0 -0
  538. /package/{packages/core/dist → dist}/cli/index.js +0 -0
  539. /package/{packages/core/dist → dist}/cli/index.js.map +0 -0
  540. /package/{packages/core/dist → dist}/cli/ocean-profiles.test.d.ts +0 -0
  541. /package/{packages/core/dist → dist}/cli/ocean-profiles.test.d.ts.map +0 -0
  542. /package/{packages/core/dist → dist}/cli/ocean-profiles.test.js +0 -0
  543. /package/{packages/core/dist → dist}/cli/ocean-profiles.test.js.map +0 -0
  544. /package/{packages/core/dist → dist}/cli/theme-maker.test.d.ts +0 -0
  545. /package/{packages/core/dist → dist}/cli/theme-maker.test.d.ts.map +0 -0
  546. /package/{packages/core/dist → dist}/cli/theme-maker.test.js +0 -0
  547. /package/{packages/core/dist → dist}/cli/theme-maker.test.js.map +0 -0
  548. /package/{packages/core/dist → dist}/cli/utils/files.d.ts +0 -0
  549. /package/{packages/core/dist → dist}/cli/utils/files.d.ts.map +0 -0
  550. /package/{packages/core/dist → dist}/cli/utils/files.js +0 -0
  551. /package/{packages/core/dist → dist}/cli/utils/files.js.map +0 -0
  552. /package/{packages/core/dist → dist}/cli/utils/logger.d.ts +0 -0
  553. /package/{packages/core/dist → dist}/cli/utils/logger.d.ts.map +0 -0
  554. /package/{packages/core/dist → dist}/cli/utils/logger.js +0 -0
  555. /package/{packages/core/dist → dist}/cli/utils/logger.js.map +0 -0
  556. /package/{packages/core/dist → dist}/cli/utils/manifest.d.ts +0 -0
  557. /package/{packages/core/dist → dist}/cli/utils/manifest.d.ts.map +0 -0
  558. /package/{packages/core/dist → dist}/cli/utils/manifest.js +0 -0
  559. /package/{packages/core/dist → dist}/cli/utils/manifest.js.map +0 -0
  560. /package/{packages/core/dist → dist}/cli/utils/node-modules.d.ts +0 -0
  561. /package/{packages/core/dist → dist}/cli/utils/node-modules.d.ts.map +0 -0
  562. /package/{packages/core/dist → dist}/cli/utils/node-modules.js +0 -0
  563. /package/{packages/core/dist → dist}/cli/utils/node-modules.js.map +0 -0
  564. /package/{packages/core/dist → dist}/cli/utils/prompts.d.ts +0 -0
  565. /package/{packages/core/dist → dist}/cli/utils/prompts.d.ts.map +0 -0
  566. /package/{packages/core/dist → dist}/cli/utils/prompts.js +0 -0
  567. /package/{packages/core/dist → dist}/cli/utils/prompts.js.map +0 -0
  568. /package/{packages/core/dist → dist}/cli/utils/symlinks.d.ts +0 -0
  569. /package/{packages/core/dist → dist}/cli/utils/symlinks.d.ts.map +0 -0
  570. /package/{packages/core/dist → dist}/cli/utils/symlinks.js +0 -0
  571. /package/{packages/core/dist → dist}/cli/utils/symlinks.js.map +0 -0
  572. /package/{packages/core/dist → dist}/cli/utils/themes.test.d.ts.map +0 -0
  573. /package/{packages/core/dist → dist}/cli/utils/version.d.ts +0 -0
  574. /package/{packages/core/dist → dist}/cli/utils/version.d.ts.map +0 -0
  575. /package/{packages/core/dist → dist}/cli/utils/version.js +0 -0
  576. /package/{packages/core/dist → dist}/cli/utils/version.js.map +0 -0
  577. /package/{packages/core/dist → dist}/cli/workspace.test.d.ts +0 -0
  578. /package/{packages/core/dist → dist}/cli/workspace.test.d.ts.map +0 -0
  579. /package/{packages/core/dist → dist}/permissions/index.d.ts +0 -0
  580. /package/{packages/core/dist → dist}/permissions/index.d.ts.map +0 -0
  581. /package/{packages/core/dist → dist}/permissions/index.js +0 -0
  582. /package/{packages/core/dist → dist}/permissions/index.js.map +0 -0
  583. /package/{packages/core/dist → dist}/permissions/permission-schema.d.ts +0 -0
  584. /package/{packages/core/dist → dist}/permissions/permission-schema.d.ts.map +0 -0
  585. /package/{packages/core/dist → dist}/permissions/permission-schema.js +0 -0
  586. /package/{packages/core/dist → dist}/permissions/permission-schema.js.map +0 -0
  587. /package/{packages/core/dist → dist}/permissions/permission-schema.test.d.ts +0 -0
  588. /package/{packages/core/dist → dist}/permissions/permission-schema.test.d.ts.map +0 -0
  589. /package/{packages/core/dist → dist}/permissions/permission-schema.test.js +0 -0
  590. /package/{packages/core/dist → dist}/permissions/permission-schema.test.js.map +0 -0
  591. /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.d.ts +0 -0
  592. /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.d.ts.map +0 -0
  593. /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.js +0 -0
  594. /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.js.map +0 -0
  595. /package/{packages/core/dist → dist}/scripts/benchmark-integration.d.ts +0 -0
  596. /package/{packages/core/dist → dist}/scripts/benchmark-integration.d.ts.map +0 -0
  597. /package/{packages/core/dist → dist}/scripts/benchmark-integration.js +0 -0
  598. /package/{packages/core/dist → dist}/scripts/benchmark-integration.js.map +0 -0
  599. /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.d.ts +0 -0
  600. /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.d.ts.map +0 -0
  601. /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.js +0 -0
  602. /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.js.map +0 -0
  603. /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.d.ts +0 -0
  604. /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.d.ts.map +0 -0
  605. /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.js +0 -0
  606. /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.js.map +0 -0
  607. /package/{packages/core/dist → dist}/scripts/generate-all-spiders.d.ts +0 -0
  608. /package/{packages/core/dist → dist}/scripts/generate-all-spiders.d.ts.map +0 -0
  609. /package/{packages/core/dist → dist}/scripts/generate-all-spiders.js +0 -0
  610. /package/{packages/core/dist → dist}/scripts/generate-all-spiders.js.map +0 -0
  611. /package/{packages/core/dist → dist}/scripts/generate-report.d.ts +0 -0
  612. /package/{packages/core/dist → dist}/scripts/generate-report.d.ts.map +0 -0
  613. /package/{packages/core/dist → dist}/scripts/generate-report.js +0 -0
  614. /package/{packages/core/dist → dist}/scripts/generate-report.js.map +0 -0
  615. /package/{packages/core/dist → dist}/scripts/generate-report.test.d.ts +0 -0
  616. /package/{packages/core/dist → dist}/scripts/generate-report.test.d.ts.map +0 -0
  617. /package/{packages/core/dist → dist}/scripts/generate-report.test.js +0 -0
  618. /package/{packages/core/dist → dist}/scripts/generate-report.test.js.map +0 -0
  619. /package/{packages/core/dist → dist}/scripts/generate-spider-report.d.ts +0 -0
  620. /package/{packages/core/dist → dist}/scripts/generate-spider-report.d.ts.map +0 -0
  621. /package/{packages/core/dist → dist}/scripts/generate-spider-report.js +0 -0
  622. /package/{packages/core/dist → dist}/scripts/generate-spider-report.js.map +0 -0
  623. /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.d.ts +0 -0
  624. /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.d.ts.map +0 -0
  625. /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.js +0 -0
  626. /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.js.map +0 -0
  627. /package/{packages/core/dist → dist}/scripts/generate-spider.test.d.ts +0 -0
  628. /package/{packages/core/dist → dist}/scripts/generate-spider.test.d.ts.map +0 -0
  629. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.d.ts +0 -0
  630. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.d.ts.map +0 -0
  631. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.js +0 -0
  632. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.js.map +0 -0
  633. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.d.ts +0 -0
  634. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.d.ts.map +0 -0
  635. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.js +0 -0
  636. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.js.map +0 -0
  637. /package/{packages/core/dist → dist}/scripts/run-ci.test.d.ts +0 -0
  638. /package/{packages/core/dist → dist}/scripts/run-ci.test.d.ts.map +0 -0
  639. /package/{packages/core/dist → dist}/scripts/run-ci.test.js +0 -0
  640. /package/{packages/core/dist → dist}/scripts/run-ci.test.js.map +0 -0
  641. /package/{packages/core/dist → dist}/scripts/theme-detail.test.d.ts +0 -0
  642. /package/{packages/core/dist → dist}/scripts/theme-detail.test.d.ts.map +0 -0
  643. /package/{packages/core/dist → dist}/scripts/theme-detail.test.js +0 -0
  644. /package/{packages/core/dist → dist}/scripts/theme-detail.test.js.map +0 -0
  645. /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.d.ts +0 -0
  646. /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.d.ts.map +0 -0
  647. /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.js +0 -0
  648. /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.js.map +0 -0
  649. /package/{packages/core/dist → dist}/workflow/generic-handoff.test.d.ts +0 -0
  650. /package/{packages/core/dist → dist}/workflow/generic-handoff.test.d.ts.map +0 -0
  651. /package/{packages/core/dist → dist}/workflow/generic-sm-finish.d.ts +0 -0
  652. /package/{packages/core/dist → dist}/workflow/generic-sm-finish.d.ts.map +0 -0
  653. /package/{packages/core/dist → dist}/workflow/generic-sm-finish.js +0 -0
  654. /package/{packages/core/dist → dist}/workflow/generic-sm-finish.js.map +0 -0
  655. /package/{packages/core/dist → dist}/workflow/generic-sm-setup.d.ts +0 -0
  656. /package/{packages/core/dist → dist}/workflow/generic-sm-setup.d.ts.map +0 -0
  657. /package/{packages/core/dist → dist}/workflow/generic-sm-setup.js +0 -0
  658. /package/{packages/core/dist → dist}/workflow/generic-sm-setup.js.map +0 -0
  659. /package/{packages/core/dist → dist}/workflow/sm-subagents.test.d.ts +0 -0
  660. /package/{packages/core/dist → dist}/workflow/sm-subagents.test.d.ts.map +0 -0
  661. /package/{packages/core/dist → dist}/workflow/sm-subagents.test.js +0 -0
  662. /package/{packages/core/dist → dist}/workflow/sm-subagents.test.js.map +0 -0
  663. /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.d.ts +0 -0
  664. /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.d.ts.map +0 -0
  665. /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.js +0 -0
  666. /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.js.map +0 -0
  667. /package/{packages/core/dist → dist}/workflow/test-cache.d.ts +0 -0
  668. /package/{packages/core/dist → dist}/workflow/test-cache.d.ts.map +0 -0
  669. /package/{packages/core/dist → dist}/workflow/test-cache.js +0 -0
  670. /package/{packages/core/dist → dist}/workflow/test-cache.js.map +0 -0
  671. /package/{packages/core/dist → dist}/workflow/test-cache.test.d.ts +0 -0
  672. /package/{packages/core/dist → dist}/workflow/test-cache.test.d.ts.map +0 -0
  673. /package/{packages/core/dist → dist}/workflow/test-cache.test.js +0 -0
  674. /package/{packages/core/dist → dist}/workflow/test-cache.test.js.map +0 -0
  675. /package/{packages/core/dist → dist}/workflow/workflow-loader.d.ts +0 -0
  676. /package/{packages/core/dist → dist}/workflow/workflow-loader.d.ts.map +0 -0
  677. /package/{packages/core/dist → dist}/workflow/workflow-loader.js +0 -0
  678. /package/{packages/core/dist → dist}/workflow/workflow-loader.js.map +0 -0
  679. /package/{packages/core/dist → dist}/workflow/workflow-loader.test.d.ts +0 -0
  680. /package/{packages/core/dist → dist}/workflow/workflow-loader.test.d.ts.map +0 -0
  681. /package/{packages/core/dist → dist}/workflow/workflow-migration.test.d.ts +0 -0
  682. /package/{packages/core/dist → dist}/workflow/workflow-migration.test.d.ts.map +0 -0
  683. /package/{packages/core/dist → dist}/workflow/workflow-router.d.ts +0 -0
  684. /package/{packages/core/dist → dist}/workflow/workflow-router.d.ts.map +0 -0
  685. /package/{packages/core/dist → dist}/workflow/workflow-router.js +0 -0
  686. /package/{packages/core/dist → dist}/workflow/workflow-router.js.map +0 -0
  687. /package/{packages/core/dist → dist}/workflow/workflow-router.test.d.ts +0 -0
  688. /package/{packages/core/dist → dist}/workflow/workflow-router.test.d.ts.map +0 -0
  689. /package/{packages/core/dist → dist}/workflow/workflow-router.test.js +0 -0
  690. /package/{packages/core/dist → dist}/workflow/workflow-router.test.js.map +0 -0
  691. /package/{packages/core/dist → dist}/workflow/workflow-schema.test.d.ts +0 -0
  692. /package/{packages/core/dist → dist}/workflow/workflow-schema.test.d.ts.map +0 -0
@@ -1,467 +0,0 @@
1
- ---
2
- description: Compare an agent's performance against a stored baseline
3
- argument-hint: <theme> <agent> [--as <role>] [--scenario <name>] [--runs N]
4
- ---
5
-
6
- # Benchmark
7
-
8
- <purpose>
9
- Compare a persona agent's performance against the established control baseline. Runs the agent on the scenario and calculates statistical measures including effect size (Cohen's d) and significance.
10
-
11
- Default: 4 runs for comparison (balance between reliability and runtime). Runs execute in parallel for faster results.
12
-
13
- **Simplified Usage:** Just specify theme and agent role - you'll be presented with matching scenarios to choose from.
14
- </purpose>
15
-
16
- <critical-integrity-requirements>
17
- ## DO NOT FABRICATE COMPARISON DATA
18
-
19
- Comparisons are only meaningful if BOTH the baseline AND the contestant runs are real.
20
-
21
- **Before comparing:**
22
- 1. Validate baseline has proof-of-work (check runs have `proof.*` fields)
23
- 2. Actually run `/solo` for the contestant with real Task tool calls
24
- 3. Validate contestant runs have proof-of-work before calculating statistics
25
-
26
- **Baseline Validation:**
27
- Before using a baseline, spot-check at least one run file:
28
- - Read a run from `internal/results/baselines/{scenario}/{agent}/runs/*.json`
29
- - Verify it has `proof.agent_task_id`, `proof.agent_response_text`, `proof.judge_task_id`
30
- - Verify `proof.agent_response_text` is at least 200 characters
31
- - Verify `token_usage.input_tokens` > 0
32
-
33
- **If baseline validation fails:**
34
- ```markdown
35
- Error: Baseline for '{scenario}' appears to be fabricated (missing proof-of-work).
36
- Run `/benchmark-control --scenario {scenario}` to create a real baseline.
37
- ```
38
-
39
- **Contestant runs MUST include proof-of-work.** See `/solo` for requirements.
40
- </critical-integrity-requirements>
41
-
42
- <usage>
43
- ```
44
- # Simple: Pick scenario interactively
45
- /benchmark the-expanse sm
46
- /benchmark discworld reviewer
47
-
48
- # Direct: Specify scenario explicitly
49
- /benchmark discworld reviewer --scenario order-service
50
- /benchmark ted-lasso dev --scenario tdd-shopping-cart --runs 8
51
-
52
- # Cross-role: Run any character as any role
53
- /benchmark shakespeare prospero --as dev --scenario django-10554
54
- /benchmark discworld granny --as dev --scenario tdd-shopping-cart
55
- ```
56
-
57
- **Arguments:**
58
- - `theme` - The persona theme (e.g., `discworld`, `the-expanse`, `ted-lasso`)
59
- - `agent` - The agent role OR character name (if using `--as`)
60
- - `--as <role>` - (Optional) Override role for cross-role testing. Makes `agent` a character name lookup.
61
- - `--scenario` - (Optional) Scenario name. If omitted, shows matching scenarios to choose from.
62
- - `--runs N` - Number of evaluation runs (default: 4, max: 20)
63
-
64
- **Cross-Role Testing:**
65
- The `--as` flag enables running any character as any role:
66
- ```
67
- /benchmark shakespeare prospero --as dev --scenario django-10554
68
- ```
69
- This uses Prospero's persona traits (wise orchestrator) but gives him a dev task.
70
- The scenario's role determines what the agent is asked to do; the character determines HOW they do it.
71
-
72
- **Examples:**
73
- ```
74
- # Let me pick from SM scenarios
75
- /benchmark the-expanse sm
76
-
77
- # Let me pick from code review scenarios
78
- /benchmark discworld reviewer
79
-
80
- # Run specific scenario directly
81
- /benchmark princess-bride reviewer --scenario order-service --runs 8
82
-
83
- # Cross-role: Prospero (SM) doing dev work
84
- /benchmark shakespeare prospero --as dev --scenario tdd-shopping-cart --runs 4
85
- ```
86
- </usage>
87
-
88
- <on-invoke>
89
- The user invoked this command with: $ARGUMENTS
90
-
91
- ## Step 1: Parse Arguments
92
-
93
- Parse the arguments to extract:
94
- - `theme`: First positional argument (e.g., `discworld`, `the-expanse`)
95
- - `agent_or_character`: Second positional argument (role name OR character name if `--as` is used)
96
- - `role_override`: Value after `--as` (OPTIONAL - enables cross-role mode)
97
- - `scenario_name`: Value after `--scenario` (OPTIONAL)
98
- - `runs`: Value after `--runs` (default: 4, max: 20)
99
-
100
- **Cross-Role Mode:**
101
- If `--as <role>` is provided:
102
- - `agent_or_character` is treated as a CHARACTER NAME (case-insensitive search)
103
- - `role_override` becomes the `effective_role` for scenario matching
104
- - Results save to `internal/results/benchmarks/{scenario}/{theme}-{character}-as-{role}/`
105
-
106
- **Legacy format support:** If first argument contains `:`, split it (e.g., `discworld:reviewer` → theme=discworld, agent_or_character=reviewer)
107
-
108
- **Validation:**
109
- - Theme must be a valid theme name
110
- - If `--as` is provided: validate `role_override` is one of: `sm`, `dev`, `reviewer`, `architect`, `tea`, `pm`
111
- - If `--as` is NOT provided: validate `agent_or_character` is one of: `sm`, `dev`, `reviewer`, `architect`, `tea`, `pm`
112
- - `--runs` must be a positive integer between 1 and 20
113
-
114
- **Determine effective_role:**
115
- ```python
116
- if role_override:
117
- effective_role = role_override # e.g., "dev"
118
- cross_role = True
119
- else:
120
- effective_role = agent_or_character # e.g., "dev"
121
- cross_role = False
122
- ```
123
-
124
- ## Step 2: Scenario Discovery (if --scenario not provided)
125
-
126
- If `scenario_name` is NOT provided, discover matching scenarios.
127
-
128
- **Use `effective_role` (not `agent_or_character`) for scenario discovery.**
129
- Cross-role mode: Prospero --as dev should see dev scenarios, not SM scenarios.
130
-
131
- **Role-to-Category Mapping:**
132
- | effective_role | Scenario Categories |
133
- |----------------|---------------------|
134
- | sm | `sm` |
135
- | dev | `dev` (includes debug scenarios) |
136
- | reviewer | `code-review` |
137
- | architect | `architecture` |
138
- | tea | `tea` |
139
-
140
- **Time Estimates by Difficulty (parallel execution):**
141
- | Difficulty | Est. Time (4 runs) | Note |
142
- |------------|-------------------|------|
143
- | easy | ~1 min | Runs execute in parallel |
144
- | medium | ~2 min | Runs execute in parallel |
145
- | hard | ~4 min | Runs execute in parallel |
146
- | extreme | ~8 min | Runs execute in parallel |
147
-
148
- **Discover scenarios:**
149
- ```bash
150
- # Use Bash to list matching scenarios
151
- ls scenarios/{category}/*.yaml | xargs -I {} yq -r '"{}|\(.name)|\(.difficulty)|\(.title)|\(.description)"' {}
152
- ```
153
-
154
- **Present choices with AskUserQuestion:**
155
- ```yaml
156
- AskUserQuestion:
157
- questions:
158
- - question: "Which scenario do you want to benchmark {theme}:{agent_type} on?"
159
- header: "Scenario"
160
- multiSelect: false
161
- options:
162
- - label: "{name} ({difficulty})"
163
- description: "{title} - ~{time_estimate}"
164
- # ... up to 4 options
165
- ```
166
-
167
- If more than 4 scenarios exist, show the first 4 by difficulty (hardest first) and let user type "Other" for full list.
168
-
169
- **After user selects:** Set `scenario_name` to the selected scenario's name and continue.
170
-
171
- ## Step 3: Control Theme Handling
172
-
173
- **If theme is `control`:** This is a baseline creation run.
174
- - Default `runs` to 10 (instead of 4) for statistical reliability
175
- - Results save to `internal/results/baselines/{scenario}/{agent}/` instead of comparison
176
- - Skip baseline validation (we're creating the baseline)
177
- - After running, calculate and save baseline statistics
178
- - Display baseline summary and exit
179
-
180
- **If theme is NOT `control`:** Continue to Step 4 for comparison workflow.
181
-
182
- ## Step 4: Load and Validate Baseline
183
-
184
- **Baseline is based on `effective_role`, not the character's native role.**
185
- Cross-role tests compare against the effective role's baseline (e.g., prospero --as dev compares against control:dev).
186
-
187
- Check if baseline exists:
188
-
189
- ```yaml
190
- Read tool:
191
- file_path: "internal/results/baselines/{scenario_name}/{effective_role}/summary.yaml"
192
- ```
193
-
194
- **If baseline does not exist:**
195
- ```markdown
196
- Error: No baseline found for scenario '{scenario_name}' with agent type '{agent_type}'.
197
-
198
- To create a baseline, run:
199
- /benchmark control {agent_type} --scenario {scenario_name}
200
-
201
- Or use the shortcut:
202
- /benchmark-control {agent_type} --scenario {scenario_name}
203
- ```
204
-
205
- **If baseline exists, VALIDATE IT:**
206
-
207
- 1. Get list of run files:
208
- ```yaml
209
- Glob tool:
210
- pattern: "internal/results/baselines/{scenario_name}/{agent_type}/runs/*.json"
211
- ```
212
-
213
- 2. Read at least one run file and validate proof-of-work:
214
- ```yaml
215
- Read tool:
216
- file_path: "{first run file}"
217
- ```
218
-
219
- 3. **Check for proof-of-work fields:**
220
- - Has `proof.agent_task_id`?
221
- - Has `proof.agent_response_text` with length >= 200?
222
- - Has `proof.judge_task_id`?
223
- - Has `proof.judge_response_text`?
224
- - Has `token_usage.input_tokens` > 0?
225
- - Has `token_usage.output_tokens` > 0?
226
-
227
- 4. **If validation fails:**
228
- ```markdown
229
- Error: Baseline for '{scenario_name}' is INVALID - missing proof-of-work.
230
-
231
- The baseline data appears to be fabricated (no agent/judge response text,
232
- no task IDs, or no token counts).
233
-
234
- Delete the invalid baseline and create a real one:
235
- rm -rf internal/results/baselines/{scenario_name}/{agent_type}
236
- /benchmark-control --scenario {scenario_name}
237
- ```
238
-
239
- **If baseline is valid:**
240
- - Extract `sample_size`, `statistics.total.mean`, `statistics.total.std_dev`
241
- - Display baseline info with validation confirmation
242
-
243
- **Sample size warning:**
244
- If baseline sample size < 5:
245
- ```markdown
246
- **Warning:** Baseline sample size ({n}) is less than 5. Results may not be statistically reliable.
247
- Consider running `/benchmark-control --scenario {scenario_name} --runs 10` to add more data.
248
- ```
249
-
250
- ## Step 5: Run Contestant Evaluation (Parallel)
251
-
252
- For efficiency, spawn multiple runs in parallel using Task agents.
253
-
254
- **Batch Strategy:**
255
- - If runs ≤ 4: Spawn all in parallel (single message with N Task agents)
256
- - If runs > 4: Spawn in batches of 4 to avoid overwhelming the system
257
-
258
- **Build the /solo command:**
259
- ```python
260
- if cross_role:
261
- # Cross-role: agent_or_character is a character name
262
- solo_cmd = f"/solo {theme}:{agent_or_character} --as {effective_role} --scenario {scenario_name}"
263
- else:
264
- # Standard: agent_or_character is the role name
265
- solo_cmd = f"/solo {theme}:{agent_or_character} --scenario {scenario_name}"
266
- ```
267
-
268
- **For each run, spawn a Task agent:**
269
- ```
270
- Task (run 1 of N):
271
- subagent_type: general-purpose
272
- prompt: |
273
- Run {solo_cmd}
274
- This is run 1 of N for baseline/benchmark.
275
- Return the full result JSON including score and token_usage.
276
- ```
277
-
278
- **Example commands:**
279
- - Standard: `/solo discworld:dev --scenario tdd-shopping-cart`
280
- - Cross-role: `/solo shakespeare:prospero --as dev --scenario tdd-shopping-cart`
281
-
282
- **Spawn all batch tasks in a SINGLE message for parallel execution.**
283
-
284
- Wait for all tasks to complete. Collect results:
285
- - Per-run scores (total, plus dimension breakdown if available)
286
- - Per-run token usage (input_tokens, output_tokens)
287
- - Per-run timestamps
288
- - Cross-role metadata (source_role, effective_role, cross_role flag)
289
-
290
- **If a run fails:** Note the failure, continue with successful runs. Warn if < 3 successful runs.
291
-
292
- ## Step 6: Calculate Comparison Statistics
293
-
294
- **Contestant Statistics:**
295
- - `contestant_mean`: Average total score
296
- - `contestant_std_dev`: Standard deviation
297
- - `contestant_n`: Number of runs
298
-
299
- **Baseline Statistics (from summary.yaml):**
300
- - `baseline_mean`: statistics.total.mean
301
- - `baseline_std_dev`: statistics.total.std_dev
302
- - `baseline_n`: sample_size
303
-
304
- **Mean Difference:**
305
- ```
306
- difference = contestant_mean - baseline_mean
307
- ```
308
-
309
- **Cohen's d Effect Size:**
310
- ```
311
- pooled_std_dev = sqrt((contestant_std_dev² + baseline_std_dev²) / 2)
312
- cohens_d = difference / pooled_std_dev
313
- ```
314
-
315
- **Effect Size Interpretation:**
316
- | Cohen's d | Interpretation |
317
- |-----------|----------------|
318
- | < 0.2 | Negligible |
319
- | 0.2 - 0.5 | Small |
320
- | 0.5 - 0.8 | Medium |
321
- | > 0.8 | Large |
322
-
323
- **95% Confidence Interval for Difference:**
324
- ```
325
- se_diff = sqrt(contestant_std_dev²/contestant_n + baseline_std_dev²/baseline_n)
326
- ci_lower = difference - 1.96 × se_diff
327
- ci_upper = difference + 1.96 × se_diff
328
- ```
329
-
330
- **Statistical Significance:**
331
- If CI does not include 0, the difference is statistically significant at p < 0.05.
332
-
333
- ## Step 7: Display Comparison Results
334
-
335
- ```markdown
336
- ---
337
-
338
- ## Baseline Comparison
339
-
340
- **Contestant:** {theme}:{agent_type} ({character_name})
341
- **Scenario:** {scenario_name}
342
- **Baseline:** control:{agent_type} (n={baseline_n})
343
-
344
- ### Performance vs Baseline
345
-
346
- | Metric | Contestant | Baseline | Difference | Effect Size |
347
- |--------|------------|----------|------------|-------------|
348
- | Total Score | {c_mean} ± {c_std} | {b_mean} ± {b_std} | {diff:+.1f} | **{cohens_d:.1f}σ** ({interpretation}) |
349
- | Detection | {c_det} | {b_det} | {diff:+.1f} | {effect} |
350
- | Depth | {c_dep} | {b_dep} | {diff:+.1f} | {effect} |
351
- | Quality | {c_qual} | {b_qual} | {diff:+.1f} | {effect} |
352
- | Persona | {c_per} | {b_per} | {diff:+.1f} | {effect} |
353
-
354
- ### Efficiency
355
-
356
- | Metric | Contestant | Baseline |
357
- |--------|------------|----------|
358
- | Tokens/Point | {c_tokens_per_point} | {b_tokens_per_point} |
359
- | Efficiency | {efficiency_pct}% of baseline | 100% |
360
-
361
- ### Statistical Significance
362
-
363
- - **Effect Size (Cohen's d):** {cohens_d:.2f} ({interpretation})
364
- - **95% CI for difference:** [{ci_lower:+.1f}, {ci_upper:+.1f}]
365
- - **Significant:** {Yes/No} (p < 0.05)
366
-
367
- ### Verdict
368
-
369
- {verdict based on effect size and significance}
370
-
371
- ---
372
- ```
373
-
374
- **Verdict Logic:**
375
- - If not significant: "No statistically significant difference from baseline."
376
- - If significant and positive large effect: "Contestant **significantly outperforms** baseline with large effect size."
377
- - If significant and positive medium effect: "Contestant **outperforms** baseline with medium effect size."
378
- - If significant and positive small effect: "Contestant **slightly outperforms** baseline."
379
- - If significant and negative: "Contestant **underperforms** baseline."
380
-
381
- ## Step 8: Save Results (ALWAYS)
382
-
383
- **Output path logic:**
384
- ```python
385
- if theme == "control":
386
- base_path = f"internal/results/baselines/{scenario_name}/{effective_role}/"
387
- elif cross_role:
388
- # Cross-role: include character slug for clarity
389
- character_slug = slugify(character_name) # e.g., "prospero", "granny-weatherwax"
390
- base_path = f"internal/results/benchmarks/{scenario_name}/{theme}-{character_slug}-as-{effective_role}/"
391
- else:
392
- base_path = f"internal/results/benchmarks/{scenario_name}/{theme}-{effective_role}/"
393
- ```
394
-
395
- **Cross-role examples:**
396
- - `/benchmark shakespeare prospero --as dev` → `internal/results/benchmarks/{scenario}/shakespeare-prospero-as-dev/`
397
- - `/benchmark discworld granny --as dev` → `internal/results/benchmarks/{scenario}/discworld-granny-weatherwax-as-dev/`
398
-
399
- **Save structure:**
400
- ```
401
- {base_path}/
402
- ├── runs/
403
- │ ├── run_1.json
404
- │ ├── judge_1.json
405
- │ └── ...
406
- └── summary.yaml
407
- ```
408
-
409
- **summary.yaml format:** See `/solo` command Step 10. For cross-role runs, include:
410
- ```yaml
411
- agent:
412
- theme: {theme}
413
- character: {character_name}
414
- source_role: {source_role} # where character normally lives (e.g., sm)
415
- effective_role: {effective_role} # what they're doing (e.g., dev)
416
- cross_role: true
417
- ```
418
-
419
- **ALWAYS save summary.yaml, even for n=1.** This ensures consistent data structure for analysis.
420
-
421
- Display:
422
- ```
423
- ✓ Saved {n} run(s) to {base_path}
424
- ✓ Summary: {base_path}/summary.yaml
425
- ```
426
- </on-invoke>
427
-
428
- <error-handling>
429
- **Baseline not found:**
430
- ```markdown
431
- Error: No baseline found for scenario '{scenario_name}' with agent type '{agent_type}'.
432
-
433
- To create a baseline, run:
434
- /benchmark-control --scenario {scenario_name}
435
- ```
436
-
437
- **Invalid contestant spec:**
438
- ```markdown
439
- Error: Invalid contestant format. Expected 'theme:agent', got '{value}'.
440
-
441
- Examples:
442
- - discworld:reviewer
443
- - princess-bride:dev
444
- - control:sm
445
- ```
446
-
447
- **Missing --scenario:**
448
- ```markdown
449
- Error: --scenario is required.
450
-
451
- Usage: /benchmark <theme:agent> --scenario <name> [--runs N]
452
- ```
453
-
454
- **Invalid runs value:**
455
- ```markdown
456
- Error: --runs must be between 1 and 20. Got: {value}
457
- ```
458
- </error-handling>
459
-
460
- <reference>
461
- - Solo Command: `.claude/project/commands/solo.md`
462
- - Establish Baseline: `.claude/project/commands/benchmark-control.md`
463
- - Effect Size: Cohen's d standard interpretation (0.2 small, 0.5 medium, 0.8 large)
464
- - Baselines: `internal/results/baselines/{scenario}/{role}/` (control theme)
465
- - Benchmarks: `internal/results/benchmarks/{scenario}/{theme}-{role}/` (all other themes)
466
- - Results README: `internal/results/README.md`
467
- </reference>
@@ -1,91 +0,0 @@
1
- ---
2
- description: Structured problem-solving brainstorm session
3
- ---
4
-
5
- # Brainstorm - Structured Problem-Solving Session
6
-
7
- You are facilitating a **structured brainstorming session** to solve a specific problem or explore a specific question.
8
-
9
- ## Format
10
-
11
- Unlike party-mode (free-form), brainstorm follows a structured approach:
12
-
13
- ### Phase 1: Problem Definition (2 min)
14
- - What exactly are we trying to solve?
15
- - What constraints exist?
16
- - What does success look like?
17
-
18
- ### Phase 2: Divergent Thinking (5 min)
19
- Generate as many ideas as possible without judgment:
20
- - Quantity over quality
21
- - Build on others' ideas
22
- - No criticism yet
23
- - Wild ideas welcome
24
-
25
- ### Phase 3: Clustering (2 min)
26
- Group similar ideas into themes:
27
- - Technical solutions
28
- - Process changes
29
- - UX improvements
30
- - Quick wins vs. long-term
31
-
32
- ### Phase 4: Evaluation (3 min)
33
- Score top ideas on:
34
- - **Impact**: How much does this solve the problem? (1-5)
35
- - **Effort**: How hard to implement? (1-5, lower is easier)
36
- - **Risk**: What could go wrong? (1-5, lower is safer)
37
-
38
- ### Phase 5: Selection (1 min)
39
- Choose 1-3 ideas to pursue based on:
40
- - Highest impact/effort ratio
41
- - Acceptable risk level
42
- - Alignment with current priorities
43
-
44
- ## Output Template
45
-
46
- ```markdown
47
- ## Brainstorm: [Problem Statement]
48
-
49
- ### Problem Definition
50
- - **Problem**: [Clear statement]
51
- - **Constraints**: [List]
52
- - **Success criteria**: [Measurable outcomes]
53
-
54
- ### Ideas Generated
55
- | # | Idea | Theme | Impact | Effort | Risk |
56
- |---|------|-------|--------|--------|------|
57
- | 1 | ... | Technical | 4 | 3 | 2 |
58
- | 2 | ... | Process | 3 | 1 | 1 |
59
- ...
60
-
61
- ### Selected for Action
62
- 1. **[Idea]** - [Why selected]
63
- - Next step: [Concrete action]
64
- - Owner: [Who/which agent]
65
-
66
- ### Parked Ideas
67
- - [Ideas worth revisiting later]
68
-
69
- ### Discarded
70
- - [Ideas and why they don't fit]
71
- ```
72
-
73
- ## Usage
74
-
75
- ```
76
- /brainstorm How can we reduce ticket resolution time?
77
- /brainstorm What's the best way to implement real-time updates?
78
- /brainstorm Why are users abandoning the onboarding flow?
79
- ```
80
-
81
- ## Tips
82
-
83
- - Time-box each phase
84
- - Write everything down
85
- - Don't let one voice dominate
86
- - "Yes, and..." not "No, but..."
87
- - The obvious idea might be the right one
88
-
89
- ---
90
-
91
- **WHAT PROBLEM SHALL WE SOLVE?**
@@ -1,156 +0,0 @@
1
- ---
2
- description: Run quality gates (lint, type check, tests) before handoff
3
- ---
4
-
5
- <purpose>
6
- Run all quality gates before handing off to Reviewer. Ensures code meets quality standards.
7
- </purpose>
8
-
9
- <when-to-use>
10
- - Before creating a PR
11
- - Before handoff to Reviewer
12
- - After implementing a feature
13
- - To verify codebase health
14
- </when-to-use>
15
-
16
- <execution>
17
-
18
- ## Running Quality Checks
19
-
20
- Use the check.sh script:
21
-
22
- ```bash
23
- # Run all checks (lint, typecheck, tests)
24
- $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh
25
-
26
- # Run checks in a specific repo subdirectory
27
- $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --repo api
28
- $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --repo ui
29
-
30
- # Run only tests (skip lint and typecheck)
31
- $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --tests-only
32
-
33
- # Run tests with a filter pattern
34
- $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --filter "TestUserLogin"
35
-
36
- # Run filtered tests in a specific repo
37
- $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --repo api --filter "TestUserLogin"
38
-
39
- # Run only filtered tests (no lint/typecheck)
40
- $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --tests-only --filter "TestUserLogin"
41
-
42
- # Skip individual checks
43
- $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --no-lint
44
- $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --no-typecheck
45
-
46
- # Skip all checks (emergencies only)
47
- $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --skip-check
48
- ```
49
-
50
- ## Options
51
-
52
- | Option | Description |
53
- |--------|-------------|
54
- | `--skip-check` | Skip all checks (emergency bypass) |
55
- | `--tests-only` | Run only tests, skip lint and typecheck |
56
- | `--filter PATTERN` | Filter tests by pattern |
57
- | `--repo REPO` | Run checks in a specific repo subdirectory |
58
- | `--no-lint` | Skip lint check |
59
- | `--no-typecheck` | Skip type check |
60
-
61
- ## What Gets Checked
62
-
63
- The script automatically detects project type and runs appropriate checks:
64
-
65
- ### For Node/TypeScript Projects:
66
- | Check | Command | Condition |
67
- |-------|---------|-----------|
68
- | Lint | `just lint` or `npm run lint` | If configured |
69
- | Type Check | `just typecheck` or `tsc --noEmit` | If tsconfig.json exists |
70
- | Tests | `just test` or `npm test` | If configured |
71
-
72
- ### For Go Projects:
73
- | Check | Command | Condition |
74
- |-------|---------|-----------|
75
- | Lint | `just lint` or `golangci-lint run` | If available |
76
- | Tests | `just test` or `go test ./...` | Always |
77
-
78
- ### Justfile Preference
79
- If both justfile and npm scripts exist, justfile recipes take priority.
80
-
81
- </execution>
82
-
83
- <output-format>
84
-
85
- ```
86
- Quality Gate Check
87
- ==================
88
- Project: /path/to/project
89
-
90
- Lint
91
- ========================================
92
- [PASS] Lint (npm run lint)
93
-
94
- Type Check
95
- ========================================
96
- [PASS] Type Check (tsc --noEmit)
97
-
98
- Tests
99
- ========================================
100
- [PASS] Tests (npm test)
101
-
102
- Summary
103
- ========================================
104
-
105
- Checks run: 3
106
- Checks passed: 3
107
- Checks failed: 0
108
-
109
- PASSED - All checks passed
110
- ```
111
-
112
- Exit codes:
113
- - `0` - All checks passed (or --skip-check used)
114
- - `1` - One or more checks failed
115
-
116
- </output-format>
117
-
118
- <skip-check>
119
-
120
- ## Emergency Skip
121
-
122
- Use `--skip-check` only in emergencies:
123
-
124
- ```bash
125
- ./scripts/check.sh --skip-check
126
- ```
127
-
128
- This will:
129
- - Skip all quality checks
130
- - Show a warning message
131
- - Return exit code 0
132
-
133
- **Use sparingly.** Skipped checks should pass before PR merge.
134
-
135
- </skip-check>
136
-
137
- <integration>
138
-
139
- ## dev-handoff Integration
140
-
141
- The dev-handoff subagent runs `/check` automatically before handoff to Reviewer:
142
-
143
- 1. Dev completes implementation
144
- 2. dev-handoff runs `check.sh`
145
- 3. If checks fail: handoff is blocked
146
- 4. If checks pass: proceed to Reviewer
147
-
148
- To bypass (emergencies): pass `--skip-check` to dev-handoff.
149
-
150
- </integration>
151
-
152
- <reference>
153
- - **Script:** `pennyfarthing-dist/scripts/check.sh`
154
- - **Called by:** dev-handoff subagent
155
- - **Blocks:** Handoff to Reviewer on failure
156
- </reference>