@pennyfarthing/core 6.6.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 (599) hide show
  1. package/README.md +293 -0
  2. package/package.json +58 -0
  3. package/packages/core/bin/pennyfarthing.js +14 -0
  4. package/packages/core/dist/bmad/context-reader.d.ts +71 -0
  5. package/packages/core/dist/bmad/context-reader.d.ts.map +1 -0
  6. package/packages/core/dist/bmad/context-reader.js +369 -0
  7. package/packages/core/dist/bmad/context-reader.js.map +1 -0
  8. package/packages/core/dist/bmad/context-reader.test.d.ts +71 -0
  9. package/packages/core/dist/bmad/context-reader.test.d.ts.map +1 -0
  10. package/packages/core/dist/bmad/context-reader.test.js +878 -0
  11. package/packages/core/dist/bmad/context-reader.test.js.map +1 -0
  12. package/packages/core/dist/bmad/epics-parser.d.ts +61 -0
  13. package/packages/core/dist/bmad/epics-parser.d.ts.map +1 -0
  14. package/packages/core/dist/bmad/epics-parser.js +331 -0
  15. package/packages/core/dist/bmad/epics-parser.js.map +1 -0
  16. package/packages/core/dist/bmad/epics-parser.test.d.ts +7 -0
  17. package/packages/core/dist/bmad/epics-parser.test.d.ts.map +1 -0
  18. package/packages/core/dist/bmad/epics-parser.test.js +449 -0
  19. package/packages/core/dist/bmad/epics-parser.test.js.map +1 -0
  20. package/packages/core/dist/bmad/index.d.ts +11 -0
  21. package/packages/core/dist/bmad/index.d.ts.map +1 -0
  22. package/packages/core/dist/bmad/index.js +24 -0
  23. package/packages/core/dist/bmad/index.js.map +1 -0
  24. package/packages/core/dist/bmad/status-sync.d.ts +173 -0
  25. package/packages/core/dist/bmad/status-sync.d.ts.map +1 -0
  26. package/packages/core/dist/bmad/status-sync.js +463 -0
  27. package/packages/core/dist/bmad/status-sync.js.map +1 -0
  28. package/packages/core/dist/bmad/status-sync.test.d.ts +7 -0
  29. package/packages/core/dist/bmad/status-sync.test.d.ts.map +1 -0
  30. package/packages/core/dist/bmad/status-sync.test.js +702 -0
  31. package/packages/core/dist/bmad/status-sync.test.js.map +1 -0
  32. package/packages/core/dist/bmad/story-exporter.d.ts +55 -0
  33. package/packages/core/dist/bmad/story-exporter.d.ts.map +1 -0
  34. package/packages/core/dist/bmad/story-exporter.js +170 -0
  35. package/packages/core/dist/bmad/story-exporter.js.map +1 -0
  36. package/packages/core/dist/bmad/story-exporter.test.d.ts +51 -0
  37. package/packages/core/dist/bmad/story-exporter.test.d.ts.map +1 -0
  38. package/packages/core/dist/bmad/story-exporter.test.js +603 -0
  39. package/packages/core/dist/bmad/story-exporter.test.js.map +1 -0
  40. package/packages/core/dist/bmad/story-parser.d.ts +44 -0
  41. package/packages/core/dist/bmad/story-parser.d.ts.map +1 -0
  42. package/packages/core/dist/bmad/story-parser.js +307 -0
  43. package/packages/core/dist/bmad/story-parser.js.map +1 -0
  44. package/packages/core/dist/bmad/story-parser.test.d.ts +44 -0
  45. package/packages/core/dist/bmad/story-parser.test.d.ts.map +1 -0
  46. package/packages/core/dist/bmad/story-parser.test.js +693 -0
  47. package/packages/core/dist/bmad/story-parser.test.js.map +1 -0
  48. package/packages/core/dist/cli/commands/command.d.ts +28 -0
  49. package/packages/core/dist/cli/commands/command.d.ts.map +1 -0
  50. package/packages/core/dist/cli/commands/command.js +399 -0
  51. package/packages/core/dist/cli/commands/command.js.map +1 -0
  52. package/packages/core/dist/cli/commands/cyclist.d.ts +46 -0
  53. package/packages/core/dist/cli/commands/cyclist.d.ts.map +1 -0
  54. package/packages/core/dist/cli/commands/cyclist.js +191 -0
  55. package/packages/core/dist/cli/commands/cyclist.js.map +1 -0
  56. package/packages/core/dist/cli/commands/cyclist.test.d.ts +13 -0
  57. package/packages/core/dist/cli/commands/cyclist.test.d.ts.map +1 -0
  58. package/packages/core/dist/cli/commands/cyclist.test.js +243 -0
  59. package/packages/core/dist/cli/commands/cyclist.test.js.map +1 -0
  60. package/packages/core/dist/cli/commands/doctor.d.ts +9 -0
  61. package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -0
  62. package/packages/core/dist/cli/commands/doctor.js +652 -0
  63. package/packages/core/dist/cli/commands/doctor.js.map +1 -0
  64. package/packages/core/dist/cli/commands/init.d.ts +8 -0
  65. package/packages/core/dist/cli/commands/init.d.ts.map +1 -0
  66. package/packages/core/dist/cli/commands/init.js +524 -0
  67. package/packages/core/dist/cli/commands/init.js.map +1 -0
  68. package/packages/core/dist/cli/commands/skill.d.ts +28 -0
  69. package/packages/core/dist/cli/commands/skill.d.ts.map +1 -0
  70. package/packages/core/dist/cli/commands/skill.js +416 -0
  71. package/packages/core/dist/cli/commands/skill.js.map +1 -0
  72. package/packages/core/dist/cli/commands/theme.d.ts +21 -0
  73. package/packages/core/dist/cli/commands/theme.d.ts.map +1 -0
  74. package/packages/core/dist/cli/commands/theme.js +201 -0
  75. package/packages/core/dist/cli/commands/theme.js.map +1 -0
  76. package/packages/core/dist/cli/commands/uninstall.d.ts +8 -0
  77. package/packages/core/dist/cli/commands/uninstall.d.ts.map +1 -0
  78. package/packages/core/dist/cli/commands/uninstall.js +237 -0
  79. package/packages/core/dist/cli/commands/uninstall.js.map +1 -0
  80. package/packages/core/dist/cli/commands/update.d.ts +9 -0
  81. package/packages/core/dist/cli/commands/update.d.ts.map +1 -0
  82. package/packages/core/dist/cli/commands/update.js +545 -0
  83. package/packages/core/dist/cli/commands/update.js.map +1 -0
  84. package/packages/core/dist/cli/commands/version.d.ts +2 -0
  85. package/packages/core/dist/cli/commands/version.d.ts.map +1 -0
  86. package/packages/core/dist/cli/commands/version.js +28 -0
  87. package/packages/core/dist/cli/commands/version.js.map +1 -0
  88. package/packages/core/dist/cli/customization.test.d.ts +12 -0
  89. package/packages/core/dist/cli/customization.test.d.ts.map +1 -0
  90. package/packages/core/dist/cli/customization.test.js +84 -0
  91. package/packages/core/dist/cli/customization.test.js.map +1 -0
  92. package/packages/core/dist/cli/cyclist-migration.test.d.ts +16 -0
  93. package/packages/core/dist/cli/cyclist-migration.test.d.ts.map +1 -0
  94. package/packages/core/dist/cli/cyclist-migration.test.js +224 -0
  95. package/packages/core/dist/cli/cyclist-migration.test.js.map +1 -0
  96. package/packages/core/dist/cli/index.d.ts +3 -0
  97. package/packages/core/dist/cli/index.d.ts.map +1 -0
  98. package/packages/core/dist/cli/index.js +174 -0
  99. package/packages/core/dist/cli/index.js.map +1 -0
  100. package/packages/core/dist/cli/ocean-profiles.test.d.ts +13 -0
  101. package/packages/core/dist/cli/ocean-profiles.test.d.ts.map +1 -0
  102. package/packages/core/dist/cli/ocean-profiles.test.js +134 -0
  103. package/packages/core/dist/cli/ocean-profiles.test.js.map +1 -0
  104. package/packages/core/dist/cli/theme-maker.test.d.ts +11 -0
  105. package/packages/core/dist/cli/theme-maker.test.d.ts.map +1 -0
  106. package/packages/core/dist/cli/theme-maker.test.js +356 -0
  107. package/packages/core/dist/cli/theme-maker.test.js.map +1 -0
  108. package/packages/core/dist/cli/utils/constants.d.ts +60 -0
  109. package/packages/core/dist/cli/utils/constants.d.ts.map +1 -0
  110. package/packages/core/dist/cli/utils/constants.js +52 -0
  111. package/packages/core/dist/cli/utils/constants.js.map +1 -0
  112. package/packages/core/dist/cli/utils/files.d.ts +71 -0
  113. package/packages/core/dist/cli/utils/files.d.ts.map +1 -0
  114. package/packages/core/dist/cli/utils/files.js +162 -0
  115. package/packages/core/dist/cli/utils/files.js.map +1 -0
  116. package/packages/core/dist/cli/utils/logger.d.ts +26 -0
  117. package/packages/core/dist/cli/utils/logger.d.ts.map +1 -0
  118. package/packages/core/dist/cli/utils/logger.js +88 -0
  119. package/packages/core/dist/cli/utils/logger.js.map +1 -0
  120. package/packages/core/dist/cli/utils/manifest.d.ts +47 -0
  121. package/packages/core/dist/cli/utils/manifest.d.ts.map +1 -0
  122. package/packages/core/dist/cli/utils/manifest.js +90 -0
  123. package/packages/core/dist/cli/utils/manifest.js.map +1 -0
  124. package/packages/core/dist/cli/utils/node-modules.d.ts +6 -0
  125. package/packages/core/dist/cli/utils/node-modules.d.ts.map +1 -0
  126. package/packages/core/dist/cli/utils/node-modules.js +22 -0
  127. package/packages/core/dist/cli/utils/node-modules.js.map +1 -0
  128. package/packages/core/dist/cli/utils/prompts.d.ts +34 -0
  129. package/packages/core/dist/cli/utils/prompts.d.ts.map +1 -0
  130. package/packages/core/dist/cli/utils/prompts.js +93 -0
  131. package/packages/core/dist/cli/utils/prompts.js.map +1 -0
  132. package/packages/core/dist/cli/utils/symlinks.d.ts +29 -0
  133. package/packages/core/dist/cli/utils/symlinks.d.ts.map +1 -0
  134. package/packages/core/dist/cli/utils/symlinks.js +181 -0
  135. package/packages/core/dist/cli/utils/symlinks.js.map +1 -0
  136. package/packages/core/dist/cli/utils/themes.d.ts +104 -0
  137. package/packages/core/dist/cli/utils/themes.d.ts.map +1 -0
  138. package/packages/core/dist/cli/utils/themes.js +393 -0
  139. package/packages/core/dist/cli/utils/themes.js.map +1 -0
  140. package/packages/core/dist/cli/utils/themes.test.d.ts +12 -0
  141. package/packages/core/dist/cli/utils/themes.test.d.ts.map +1 -0
  142. package/packages/core/dist/cli/utils/themes.test.js +144 -0
  143. package/packages/core/dist/cli/utils/themes.test.js.map +1 -0
  144. package/packages/core/dist/cli/utils/version.d.ts +10 -0
  145. package/packages/core/dist/cli/utils/version.d.ts.map +1 -0
  146. package/packages/core/dist/cli/utils/version.js +63 -0
  147. package/packages/core/dist/cli/utils/version.js.map +1 -0
  148. package/packages/core/dist/cli/workspace.test.d.ts +8 -0
  149. package/packages/core/dist/cli/workspace.test.d.ts.map +1 -0
  150. package/packages/core/dist/cli/workspace.test.js +154 -0
  151. package/packages/core/dist/cli/workspace.test.js.map +1 -0
  152. package/packages/core/dist/index.d.ts +6 -0
  153. package/packages/core/dist/index.d.ts.map +1 -0
  154. package/packages/core/dist/index.js +10 -0
  155. package/packages/core/dist/index.js.map +1 -0
  156. package/packages/core/dist/permissions/index.d.ts +9 -0
  157. package/packages/core/dist/permissions/index.d.ts.map +1 -0
  158. package/packages/core/dist/permissions/index.js +13 -0
  159. package/packages/core/dist/permissions/index.js.map +1 -0
  160. package/packages/core/dist/permissions/permission-schema.d.ts +89 -0
  161. package/packages/core/dist/permissions/permission-schema.d.ts.map +1 -0
  162. package/packages/core/dist/permissions/permission-schema.js +120 -0
  163. package/packages/core/dist/permissions/permission-schema.js.map +1 -0
  164. package/packages/core/dist/permissions/permission-schema.test.d.ts +40 -0
  165. package/packages/core/dist/permissions/permission-schema.test.d.ts.map +1 -0
  166. package/packages/core/dist/permissions/permission-schema.test.js +367 -0
  167. package/packages/core/dist/permissions/permission-schema.test.js.map +1 -0
  168. package/packages/core/dist/scripts/add-ocean-profiles.d.ts +9 -0
  169. package/packages/core/dist/scripts/add-ocean-profiles.d.ts.map +1 -0
  170. package/packages/core/dist/scripts/add-ocean-profiles.js +695 -0
  171. package/packages/core/dist/scripts/add-ocean-profiles.js.map +1 -0
  172. package/packages/core/dist/scripts/benchmark-integration.d.ts +182 -0
  173. package/packages/core/dist/scripts/benchmark-integration.d.ts.map +1 -0
  174. package/packages/core/dist/scripts/benchmark-integration.js +691 -0
  175. package/packages/core/dist/scripts/benchmark-integration.js.map +1 -0
  176. package/packages/core/dist/scripts/benchmark-integration.test.d.ts +13 -0
  177. package/packages/core/dist/scripts/benchmark-integration.test.d.ts.map +1 -0
  178. package/packages/core/dist/scripts/benchmark-integration.test.js +680 -0
  179. package/packages/core/dist/scripts/benchmark-integration.test.js.map +1 -0
  180. package/packages/core/dist/scripts/debugging-scenarios.test.d.ts +18 -0
  181. package/packages/core/dist/scripts/debugging-scenarios.test.d.ts.map +1 -0
  182. package/packages/core/dist/scripts/debugging-scenarios.test.js +317 -0
  183. package/packages/core/dist/scripts/debugging-scenarios.test.js.map +1 -0
  184. package/packages/core/dist/scripts/generate-all-faces.d.ts +10 -0
  185. package/packages/core/dist/scripts/generate-all-faces.d.ts.map +1 -0
  186. package/packages/core/dist/scripts/generate-all-faces.js +256 -0
  187. package/packages/core/dist/scripts/generate-all-faces.js.map +1 -0
  188. package/packages/core/dist/scripts/generate-all-faces.test.d.ts +17 -0
  189. package/packages/core/dist/scripts/generate-all-faces.test.d.ts.map +1 -0
  190. package/packages/core/dist/scripts/generate-all-faces.test.js +372 -0
  191. package/packages/core/dist/scripts/generate-all-faces.test.js.map +1 -0
  192. package/packages/core/dist/scripts/generate-all-spiders.d.ts +10 -0
  193. package/packages/core/dist/scripts/generate-all-spiders.d.ts.map +1 -0
  194. package/packages/core/dist/scripts/generate-all-spiders.js +306 -0
  195. package/packages/core/dist/scripts/generate-all-spiders.js.map +1 -0
  196. package/packages/core/dist/scripts/generate-ascii-face.d.ts +52 -0
  197. package/packages/core/dist/scripts/generate-ascii-face.d.ts.map +1 -0
  198. package/packages/core/dist/scripts/generate-ascii-face.js +155 -0
  199. package/packages/core/dist/scripts/generate-ascii-face.js.map +1 -0
  200. package/packages/core/dist/scripts/generate-face.d.ts +52 -0
  201. package/packages/core/dist/scripts/generate-face.d.ts.map +1 -0
  202. package/packages/core/dist/scripts/generate-face.js +199 -0
  203. package/packages/core/dist/scripts/generate-face.js.map +1 -0
  204. package/packages/core/dist/scripts/generate-face.test.d.ts +13 -0
  205. package/packages/core/dist/scripts/generate-face.test.d.ts.map +1 -0
  206. package/packages/core/dist/scripts/generate-face.test.js +301 -0
  207. package/packages/core/dist/scripts/generate-face.test.js.map +1 -0
  208. package/packages/core/dist/scripts/generate-report.d.ts +65 -0
  209. package/packages/core/dist/scripts/generate-report.d.ts.map +1 -0
  210. package/packages/core/dist/scripts/generate-report.js +378 -0
  211. package/packages/core/dist/scripts/generate-report.js.map +1 -0
  212. package/packages/core/dist/scripts/generate-report.test.d.ts +13 -0
  213. package/packages/core/dist/scripts/generate-report.test.d.ts.map +1 -0
  214. package/packages/core/dist/scripts/generate-report.test.js +363 -0
  215. package/packages/core/dist/scripts/generate-report.test.js.map +1 -0
  216. package/packages/core/dist/scripts/generate-spider-report.d.ts +65 -0
  217. package/packages/core/dist/scripts/generate-spider-report.d.ts.map +1 -0
  218. package/packages/core/dist/scripts/generate-spider-report.js +366 -0
  219. package/packages/core/dist/scripts/generate-spider-report.js.map +1 -0
  220. package/packages/core/dist/scripts/generate-spider-report.test.d.ts +13 -0
  221. package/packages/core/dist/scripts/generate-spider-report.test.d.ts.map +1 -0
  222. package/packages/core/dist/scripts/generate-spider-report.test.js +367 -0
  223. package/packages/core/dist/scripts/generate-spider-report.test.js.map +1 -0
  224. package/packages/core/dist/scripts/generate-spider.d.ts +37 -0
  225. package/packages/core/dist/scripts/generate-spider.d.ts.map +1 -0
  226. package/packages/core/dist/scripts/generate-spider.js +315 -0
  227. package/packages/core/dist/scripts/generate-spider.js.map +1 -0
  228. package/packages/core/dist/scripts/generate-spider.test.d.ts +14 -0
  229. package/packages/core/dist/scripts/generate-spider.test.d.ts.map +1 -0
  230. package/packages/core/dist/scripts/generate-spider.test.js +269 -0
  231. package/packages/core/dist/scripts/generate-spider.test.js.map +1 -0
  232. package/packages/core/dist/scripts/job-fair-aggregator.d.ts +150 -0
  233. package/packages/core/dist/scripts/job-fair-aggregator.d.ts.map +1 -0
  234. package/packages/core/dist/scripts/job-fair-aggregator.js +547 -0
  235. package/packages/core/dist/scripts/job-fair-aggregator.js.map +1 -0
  236. package/packages/core/dist/scripts/job-fair-aggregator.test.d.ts +14 -0
  237. package/packages/core/dist/scripts/job-fair-aggregator.test.d.ts.map +1 -0
  238. package/packages/core/dist/scripts/job-fair-aggregator.test.js +616 -0
  239. package/packages/core/dist/scripts/job-fair-aggregator.test.js.map +1 -0
  240. package/packages/core/dist/scripts/run-ci.test.d.ts +20 -0
  241. package/packages/core/dist/scripts/run-ci.test.d.ts.map +1 -0
  242. package/packages/core/dist/scripts/run-ci.test.js +127 -0
  243. package/packages/core/dist/scripts/run-ci.test.js.map +1 -0
  244. package/packages/core/dist/scripts/theme-detail.test.d.ts +10 -0
  245. package/packages/core/dist/scripts/theme-detail.test.d.ts.map +1 -0
  246. package/packages/core/dist/scripts/theme-detail.test.js +199 -0
  247. package/packages/core/dist/scripts/theme-detail.test.js.map +1 -0
  248. package/packages/core/dist/scripts/validate-ocean-profiles.d.ts +9 -0
  249. package/packages/core/dist/scripts/validate-ocean-profiles.d.ts.map +1 -0
  250. package/packages/core/dist/scripts/validate-ocean-profiles.js +130 -0
  251. package/packages/core/dist/scripts/validate-ocean-profiles.js.map +1 -0
  252. package/packages/core/dist/workflow/generic-handoff.d.ts +235 -0
  253. package/packages/core/dist/workflow/generic-handoff.d.ts.map +1 -0
  254. package/packages/core/dist/workflow/generic-handoff.js +358 -0
  255. package/packages/core/dist/workflow/generic-handoff.js.map +1 -0
  256. package/packages/core/dist/workflow/generic-handoff.test.d.ts +21 -0
  257. package/packages/core/dist/workflow/generic-handoff.test.d.ts.map +1 -0
  258. package/packages/core/dist/workflow/generic-handoff.test.js +499 -0
  259. package/packages/core/dist/workflow/generic-handoff.test.js.map +1 -0
  260. package/packages/core/dist/workflow/generic-sm-finish.d.ts +89 -0
  261. package/packages/core/dist/workflow/generic-sm-finish.d.ts.map +1 -0
  262. package/packages/core/dist/workflow/generic-sm-finish.js +157 -0
  263. package/packages/core/dist/workflow/generic-sm-finish.js.map +1 -0
  264. package/packages/core/dist/workflow/generic-sm-setup.d.ts +138 -0
  265. package/packages/core/dist/workflow/generic-sm-setup.d.ts.map +1 -0
  266. package/packages/core/dist/workflow/generic-sm-setup.js +382 -0
  267. package/packages/core/dist/workflow/generic-sm-setup.js.map +1 -0
  268. package/packages/core/dist/workflow/sm-subagents.test.d.ts +23 -0
  269. package/packages/core/dist/workflow/sm-subagents.test.d.ts.map +1 -0
  270. package/packages/core/dist/workflow/sm-subagents.test.js +727 -0
  271. package/packages/core/dist/workflow/sm-subagents.test.js.map +1 -0
  272. package/packages/core/dist/workflow/story-workflow-routing.test.d.ts +17 -0
  273. package/packages/core/dist/workflow/story-workflow-routing.test.d.ts.map +1 -0
  274. package/packages/core/dist/workflow/story-workflow-routing.test.js +559 -0
  275. package/packages/core/dist/workflow/story-workflow-routing.test.js.map +1 -0
  276. package/packages/core/dist/workflow/test-cache.d.ts +131 -0
  277. package/packages/core/dist/workflow/test-cache.d.ts.map +1 -0
  278. package/packages/core/dist/workflow/test-cache.js +226 -0
  279. package/packages/core/dist/workflow/test-cache.js.map +1 -0
  280. package/packages/core/dist/workflow/test-cache.test.d.ts +17 -0
  281. package/packages/core/dist/workflow/test-cache.test.d.ts.map +1 -0
  282. package/packages/core/dist/workflow/test-cache.test.js +438 -0
  283. package/packages/core/dist/workflow/test-cache.test.js.map +1 -0
  284. package/packages/core/dist/workflow/workflow-loader.d.ts +76 -0
  285. package/packages/core/dist/workflow/workflow-loader.d.ts.map +1 -0
  286. package/packages/core/dist/workflow/workflow-loader.js +133 -0
  287. package/packages/core/dist/workflow/workflow-loader.js.map +1 -0
  288. package/packages/core/dist/workflow/workflow-loader.test.d.ts +15 -0
  289. package/packages/core/dist/workflow/workflow-loader.test.d.ts.map +1 -0
  290. package/packages/core/dist/workflow/workflow-loader.test.js +354 -0
  291. package/packages/core/dist/workflow/workflow-loader.test.js.map +1 -0
  292. package/packages/core/dist/workflow/workflow-migration.test.d.ts +17 -0
  293. package/packages/core/dist/workflow/workflow-migration.test.d.ts.map +1 -0
  294. package/packages/core/dist/workflow/workflow-migration.test.js +372 -0
  295. package/packages/core/dist/workflow/workflow-migration.test.js.map +1 -0
  296. package/packages/core/dist/workflow/workflow-router.d.ts +55 -0
  297. package/packages/core/dist/workflow/workflow-router.d.ts.map +1 -0
  298. package/packages/core/dist/workflow/workflow-router.js +245 -0
  299. package/packages/core/dist/workflow/workflow-router.js.map +1 -0
  300. package/packages/core/dist/workflow/workflow-router.test.d.ts +20 -0
  301. package/packages/core/dist/workflow/workflow-router.test.d.ts.map +1 -0
  302. package/packages/core/dist/workflow/workflow-router.test.js +607 -0
  303. package/packages/core/dist/workflow/workflow-router.test.js.map +1 -0
  304. package/packages/core/dist/workflow/workflow-schema.d.ts +98 -0
  305. package/packages/core/dist/workflow/workflow-schema.d.ts.map +1 -0
  306. package/packages/core/dist/workflow/workflow-schema.js +230 -0
  307. package/packages/core/dist/workflow/workflow-schema.js.map +1 -0
  308. package/packages/core/dist/workflow/workflow-schema.test.d.ts +45 -0
  309. package/packages/core/dist/workflow/workflow-schema.test.d.ts.map +1 -0
  310. package/packages/core/dist/workflow/workflow-schema.test.js +512 -0
  311. package/packages/core/dist/workflow/workflow-schema.test.js.map +1 -0
  312. package/pennyfarthing-dist/agents/README.md +397 -0
  313. package/pennyfarthing-dist/agents/architect.md +171 -0
  314. package/pennyfarthing-dist/agents/dev.md +225 -0
  315. package/pennyfarthing-dist/agents/devops.md +183 -0
  316. package/pennyfarthing-dist/agents/generic-handoff.md +451 -0
  317. package/pennyfarthing-dist/agents/generic-sm-finish.md +261 -0
  318. package/pennyfarthing-dist/agents/generic-sm-setup.md +214 -0
  319. package/pennyfarthing-dist/agents/orchestrator.md +316 -0
  320. package/pennyfarthing-dist/agents/pm.md +153 -0
  321. package/pennyfarthing-dist/agents/reviewer-preflight.md +224 -0
  322. package/pennyfarthing-dist/agents/reviewer.md +315 -0
  323. package/pennyfarthing-dist/agents/sm-file-summary.md +109 -0
  324. package/pennyfarthing-dist/agents/sm-handoff.md +97 -0
  325. package/pennyfarthing-dist/agents/sm.md +480 -0
  326. package/pennyfarthing-dist/agents/tea.md +191 -0
  327. package/pennyfarthing-dist/agents/tech-writer.md +148 -0
  328. package/pennyfarthing-dist/agents/testing-runner.md +420 -0
  329. package/pennyfarthing-dist/agents/ux-designer.md +158 -0
  330. package/pennyfarthing-dist/agents/workflow-status-check.md +332 -0
  331. package/pennyfarthing-dist/commands/architect.md +62 -0
  332. package/pennyfarthing-dist/commands/benchmark-control.md +69 -0
  333. package/pennyfarthing-dist/commands/benchmark.md +467 -0
  334. package/pennyfarthing-dist/commands/brainstorm.md +91 -0
  335. package/pennyfarthing-dist/commands/check.md +156 -0
  336. package/pennyfarthing-dist/commands/chore.md +178 -0
  337. package/pennyfarthing-dist/commands/close-epic.md +136 -0
  338. package/pennyfarthing-dist/commands/continue-session.md +184 -0
  339. package/pennyfarthing-dist/commands/create-branches-from-story.md +374 -0
  340. package/pennyfarthing-dist/commands/create-theme.md +29 -0
  341. package/pennyfarthing-dist/commands/dev.md +60 -0
  342. package/pennyfarthing-dist/commands/devops.md +59 -0
  343. package/pennyfarthing-dist/commands/git-cleanup.md +340 -0
  344. package/pennyfarthing-dist/commands/health-check.md +108 -0
  345. package/pennyfarthing-dist/commands/help.md +264 -0
  346. package/pennyfarthing-dist/commands/job-fair.md +102 -0
  347. package/pennyfarthing-dist/commands/list-themes.md +17 -0
  348. package/pennyfarthing-dist/commands/new-work.md +127 -0
  349. package/pennyfarthing-dist/commands/orchestrator.md +56 -0
  350. package/pennyfarthing-dist/commands/parallel-work.md +71 -0
  351. package/pennyfarthing-dist/commands/party-mode.md +67 -0
  352. package/pennyfarthing-dist/commands/permissions.md +193 -0
  353. package/pennyfarthing-dist/commands/pm.md +60 -0
  354. package/pennyfarthing-dist/commands/prime.md +140 -0
  355. package/pennyfarthing-dist/commands/release.md +58 -0
  356. package/pennyfarthing-dist/commands/repo-status.md +49 -0
  357. package/pennyfarthing-dist/commands/retro.md +200 -0
  358. package/pennyfarthing-dist/commands/reviewer.md +64 -0
  359. package/pennyfarthing-dist/commands/run-ci.md +116 -0
  360. package/pennyfarthing-dist/commands/set-theme.md +52 -0
  361. package/pennyfarthing-dist/commands/show-theme.md +21 -0
  362. package/pennyfarthing-dist/commands/sm.md +70 -0
  363. package/pennyfarthing-dist/commands/solo.md +411 -0
  364. package/pennyfarthing-dist/commands/sprint-planning.md +109 -0
  365. package/pennyfarthing-dist/commands/start-epic.md +156 -0
  366. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +184 -0
  367. package/pennyfarthing-dist/commands/sync-work-with-sprint.md +376 -0
  368. package/pennyfarthing-dist/commands/tea.md +63 -0
  369. package/pennyfarthing-dist/commands/tech-writer.md +53 -0
  370. package/pennyfarthing-dist/commands/theme-maker.md +671 -0
  371. package/pennyfarthing-dist/commands/update-domain-docs.md +83 -0
  372. package/pennyfarthing-dist/commands/ux-designer.md +62 -0
  373. package/pennyfarthing-dist/commands/work.md +111 -0
  374. package/pennyfarthing-dist/guides/AGENT-COORDINATION.md +480 -0
  375. package/pennyfarthing-dist/guides/AGENT-SCOPES.md +201 -0
  376. package/pennyfarthing-dist/guides/HOOKS.md +230 -0
  377. package/pennyfarthing-dist/guides/PROMPT-PATTERNS.md +338 -0
  378. package/pennyfarthing-dist/guides/SESSION-ARTIFACTS.md +193 -0
  379. package/pennyfarthing-dist/guides/agent-template-strategic.md +148 -0
  380. package/pennyfarthing-dist/guides/agent-template-tactical.md +162 -0
  381. package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +746 -0
  382. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +574 -0
  383. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +488 -0
  384. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +402 -0
  385. package/pennyfarthing-dist/guides/permission-protocol.md +188 -0
  386. package/pennyfarthing-dist/guides/persona-loading.md +46 -0
  387. package/pennyfarthing-dist/guides/persona-system.md +294 -0
  388. package/pennyfarthing-dist/guides/shared-agent-behavior.md +388 -0
  389. package/pennyfarthing-dist/guides/shared-context.md +147 -0
  390. package/pennyfarthing-dist/guides/strategic-agent-behavior.md +348 -0
  391. package/pennyfarthing-dist/guides/tactical-agent-behavior.md +1041 -0
  392. package/pennyfarthing-dist/guides/workflow-schema.md +195 -0
  393. package/pennyfarthing-dist/guides/worktree-mode.md +113 -0
  394. package/pennyfarthing-dist/output-styles/teaching.md +33 -0
  395. package/pennyfarthing-dist/output-styles/terse.md +20 -0
  396. package/pennyfarthing-dist/output-styles/verbose.md +28 -0
  397. package/pennyfarthing-dist/personas/themes/1984.yaml +312 -0
  398. package/pennyfarthing-dist/personas/themes/a-team.yaml +207 -0
  399. package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +300 -0
  400. package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +330 -0
  401. package/pennyfarthing-dist/personas/themes/all-stars.yaml +332 -0
  402. package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +320 -0
  403. package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +306 -0
  404. package/pennyfarthing-dist/personas/themes/arcane.yaml +288 -0
  405. package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +331 -0
  406. package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +288 -0
  407. package/pennyfarthing-dist/personas/themes/babylon-5.yaml +288 -0
  408. package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +288 -0
  409. package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +288 -0
  410. package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +300 -0
  411. package/pennyfarthing-dist/personas/themes/black-sails.yaml +300 -0
  412. package/pennyfarthing-dist/personas/themes/blade-runner.yaml +295 -0
  413. package/pennyfarthing-dist/personas/themes/bobiverse.yaml +288 -0
  414. package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +327 -0
  415. package/pennyfarthing-dist/personas/themes/catch-22.yaml +316 -0
  416. package/pennyfarthing-dist/personas/themes/classical-composers.yaml +310 -0
  417. package/pennyfarthing-dist/personas/themes/control.yaml +197 -0
  418. package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +320 -0
  419. package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +323 -0
  420. package/pennyfarthing-dist/personas/themes/deadwood.yaml +300 -0
  421. package/pennyfarthing-dist/personas/themes/dickens.yaml +320 -0
  422. package/pennyfarthing-dist/personas/themes/discworld.yaml +332 -0
  423. package/pennyfarthing-dist/personas/themes/doctor-who.yaml +290 -0
  424. package/pennyfarthing-dist/personas/themes/don-quixote.yaml +320 -0
  425. package/pennyfarthing-dist/personas/themes/dune.yaml +307 -0
  426. package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +320 -0
  427. package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +288 -0
  428. package/pennyfarthing-dist/personas/themes/fargo.yaml +330 -0
  429. package/pennyfarthing-dist/personas/themes/film-auteurs.yaml +312 -0
  430. package/pennyfarthing-dist/personas/themes/firefly.yaml +328 -0
  431. package/pennyfarthing-dist/personas/themes/foundation.yaml +290 -0
  432. package/pennyfarthing-dist/personas/themes/futurama.yaml +321 -0
  433. package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +290 -0
  434. package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +243 -0
  435. package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +308 -0
  436. package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +308 -0
  437. package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +330 -0
  438. package/pennyfarthing-dist/personas/themes/hannibal.yaml +300 -0
  439. package/pennyfarthing-dist/personas/themes/harry-potter.yaml +324 -0
  440. package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +291 -0
  441. package/pennyfarthing-dist/personas/themes/historical-figures.yaml +288 -0
  442. package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +331 -0
  443. package/pennyfarthing-dist/personas/themes/house-md.yaml +321 -0
  444. package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +289 -0
  445. package/pennyfarthing-dist/personas/themes/inspector-morse.yaml +300 -0
  446. package/pennyfarthing-dist/personas/themes/jane-austen.yaml +287 -0
  447. package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +320 -0
  448. package/pennyfarthing-dist/personas/themes/justified.yaml +300 -0
  449. package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +219 -0
  450. package/pennyfarthing-dist/personas/themes/les-miserables.yaml +299 -0
  451. package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +334 -0
  452. package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +334 -0
  453. package/pennyfarthing-dist/personas/themes/mad-max.yaml +355 -0
  454. package/pennyfarthing-dist/personas/themes/mad-men.yaml +289 -0
  455. package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +300 -0
  456. package/pennyfarthing-dist/personas/themes/mash.yaml +334 -0
  457. package/pennyfarthing-dist/personas/themes/mass-effect.yaml +289 -0
  458. package/pennyfarthing-dist/personas/themes/military-commanders.yaml +306 -0
  459. package/pennyfarthing-dist/personas/themes/moby-dick.yaml +320 -0
  460. package/pennyfarthing-dist/personas/themes/monty-python.yaml +303 -0
  461. package/pennyfarthing-dist/personas/themes/neuromancer.yaml +300 -0
  462. package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +329 -0
  463. package/pennyfarthing-dist/personas/themes/parks-and-rec.yaml +242 -0
  464. package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +298 -0
  465. package/pennyfarthing-dist/personas/themes/princess-bride.yaml +220 -0
  466. package/pennyfarthing-dist/personas/themes/renaissance-masters.yaml +320 -0
  467. package/pennyfarthing-dist/personas/themes/rome.yaml +300 -0
  468. package/pennyfarthing-dist/personas/themes/russian-masters.yaml +318 -0
  469. package/pennyfarthing-dist/personas/themes/sandman.yaml +288 -0
  470. package/pennyfarthing-dist/personas/themes/scientific-revolutionaries.yaml +320 -0
  471. package/pennyfarthing-dist/personas/themes/shakespeare.yaml +301 -0
  472. package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +289 -0
  473. package/pennyfarthing-dist/personas/themes/snow-crash.yaml +288 -0
  474. package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +300 -0
  475. package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +230 -0
  476. package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +210 -0
  477. package/pennyfarthing-dist/personas/themes/star-wars.yaml +303 -0
  478. package/pennyfarthing-dist/personas/themes/succession.yaml +300 -0
  479. package/pennyfarthing-dist/personas/themes/superfriends.yaml +208 -0
  480. package/pennyfarthing-dist/personas/themes/ted-lasso.yaml +236 -0
  481. package/pennyfarthing-dist/personas/themes/the-americans.yaml +300 -0
  482. package/pennyfarthing-dist/personas/themes/the-crown.yaml +300 -0
  483. package/pennyfarthing-dist/personas/themes/the-expanse.yaml +213 -0
  484. package/pennyfarthing-dist/personas/themes/the-good-place.yaml +322 -0
  485. package/pennyfarthing-dist/personas/themes/the-matrix.yaml +353 -0
  486. package/pennyfarthing-dist/personas/themes/the-odyssey.yaml +300 -0
  487. package/pennyfarthing-dist/personas/themes/the-office.yaml +330 -0
  488. package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +308 -0
  489. package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +300 -0
  490. package/pennyfarthing-dist/personas/themes/the-wire.yaml +311 -0
  491. package/pennyfarthing-dist/personas/themes/the-witcher.yaml +300 -0
  492. package/pennyfarthing-dist/personas/themes/twin-peaks.yaml +302 -0
  493. package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +300 -0
  494. package/pennyfarthing-dist/personas/themes/watchmen.yaml +291 -0
  495. package/pennyfarthing-dist/personas/themes/west-wing.yaml +291 -0
  496. package/pennyfarthing-dist/personas/themes/world-explorers.yaml +320 -0
  497. package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +307 -0
  498. package/pennyfarthing-dist/personas/themes/x-files.yaml +302 -0
  499. package/pennyfarthing-dist/scripts/add-short-names.mjs +264 -0
  500. package/pennyfarthing-dist/scripts/agent-session.sh +367 -0
  501. package/pennyfarthing-dist/scripts/check-context.sh +187 -0
  502. package/pennyfarthing-dist/scripts/check.sh +497 -0
  503. package/pennyfarthing-dist/scripts/deploy.sh +284 -0
  504. package/pennyfarthing-dist/scripts/doctor-dogfood.sh +360 -0
  505. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +61 -0
  506. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +66 -0
  507. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +35 -0
  508. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +166 -0
  509. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +50 -0
  510. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +71 -0
  511. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +54 -0
  512. package/pennyfarthing-dist/scripts/hooks/session-start.sh +98 -0
  513. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +59 -0
  514. package/pennyfarthing-dist/scripts/install-git-hooks.sh +91 -0
  515. package/pennyfarthing-dist/scripts/prime.sh +161 -0
  516. package/pennyfarthing-dist/scripts/release.sh +198 -0
  517. package/pennyfarthing-dist/scripts/repo-utils.sh +778 -0
  518. package/pennyfarthing-dist/scripts/run-ci.sh +219 -0
  519. package/pennyfarthing-dist/scripts/run.sh +65 -0
  520. package/pennyfarthing-dist/scripts/statusline.sh +264 -0
  521. package/pennyfarthing-dist/scripts/tests/check.test.sh +582 -0
  522. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +107 -0
  523. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +597 -0
  524. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +514 -0
  525. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +517 -0
  526. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +331 -0
  527. package/pennyfarthing-dist/scripts/uninstall.sh +271 -0
  528. package/pennyfarthing-dist/scripts/utils/background-tasks.sh +177 -0
  529. package/pennyfarthing-dist/scripts/utils/check-status.sh +251 -0
  530. package/pennyfarthing-dist/scripts/utils/checkpoint.sh +136 -0
  531. package/pennyfarthing-dist/scripts/utils/common.sh +157 -0
  532. package/pennyfarthing-dist/scripts/utils/create-feature-branches.sh +230 -0
  533. package/pennyfarthing-dist/scripts/utils/file-lock.sh +269 -0
  534. package/pennyfarthing-dist/scripts/utils/find-related-work.sh +231 -0
  535. package/pennyfarthing-dist/scripts/utils/find-root.sh +33 -0
  536. package/pennyfarthing-dist/scripts/utils/generate-skill-docs.sh +110 -0
  537. package/pennyfarthing-dist/scripts/utils/git-status-all.sh +127 -0
  538. package/pennyfarthing-dist/scripts/utils/ground-truth-judge.py +289 -0
  539. package/pennyfarthing-dist/scripts/utils/jira/jira-lib.mjs +443 -0
  540. package/pennyfarthing-dist/scripts/utils/jira/jira-sync-story.mjs +208 -0
  541. package/pennyfarthing-dist/scripts/utils/jira/jira-sync.mjs +198 -0
  542. package/pennyfarthing-dist/scripts/utils/jira-claim-story.sh +162 -0
  543. package/pennyfarthing-dist/scripts/utils/jira-lib.sh +463 -0
  544. package/pennyfarthing-dist/scripts/utils/jira-sync-story.sh +8 -0
  545. package/pennyfarthing-dist/scripts/utils/jira-sync.sh +8 -0
  546. package/pennyfarthing-dist/scripts/utils/log-skill-usage.sh +74 -0
  547. package/pennyfarthing-dist/scripts/utils/logging.sh +186 -0
  548. package/pennyfarthing-dist/scripts/utils/repo-scan.sh +141 -0
  549. package/pennyfarthing-dist/scripts/utils/retry.sh +76 -0
  550. package/pennyfarthing-dist/scripts/utils/run-timestamp.sh +7 -0
  551. package/pennyfarthing-dist/scripts/utils/session-cleanup.sh +319 -0
  552. package/pennyfarthing-dist/scripts/utils/skill-usage-report.sh +193 -0
  553. package/pennyfarthing-dist/scripts/utils/sprint-common.sh +286 -0
  554. package/pennyfarthing-dist/scripts/utils/sprint-metrics.sh +241 -0
  555. package/pennyfarthing-dist/scripts/utils/swebench-judge.py +400 -0
  556. package/pennyfarthing-dist/scripts/utils/sync-epic-to-jira.sh +16 -0
  557. package/pennyfarthing-dist/scripts/utils/test-setup.sh +337 -0
  558. package/pennyfarthing-dist/scripts/utils/validate-subagent-frontmatter.sh +160 -0
  559. package/pennyfarthing-dist/scripts/worktree-manager.sh +498 -0
  560. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +236 -0
  561. package/pennyfarthing-dist/skills/changelog/SKILL.md +367 -0
  562. package/pennyfarthing-dist/skills/code-review/SKILL.md +168 -0
  563. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +268 -0
  564. package/pennyfarthing-dist/skills/cyclist/SKILL.md +117 -0
  565. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +421 -0
  566. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +258 -0
  567. package/pennyfarthing-dist/skills/jira/SKILL.md +281 -0
  568. package/pennyfarthing-dist/skills/judge/SKILL.md +524 -0
  569. package/pennyfarthing-dist/skills/just/SKILL.md +160 -0
  570. package/pennyfarthing-dist/skills/mermaid/SKILL.md +240 -0
  571. package/pennyfarthing-dist/skills/otel/skill.md +222 -0
  572. package/pennyfarthing-dist/skills/permissions/skill.md +172 -0
  573. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +173 -0
  574. package/pennyfarthing-dist/skills/skill-registry.schema.json +102 -0
  575. package/pennyfarthing-dist/skills/skill-registry.yaml +335 -0
  576. package/pennyfarthing-dist/skills/sprint-context/SKILL.md +120 -0
  577. package/pennyfarthing-dist/skills/story-management/SKILL.md +208 -0
  578. package/pennyfarthing-dist/skills/testing/SKILL.md +99 -0
  579. package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +124 -0
  580. package/pennyfarthing-dist/skills/theme/skill.md +129 -0
  581. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +169 -0
  582. package/pennyfarthing-dist/skills/workflow/SKILL.md +160 -0
  583. package/pennyfarthing-dist/skills/yq/SKILL.md +264 -0
  584. package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +187 -0
  585. package/pennyfarthing-dist/templates/LEADERBOARD.template.md +59 -0
  586. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +276 -0
  587. package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +61 -0
  588. package/pennyfarthing-dist/templates/persona-config.yaml.template +22 -0
  589. package/pennyfarthing-dist/templates/preferences.yaml.template +15 -0
  590. package/pennyfarthing-dist/templates/settings.local.json.template +90 -0
  591. package/pennyfarthing-dist/templates/setup-env.sh.template +18 -0
  592. package/pennyfarthing-dist/templates/shared-context.md.template +70 -0
  593. package/pennyfarthing-dist/templates/sidecar/decisions.md.template +40 -0
  594. package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +37 -0
  595. package/pennyfarthing-dist/templates/sidecar/patterns.md.template +34 -0
  596. package/pennyfarthing-dist/workflows/agent-docs.yaml +70 -0
  597. package/pennyfarthing-dist/workflows/bdd.yaml +58 -0
  598. package/pennyfarthing-dist/workflows/tdd.yaml +50 -0
  599. package/pennyfarthing-dist/workflows/trivial.yaml +40 -0
@@ -0,0 +1,187 @@
1
+ # Leaderboard Schema Specification
2
+ # Version: 1.0.0
3
+ # Generated leaderboards must conform to this structure
4
+
5
+ schema_version: 1
6
+
7
+ # Header section - metadata about the benchmark
8
+ header:
9
+ scenario_name:
10
+ type: string
11
+ example: "race-condition-cache"
12
+ description: "Scenario identifier from scenarios/ directory"
13
+
14
+ scenario_title:
15
+ type: string
16
+ example: "Race Condition Cache"
17
+ description: "Human-readable scenario name (title case)"
18
+
19
+ difficulty:
20
+ type: enum
21
+ values: [easy, medium, hard, extreme]
22
+ description: "Scenario difficulty level"
23
+
24
+ role:
25
+ type: string
26
+ example: "dev"
27
+ description: "Agent role (dev, reviewer, tea, sm, architect)"
28
+
29
+ role_title:
30
+ type: string
31
+ example: "Developer"
32
+ description: "Human-readable role name"
33
+
34
+ baseline:
35
+ mean:
36
+ type: number
37
+ precision: 2
38
+ description: "Control agent mean score"
39
+ std_dev:
40
+ type: number
41
+ precision: 2
42
+ description: "Control agent standard deviation"
43
+ n:
44
+ type: integer
45
+ description: "Number of control runs"
46
+
47
+ version:
48
+ type: string
49
+ example: "5.0.1"
50
+ description: "Pennyfarthing version used"
51
+
52
+ generated_timestamp:
53
+ type: string
54
+ format: "ISO8601"
55
+ example: "2026-01-03T03:45:00Z"
56
+ description: "When leaderboard was generated"
57
+
58
+ # Rankings table columns
59
+ rankings:
60
+ columns:
61
+ - name: Rank
62
+ type: integer
63
+ description: "Position by mean score (ties share rank)"
64
+
65
+ - name: Theme
66
+ type: string
67
+ description: "Theme identifier"
68
+
69
+ - name: Character
70
+ type: string
71
+ description: "Persona character name for this role. Cross-role entries show '(as {role})' suffix."
72
+
73
+ - name: Mean
74
+ type: number
75
+ precision: 2
76
+ description: "Mean score across all runs"
77
+
78
+ - name: Std Dev
79
+ type: number
80
+ precision: 2
81
+ description: "Standard deviation of scores"
82
+
83
+ - name: n
84
+ type: integer
85
+ description: "Number of runs"
86
+
87
+ - name: Delta
88
+ type: number
89
+ precision: 2
90
+ signed: true
91
+ description: "Difference from baseline mean (+ or -)"
92
+
93
+ - name: "Cohen's d"
94
+ type: number
95
+ precision: 2
96
+ signed: true
97
+ description: "Effect size using pooled standard deviation"
98
+
99
+ # Cross-role metadata (optional, present when cross_role=true in summary.yaml)
100
+ cross_role_fields:
101
+ - name: Cross-Role
102
+ type: boolean
103
+ optional: true
104
+ description: "True if character is performing outside their native role"
105
+
106
+ - name: Source Role
107
+ type: string
108
+ optional: true
109
+ description: "Character's native role (e.g., 'sm' for Prospero)"
110
+
111
+ - name: Effective Role
112
+ type: string
113
+ optional: true
114
+ description: "Role being performed (matches the leaderboard's role)"
115
+
116
+ special_rows:
117
+ control_row:
118
+ position: "After last positive delta, before first negative"
119
+ format: "| --- | **CONTROL** | **Baseline** | **{mean}** | **{std}** | **{n}** | **0.00** | **0.00** |"
120
+ description: "Bold separator row showing baseline"
121
+
122
+ sorting:
123
+ primary: mean
124
+ order: descending
125
+ tie_handling: "Same rank, listed alphabetically by theme"
126
+
127
+ # Cohen's d calculation
128
+ cohens_d:
129
+ formula: "d = (M1 - M2) / sqrt(((n1-1)*s1² + (n2-1)*s2²) / (n1+n2-2))"
130
+ interpretation:
131
+ negligible: "< 0.20"
132
+ small: "0.20"
133
+ medium: "0.50"
134
+ large: "0.80"
135
+ very_large: "> 1.20"
136
+ notes:
137
+ - "Positive d = outperforms baseline"
138
+ - "Negative d = underperforms baseline"
139
+ - "Uses pooled standard deviation for unequal sample sizes"
140
+
141
+ # Summary statistics section
142
+ summary:
143
+ total_themes:
144
+ type: integer
145
+ description: "Count of all themed agents benchmarked"
146
+
147
+ themes_above:
148
+ type: integer
149
+ description: "Count with mean > baseline mean"
150
+
151
+ themes_near:
152
+ type: integer
153
+ description: "Count within 1 point of baseline"
154
+
155
+ total_runs:
156
+ type: integer
157
+ description: "Sum of all n values"
158
+
159
+ # Top/Bottom performer tables
160
+ highlights:
161
+ top_performers:
162
+ count: 5
163
+ criteria: "Highest Cohen's d (most positive)"
164
+ columns: [Theme, Character, Mean, Delta, "Cohen's d"]
165
+
166
+ bottom_performers:
167
+ count: 5
168
+ criteria: "Lowest Cohen's d (most negative)"
169
+ columns: [Theme, Character, Mean, Delta, "Cohen's d"]
170
+
171
+ # Data sources
172
+ data_sources:
173
+ baseline: "internal/results/baselines/{scenario}/{role}/summary.yaml"
174
+ themes: "internal/results/benchmarks/{scenario}/{theme}-{role}/summary.yaml"
175
+ cross_role: "internal/results/benchmarks/{scenario}/{theme}-{character}-as-{role}/summary.yaml"
176
+ ocean_analysis: "./OCEAN-ANALYSIS.md"
177
+
178
+ # Generation requirements
179
+ requirements:
180
+ minimum_n: 4
181
+ recommended_n: 5
182
+ baseline_n: 10
183
+ character_required: true
184
+ notes:
185
+ - "All themes should have consistent n for valid comparison"
186
+ - "Character names must be populated from theme YAML"
187
+ - "Model and token data tracked per-run, not in leaderboard header"
@@ -0,0 +1,59 @@
1
+ # {SCENARIO_TITLE} - {ROLE_TITLE} Leaderboard
2
+
3
+ **Scenario:** `{scenario_name}` ({difficulty} difficulty)
4
+ **Role:** {role_title} (`{role}`)
5
+ **Baseline:** Control agent, mean {baseline_mean}, std_dev {baseline_std}, n={baseline_n}
6
+ **Pennyfarthing Version:** {version}
7
+ **Generated:** {generated_timestamp}
8
+
9
+ **Analysis:** [OCEAN Personality Correlation Analysis](./OCEAN-ANALYSIS.md)
10
+
11
+ ---
12
+
13
+ ## Cohen's d Interpretation
14
+
15
+ | Effect Size | Cohen's d |
16
+ |-------------|-----------|
17
+ | Negligible | |d| < 0.20 |
18
+ | Small | |d| = 0.20 |
19
+ | Medium | |d| = 0.50 |
20
+ | Large | |d| = 0.80 |
21
+ | Very Large | |d| > 1.20 |
22
+
23
+ ---
24
+
25
+ ## Rankings
26
+
27
+ | Rank | Theme | Character | Mean | Std Dev | n | Delta | Cohen's d |
28
+ |------|-------|-----------|------|---------|---|-------|-----------|
29
+ {RANKINGS_ROWS}
30
+
31
+ ---
32
+
33
+ ## Summary Statistics
34
+
35
+ - **Total Themes:** {total_themes}
36
+ - **Themes Beating Baseline:** {themes_above}
37
+ - **Themes At/Near Baseline (within 1 point):** {themes_near}
38
+ - **Total Benchmark Runs:** {total_runs}
39
+
40
+ ## Top Performers (Above Baseline)
41
+
42
+ | Theme | Character | Mean | Delta | Cohen's d |
43
+ |-------|-----------|------|-------|-----------|
44
+ {TOP_PERFORMERS_ROWS}
45
+
46
+ ## Bottom Performers
47
+
48
+ | Theme | Character | Mean | Delta | Cohen's d |
49
+ |-------|-----------|------|-------|-----------|
50
+ {BOTTOM_PERFORMERS_ROWS}
51
+
52
+ ---
53
+
54
+ ## Notes
55
+
56
+ - Cohen's d uses pooled standard deviation: `d = (M1 - M2) / sqrt(((n1-1)*s1² + (n2-1)*s2²) / (n1+n2-2))`
57
+ - Positive d indicates theme outperforms baseline; negative indicates underperformance
58
+ - Model and token usage tracked per-run in individual result files
59
+ - {scenario_description}
@@ -0,0 +1,276 @@
1
+ # Pennyfarthing Agent Scope Configuration
2
+ # Defines permissions and context for each agent type
3
+ #
4
+ # Three-Tier Permission Model:
5
+ # 1. Strategic Agents (Opus) - Full project scope, broad permissions
6
+ # 2. Tactical Agents (Opus) - Story-scoped, focused permissions
7
+ # 3. Helper Subagents (Haiku) - Minimal scope, specific task permissions
8
+
9
+ # =============================================================================
10
+ # STRATEGIC AGENTS - Full project scope, planning & coordination
11
+ # =============================================================================
12
+ # These agents see the whole project and can make cross-cutting decisions.
13
+ # They handle: sprint planning, architecture, story coordination, DevOps
14
+
15
+ strategic_agents:
16
+
17
+ orchestrator:
18
+ description: "Master orchestrator - coordinates all agents"
19
+ scope: full
20
+ permissions:
21
+ - Read
22
+ - Grep
23
+ - Glob
24
+ - Bash
25
+ - Edit(.claude/**)
26
+ - Edit(sprint/**)
27
+ - Edit(.session/**)
28
+ - Write(.claude/**)
29
+ - Write(sprint/**)
30
+ - Write(.session/**)
31
+ - Skill(*) # Can invoke any agent
32
+ - Task(*) # Can spawn any subagent
33
+ context_files:
34
+ - sprint/current-sprint.yaml
35
+ - .claude/project/docs/shared-context.md
36
+ - .session/*-session.md
37
+
38
+ pm:
39
+ description: "Product Manager - strategic planning & prioritization"
40
+ scope: full
41
+ permissions:
42
+ - Read
43
+ - Grep
44
+ - Glob
45
+ - Edit(sprint/**)
46
+ - Edit(.session/**)
47
+ - Write(sprint/**)
48
+ - Skill(sm)
49
+ - Skill(architect)
50
+ context_files:
51
+ - sprint/current-sprint.yaml
52
+ - .claude/project/docs/shared-context.md
53
+ - .session/*-session.md
54
+
55
+ sm:
56
+ description: "Scrum Master - story coordination & workflow"
57
+ scope: full
58
+ permissions:
59
+ - Read
60
+ - Grep
61
+ - Glob
62
+ - Bash
63
+ - Edit(sprint/**)
64
+ - Edit(.session/**)
65
+ - Write(sprint/**)
66
+ - Write(.session/**)
67
+ - Skill(tea)
68
+ - Skill(dev)
69
+ - Skill(reviewer)
70
+ - Task(workflow-status-check)
71
+ - Task(sm-*)
72
+ context_files:
73
+ - sprint/current-sprint.yaml
74
+ - .claude/project/docs/shared-context.md
75
+ - .session/*-session.md
76
+
77
+ architect:
78
+ description: "System Architect - technical design & patterns"
79
+ scope: full
80
+ permissions:
81
+ - Read
82
+ - Grep
83
+ - Glob
84
+ - Edit(.claude/project/**)
85
+ - Write(.claude/project/**)
86
+ context_files:
87
+ - .claude/project/docs/shared-context.md
88
+ - .session/*-session.md
89
+
90
+ devops:
91
+ description: "DevOps Engineer - infrastructure & deployment"
92
+ scope: infrastructure
93
+ permissions:
94
+ - Read
95
+ - Grep
96
+ - Glob
97
+ - Bash
98
+ - Edit(.github/**)
99
+ - Edit(docker*)
100
+ - Edit(**/Dockerfile)
101
+ - Write(.github/**)
102
+ context_files:
103
+ - sprint/current-sprint.yaml
104
+ - .claude/project/docs/shared-context.md
105
+ - .session/*-session.md
106
+
107
+ # =============================================================================
108
+ # TACTICAL AGENTS - Story-scoped, focused on current work
109
+ # =============================================================================
110
+ # These agents focus on the active story and implement specific changes.
111
+ # They handle: coding, testing, reviewing, documentation
112
+
113
+ tactical_agents:
114
+
115
+ dev:
116
+ description: "Developer - implements features & fixes"
117
+ scope: story
118
+ permissions:
119
+ - Read
120
+ - Grep
121
+ - Glob
122
+ - Bash
123
+ - Edit(src/**)
124
+ - Edit(tests/**)
125
+ - Edit(.session/**)
126
+ - Write(src/**)
127
+ - Write(tests/**)
128
+ - Task(testing-runner)
129
+ - Task(dev-handoff)
130
+ context_files:
131
+ - .session/*-session.md
132
+ - .claude/project/docs/shared-context.md
133
+
134
+ tea:
135
+ description: "Test Engineer - writes tests & test strategy"
136
+ scope: story
137
+ permissions:
138
+ - Read
139
+ - Grep
140
+ - Glob
141
+ - Bash
142
+ - Edit(tests/**)
143
+ - Edit(.session/**)
144
+ - Write(tests/**)
145
+ - Task(testing-runner)
146
+ - Task(tea-handoff)
147
+ context_files:
148
+ - .session/*-session.md
149
+ - .claude/project/docs/shared-context.md
150
+
151
+ reviewer:
152
+ description: "Code Reviewer - adversarial review & quality"
153
+ scope: story
154
+ permissions:
155
+ - Read
156
+ - Grep
157
+ - Glob
158
+ - Bash # For git diff, tests
159
+ - Edit(.session/**) # Write assessment
160
+ - Task(reviewer-preflight)
161
+ - Task(reviewer-handoff-*)
162
+ context_files:
163
+ - .session/*-session.md
164
+ - .claude/project/docs/shared-context.md
165
+
166
+ tech-writer:
167
+ description: "Technical Writer - documentation & guides"
168
+ scope: story
169
+ permissions:
170
+ - Read
171
+ - Grep
172
+ - Glob
173
+ - Edit(**/*.md)
174
+ - Edit(.claude/project/docs/**)
175
+ - Write(**/*.md)
176
+ context_files:
177
+ - .session/*-session.md
178
+ - .claude/project/docs/shared-context.md
179
+
180
+ ux-designer:
181
+ description: "UX Designer - user experience & UI patterns"
182
+ scope: story
183
+ permissions:
184
+ - Read
185
+ - Grep
186
+ - Glob
187
+ - Edit(src/components/**)
188
+ - Edit(src/styles/**)
189
+ - Edit(**/*.css)
190
+ - Edit(**/*.scss)
191
+ context_files:
192
+ - .session/*-session.md
193
+ - .claude/project/docs/shared-context.md
194
+
195
+ # =============================================================================
196
+ # HELPER SUBAGENTS - Minimal scope, specific task execution
197
+ # =============================================================================
198
+ # These are Haiku-powered subagents that handle mechanical tasks.
199
+ # They have restricted permissions and short context windows.
200
+
201
+ helper_subagents:
202
+
203
+ testing-runner:
204
+ description: "Runs tests and reports results"
205
+ scope: task
206
+ model: haiku
207
+ permissions:
208
+ - Read
209
+ - Bash # Run test commands only
210
+ - Grep # Search test output
211
+
212
+ workflow-status-check:
213
+ description: "Scans session files and git status"
214
+ scope: task
215
+ model: haiku
216
+ permissions:
217
+ - Read
218
+ - Glob
219
+ - Grep
220
+ - Bash # Git commands only
221
+
222
+ sm-story-setup:
223
+ description: "Creates branches and session files"
224
+ scope: task
225
+ model: haiku
226
+ permissions:
227
+ - Read
228
+ - Bash # Git commands
229
+ - Edit(.session/**)
230
+ - Edit(sprint/**)
231
+ - Write(.session/**)
232
+
233
+ reviewer-preflight:
234
+ description: "Gathers test/lint results before review"
235
+ scope: task
236
+ model: haiku
237
+ permissions:
238
+ - Read
239
+ - Bash
240
+ - Grep
241
+ - Glob
242
+
243
+ dev-handoff:
244
+ description: "Updates session for Dev → Reviewer transition"
245
+ scope: task
246
+ model: haiku
247
+ permissions:
248
+ - Read
249
+ - Bash # Git status
250
+ - Edit(.session/**)
251
+ - Grep
252
+
253
+ # =============================================================================
254
+ # PERMISSION SCOPE REFERENCE
255
+ # =============================================================================
256
+ # Permission patterns follow Claude Code conventions:
257
+ #
258
+ # Tool Permissions:
259
+ # Read - Read any file
260
+ # Grep - Search file contents
261
+ # Glob - Find files by pattern
262
+ # Bash - Execute shell commands
263
+ # Edit(path) - Edit files matching path pattern
264
+ # Write(path) - Create files matching path pattern
265
+ # Skill(name) - Invoke named skill/agent
266
+ # Task(type) - Spawn subagent of type
267
+ #
268
+ # Path Patterns:
269
+ # ** - Recursive wildcard
270
+ # * - Single level wildcard
271
+ # src/** - All files under src/
272
+ # **/*.md - All markdown files
273
+ #
274
+ # Wildcards in permissions:
275
+ # Skill(*) - Any skill
276
+ # Task(sm-*) - Any sm-prefixed subagent
@@ -0,0 +1,61 @@
1
+ # Pennyfarthing Project Settings
2
+ # Consolidated configuration for repos, services, and testing
3
+
4
+ # ============================================================================
5
+ # Repository Definitions
6
+ # ============================================================================
7
+ repos:
8
+ ${PROJECT_NAME}:
9
+ path: .
10
+ type: monorepo
11
+ language: typescript
12
+ test_command: npm test
13
+ build_command: npm run build
14
+ lint_command: npm run lint
15
+
16
+ # Multi-repo example (uncomment and modify):
17
+ # repos:
18
+ # api:
19
+ # path: api
20
+ # type: api
21
+ # language: go
22
+ # test_command: go test ./...
23
+ # ui:
24
+ # path: ui
25
+ # type: ui
26
+ # language: typescript
27
+ # test_command: npm test
28
+
29
+ # ============================================================================
30
+ # Services Configuration
31
+ # ============================================================================
32
+ # Define dev server ports for worktree management
33
+ # Each service gets offset ports in worktrees (base + worktree_index * port_offset)
34
+
35
+ services:
36
+ port_offset: 100
37
+ definitions:
38
+ - name: App
39
+ base_port: 3000
40
+ env_var: APP_PORT
41
+
42
+ # Example for Go API + React UI:
43
+ # services:
44
+ # port_offset: 100
45
+ # definitions:
46
+ # - name: API
47
+ # base_port: 8080
48
+ # env_var: API_PORT
49
+ # - name: UI
50
+ # base_port: 5173
51
+ # env_var: UI_PORT
52
+
53
+ # ============================================================================
54
+ # Testing Configuration (optional)
55
+ # ============================================================================
56
+ # testing:
57
+ # log_dir: ".session"
58
+ # skip_patterns_by_language:
59
+ # typescript:
60
+ # patterns: ['it\.skip', 'describe\.skip']
61
+ # file_pattern: "*.test.*"
@@ -0,0 +1,22 @@
1
+ # Persona Configuration
2
+ # Controls agent personalities in Pennyfarthing
3
+ #
4
+ # Available themes: discworld, star-trek-tos, literary-classics, minimalist
5
+ # See .pennyfarthing/personas/themes/ for full list
6
+
7
+ # Base theme
8
+ theme: discworld
9
+
10
+ # Personality attributes (modify agent behavior independent of theme)
11
+ attributes:
12
+ verbosity: medium # low | medium | high
13
+ formality: casual # formal | casual | playful
14
+ humor: enabled # enabled | disabled | subtle
15
+ emoji_use: minimal # none | minimal | frequent
16
+
17
+ # Per-agent overrides (optional)
18
+ overrides: {}
19
+ # Example: Use a different character for reviewer
20
+ # reviewer:
21
+ # theme: star-trek-tos
22
+ # character: spock
@@ -0,0 +1,15 @@
1
+ # Pennyfarthing User Preferences
2
+ # Copy to .claude/pennyfarthing/preferences.yaml to customize
3
+ # Override with .local.yaml for personal preferences (gitignored)
4
+
5
+ # Enable persona character voice in agent output
6
+ # When false, agents respond in a neutral, professional tone
7
+ character_voice: true
8
+
9
+ # Show reasoning and decision explanations
10
+ # When true, agents explain their thought process
11
+ explain_decisions: true
12
+
13
+ # Auto-commit on story completion
14
+ # When true, SM auto-commits after finishing a story
15
+ auto_commit: false
@@ -0,0 +1,90 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Read",
5
+ "Grep",
6
+ "Glob",
7
+ "Bash",
8
+ "Bash(claude:*)",
9
+ "Bash(date:*)",
10
+ "Bash(mkdir:*)",
11
+ "Edit(.claude/**)",
12
+ "Edit(.pennyfarthing/**)",
13
+ "Edit(sprint/**)",
14
+ "Edit(.session/**)",
15
+ "Edit(results/**)",
16
+ "Write(.claude/**)",
17
+ "Write(.pennyfarthing/**)",
18
+ "Write(sprint/**)",
19
+ "Write(.session/**)",
20
+ "Write(results/**)",
21
+ "Skill(sm)",
22
+ "Skill(tea)",
23
+ "Skill(dev)",
24
+ "Skill(reviewer)",
25
+ "Skill(solo)",
26
+ "Skill(benchmark)",
27
+ "Skill(benchmark-control)",
28
+ "Skill(judge)",
29
+ "Skill(finalize-run)"
30
+ ]
31
+ },
32
+ "context_budget": {
33
+ "warning_threshold": 70,
34
+ "critical_threshold": 85,
35
+ "max_tokens": 200000
36
+ },
37
+ "hooks": {
38
+ "SessionStart": [
39
+ {
40
+ "hooks": [
41
+ {
42
+ "type": "command",
43
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/hooks/session-start.sh"
44
+ }
45
+ ]
46
+ },
47
+ {
48
+ "hooks": [
49
+ {
50
+ "type": "command",
51
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/project/hooks/setup-env.sh"
52
+ }
53
+ ]
54
+ }
55
+ ],
56
+ "PreToolUse": [
57
+ {
58
+ "matcher": "Edit|Write",
59
+ "hooks": [
60
+ {
61
+ "type": "command",
62
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/hooks/pre-edit-check.sh"
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ "matcher": "Edit|Write|Bash|Task",
68
+ "hooks": [
69
+ {
70
+ "type": "command",
71
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/hooks/context-warning.sh"
72
+ }
73
+ ]
74
+ },
75
+ {
76
+ "matcher": "Edit|Write|Bash|Task",
77
+ "hooks": [
78
+ {
79
+ "type": "command",
80
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/hooks/context-circuit-breaker.sh"
81
+ }
82
+ ]
83
+ }
84
+ ]
85
+ },
86
+ "statusLine": {
87
+ "type": "command",
88
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/statusline.sh"
89
+ }
90
+ }