@pennyfarthing/core 7.4.1 → 7.5.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 (890) hide show
  1. package/{packages/core/dist → dist}/cli/utils/files.d.ts +0 -1
  2. package/dist/cli/utils/files.js +179 -0
  3. package/{packages/core/dist → dist}/cli/utils/manifest.d.ts +0 -1
  4. package/dist/cli/utils/manifest.js +93 -0
  5. package/{packages/core/dist → dist}/cli/utils/version.d.ts +0 -1
  6. package/dist/cli/utils/version.js +70 -0
  7. package/{packages/core/dist → dist}/index.d.ts +0 -1
  8. package/dist/index.js +48 -0
  9. package/{packages/core/dist → dist}/permissions/index.d.ts +0 -1
  10. package/dist/permissions/index.js +16 -0
  11. package/{packages/core/dist → dist}/permissions/permission-schema.d.ts +0 -1
  12. package/{packages/core/dist → dist}/permissions/permission-schema.js +13 -9
  13. package/{packages/core/dist → dist}/scripts/job-fair-aggregator.d.ts +0 -1
  14. package/dist/scripts/job-fair-aggregator.js +690 -0
  15. package/{packages/core/dist → dist}/workflow/index.d.ts +0 -1
  16. package/dist/workflow/index.js +31 -0
  17. package/{packages/core/dist → dist}/workflow/workflow-loader.d.ts +0 -1
  18. package/{packages/core/dist → dist}/workflow/workflow-loader.js +40 -34
  19. package/{packages/core/dist → dist}/workflow/workflow-permissions.d.ts +0 -1
  20. package/{packages/core/dist → dist}/workflow/workflow-permissions.js +14 -8
  21. package/{packages/core/dist → dist}/workflow/workflow-router.d.ts +0 -1
  22. package/{packages/core/dist → dist}/workflow/workflow-router.js +70 -51
  23. package/{packages/core/dist → dist}/workflow/workflow-schema.d.ts +0 -1
  24. package/{packages/core/dist → dist}/workflow/workflow-schema.js +62 -59
  25. package/package.json +36 -31
  26. package/LICENSE +0 -14
  27. package/README.md +0 -301
  28. package/packages/core/dist/bmad/context-reader.d.ts +0 -71
  29. package/packages/core/dist/bmad/context-reader.d.ts.map +0 -1
  30. package/packages/core/dist/bmad/context-reader.js +0 -369
  31. package/packages/core/dist/bmad/context-reader.js.map +0 -1
  32. package/packages/core/dist/bmad/context-reader.test.d.ts +0 -71
  33. package/packages/core/dist/bmad/context-reader.test.d.ts.map +0 -1
  34. package/packages/core/dist/bmad/context-reader.test.js +0 -878
  35. package/packages/core/dist/bmad/context-reader.test.js.map +0 -1
  36. package/packages/core/dist/bmad/epics-parser.d.ts +0 -61
  37. package/packages/core/dist/bmad/epics-parser.d.ts.map +0 -1
  38. package/packages/core/dist/bmad/epics-parser.js +0 -331
  39. package/packages/core/dist/bmad/epics-parser.js.map +0 -1
  40. package/packages/core/dist/bmad/epics-parser.test.d.ts +0 -7
  41. package/packages/core/dist/bmad/epics-parser.test.d.ts.map +0 -1
  42. package/packages/core/dist/bmad/epics-parser.test.js +0 -449
  43. package/packages/core/dist/bmad/epics-parser.test.js.map +0 -1
  44. package/packages/core/dist/bmad/index.d.ts +0 -11
  45. package/packages/core/dist/bmad/index.d.ts.map +0 -1
  46. package/packages/core/dist/bmad/index.js +0 -24
  47. package/packages/core/dist/bmad/index.js.map +0 -1
  48. package/packages/core/dist/bmad/status-sync.d.ts +0 -173
  49. package/packages/core/dist/bmad/status-sync.d.ts.map +0 -1
  50. package/packages/core/dist/bmad/status-sync.js +0 -463
  51. package/packages/core/dist/bmad/status-sync.js.map +0 -1
  52. package/packages/core/dist/bmad/status-sync.test.d.ts +0 -7
  53. package/packages/core/dist/bmad/status-sync.test.d.ts.map +0 -1
  54. package/packages/core/dist/bmad/status-sync.test.js +0 -702
  55. package/packages/core/dist/bmad/status-sync.test.js.map +0 -1
  56. package/packages/core/dist/bmad/story-exporter.d.ts +0 -55
  57. package/packages/core/dist/bmad/story-exporter.d.ts.map +0 -1
  58. package/packages/core/dist/bmad/story-exporter.js +0 -170
  59. package/packages/core/dist/bmad/story-exporter.js.map +0 -1
  60. package/packages/core/dist/bmad/story-exporter.test.d.ts +0 -51
  61. package/packages/core/dist/bmad/story-exporter.test.d.ts.map +0 -1
  62. package/packages/core/dist/bmad/story-exporter.test.js +0 -603
  63. package/packages/core/dist/bmad/story-exporter.test.js.map +0 -1
  64. package/packages/core/dist/bmad/story-parser.d.ts +0 -44
  65. package/packages/core/dist/bmad/story-parser.d.ts.map +0 -1
  66. package/packages/core/dist/bmad/story-parser.js +0 -307
  67. package/packages/core/dist/bmad/story-parser.js.map +0 -1
  68. package/packages/core/dist/bmad/story-parser.test.d.ts +0 -44
  69. package/packages/core/dist/bmad/story-parser.test.d.ts.map +0 -1
  70. package/packages/core/dist/bmad/story-parser.test.js +0 -693
  71. package/packages/core/dist/bmad/story-parser.test.js.map +0 -1
  72. package/packages/core/dist/cli/commands/command.d.ts +0 -28
  73. package/packages/core/dist/cli/commands/command.d.ts.map +0 -1
  74. package/packages/core/dist/cli/commands/command.js +0 -399
  75. package/packages/core/dist/cli/commands/command.js.map +0 -1
  76. package/packages/core/dist/cli/commands/cyclist.d.ts +0 -46
  77. package/packages/core/dist/cli/commands/cyclist.d.ts.map +0 -1
  78. package/packages/core/dist/cli/commands/cyclist.js +0 -196
  79. package/packages/core/dist/cli/commands/cyclist.js.map +0 -1
  80. package/packages/core/dist/cli/commands/cyclist.test.d.ts +0 -13
  81. package/packages/core/dist/cli/commands/cyclist.test.d.ts.map +0 -1
  82. package/packages/core/dist/cli/commands/cyclist.test.js +0 -245
  83. package/packages/core/dist/cli/commands/cyclist.test.js.map +0 -1
  84. package/packages/core/dist/cli/commands/doctor.d.ts +0 -9
  85. package/packages/core/dist/cli/commands/doctor.d.ts.map +0 -1
  86. package/packages/core/dist/cli/commands/doctor.js +0 -652
  87. package/packages/core/dist/cli/commands/doctor.js.map +0 -1
  88. package/packages/core/dist/cli/commands/init.d.ts +0 -8
  89. package/packages/core/dist/cli/commands/init.d.ts.map +0 -1
  90. package/packages/core/dist/cli/commands/init.js +0 -525
  91. package/packages/core/dist/cli/commands/init.js.map +0 -1
  92. package/packages/core/dist/cli/commands/skill.d.ts +0 -28
  93. package/packages/core/dist/cli/commands/skill.d.ts.map +0 -1
  94. package/packages/core/dist/cli/commands/skill.js +0 -416
  95. package/packages/core/dist/cli/commands/skill.js.map +0 -1
  96. package/packages/core/dist/cli/commands/theme.d.ts +0 -21
  97. package/packages/core/dist/cli/commands/theme.d.ts.map +0 -1
  98. package/packages/core/dist/cli/commands/theme.js +0 -201
  99. package/packages/core/dist/cli/commands/theme.js.map +0 -1
  100. package/packages/core/dist/cli/commands/uninstall.d.ts +0 -8
  101. package/packages/core/dist/cli/commands/uninstall.d.ts.map +0 -1
  102. package/packages/core/dist/cli/commands/uninstall.js +0 -237
  103. package/packages/core/dist/cli/commands/uninstall.js.map +0 -1
  104. package/packages/core/dist/cli/commands/update.d.ts +0 -9
  105. package/packages/core/dist/cli/commands/update.d.ts.map +0 -1
  106. package/packages/core/dist/cli/commands/update.js +0 -421
  107. package/packages/core/dist/cli/commands/update.js.map +0 -1
  108. package/packages/core/dist/cli/commands/version.d.ts +0 -2
  109. package/packages/core/dist/cli/commands/version.d.ts.map +0 -1
  110. package/packages/core/dist/cli/commands/version.js +0 -28
  111. package/packages/core/dist/cli/commands/version.js.map +0 -1
  112. package/packages/core/dist/cli/customization.test.d.ts +0 -12
  113. package/packages/core/dist/cli/customization.test.d.ts.map +0 -1
  114. package/packages/core/dist/cli/customization.test.js +0 -84
  115. package/packages/core/dist/cli/customization.test.js.map +0 -1
  116. package/packages/core/dist/cli/cyclist-migration.test.d.ts +0 -16
  117. package/packages/core/dist/cli/cyclist-migration.test.d.ts.map +0 -1
  118. package/packages/core/dist/cli/cyclist-migration.test.js +0 -225
  119. package/packages/core/dist/cli/cyclist-migration.test.js.map +0 -1
  120. package/packages/core/dist/cli/index.d.ts +0 -3
  121. package/packages/core/dist/cli/index.d.ts.map +0 -1
  122. package/packages/core/dist/cli/index.js +0 -174
  123. package/packages/core/dist/cli/index.js.map +0 -1
  124. package/packages/core/dist/cli/ocean-profiles.test.d.ts +0 -13
  125. package/packages/core/dist/cli/ocean-profiles.test.d.ts.map +0 -1
  126. package/packages/core/dist/cli/ocean-profiles.test.js +0 -134
  127. package/packages/core/dist/cli/ocean-profiles.test.js.map +0 -1
  128. package/packages/core/dist/cli/theme-maker.test.d.ts +0 -11
  129. package/packages/core/dist/cli/theme-maker.test.d.ts.map +0 -1
  130. package/packages/core/dist/cli/theme-maker.test.js +0 -356
  131. package/packages/core/dist/cli/theme-maker.test.js.map +0 -1
  132. package/packages/core/dist/cli/utils/constants.d.ts +0 -66
  133. package/packages/core/dist/cli/utils/constants.d.ts.map +0 -1
  134. package/packages/core/dist/cli/utils/constants.js +0 -54
  135. package/packages/core/dist/cli/utils/constants.js.map +0 -1
  136. package/packages/core/dist/cli/utils/files.d.ts.map +0 -1
  137. package/packages/core/dist/cli/utils/files.js +0 -162
  138. package/packages/core/dist/cli/utils/files.js.map +0 -1
  139. package/packages/core/dist/cli/utils/logger.d.ts +0 -26
  140. package/packages/core/dist/cli/utils/logger.d.ts.map +0 -1
  141. package/packages/core/dist/cli/utils/logger.js +0 -88
  142. package/packages/core/dist/cli/utils/logger.js.map +0 -1
  143. package/packages/core/dist/cli/utils/manifest.d.ts.map +0 -1
  144. package/packages/core/dist/cli/utils/manifest.js +0 -90
  145. package/packages/core/dist/cli/utils/manifest.js.map +0 -1
  146. package/packages/core/dist/cli/utils/node-modules.d.ts +0 -6
  147. package/packages/core/dist/cli/utils/node-modules.d.ts.map +0 -1
  148. package/packages/core/dist/cli/utils/node-modules.js +0 -32
  149. package/packages/core/dist/cli/utils/node-modules.js.map +0 -1
  150. package/packages/core/dist/cli/utils/prompts.d.ts +0 -34
  151. package/packages/core/dist/cli/utils/prompts.d.ts.map +0 -1
  152. package/packages/core/dist/cli/utils/prompts.js +0 -93
  153. package/packages/core/dist/cli/utils/prompts.js.map +0 -1
  154. package/packages/core/dist/cli/utils/symlinks.d.ts +0 -29
  155. package/packages/core/dist/cli/utils/symlinks.d.ts.map +0 -1
  156. package/packages/core/dist/cli/utils/symlinks.js +0 -181
  157. package/packages/core/dist/cli/utils/symlinks.js.map +0 -1
  158. package/packages/core/dist/cli/utils/themes.d.ts +0 -101
  159. package/packages/core/dist/cli/utils/themes.d.ts.map +0 -1
  160. package/packages/core/dist/cli/utils/themes.js +0 -373
  161. package/packages/core/dist/cli/utils/themes.js.map +0 -1
  162. package/packages/core/dist/cli/utils/themes.test.d.ts +0 -12
  163. package/packages/core/dist/cli/utils/themes.test.d.ts.map +0 -1
  164. package/packages/core/dist/cli/utils/themes.test.js +0 -147
  165. package/packages/core/dist/cli/utils/themes.test.js.map +0 -1
  166. package/packages/core/dist/cli/utils/version.d.ts.map +0 -1
  167. package/packages/core/dist/cli/utils/version.js +0 -64
  168. package/packages/core/dist/cli/utils/version.js.map +0 -1
  169. package/packages/core/dist/cli/workspace.test.d.ts +0 -8
  170. package/packages/core/dist/cli/workspace.test.d.ts.map +0 -1
  171. package/packages/core/dist/cli/workspace.test.js +0 -156
  172. package/packages/core/dist/cli/workspace.test.js.map +0 -1
  173. package/packages/core/dist/index.d.ts.map +0 -1
  174. package/packages/core/dist/index.js +0 -20
  175. package/packages/core/dist/index.js.map +0 -1
  176. package/packages/core/dist/jira/jira-epic-creation.d.ts +0 -109
  177. package/packages/core/dist/jira/jira-epic-creation.d.ts.map +0 -1
  178. package/packages/core/dist/jira/jira-epic-creation.js +0 -253
  179. package/packages/core/dist/jira/jira-epic-creation.js.map +0 -1
  180. package/packages/core/dist/jira/jira-epic-creation.test.d.ts +0 -16
  181. package/packages/core/dist/jira/jira-epic-creation.test.d.ts.map +0 -1
  182. package/packages/core/dist/jira/jira-epic-creation.test.js +0 -387
  183. package/packages/core/dist/jira/jira-epic-creation.test.js.map +0 -1
  184. package/packages/core/dist/jira/jira-sprint-sync.d.ts +0 -247
  185. package/packages/core/dist/jira/jira-sprint-sync.d.ts.map +0 -1
  186. package/packages/core/dist/jira/jira-sprint-sync.js +0 -670
  187. package/packages/core/dist/jira/jira-sprint-sync.js.map +0 -1
  188. package/packages/core/dist/jira/jira-sprint-sync.test.d.ts +0 -16
  189. package/packages/core/dist/jira/jira-sprint-sync.test.d.ts.map +0 -1
  190. package/packages/core/dist/jira/jira-sprint-sync.test.js +0 -845
  191. package/packages/core/dist/jira/jira-sprint-sync.test.js.map +0 -1
  192. package/packages/core/dist/permissions/index.d.ts.map +0 -1
  193. package/packages/core/dist/permissions/index.js +0 -13
  194. package/packages/core/dist/permissions/index.js.map +0 -1
  195. package/packages/core/dist/permissions/permission-schema.d.ts.map +0 -1
  196. package/packages/core/dist/permissions/permission-schema.js.map +0 -1
  197. package/packages/core/dist/permissions/permission-schema.test.d.ts +0 -40
  198. package/packages/core/dist/permissions/permission-schema.test.d.ts.map +0 -1
  199. package/packages/core/dist/permissions/permission-schema.test.js +0 -367
  200. package/packages/core/dist/permissions/permission-schema.test.js.map +0 -1
  201. package/packages/core/dist/scripts/add-ocean-profiles.d.ts +0 -9
  202. package/packages/core/dist/scripts/add-ocean-profiles.d.ts.map +0 -1
  203. package/packages/core/dist/scripts/add-ocean-profiles.js +0 -695
  204. package/packages/core/dist/scripts/add-ocean-profiles.js.map +0 -1
  205. package/packages/core/dist/scripts/benchmark-integration.d.ts +0 -182
  206. package/packages/core/dist/scripts/benchmark-integration.d.ts.map +0 -1
  207. package/packages/core/dist/scripts/benchmark-integration.js +0 -691
  208. package/packages/core/dist/scripts/benchmark-integration.js.map +0 -1
  209. package/packages/core/dist/scripts/benchmark-integration.test.d.ts +0 -13
  210. package/packages/core/dist/scripts/benchmark-integration.test.d.ts.map +0 -1
  211. package/packages/core/dist/scripts/benchmark-integration.test.js +0 -680
  212. package/packages/core/dist/scripts/benchmark-integration.test.js.map +0 -1
  213. package/packages/core/dist/scripts/debugging-scenarios.test.d.ts +0 -18
  214. package/packages/core/dist/scripts/debugging-scenarios.test.d.ts.map +0 -1
  215. package/packages/core/dist/scripts/debugging-scenarios.test.js +0 -317
  216. package/packages/core/dist/scripts/debugging-scenarios.test.js.map +0 -1
  217. package/packages/core/dist/scripts/generate-all-spiders.d.ts +0 -10
  218. package/packages/core/dist/scripts/generate-all-spiders.d.ts.map +0 -1
  219. package/packages/core/dist/scripts/generate-all-spiders.js +0 -306
  220. package/packages/core/dist/scripts/generate-all-spiders.js.map +0 -1
  221. package/packages/core/dist/scripts/generate-report.d.ts +0 -65
  222. package/packages/core/dist/scripts/generate-report.d.ts.map +0 -1
  223. package/packages/core/dist/scripts/generate-report.js +0 -378
  224. package/packages/core/dist/scripts/generate-report.js.map +0 -1
  225. package/packages/core/dist/scripts/generate-report.test.d.ts +0 -13
  226. package/packages/core/dist/scripts/generate-report.test.d.ts.map +0 -1
  227. package/packages/core/dist/scripts/generate-report.test.js +0 -363
  228. package/packages/core/dist/scripts/generate-report.test.js.map +0 -1
  229. package/packages/core/dist/scripts/generate-spider-report.d.ts +0 -65
  230. package/packages/core/dist/scripts/generate-spider-report.d.ts.map +0 -1
  231. package/packages/core/dist/scripts/generate-spider-report.js +0 -366
  232. package/packages/core/dist/scripts/generate-spider-report.js.map +0 -1
  233. package/packages/core/dist/scripts/generate-spider-report.test.d.ts +0 -13
  234. package/packages/core/dist/scripts/generate-spider-report.test.d.ts.map +0 -1
  235. package/packages/core/dist/scripts/generate-spider-report.test.js +0 -367
  236. package/packages/core/dist/scripts/generate-spider-report.test.js.map +0 -1
  237. package/packages/core/dist/scripts/generate-spider.d.ts +0 -47
  238. package/packages/core/dist/scripts/generate-spider.d.ts.map +0 -1
  239. package/packages/core/dist/scripts/generate-spider.js +0 -338
  240. package/packages/core/dist/scripts/generate-spider.js.map +0 -1
  241. package/packages/core/dist/scripts/generate-spider.test.d.ts +0 -14
  242. package/packages/core/dist/scripts/generate-spider.test.d.ts.map +0 -1
  243. package/packages/core/dist/scripts/generate-spider.test.js +0 -271
  244. package/packages/core/dist/scripts/generate-spider.test.js.map +0 -1
  245. package/packages/core/dist/scripts/job-fair-aggregator.d.ts.map +0 -1
  246. package/packages/core/dist/scripts/job-fair-aggregator.js +0 -547
  247. package/packages/core/dist/scripts/job-fair-aggregator.js.map +0 -1
  248. package/packages/core/dist/scripts/job-fair-aggregator.test.d.ts +0 -14
  249. package/packages/core/dist/scripts/job-fair-aggregator.test.d.ts.map +0 -1
  250. package/packages/core/dist/scripts/job-fair-aggregator.test.js +0 -616
  251. package/packages/core/dist/scripts/job-fair-aggregator.test.js.map +0 -1
  252. package/packages/core/dist/scripts/run-ci.test.d.ts +0 -20
  253. package/packages/core/dist/scripts/run-ci.test.d.ts.map +0 -1
  254. package/packages/core/dist/scripts/run-ci.test.js +0 -127
  255. package/packages/core/dist/scripts/run-ci.test.js.map +0 -1
  256. package/packages/core/dist/scripts/theme-detail.test.d.ts +0 -10
  257. package/packages/core/dist/scripts/theme-detail.test.d.ts.map +0 -1
  258. package/packages/core/dist/scripts/theme-detail.test.js +0 -199
  259. package/packages/core/dist/scripts/theme-detail.test.js.map +0 -1
  260. package/packages/core/dist/scripts/validate-ocean-profiles.d.ts +0 -9
  261. package/packages/core/dist/scripts/validate-ocean-profiles.d.ts.map +0 -1
  262. package/packages/core/dist/scripts/validate-ocean-profiles.js +0 -130
  263. package/packages/core/dist/scripts/validate-ocean-profiles.js.map +0 -1
  264. package/packages/core/dist/workflow/gate-handler.d.ts +0 -94
  265. package/packages/core/dist/workflow/gate-handler.d.ts.map +0 -1
  266. package/packages/core/dist/workflow/gate-handler.js +0 -189
  267. package/packages/core/dist/workflow/gate-handler.js.map +0 -1
  268. package/packages/core/dist/workflow/gate-handler.test.d.ts +0 -14
  269. package/packages/core/dist/workflow/gate-handler.test.d.ts.map +0 -1
  270. package/packages/core/dist/workflow/gate-handler.test.js +0 -543
  271. package/packages/core/dist/workflow/gate-handler.test.js.map +0 -1
  272. package/packages/core/dist/workflow/generic-handoff.d.ts +0 -281
  273. package/packages/core/dist/workflow/generic-handoff.d.ts.map +0 -1
  274. package/packages/core/dist/workflow/generic-handoff.js +0 -411
  275. package/packages/core/dist/workflow/generic-handoff.js.map +0 -1
  276. package/packages/core/dist/workflow/generic-handoff.test.d.ts +0 -21
  277. package/packages/core/dist/workflow/generic-handoff.test.d.ts.map +0 -1
  278. package/packages/core/dist/workflow/generic-handoff.test.js +0 -499
  279. package/packages/core/dist/workflow/generic-handoff.test.js.map +0 -1
  280. package/packages/core/dist/workflow/generic-sm-finish.d.ts +0 -89
  281. package/packages/core/dist/workflow/generic-sm-finish.d.ts.map +0 -1
  282. package/packages/core/dist/workflow/generic-sm-finish.js +0 -157
  283. package/packages/core/dist/workflow/generic-sm-finish.js.map +0 -1
  284. package/packages/core/dist/workflow/generic-sm-setup.d.ts +0 -138
  285. package/packages/core/dist/workflow/generic-sm-setup.d.ts.map +0 -1
  286. package/packages/core/dist/workflow/generic-sm-setup.js +0 -382
  287. package/packages/core/dist/workflow/generic-sm-setup.js.map +0 -1
  288. package/packages/core/dist/workflow/handoff.d.ts +0 -281
  289. package/packages/core/dist/workflow/handoff.d.ts.map +0 -1
  290. package/packages/core/dist/workflow/handoff.js +0 -411
  291. package/packages/core/dist/workflow/handoff.js.map +0 -1
  292. package/packages/core/dist/workflow/handoff.test.d.ts +0 -21
  293. package/packages/core/dist/workflow/handoff.test.d.ts.map +0 -1
  294. package/packages/core/dist/workflow/handoff.test.js +0 -499
  295. package/packages/core/dist/workflow/handoff.test.js.map +0 -1
  296. package/packages/core/dist/workflow/index.d.ts.map +0 -1
  297. package/packages/core/dist/workflow/index.js +0 -24
  298. package/packages/core/dist/workflow/index.js.map +0 -1
  299. package/packages/core/dist/workflow/session-state.d.ts +0 -92
  300. package/packages/core/dist/workflow/session-state.d.ts.map +0 -1
  301. package/packages/core/dist/workflow/session-state.js +0 -198
  302. package/packages/core/dist/workflow/session-state.js.map +0 -1
  303. package/packages/core/dist/workflow/session-state.test.d.ts +0 -8
  304. package/packages/core/dist/workflow/session-state.test.d.ts.map +0 -1
  305. package/packages/core/dist/workflow/session-state.test.js +0 -551
  306. package/packages/core/dist/workflow/session-state.test.js.map +0 -1
  307. package/packages/core/dist/workflow/sm-subagents.test.d.ts +0 -23
  308. package/packages/core/dist/workflow/sm-subagents.test.d.ts.map +0 -1
  309. package/packages/core/dist/workflow/sm-subagents.test.js +0 -727
  310. package/packages/core/dist/workflow/sm-subagents.test.js.map +0 -1
  311. package/packages/core/dist/workflow/step-parser.d.ts +0 -45
  312. package/packages/core/dist/workflow/step-parser.d.ts.map +0 -1
  313. package/packages/core/dist/workflow/step-parser.js +0 -147
  314. package/packages/core/dist/workflow/step-parser.js.map +0 -1
  315. package/packages/core/dist/workflow/step-parser.test.d.ts +0 -14
  316. package/packages/core/dist/workflow/step-parser.test.d.ts.map +0 -1
  317. package/packages/core/dist/workflow/step-parser.test.js +0 -470
  318. package/packages/core/dist/workflow/step-parser.test.js.map +0 -1
  319. package/packages/core/dist/workflow/story-workflow-routing.test.d.ts +0 -17
  320. package/packages/core/dist/workflow/story-workflow-routing.test.d.ts.map +0 -1
  321. package/packages/core/dist/workflow/story-workflow-routing.test.js +0 -559
  322. package/packages/core/dist/workflow/story-workflow-routing.test.js.map +0 -1
  323. package/packages/core/dist/workflow/test-cache.d.ts +0 -131
  324. package/packages/core/dist/workflow/test-cache.d.ts.map +0 -1
  325. package/packages/core/dist/workflow/test-cache.js +0 -226
  326. package/packages/core/dist/workflow/test-cache.js.map +0 -1
  327. package/packages/core/dist/workflow/test-cache.test.d.ts +0 -17
  328. package/packages/core/dist/workflow/test-cache.test.d.ts.map +0 -1
  329. package/packages/core/dist/workflow/test-cache.test.js +0 -438
  330. package/packages/core/dist/workflow/test-cache.test.js.map +0 -1
  331. package/packages/core/dist/workflow/trimodal.d.ts +0 -86
  332. package/packages/core/dist/workflow/trimodal.d.ts.map +0 -1
  333. package/packages/core/dist/workflow/trimodal.js +0 -118
  334. package/packages/core/dist/workflow/trimodal.js.map +0 -1
  335. package/packages/core/dist/workflow/trimodal.test.d.ts +0 -11
  336. package/packages/core/dist/workflow/trimodal.test.d.ts.map +0 -1
  337. package/packages/core/dist/workflow/trimodal.test.js +0 -395
  338. package/packages/core/dist/workflow/trimodal.test.js.map +0 -1
  339. package/packages/core/dist/workflow/variable-resolver.d.ts +0 -67
  340. package/packages/core/dist/workflow/variable-resolver.d.ts.map +0 -1
  341. package/packages/core/dist/workflow/variable-resolver.js +0 -156
  342. package/packages/core/dist/workflow/variable-resolver.js.map +0 -1
  343. package/packages/core/dist/workflow/variable-resolver.test.d.ts +0 -14
  344. package/packages/core/dist/workflow/variable-resolver.test.d.ts.map +0 -1
  345. package/packages/core/dist/workflow/variable-resolver.test.js +0 -400
  346. package/packages/core/dist/workflow/variable-resolver.test.js.map +0 -1
  347. package/packages/core/dist/workflow/workflow-executor.d.ts +0 -163
  348. package/packages/core/dist/workflow/workflow-executor.d.ts.map +0 -1
  349. package/packages/core/dist/workflow/workflow-executor.js +0 -197
  350. package/packages/core/dist/workflow/workflow-executor.js.map +0 -1
  351. package/packages/core/dist/workflow/workflow-executor.test.d.ts +0 -8
  352. package/packages/core/dist/workflow/workflow-executor.test.d.ts.map +0 -1
  353. package/packages/core/dist/workflow/workflow-executor.test.js +0 -444
  354. package/packages/core/dist/workflow/workflow-executor.test.js.map +0 -1
  355. package/packages/core/dist/workflow/workflow-loader.d.ts.map +0 -1
  356. package/packages/core/dist/workflow/workflow-loader.js.map +0 -1
  357. package/packages/core/dist/workflow/workflow-loader.test.d.ts +0 -15
  358. package/packages/core/dist/workflow/workflow-loader.test.d.ts.map +0 -1
  359. package/packages/core/dist/workflow/workflow-loader.test.js +0 -354
  360. package/packages/core/dist/workflow/workflow-loader.test.js.map +0 -1
  361. package/packages/core/dist/workflow/workflow-migration.test.d.ts +0 -17
  362. package/packages/core/dist/workflow/workflow-migration.test.d.ts.map +0 -1
  363. package/packages/core/dist/workflow/workflow-migration.test.js +0 -371
  364. package/packages/core/dist/workflow/workflow-migration.test.js.map +0 -1
  365. package/packages/core/dist/workflow/workflow-permissions.d.ts.map +0 -1
  366. package/packages/core/dist/workflow/workflow-permissions.js.map +0 -1
  367. package/packages/core/dist/workflow/workflow-permissions.test.d.ts +0 -15
  368. package/packages/core/dist/workflow/workflow-permissions.test.d.ts.map +0 -1
  369. package/packages/core/dist/workflow/workflow-permissions.test.js +0 -301
  370. package/packages/core/dist/workflow/workflow-permissions.test.js.map +0 -1
  371. package/packages/core/dist/workflow/workflow-router.d.ts.map +0 -1
  372. package/packages/core/dist/workflow/workflow-router.js.map +0 -1
  373. package/packages/core/dist/workflow/workflow-router.test.d.ts +0 -20
  374. package/packages/core/dist/workflow/workflow-router.test.d.ts.map +0 -1
  375. package/packages/core/dist/workflow/workflow-router.test.js +0 -607
  376. package/packages/core/dist/workflow/workflow-router.test.js.map +0 -1
  377. package/packages/core/dist/workflow/workflow-schema.d.ts.map +0 -1
  378. package/packages/core/dist/workflow/workflow-schema.js.map +0 -1
  379. package/packages/core/dist/workflow/workflow-schema.test.d.ts +0 -45
  380. package/packages/core/dist/workflow/workflow-schema.test.d.ts.map +0 -1
  381. package/packages/core/dist/workflow/workflow-schema.test.js +0 -512
  382. package/packages/core/dist/workflow/workflow-schema.test.js.map +0 -1
  383. package/packages/core/dist/workflow/workflow-stepped-schema.test.d.ts +0 -18
  384. package/packages/core/dist/workflow/workflow-stepped-schema.test.d.ts.map +0 -1
  385. package/packages/core/dist/workflow/workflow-stepped-schema.test.js +0 -608
  386. package/packages/core/dist/workflow/workflow-stepped-schema.test.js.map +0 -1
  387. package/pennyfarthing-dist/agents/README.md +0 -340
  388. package/pennyfarthing-dist/agents/architect.md +0 -193
  389. package/pennyfarthing-dist/agents/dev.md +0 -254
  390. package/pennyfarthing-dist/agents/devops.md +0 -206
  391. package/pennyfarthing-dist/agents/handoff.md +0 -289
  392. package/pennyfarthing-dist/agents/orchestrator.md +0 -355
  393. package/pennyfarthing-dist/agents/pm.md +0 -169
  394. package/pennyfarthing-dist/agents/reviewer-preflight.md +0 -96
  395. package/pennyfarthing-dist/agents/reviewer.md +0 -382
  396. package/pennyfarthing-dist/agents/sm-file-summary.md +0 -58
  397. package/pennyfarthing-dist/agents/sm-finish.md +0 -61
  398. package/pennyfarthing-dist/agents/sm-handoff.md +0 -145
  399. package/pennyfarthing-dist/agents/sm-setup.md +0 -174
  400. package/pennyfarthing-dist/agents/sm.md +0 -632
  401. package/pennyfarthing-dist/agents/tea.md +0 -213
  402. package/pennyfarthing-dist/agents/tech-writer.md +0 -216
  403. package/pennyfarthing-dist/agents/testing-runner.md +0 -141
  404. package/pennyfarthing-dist/agents/ux-designer.md +0 -231
  405. package/pennyfarthing-dist/agents/workflow-status-check.md +0 -68
  406. package/pennyfarthing-dist/commands/architect.md +0 -62
  407. package/pennyfarthing-dist/commands/benchmark-control.md +0 -69
  408. package/pennyfarthing-dist/commands/benchmark.md +0 -467
  409. package/pennyfarthing-dist/commands/brainstorming.md +0 -91
  410. package/pennyfarthing-dist/commands/check.md +0 -156
  411. package/pennyfarthing-dist/commands/chore.md +0 -178
  412. package/pennyfarthing-dist/commands/close-epic.md +0 -139
  413. package/pennyfarthing-dist/commands/continue-session.md +0 -184
  414. package/pennyfarthing-dist/commands/create-branches-from-story.md +0 -358
  415. package/pennyfarthing-dist/commands/create-theme.md +0 -29
  416. package/pennyfarthing-dist/commands/dev.md +0 -60
  417. package/pennyfarthing-dist/commands/devops.md +0 -59
  418. package/pennyfarthing-dist/commands/git-cleanup.md +0 -340
  419. package/pennyfarthing-dist/commands/health-check.md +0 -108
  420. package/pennyfarthing-dist/commands/help.md +0 -264
  421. package/pennyfarthing-dist/commands/job-fair.md +0 -102
  422. package/pennyfarthing-dist/commands/list-themes.md +0 -21
  423. package/pennyfarthing-dist/commands/orchestrator.md +0 -56
  424. package/pennyfarthing-dist/commands/parallel-work.md +0 -71
  425. package/pennyfarthing-dist/commands/party-mode.md +0 -67
  426. package/pennyfarthing-dist/commands/permissions.md +0 -193
  427. package/pennyfarthing-dist/commands/pm.md +0 -60
  428. package/pennyfarthing-dist/commands/prime.md +0 -140
  429. package/pennyfarthing-dist/commands/release.md +0 -58
  430. package/pennyfarthing-dist/commands/repo-status.md +0 -49
  431. package/pennyfarthing-dist/commands/retro.md +0 -200
  432. package/pennyfarthing-dist/commands/reviewer.md +0 -64
  433. package/pennyfarthing-dist/commands/run-ci.md +0 -116
  434. package/pennyfarthing-dist/commands/set-theme.md +0 -56
  435. package/pennyfarthing-dist/commands/show-theme.md +0 -21
  436. package/pennyfarthing-dist/commands/sm.md +0 -70
  437. package/pennyfarthing-dist/commands/solo.md +0 -411
  438. package/pennyfarthing-dist/commands/sprint-planning.md +0 -109
  439. package/pennyfarthing-dist/commands/start-epic.md +0 -168
  440. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +0 -184
  441. package/pennyfarthing-dist/commands/sync-work-with-sprint.md +0 -373
  442. package/pennyfarthing-dist/commands/tea.md +0 -63
  443. package/pennyfarthing-dist/commands/tech-writer.md +0 -53
  444. package/pennyfarthing-dist/commands/theme-maker.md +0 -671
  445. package/pennyfarthing-dist/commands/update-domain-docs.md +0 -83
  446. package/pennyfarthing-dist/commands/ux-designer.md +0 -62
  447. package/pennyfarthing-dist/commands/work.md +0 -122
  448. package/pennyfarthing-dist/commands/workflow.md +0 -21
  449. package/pennyfarthing-dist/guides/AGENT-COORDINATION.md +0 -480
  450. package/pennyfarthing-dist/guides/HOOKS.md +0 -230
  451. package/pennyfarthing-dist/guides/PROMPT-PATTERNS.md +0 -338
  452. package/pennyfarthing-dist/guides/SESSION-ARTIFACTS.md +0 -193
  453. package/pennyfarthing-dist/guides/agent-behavior.md +0 -238
  454. package/pennyfarthing-dist/guides/agent-template-strategic.md +0 -148
  455. package/pennyfarthing-dist/guides/agent-template-tactical.md +0 -162
  456. package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +0 -746
  457. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +0 -574
  458. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +0 -488
  459. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +0 -402
  460. package/pennyfarthing-dist/guides/permission-protocol.md +0 -188
  461. package/pennyfarthing-dist/guides/persona-loading.md +0 -46
  462. package/pennyfarthing-dist/guides/workflow-schema.md +0 -257
  463. package/pennyfarthing-dist/guides/worktree-mode.md +0 -113
  464. package/pennyfarthing-dist/output-styles/teaching.md +0 -33
  465. package/pennyfarthing-dist/output-styles/terse.md +0 -20
  466. package/pennyfarthing-dist/output-styles/verbose.md +0 -28
  467. package/pennyfarthing-dist/personas/themes/1984.yaml +0 -312
  468. package/pennyfarthing-dist/personas/themes/a-team.yaml +0 -207
  469. package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +0 -300
  470. package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +0 -330
  471. package/pennyfarthing-dist/personas/themes/all-stars.yaml +0 -332
  472. package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +0 -320
  473. package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +0 -306
  474. package/pennyfarthing-dist/personas/themes/arcane.yaml +0 -288
  475. package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +0 -331
  476. package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +0 -288
  477. package/pennyfarthing-dist/personas/themes/babylon-5.yaml +0 -288
  478. package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +0 -288
  479. package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +0 -288
  480. package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +0 -300
  481. package/pennyfarthing-dist/personas/themes/black-sails.yaml +0 -300
  482. package/pennyfarthing-dist/personas/themes/blade-runner.yaml +0 -295
  483. package/pennyfarthing-dist/personas/themes/bobiverse.yaml +0 -288
  484. package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +0 -327
  485. package/pennyfarthing-dist/personas/themes/catch-22.yaml +0 -316
  486. package/pennyfarthing-dist/personas/themes/classical-composers.yaml +0 -310
  487. package/pennyfarthing-dist/personas/themes/control.yaml +0 -197
  488. package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +0 -320
  489. package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +0 -323
  490. package/pennyfarthing-dist/personas/themes/deadwood.yaml +0 -300
  491. package/pennyfarthing-dist/personas/themes/dickens.yaml +0 -320
  492. package/pennyfarthing-dist/personas/themes/discworld.yaml +0 -332
  493. package/pennyfarthing-dist/personas/themes/doctor-who.yaml +0 -290
  494. package/pennyfarthing-dist/personas/themes/don-quixote.yaml +0 -320
  495. package/pennyfarthing-dist/personas/themes/dune.yaml +0 -307
  496. package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +0 -320
  497. package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +0 -288
  498. package/pennyfarthing-dist/personas/themes/fargo.yaml +0 -330
  499. package/pennyfarthing-dist/personas/themes/film-auteurs.yaml +0 -312
  500. package/pennyfarthing-dist/personas/themes/firefly.yaml +0 -328
  501. package/pennyfarthing-dist/personas/themes/foundation.yaml +0 -290
  502. package/pennyfarthing-dist/personas/themes/futurama.yaml +0 -321
  503. package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +0 -290
  504. package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +0 -243
  505. package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +0 -308
  506. package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +0 -308
  507. package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +0 -330
  508. package/pennyfarthing-dist/personas/themes/hannibal.yaml +0 -300
  509. package/pennyfarthing-dist/personas/themes/harry-potter.yaml +0 -324
  510. package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +0 -291
  511. package/pennyfarthing-dist/personas/themes/historical-figures.yaml +0 -288
  512. package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +0 -331
  513. package/pennyfarthing-dist/personas/themes/house-md.yaml +0 -321
  514. package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +0 -289
  515. package/pennyfarthing-dist/personas/themes/inspector-morse.yaml +0 -300
  516. package/pennyfarthing-dist/personas/themes/jane-austen.yaml +0 -287
  517. package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +0 -320
  518. package/pennyfarthing-dist/personas/themes/justified.yaml +0 -300
  519. package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +0 -219
  520. package/pennyfarthing-dist/personas/themes/les-miserables.yaml +0 -299
  521. package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +0 -334
  522. package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +0 -334
  523. package/pennyfarthing-dist/personas/themes/mad-max.yaml +0 -355
  524. package/pennyfarthing-dist/personas/themes/mad-men.yaml +0 -289
  525. package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +0 -300
  526. package/pennyfarthing-dist/personas/themes/mash.yaml +0 -337
  527. package/pennyfarthing-dist/personas/themes/mass-effect.yaml +0 -289
  528. package/pennyfarthing-dist/personas/themes/military-commanders.yaml +0 -306
  529. package/pennyfarthing-dist/personas/themes/moby-dick.yaml +0 -320
  530. package/pennyfarthing-dist/personas/themes/monty-python.yaml +0 -303
  531. package/pennyfarthing-dist/personas/themes/neuromancer.yaml +0 -300
  532. package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +0 -329
  533. package/pennyfarthing-dist/personas/themes/parks-and-rec.yaml +0 -242
  534. package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +0 -298
  535. package/pennyfarthing-dist/personas/themes/princess-bride.yaml +0 -220
  536. package/pennyfarthing-dist/personas/themes/renaissance-masters.yaml +0 -320
  537. package/pennyfarthing-dist/personas/themes/rome.yaml +0 -300
  538. package/pennyfarthing-dist/personas/themes/russian-masters.yaml +0 -318
  539. package/pennyfarthing-dist/personas/themes/sandman.yaml +0 -288
  540. package/pennyfarthing-dist/personas/themes/scientific-revolutionaries.yaml +0 -320
  541. package/pennyfarthing-dist/personas/themes/shakespeare.yaml +0 -301
  542. package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +0 -289
  543. package/pennyfarthing-dist/personas/themes/snow-crash.yaml +0 -288
  544. package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +0 -300
  545. package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +0 -230
  546. package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +0 -210
  547. package/pennyfarthing-dist/personas/themes/star-wars.yaml +0 -303
  548. package/pennyfarthing-dist/personas/themes/succession.yaml +0 -300
  549. package/pennyfarthing-dist/personas/themes/superfriends.yaml +0 -208
  550. package/pennyfarthing-dist/personas/themes/ted-lasso.yaml +0 -236
  551. package/pennyfarthing-dist/personas/themes/the-americans.yaml +0 -300
  552. package/pennyfarthing-dist/personas/themes/the-crown.yaml +0 -300
  553. package/pennyfarthing-dist/personas/themes/the-expanse.yaml +0 -213
  554. package/pennyfarthing-dist/personas/themes/the-good-place.yaml +0 -322
  555. package/pennyfarthing-dist/personas/themes/the-matrix.yaml +0 -353
  556. package/pennyfarthing-dist/personas/themes/the-odyssey.yaml +0 -300
  557. package/pennyfarthing-dist/personas/themes/the-office.yaml +0 -330
  558. package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +0 -308
  559. package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +0 -300
  560. package/pennyfarthing-dist/personas/themes/the-wire.yaml +0 -311
  561. package/pennyfarthing-dist/personas/themes/the-witcher.yaml +0 -300
  562. package/pennyfarthing-dist/personas/themes/twin-peaks.yaml +0 -302
  563. package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +0 -300
  564. package/pennyfarthing-dist/personas/themes/watchmen.yaml +0 -291
  565. package/pennyfarthing-dist/personas/themes/west-wing.yaml +0 -291
  566. package/pennyfarthing-dist/personas/themes/world-explorers.yaml +0 -320
  567. package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +0 -307
  568. package/pennyfarthing-dist/personas/themes/x-files.yaml +0 -302
  569. package/pennyfarthing-dist/scripts/README.md +0 -68
  570. package/pennyfarthing-dist/scripts/core/README.md +0 -26
  571. package/pennyfarthing-dist/scripts/core/agent-session.sh +0 -378
  572. package/pennyfarthing-dist/scripts/core/check-context.sh +0 -243
  573. package/pennyfarthing-dist/scripts/core/handoff-marker.sh +0 -90
  574. package/pennyfarthing-dist/scripts/core/prime.sh +0 -136
  575. package/pennyfarthing-dist/scripts/core/run.sh +0 -75
  576. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +0 -21
  577. package/pennyfarthing-dist/scripts/git/README.md +0 -25
  578. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +0 -226
  579. package/pennyfarthing-dist/scripts/git/git-status-all.sh +0 -127
  580. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +0 -91
  581. package/pennyfarthing-dist/scripts/git/release.sh +0 -198
  582. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +0 -494
  583. package/pennyfarthing-dist/scripts/hooks/README.md +0 -32
  584. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +0 -60
  585. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +0 -65
  586. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -35
  587. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +0 -166
  588. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +0 -50
  589. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -71
  590. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +0 -54
  591. package/pennyfarthing-dist/scripts/hooks/session-start.sh +0 -97
  592. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +0 -58
  593. package/pennyfarthing-dist/scripts/jira/README.md +0 -33
  594. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +0 -101
  595. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +0 -97
  596. package/pennyfarthing-dist/scripts/jira/jira-bidirectional-sync.mjs +0 -327
  597. package/pennyfarthing-dist/scripts/jira/jira-bidirectional-sync.test.mjs +0 -503
  598. package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +0 -164
  599. package/pennyfarthing-dist/scripts/jira/jira-lib.mjs +0 -443
  600. package/pennyfarthing-dist/scripts/jira/jira-lib.sh +0 -464
  601. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +0 -266
  602. package/pennyfarthing-dist/scripts/jira/jira-sync-story.mjs +0 -208
  603. package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +0 -8
  604. package/pennyfarthing-dist/scripts/jira/jira-sync.mjs +0 -198
  605. package/pennyfarthing-dist/scripts/jira/jira-sync.sh +0 -8
  606. package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +0 -104
  607. package/pennyfarthing-dist/scripts/jira/sync-epic-to-jira.sh +0 -16
  608. package/pennyfarthing-dist/scripts/lib/README.md +0 -29
  609. package/pennyfarthing-dist/scripts/lib/background-tasks.sh +0 -177
  610. package/pennyfarthing-dist/scripts/lib/checkpoint.sh +0 -136
  611. package/pennyfarthing-dist/scripts/lib/common.sh +0 -157
  612. package/pennyfarthing-dist/scripts/lib/file-lock.sh +0 -269
  613. package/pennyfarthing-dist/scripts/lib/find-root.sh +0 -35
  614. package/pennyfarthing-dist/scripts/lib/logging.sh +0 -186
  615. package/pennyfarthing-dist/scripts/lib/retry.sh +0 -76
  616. package/pennyfarthing-dist/scripts/misc/README.md +0 -44
  617. package/pennyfarthing-dist/scripts/misc/add-short-names.mjs +0 -264
  618. package/pennyfarthing-dist/scripts/misc/backlog.sh +0 -91
  619. package/pennyfarthing-dist/scripts/misc/check-status.sh +0 -247
  620. package/pennyfarthing-dist/scripts/misc/deploy.sh +0 -284
  621. package/pennyfarthing-dist/scripts/misc/doctor-dogfood.sh +0 -392
  622. package/pennyfarthing-dist/scripts/misc/find-related-work.sh +0 -231
  623. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +0 -110
  624. package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +0 -74
  625. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.mjs +0 -474
  626. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +0 -9
  627. package/pennyfarthing-dist/scripts/misc/repo-scan.sh +0 -141
  628. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +0 -778
  629. package/pennyfarthing-dist/scripts/misc/run-ci.sh +0 -219
  630. package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +0 -7
  631. package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +0 -319
  632. package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +0 -193
  633. package/pennyfarthing-dist/scripts/misc/statusline.sh +0 -259
  634. package/pennyfarthing-dist/scripts/misc/uninstall.sh +0 -270
  635. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +0 -160
  636. package/pennyfarthing-dist/scripts/sprint/README.md +0 -29
  637. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +0 -135
  638. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +0 -97
  639. package/pennyfarthing-dist/scripts/sprint/check-story.sh +0 -164
  640. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +0 -58
  641. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +0 -69
  642. package/pennyfarthing-dist/scripts/sprint/list-future.sh +0 -151
  643. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +0 -116
  644. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +0 -164
  645. package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +0 -421
  646. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +0 -39
  647. package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +0 -241
  648. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +0 -134
  649. package/pennyfarthing-dist/scripts/story/README.md +0 -23
  650. package/pennyfarthing-dist/scripts/story/create-story.sh +0 -159
  651. package/pennyfarthing-dist/scripts/story/size-story.sh +0 -198
  652. package/pennyfarthing-dist/scripts/story/story-template.sh +0 -162
  653. package/pennyfarthing-dist/scripts/test/README.md +0 -23
  654. package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +0 -289
  655. package/pennyfarthing-dist/scripts/test/swebench-judge.py +0 -400
  656. package/pennyfarthing-dist/scripts/test/test-cache.sh +0 -165
  657. package/pennyfarthing-dist/scripts/test/test-setup.sh +0 -337
  658. package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -582
  659. package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +0 -515
  660. package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +0 -599
  661. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +0 -332
  662. package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +0 -573
  663. package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +0 -859
  664. package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +0 -662
  665. package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +0 -589
  666. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +0 -105
  667. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +0 -597
  668. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +0 -514
  669. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +0 -517
  670. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -331
  671. package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +0 -647
  672. package/pennyfarthing-dist/scripts/theme/README.md +0 -22
  673. package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +0 -203
  674. package/pennyfarthing-dist/scripts/theme/list-themes.sh +0 -73
  675. package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +0 -97
  676. package/pennyfarthing-dist/scripts/workflow/README.md +0 -28
  677. package/pennyfarthing-dist/scripts/workflow/check.sh +0 -497
  678. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +0 -159
  679. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +0 -228
  680. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +0 -91
  681. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +0 -163
  682. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +0 -138
  683. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +0 -256
  684. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +0 -167
  685. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +0 -242
  686. package/pennyfarthing-dist/skills/changelog/SKILL.md +0 -367
  687. package/pennyfarthing-dist/skills/code-review/SKILL.md +0 -168
  688. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +0 -274
  689. package/pennyfarthing-dist/skills/cyclist/SKILL.md +0 -88
  690. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +0 -437
  691. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +0 -258
  692. package/pennyfarthing-dist/skills/jira/SKILL.md +0 -484
  693. package/pennyfarthing-dist/skills/judge/SKILL.md +0 -579
  694. package/pennyfarthing-dist/skills/just/SKILL.md +0 -403
  695. package/pennyfarthing-dist/skills/mermaid/SKILL.md +0 -240
  696. package/pennyfarthing-dist/skills/otel/skill.md +0 -223
  697. package/pennyfarthing-dist/skills/permissions/skill.md +0 -172
  698. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +0 -178
  699. package/pennyfarthing-dist/skills/skill-registry.schema.json +0 -107
  700. package/pennyfarthing-dist/skills/skill-registry.yaml +0 -357
  701. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +0 -101
  702. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +0 -97
  703. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +0 -164
  704. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +0 -101
  705. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +0 -116
  706. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +0 -164
  707. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +0 -39
  708. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +0 -147
  709. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +0 -104
  710. package/pennyfarthing-dist/skills/sprint/skill.md +0 -465
  711. package/pennyfarthing-dist/skills/story/scripts/create-story.sh +0 -159
  712. package/pennyfarthing-dist/skills/story/scripts/size-story.sh +0 -198
  713. package/pennyfarthing-dist/skills/story/scripts/story-template.sh +0 -162
  714. package/pennyfarthing-dist/skills/story/skill.md +0 -219
  715. package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +0 -390
  716. package/pennyfarthing-dist/skills/testing/SKILL.md +0 -99
  717. package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +0 -124
  718. package/pennyfarthing-dist/skills/theme/skill.md +0 -129
  719. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +0 -169
  720. package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +0 -91
  721. package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +0 -163
  722. package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +0 -138
  723. package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +0 -273
  724. package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +0 -167
  725. package/pennyfarthing-dist/skills/workflow/skill.md +0 -337
  726. package/pennyfarthing-dist/skills/yq/SKILL.md +0 -264
  727. package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +0 -187
  728. package/pennyfarthing-dist/templates/LEADERBOARD.template.md +0 -59
  729. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +0 -276
  730. package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +0 -61
  731. package/pennyfarthing-dist/templates/persona-config.yaml.template +0 -22
  732. package/pennyfarthing-dist/templates/preferences.yaml.template +0 -15
  733. package/pennyfarthing-dist/templates/settings.local.json.template +0 -90
  734. package/pennyfarthing-dist/templates/setup-env.sh.template +0 -18
  735. package/pennyfarthing-dist/templates/shared-context.md.template +0 -70
  736. package/pennyfarthing-dist/templates/sidecar/decisions.md.template +0 -40
  737. package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +0 -37
  738. package/pennyfarthing-dist/templates/sidecar/patterns.md.template +0 -34
  739. package/pennyfarthing-dist/workflows/agent-docs.yaml +0 -70
  740. package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +0 -101
  741. package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +0 -93
  742. package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +0 -115
  743. package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +0 -133
  744. package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +0 -138
  745. package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +0 -133
  746. package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +0 -142
  747. package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +0 -160
  748. package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +0 -102
  749. package/pennyfarthing-dist/workflows/architecture.yaml +0 -65
  750. package/pennyfarthing-dist/workflows/bdd.yaml +0 -60
  751. package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +0 -62
  752. package/pennyfarthing-dist/workflows/brainstorming/checklist.md +0 -44
  753. package/pennyfarthing-dist/workflows/brainstorming/instructions.md +0 -736
  754. package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +0 -49
  755. package/pennyfarthing-dist/workflows/code-review/checklist.md +0 -23
  756. package/pennyfarthing-dist/workflows/code-review/instructions.md +0 -234
  757. package/pennyfarthing-dist/workflows/code-review/workflow.yaml +0 -51
  758. package/pennyfarthing-dist/workflows/dev-story/checklist.md +0 -80
  759. package/pennyfarthing-dist/workflows/dev-story/instructions.xml +0 -410
  760. package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +0 -50
  761. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +0 -256
  762. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +0 -233
  763. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +0 -272
  764. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +0 -145
  765. package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +0 -57
  766. package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +0 -27
  767. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +0 -190
  768. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +0 -178
  769. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -179
  770. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +0 -139
  771. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +0 -252
  772. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +0 -133
  773. package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +0 -4
  774. package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +0 -40
  775. package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +0 -13
  776. package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +0 -197
  777. package/pennyfarthing-dist/workflows/prd/data/project-types.csv +0 -11
  778. package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +0 -191
  779. package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +0 -153
  780. package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +0 -224
  781. package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +0 -226
  782. package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +0 -213
  783. package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +0 -207
  784. package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +0 -226
  785. package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +0 -237
  786. package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +0 -228
  787. package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +0 -231
  788. package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +0 -242
  789. package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +0 -217
  790. package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +0 -180
  791. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +0 -247
  792. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +0 -208
  793. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +0 -249
  794. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +0 -253
  795. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +0 -168
  796. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +0 -218
  797. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +0 -191
  798. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +0 -209
  799. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +0 -174
  800. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +0 -214
  801. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +0 -228
  802. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +0 -217
  803. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -205
  804. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +0 -243
  805. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +0 -263
  806. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +0 -209
  807. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +0 -264
  808. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +0 -242
  809. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +0 -232
  810. package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +0 -10
  811. package/pennyfarthing-dist/workflows/prd/workflow.yaml +0 -42
  812. package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +0 -177
  813. package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +0 -161
  814. package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +0 -199
  815. package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +0 -202
  816. package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +0 -205
  817. package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +0 -219
  818. package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +0 -194
  819. package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +0 -10
  820. package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +0 -31
  821. package/pennyfarthing-dist/workflows/project-context/project-context-template.md +0 -21
  822. package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +0 -184
  823. package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +0 -318
  824. package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +0 -278
  825. package/pennyfarthing-dist/workflows/project-context/workflow.yaml +0 -27
  826. package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +0 -156
  827. package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +0 -120
  828. package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +0 -113
  829. package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +0 -113
  830. package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +0 -106
  831. package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +0 -140
  832. package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +0 -27
  833. package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +0 -189
  834. package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +0 -144
  835. package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +0 -128
  836. package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +0 -191
  837. package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +0 -74
  838. package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +0 -27
  839. package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +0 -137
  840. package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +0 -229
  841. package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +0 -238
  842. package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +0 -206
  843. package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +0 -234
  844. package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +0 -443
  845. package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +0 -182
  846. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +0 -237
  847. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +0 -200
  848. package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +0 -249
  849. package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +0 -259
  850. package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +0 -177
  851. package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +0 -475
  852. package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +0 -137
  853. package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +0 -239
  854. package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +0 -248
  855. package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +0 -202
  856. package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +0 -239
  857. package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +0 -486
  858. package/pennyfarthing-dist/workflows/research/templates/research.template.md +0 -29
  859. package/pennyfarthing-dist/workflows/research/workflow.yaml +0 -45
  860. package/pennyfarthing-dist/workflows/retrospective/checklist.md +0 -31
  861. package/pennyfarthing-dist/workflows/retrospective/instructions.md +0 -1443
  862. package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +0 -50
  863. package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +0 -33
  864. package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +0 -55
  865. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +0 -54
  866. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +0 -44
  867. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +0 -64
  868. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +0 -73
  869. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +0 -56
  870. package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +0 -34
  871. package/pennyfarthing-dist/workflows/tdd.yaml +0 -50
  872. package/pennyfarthing-dist/workflows/trivial.yaml +0 -40
  873. package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +0 -135
  874. package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +0 -127
  875. package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +0 -190
  876. package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +0 -216
  877. package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +0 -219
  878. package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +0 -234
  879. package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +0 -252
  880. package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +0 -254
  881. package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +0 -224
  882. package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +0 -224
  883. package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +0 -241
  884. package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +0 -248
  885. package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +0 -237
  886. package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +0 -264
  887. package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +0 -228
  888. package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +0 -13
  889. package/pennyfarthing-dist/workflows/ux-design/workflow.yaml +0 -41
  890. /package/{packages/core/bin → bin}/pennyfarthing.js +0 -0
@@ -1,616 +0,0 @@
1
- /**
2
- * Tests for Story 7-4: Aggregate Job-Fair Results into Benchmark Statistics
3
- *
4
- * These tests verify:
5
- * AC1: Job-fair results contribute to overall benchmark statistics
6
- * AC2: Baseline calculations incorporate job-fair control runs
7
- * AC3: Scenario performance tracked across themes
8
- * AC4: Summary statistics available (mean by role, variance, top performers)
9
- * AC5: Historical trend tracking for benchmark quality
10
- *
11
- * Run with: npm test
12
- */
13
- import { describe, it, beforeEach, afterEach } from 'node:test';
14
- import assert from 'node:assert';
15
- import { mkdirSync, writeFileSync, rmSync, existsSync } from 'fs';
16
- import { join } from 'path';
17
- // ============================================================================
18
- // Test Fixtures
19
- // ============================================================================
20
- const TEST_RESULTS_DIR = join(process.cwd(), 'internal', 'results', 'job-fair-test');
21
- // Mock summary.yaml content for theme "alpha"
22
- const MOCK_ALPHA_SUMMARY = `
23
- theme: alpha
24
- timestamp: "2026-01-05T10:00:00Z"
25
- runs_per_combination: 3
26
- total_runs: 15
27
- champions:
28
- dev:
29
- character: alice
30
- score: 85.5
31
- theme: alpha
32
- reviewer:
33
- character: bob
34
- score: 78.2
35
- theme: alpha
36
- matrix:
37
- alice:
38
- dev: 85.5
39
- reviewer: 72.0
40
- bob:
41
- dev: 80.0
42
- reviewer: 78.2
43
- overall_rankings:
44
- - character: alice
45
- average: 78.75
46
- - character: bob
47
- average: 79.1
48
- role_rankings:
49
- dev:
50
- - character: alice
51
- score: 85.5
52
- - character: bob
53
- score: 80.0
54
- reviewer:
55
- - character: bob
56
- score: 78.2
57
- - character: alice
58
- score: 72.0
59
- `;
60
- // Mock summary.yaml content for theme "beta"
61
- const MOCK_BETA_SUMMARY = `
62
- theme: beta
63
- timestamp: "2026-01-06T10:00:00Z"
64
- runs_per_combination: 3
65
- total_runs: 15
66
- champions:
67
- dev:
68
- character: carol
69
- score: 90.0
70
- theme: beta
71
- reviewer:
72
- character: dave
73
- score: 82.5
74
- theme: beta
75
- matrix:
76
- carol:
77
- dev: 90.0
78
- reviewer: 75.0
79
- dave:
80
- dev: 70.0
81
- reviewer: 82.5
82
- overall_rankings:
83
- - character: carol
84
- average: 82.5
85
- - character: dave
86
- average: 76.25
87
- role_rankings:
88
- dev:
89
- - character: carol
90
- score: 90.0
91
- - character: dave
92
- score: 70.0
93
- reviewer:
94
- - character: dave
95
- score: 82.5
96
- - character: carol
97
- score: 75.0
98
- `;
99
- function setupTestFixtures() {
100
- // Create test directory structure
101
- const alphaDir = join(TEST_RESULTS_DIR, 'alpha-20260105T100000Z');
102
- const betaDir = join(TEST_RESULTS_DIR, 'beta-20260106T100000Z');
103
- mkdirSync(alphaDir, { recursive: true });
104
- mkdirSync(betaDir, { recursive: true });
105
- writeFileSync(join(alphaDir, 'summary.yaml'), MOCK_ALPHA_SUMMARY);
106
- writeFileSync(join(betaDir, 'summary.yaml'), MOCK_BETA_SUMMARY);
107
- }
108
- function cleanupTestFixtures() {
109
- if (existsSync(TEST_RESULTS_DIR)) {
110
- rmSync(TEST_RESULTS_DIR, { recursive: true, force: true });
111
- }
112
- }
113
- // ============================================================================
114
- // AC1: Job-fair results contribute to overall benchmark statistics
115
- // ============================================================================
116
- describe('AC1: Module Exports Core Aggregation Functions', () => {
117
- it('should export aggregateJobFairResults function', async () => {
118
- const module = await import('./job-fair-aggregator.js');
119
- assert.ok(typeof module.aggregateJobFairResults === 'function', 'aggregateJobFairResults should be a function');
120
- });
121
- it('should export AggregateStats type via return type', async () => {
122
- const module = await import('./job-fair-aggregator.js');
123
- // Type check happens at compile time; runtime check is function existence
124
- assert.ok(module.aggregateJobFairResults, 'aggregateJobFairResults should exist');
125
- });
126
- });
127
- describe('AC1: Aggregation Combines Theme Results', () => {
128
- beforeEach(() => setupTestFixtures());
129
- afterEach(() => cleanupTestFixtures());
130
- it('should aggregate results from multiple theme directories', async () => {
131
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
132
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
133
- assert.ok(stats, 'Should return aggregate stats');
134
- assert.ok(Array.isArray(stats.themes_included), 'Should list included themes');
135
- assert.ok(stats.themes_included.length >= 2, 'Should include at least 2 themes');
136
- assert.ok(stats.themes_included.includes('alpha'), 'Should include alpha theme');
137
- assert.ok(stats.themes_included.includes('beta'), 'Should include beta theme');
138
- });
139
- it('should include last_updated timestamp', async () => {
140
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
141
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
142
- assert.ok(stats.last_updated, 'Should include last_updated');
143
- assert.ok(/^\d{4}-\d{2}-\d{2}/.test(stats.last_updated), 'last_updated should be ISO date format');
144
- });
145
- it('should handle empty results directory gracefully', async () => {
146
- const emptyDir = join(TEST_RESULTS_DIR, 'empty');
147
- mkdirSync(emptyDir, { recursive: true });
148
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
149
- const stats = await aggregateJobFairResults(emptyDir);
150
- assert.ok(stats, 'Should return stats even for empty dir');
151
- assert.deepStrictEqual(stats.themes_included, [], 'Should have empty themes list');
152
- });
153
- });
154
- // ============================================================================
155
- // AC2: Baseline calculations incorporate job-fair control runs
156
- // ============================================================================
157
- describe('AC2: Baseline Comparison Functions', () => {
158
- it('should export getBaselineComparison function', async () => {
159
- const module = await import('./job-fair-aggregator.js');
160
- assert.ok(typeof module.getBaselineComparison === 'function', 'getBaselineComparison should be a function');
161
- });
162
- });
163
- describe('AC2: Baseline Integration', () => {
164
- beforeEach(() => setupTestFixtures());
165
- afterEach(() => cleanupTestFixtures());
166
- it('should calculate baseline_comparison for each role', async () => {
167
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
168
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
169
- assert.ok(stats.by_role, 'Should have by_role stats');
170
- assert.ok(stats.by_role.dev, 'Should have dev role stats');
171
- // baseline_comparison shows delta from control baseline
172
- assert.ok(typeof stats.by_role.dev.baseline_comparison === 'number', 'dev should have baseline_comparison');
173
- });
174
- it('should handle missing baseline gracefully', async () => {
175
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
176
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
177
- // If no baseline exists for a role, baseline_comparison should be null or 0
178
- const devComparison = stats.by_role.dev?.baseline_comparison;
179
- assert.ok(devComparison === null || typeof devComparison === 'number', 'Missing baseline should return null or number');
180
- });
181
- });
182
- // ============================================================================
183
- // AC3: Scenario performance tracked across themes
184
- // ============================================================================
185
- describe('AC3: Role Statistics Functions', () => {
186
- it('should export getRoleStatistics function', async () => {
187
- const module = await import('./job-fair-aggregator.js');
188
- assert.ok(typeof module.getRoleStatistics === 'function', 'getRoleStatistics should be a function');
189
- });
190
- });
191
- describe('AC3: Cross-Theme Role Performance', () => {
192
- beforeEach(() => setupTestFixtures());
193
- afterEach(() => cleanupTestFixtures());
194
- it('should track performance by role across all themes', async () => {
195
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
196
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
197
- assert.ok(stats.by_role, 'Should have by_role object');
198
- assert.ok(stats.by_role.dev, 'Should have dev role');
199
- assert.ok(stats.by_role.reviewer, 'Should have reviewer role');
200
- });
201
- it('should calculate per-role mean score across themes', async () => {
202
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
203
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
204
- // Dev scores: alpha-alice=85.5, alpha-bob=80.0, beta-carol=90.0, beta-dave=70.0
205
- // Mean should be (85.5 + 80.0 + 90.0 + 70.0) / 4 = 81.375
206
- assert.ok(typeof stats.by_role.dev.mean_score === 'number', 'dev should have mean_score');
207
- // Allow some floating point tolerance
208
- assert.ok(stats.by_role.dev.mean_score > 70 && stats.by_role.dev.mean_score < 95, 'dev mean should be reasonable');
209
- });
210
- it('should provide role-specific statistics via getRoleStatistics', async () => {
211
- const { getRoleStatistics } = await import('./job-fair-aggregator.js');
212
- const devStats = await getRoleStatistics('dev', TEST_RESULTS_DIR);
213
- assert.ok(devStats, 'Should return dev statistics');
214
- assert.ok(typeof devStats.mean_score === 'number', 'Should have mean_score');
215
- assert.ok(typeof devStats.std_dev === 'number', 'Should have std_dev');
216
- assert.ok(Array.isArray(devStats.top_performers), 'Should have top_performers array');
217
- });
218
- });
219
- // ============================================================================
220
- // AC4: Summary statistics (mean by role, variance, top performers)
221
- // ============================================================================
222
- describe('AC4: Top Performers Functions', () => {
223
- it('should export getTopPerformers function', async () => {
224
- const module = await import('./job-fair-aggregator.js');
225
- assert.ok(typeof module.getTopPerformers === 'function', 'getTopPerformers should be a function');
226
- });
227
- });
228
- describe('AC4: Summary Statistics', () => {
229
- beforeEach(() => setupTestFixtures());
230
- afterEach(() => cleanupTestFixtures());
231
- it('should calculate standard deviation for each role', async () => {
232
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
233
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
234
- assert.ok(typeof stats.by_role.dev.std_dev === 'number', 'dev should have std_dev');
235
- assert.ok(stats.by_role.dev.std_dev >= 0, 'std_dev should be non-negative');
236
- });
237
- it('should identify top performers per role', async () => {
238
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
239
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
240
- assert.ok(Array.isArray(stats.by_role.dev.top_performers), 'dev should have top_performers array');
241
- assert.ok(stats.by_role.dev.top_performers.length > 0, 'Should have at least one top performer');
242
- const topDev = stats.by_role.dev.top_performers[0];
243
- assert.ok(topDev.character, 'Top performer should have character name');
244
- assert.ok(topDev.theme, 'Top performer should have theme');
245
- assert.ok(typeof topDev.score === 'number', 'Top performer should have score');
246
- });
247
- it('should return top performers via getTopPerformers function', async () => {
248
- const { getTopPerformers } = await import('./job-fair-aggregator.js');
249
- const topDevs = await getTopPerformers('dev', 3, TEST_RESULTS_DIR);
250
- assert.ok(Array.isArray(topDevs), 'Should return array');
251
- assert.ok(topDevs.length <= 3, 'Should respect limit');
252
- if (topDevs.length > 1) {
253
- // Should be sorted by score descending
254
- assert.ok(topDevs[0].score >= topDevs[1].score, 'Top performers should be sorted by score');
255
- }
256
- });
257
- it('should identify overall champions across all themes', async () => {
258
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
259
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
260
- assert.ok(Array.isArray(stats.overall_champions), 'Should have overall_champions array');
261
- if (stats.overall_champions.length > 0) {
262
- const champion = stats.overall_champions[0];
263
- assert.ok(champion.character, 'Champion should have character');
264
- assert.ok(champion.theme, 'Champion should have theme');
265
- assert.ok(typeof champion.avg_score === 'number', 'Champion should have avg_score');
266
- }
267
- });
268
- });
269
- // ============================================================================
270
- // AC5: Historical trend tracking for benchmark quality
271
- // ============================================================================
272
- describe('AC5: Historical Trend Functions', () => {
273
- it('should export getHistoricalTrend function', async () => {
274
- const module = await import('./job-fair-aggregator.js');
275
- assert.ok(typeof module.getHistoricalTrend === 'function', 'getHistoricalTrend should be a function');
276
- });
277
- it('should export saveHistoricalSnapshot function', async () => {
278
- const module = await import('./job-fair-aggregator.js');
279
- assert.ok(typeof module.saveHistoricalSnapshot === 'function', 'saveHistoricalSnapshot should be a function');
280
- });
281
- });
282
- describe('AC5: Historical Trend Tracking', () => {
283
- beforeEach(() => setupTestFixtures());
284
- afterEach(() => cleanupTestFixtures());
285
- it('should include historical_trend in aggregate stats', async () => {
286
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
287
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
288
- assert.ok(Array.isArray(stats.historical_trend), 'Should have historical_trend array');
289
- });
290
- it('should track trend points with date, mean, and variance', async () => {
291
- const { aggregateJobFairResults, saveHistoricalSnapshot } = await import('./job-fair-aggregator.js');
292
- // Save a snapshot first
293
- await saveHistoricalSnapshot(TEST_RESULTS_DIR);
294
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
295
- if (stats.historical_trend.length > 0) {
296
- const point = stats.historical_trend[0];
297
- assert.ok(point.date, 'Trend point should have date');
298
- assert.ok(typeof point.mean === 'number', 'Trend point should have mean');
299
- assert.ok(typeof point.variance === 'number', 'Trend point should have variance');
300
- }
301
- });
302
- it('should return trend data via getHistoricalTrend function', async () => {
303
- const { getHistoricalTrend, saveHistoricalSnapshot } = await import('./job-fair-aggregator.js');
304
- // Save snapshot to ensure there's data
305
- await saveHistoricalSnapshot(TEST_RESULTS_DIR);
306
- const trend = await getHistoricalTrend(undefined, TEST_RESULTS_DIR);
307
- assert.ok(Array.isArray(trend), 'Should return array');
308
- });
309
- it('should support role-specific trend filtering', async () => {
310
- const { getHistoricalTrend, saveHistoricalSnapshot } = await import('./job-fair-aggregator.js');
311
- await saveHistoricalSnapshot(TEST_RESULTS_DIR);
312
- const devTrend = await getHistoricalTrend('dev', TEST_RESULTS_DIR);
313
- assert.ok(Array.isArray(devTrend), 'Should return array for dev role');
314
- });
315
- });
316
- // ============================================================================
317
- // Edge Cases and Error Handling
318
- // ============================================================================
319
- describe('Edge Cases: Malformed Data', () => {
320
- beforeEach(() => setupTestFixtures());
321
- afterEach(() => cleanupTestFixtures());
322
- it('should skip directories without summary.yaml', async () => {
323
- // Create a directory without summary.yaml
324
- const badDir = join(TEST_RESULTS_DIR, 'bad-theme-20260107');
325
- mkdirSync(badDir, { recursive: true });
326
- // No summary.yaml written
327
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
328
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
329
- assert.ok(stats, 'Should still return stats');
330
- assert.ok(!stats.themes_included.includes('bad-theme'), 'Should not include bad theme');
331
- });
332
- it('should handle malformed YAML gracefully', async () => {
333
- const badDir = join(TEST_RESULTS_DIR, 'malformed-20260107');
334
- mkdirSync(badDir, { recursive: true });
335
- writeFileSync(join(badDir, 'summary.yaml'), 'this: is: not: valid: yaml: [[[');
336
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
337
- // Should not throw, should skip malformed file
338
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
339
- assert.ok(stats, 'Should return stats despite malformed YAML');
340
- });
341
- });
342
- describe('Edge Cases: Statistical Calculations', () => {
343
- it('should handle single theme (no variance possible)', async () => {
344
- cleanupTestFixtures();
345
- // Create only one theme
346
- const singleDir = join(TEST_RESULTS_DIR, 'single-20260105');
347
- mkdirSync(singleDir, { recursive: true });
348
- writeFileSync(join(singleDir, 'summary.yaml'), MOCK_ALPHA_SUMMARY);
349
- const { aggregateJobFairResults } = await import('./job-fair-aggregator.js');
350
- const stats = await aggregateJobFairResults(TEST_RESULTS_DIR);
351
- assert.ok(stats, 'Should return stats for single theme');
352
- assert.strictEqual(stats.themes_included.length, 1, 'Should have one theme');
353
- // std_dev for single value should be 0 or handled gracefully
354
- assert.ok(stats.by_role.dev.std_dev === 0 || stats.by_role.dev.std_dev >= 0, 'std_dev should be 0 or valid for single theme');
355
- cleanupTestFixtures();
356
- });
357
- });
358
- // ============================================================================
359
- // Story 7-5: Persona Differential Dimensions
360
- // ============================================================================
361
- const TEST_THEMES_DIR = join(process.cwd(), 'internal', 'results', 'themes-test');
362
- // Mock theme YAML with dimensions
363
- const MOCK_THEME_COMEDIC = `
364
- theme:
365
- name: comedic-theme
366
- description: A comedic theme
367
- dimensions:
368
- tone: comedic
369
- era: contemporary
370
- genre: comedy
371
- energy: high-energy
372
- agents:
373
- orchestrator:
374
- character: Joker
375
- `;
376
- const MOCK_THEME_SERIOUS = `
377
- theme:
378
- name: serious-theme
379
- description: A serious theme
380
- dimensions:
381
- tone: serious
382
- era: futuristic
383
- genre: sci-fi
384
- energy: contemplative
385
- agents:
386
- orchestrator:
387
- character: Commander
388
- `;
389
- const MOCK_THEME_NO_DIMENSIONS = `
390
- theme:
391
- name: no-dims
392
- description: Theme without dimensions
393
- agents:
394
- orchestrator:
395
- character: Generic
396
- `;
397
- function setupDimensionTestFixtures() {
398
- // Create test theme directory
399
- mkdirSync(TEST_THEMES_DIR, { recursive: true });
400
- // Write theme files
401
- writeFileSync(join(TEST_THEMES_DIR, 'comedic-theme.yaml'), MOCK_THEME_COMEDIC);
402
- writeFileSync(join(TEST_THEMES_DIR, 'serious-theme.yaml'), MOCK_THEME_SERIOUS);
403
- writeFileSync(join(TEST_THEMES_DIR, 'no-dims.yaml'), MOCK_THEME_NO_DIMENSIONS);
404
- // Create results directories for these themes
405
- const comedicDir = join(TEST_RESULTS_DIR, 'comedic-theme-20260107T100000Z');
406
- const seriousDir = join(TEST_RESULTS_DIR, 'serious-theme-20260107T100000Z');
407
- mkdirSync(comedicDir, { recursive: true });
408
- mkdirSync(seriousDir, { recursive: true });
409
- // Comedic theme results
410
- writeFileSync(join(comedicDir, 'summary.yaml'), `
411
- theme: comedic-theme
412
- timestamp: "2026-01-07T10:00:00Z"
413
- matrix:
414
- joker:
415
- dev: 92.0
416
- reviewer: 88.0
417
- clown:
418
- dev: 88.0
419
- reviewer: 85.0
420
- `);
421
- // Serious theme results
422
- writeFileSync(join(seriousDir, 'summary.yaml'), `
423
- theme: serious-theme
424
- timestamp: "2026-01-07T10:00:00Z"
425
- matrix:
426
- commander:
427
- dev: 85.0
428
- reviewer: 90.0
429
- officer:
430
- dev: 82.0
431
- reviewer: 88.0
432
- `);
433
- }
434
- function cleanupDimensionTestFixtures() {
435
- if (existsSync(TEST_THEMES_DIR)) {
436
- rmSync(TEST_THEMES_DIR, { recursive: true, force: true });
437
- }
438
- cleanupTestFixtures();
439
- }
440
- describe('Story 7-5: Dimension Type Exports', () => {
441
- it('should export DimensionName type', async () => {
442
- const module = await import('./job-fair-aggregator.js');
443
- // Type exists at compile time; runtime check is that related functions exist
444
- assert.ok(module.aggregateByDimension, 'aggregateByDimension should exist');
445
- });
446
- it('should export aggregateByDimension function', async () => {
447
- const module = await import('./job-fair-aggregator.js');
448
- assert.ok(typeof module.aggregateByDimension === 'function', 'aggregateByDimension should be a function');
449
- });
450
- it('should export getDimensionValues function', async () => {
451
- const module = await import('./job-fair-aggregator.js');
452
- assert.ok(typeof module.getDimensionValues === 'function', 'getDimensionValues should be a function');
453
- });
454
- it('should export generateDifferentialReport function', async () => {
455
- const module = await import('./job-fair-aggregator.js');
456
- assert.ok(typeof module.generateDifferentialReport === 'function', 'generateDifferentialReport should be a function');
457
- });
458
- });
459
- describe('Story 7-5: getDimensionValues', () => {
460
- beforeEach(() => {
461
- setupTestFixtures();
462
- setupDimensionTestFixtures();
463
- });
464
- afterEach(() => cleanupDimensionTestFixtures());
465
- it('should list themes by dimension value', async () => {
466
- const { getDimensionValues } = await import('./job-fair-aggregator.js');
467
- const values = await getDimensionValues('tone', TEST_THEMES_DIR);
468
- assert.ok(Array.isArray(values), 'Should return array');
469
- assert.ok(values.length >= 2, 'Should have at least 2 tone values');
470
- // Check structure
471
- const comedic = values.find(v => v.value === 'comedic');
472
- const serious = values.find(v => v.value === 'serious');
473
- assert.ok(comedic, 'Should find comedic tone');
474
- assert.ok(serious, 'Should find serious tone');
475
- assert.ok(comedic.theme_count >= 1, 'Comedic should have at least 1 theme');
476
- assert.ok(serious.theme_count >= 1, 'Serious should have at least 1 theme');
477
- });
478
- it('should handle all dimension types', async () => {
479
- const { getDimensionValues } = await import('./job-fair-aggregator.js');
480
- const toneValues = await getDimensionValues('tone', TEST_THEMES_DIR);
481
- const eraValues = await getDimensionValues('era', TEST_THEMES_DIR);
482
- const genreValues = await getDimensionValues('genre', TEST_THEMES_DIR);
483
- const energyValues = await getDimensionValues('energy', TEST_THEMES_DIR);
484
- assert.ok(toneValues.length >= 1, 'Should have tone values');
485
- assert.ok(eraValues.length >= 1, 'Should have era values');
486
- assert.ok(genreValues.length >= 1, 'Should have genre values');
487
- assert.ok(energyValues.length >= 1, 'Should have energy values');
488
- });
489
- it('should skip themes without dimensions', async () => {
490
- const { getDimensionValues } = await import('./job-fair-aggregator.js');
491
- const values = await getDimensionValues('tone', TEST_THEMES_DIR);
492
- // no-dims theme should not contribute to any dimension counts
493
- const total = values.reduce((sum, v) => sum + v.theme_count, 0);
494
- assert.ok(total === 2, 'Total should be 2 (comedic + serious, not no-dims)');
495
- });
496
- });
497
- describe('Story 7-5: aggregateByDimension', () => {
498
- beforeEach(() => {
499
- setupTestFixtures();
500
- setupDimensionTestFixtures();
501
- });
502
- afterEach(() => cleanupDimensionTestFixtures());
503
- it('should group results by dimension value', async () => {
504
- const { aggregateByDimension } = await import('./job-fair-aggregator.js');
505
- const stats = await aggregateByDimension('tone', TEST_RESULTS_DIR, TEST_THEMES_DIR);
506
- assert.ok(stats, 'Should return dimension stats');
507
- assert.strictEqual(stats.dimension, 'tone', 'Should indicate dimension');
508
- assert.ok(Array.isArray(stats.values), 'Should have values array');
509
- });
510
- it('should calculate per-value statistics', async () => {
511
- const { aggregateByDimension } = await import('./job-fair-aggregator.js');
512
- const stats = await aggregateByDimension('tone', TEST_RESULTS_DIR, TEST_THEMES_DIR);
513
- const comedic = stats.values.find(v => v.value === 'comedic');
514
- assert.ok(comedic, 'Should find comedic group');
515
- assert.ok(comedic.themes.length >= 1, 'Comedic should have themes');
516
- assert.ok(comedic.sample_size > 0, 'Comedic should have samples');
517
- assert.ok(typeof comedic.overall_mean === 'number', 'Should have overall_mean');
518
- assert.ok(comedic.by_role.dev, 'Should have dev role stats');
519
- assert.ok(typeof comedic.by_role.dev.mean_score === 'number', 'Dev should have mean_score');
520
- });
521
- it('should generate pairwise comparisons', async () => {
522
- const { aggregateByDimension } = await import('./job-fair-aggregator.js');
523
- const stats = await aggregateByDimension('tone', TEST_RESULTS_DIR, TEST_THEMES_DIR);
524
- assert.ok(Array.isArray(stats.comparisons), 'Should have comparisons array');
525
- if (stats.comparisons.length > 0) {
526
- const comp = stats.comparisons[0];
527
- assert.ok(comp.dimension === 'tone', 'Comparison should have dimension');
528
- assert.ok(comp.value_a, 'Comparison should have value_a');
529
- assert.ok(comp.value_b, 'Comparison should have value_b');
530
- assert.ok(typeof comp.delta === 'number', 'Comparison should have delta');
531
- assert.ok(['significant', 'marginal', 'not_significant'].includes(comp.significance), 'Comparison should have significance level');
532
- }
533
- });
534
- it('should include per-role comparisons', async () => {
535
- const { aggregateByDimension } = await import('./job-fair-aggregator.js');
536
- const stats = await aggregateByDimension('tone', TEST_RESULTS_DIR, TEST_THEMES_DIR);
537
- if (stats.comparisons.length > 0) {
538
- const comp = stats.comparisons[0];
539
- assert.ok(comp.by_role, 'Comparison should have by_role');
540
- if (comp.by_role.dev) {
541
- assert.ok(typeof comp.by_role.dev.delta === 'number', 'Role comparison should have delta');
542
- assert.ok(comp.by_role.dev.significance, 'Role comparison should have significance');
543
- }
544
- }
545
- });
546
- });
547
- describe('Story 7-5: generateDifferentialReport', () => {
548
- beforeEach(() => {
549
- setupTestFixtures();
550
- setupDimensionTestFixtures();
551
- });
552
- afterEach(() => cleanupDimensionTestFixtures());
553
- it('should generate markdown report', async () => {
554
- const { generateDifferentialReport } = await import('./job-fair-aggregator.js');
555
- const report = await generateDifferentialReport('tone', TEST_RESULTS_DIR, TEST_THEMES_DIR);
556
- assert.ok(typeof report === 'string', 'Report should be a string');
557
- assert.ok(report.includes('# Differential Report'), 'Report should have title');
558
- assert.ok(report.includes('tone'), 'Report should mention dimension');
559
- });
560
- it('should include summary by value', async () => {
561
- const { generateDifferentialReport } = await import('./job-fair-aggregator.js');
562
- const report = await generateDifferentialReport('tone', TEST_RESULTS_DIR, TEST_THEMES_DIR);
563
- assert.ok(report.includes('## Summary by Value'), 'Report should have summary section');
564
- assert.ok(report.includes('Overall mean'), 'Report should include overall mean');
565
- });
566
- it('should include pairwise comparisons', async () => {
567
- const { generateDifferentialReport } = await import('./job-fair-aggregator.js');
568
- const report = await generateDifferentialReport('tone', TEST_RESULTS_DIR, TEST_THEMES_DIR);
569
- assert.ok(report.includes('## Pairwise Comparisons'), 'Report should have comparisons section');
570
- });
571
- it('should indicate significance levels', async () => {
572
- const { generateDifferentialReport } = await import('./job-fair-aggregator.js');
573
- const report = await generateDifferentialReport('tone', TEST_RESULTS_DIR, TEST_THEMES_DIR);
574
- // Report should mention significance in some form
575
- const hasSignificance = report.includes('SIGNIFICANT') ||
576
- report.includes('marginal') ||
577
- report.includes('not significant');
578
- assert.ok(hasSignificance, 'Report should indicate significance levels');
579
- });
580
- });
581
- describe('Story 7-5: Edge Cases', () => {
582
- beforeEach(() => setupDimensionTestFixtures());
583
- afterEach(() => cleanupDimensionTestFixtures());
584
- it('should handle empty results directory', async () => {
585
- const { aggregateByDimension } = await import('./job-fair-aggregator.js');
586
- const emptyDir = join(TEST_RESULTS_DIR, 'empty');
587
- mkdirSync(emptyDir, { recursive: true });
588
- const stats = await aggregateByDimension('tone', emptyDir, TEST_THEMES_DIR);
589
- assert.ok(stats, 'Should return stats');
590
- assert.deepStrictEqual(stats.values, [], 'Should have empty values');
591
- assert.deepStrictEqual(stats.comparisons, [], 'Should have empty comparisons');
592
- });
593
- it('should handle themes without matching dimension', async () => {
594
- const { aggregateByDimension } = await import('./job-fair-aggregator.js');
595
- // Create a theme with only some dimensions
596
- const partialTheme = join(TEST_THEMES_DIR, 'partial.yaml');
597
- writeFileSync(partialTheme, `
598
- theme:
599
- name: partial
600
- dimensions:
601
- tone: comedic
602
- # missing era, genre, energy
603
- `);
604
- const stats = await aggregateByDimension('era', TEST_RESULTS_DIR, TEST_THEMES_DIR);
605
- // Should still work, just with fewer themes
606
- assert.ok(stats, 'Should return stats');
607
- });
608
- it('should handle non-existent themes directory', async () => {
609
- const { getDimensionValues } = await import('./job-fair-aggregator.js');
610
- const nonExistent = join(process.cwd(), 'does-not-exist');
611
- const values = await getDimensionValues('tone', nonExistent);
612
- assert.ok(Array.isArray(values), 'Should return empty array');
613
- assert.strictEqual(values.length, 0, 'Should have no values');
614
- });
615
- });
616
- //# sourceMappingURL=job-fair-aggregator.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"job-fair-aggregator.test.js","sourceRoot":"","sources":["../../src/scripts/job-fair-aggregator.test.ts"],"names":[],"mappings":"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"}