@pennyfarthing/core 9.2.0 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1043) hide show
  1. package/dist/workflow/complete-step-integration.test.d.ts +13 -0
  2. package/dist/workflow/complete-step-integration.test.d.ts.map +1 -0
  3. package/dist/workflow/complete-step-integration.test.js +163 -0
  4. package/dist/workflow/complete-step-integration.test.js.map +1 -0
  5. package/{packages/core/dist → dist}/workflow/handoff.test.js +2 -2
  6. package/{packages/core/dist → dist}/workflow/handoff.test.js.map +1 -1
  7. package/{packages/core/dist → dist}/workflow/index.d.ts +2 -0
  8. package/{packages/core/dist → dist}/workflow/index.d.ts.map +1 -1
  9. package/{packages/core/dist → dist}/workflow/index.js +6 -0
  10. package/{packages/core/dist → dist}/workflow/index.js.map +1 -1
  11. package/{packages/core/dist → dist}/workflow/workflow-stepped-schema.test.js +1 -1
  12. package/{packages/core/dist → dist}/workflow/workflow-stepped-schema.test.js.map +1 -1
  13. package/package.json +36 -32
  14. package/LICENSE +0 -14
  15. package/README.md +0 -218
  16. package/pennyfarthing-dist/agents/README.md +0 -348
  17. package/pennyfarthing-dist/agents/architect.md +0 -180
  18. package/pennyfarthing-dist/agents/dev.md +0 -169
  19. package/pennyfarthing-dist/agents/devops.md +0 -203
  20. package/pennyfarthing-dist/agents/handoff.md +0 -235
  21. package/pennyfarthing-dist/agents/orchestrator.md +0 -182
  22. package/pennyfarthing-dist/agents/pm.md +0 -152
  23. package/pennyfarthing-dist/agents/reviewer-preflight.md +0 -129
  24. package/pennyfarthing-dist/agents/reviewer.md +0 -197
  25. package/pennyfarthing-dist/agents/sm-file-summary.md +0 -79
  26. package/pennyfarthing-dist/agents/sm-finish.md +0 -82
  27. package/pennyfarthing-dist/agents/sm-handoff.md +0 -129
  28. package/pennyfarthing-dist/agents/sm-setup.md +0 -251
  29. package/pennyfarthing-dist/agents/sm.md +0 -294
  30. package/pennyfarthing-dist/agents/tea.md +0 -161
  31. package/pennyfarthing-dist/agents/tech-writer.md +0 -226
  32. package/pennyfarthing-dist/agents/testing-runner.md +0 -184
  33. package/pennyfarthing-dist/agents/ux-designer.md +0 -236
  34. package/pennyfarthing-dist/agents/workflow-status-check.md +0 -96
  35. package/pennyfarthing-dist/commands/architect.md +0 -9
  36. package/pennyfarthing-dist/commands/benchmark-control.md +0 -69
  37. package/pennyfarthing-dist/commands/benchmark.md +0 -485
  38. package/pennyfarthing-dist/commands/brainstorming.md +0 -91
  39. package/pennyfarthing-dist/commands/check.md +0 -156
  40. package/pennyfarthing-dist/commands/chore.md +0 -218
  41. package/pennyfarthing-dist/commands/close-epic.md +0 -139
  42. package/pennyfarthing-dist/commands/continue-session.md +0 -218
  43. package/pennyfarthing-dist/commands/create-branches-from-story.md +0 -358
  44. package/pennyfarthing-dist/commands/create-theme.md +0 -29
  45. package/pennyfarthing-dist/commands/dev.md +0 -9
  46. package/pennyfarthing-dist/commands/devops.md +0 -9
  47. package/pennyfarthing-dist/commands/fix-blocker.md +0 -22
  48. package/pennyfarthing-dist/commands/git-cleanup.md +0 -57
  49. package/pennyfarthing-dist/commands/health-check.md +0 -143
  50. package/pennyfarthing-dist/commands/help.md +0 -264
  51. package/pennyfarthing-dist/commands/job-fair.md +0 -102
  52. package/pennyfarthing-dist/commands/list-themes.md +0 -21
  53. package/pennyfarthing-dist/commands/new-work.md +0 -23
  54. package/pennyfarthing-dist/commands/orchestrator.md +0 -9
  55. package/pennyfarthing-dist/commands/parallel-work.md +0 -73
  56. package/pennyfarthing-dist/commands/party-mode.md +0 -77
  57. package/pennyfarthing-dist/commands/patch.md +0 -210
  58. package/pennyfarthing-dist/commands/permissions.md +0 -193
  59. package/pennyfarthing-dist/commands/pm.md +0 -9
  60. package/pennyfarthing-dist/commands/prime.md +0 -136
  61. package/pennyfarthing-dist/commands/release.md +0 -58
  62. package/pennyfarthing-dist/commands/repo-status.md +0 -49
  63. package/pennyfarthing-dist/commands/retro.md +0 -200
  64. package/pennyfarthing-dist/commands/reviewer.md +0 -9
  65. package/pennyfarthing-dist/commands/run-ci.md +0 -116
  66. package/pennyfarthing-dist/commands/set-theme.md +0 -56
  67. package/pennyfarthing-dist/commands/setup.md +0 -65
  68. package/pennyfarthing-dist/commands/show-theme.md +0 -21
  69. package/pennyfarthing-dist/commands/sm.md +0 -9
  70. package/pennyfarthing-dist/commands/solo.md +0 -447
  71. package/pennyfarthing-dist/commands/sprint-planning.md +0 -109
  72. package/pennyfarthing-dist/commands/sprint.md +0 -142
  73. package/pennyfarthing-dist/commands/standalone.md +0 -194
  74. package/pennyfarthing-dist/commands/start-epic.md +0 -168
  75. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +0 -184
  76. package/pennyfarthing-dist/commands/sync-work-with-sprint.md +0 -373
  77. package/pennyfarthing-dist/commands/tea.md +0 -9
  78. package/pennyfarthing-dist/commands/tech-writer.md +0 -9
  79. package/pennyfarthing-dist/commands/theme-maker.md +0 -676
  80. package/pennyfarthing-dist/commands/update-domain-docs.md +0 -83
  81. package/pennyfarthing-dist/commands/ux-designer.md +0 -9
  82. package/pennyfarthing-dist/commands/work.md +0 -25
  83. package/pennyfarthing-dist/commands/workflow.md +0 -21
  84. package/pennyfarthing-dist/guides/agent-behavior.md +0 -90
  85. package/pennyfarthing-dist/guides/agent-coordination.md +0 -480
  86. package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +0 -432
  87. package/pennyfarthing-dist/guides/agent-template-strategic.md +0 -148
  88. package/pennyfarthing-dist/guides/agent-template-tactical.md +0 -162
  89. package/pennyfarthing-dist/guides/hooks.md +0 -230
  90. package/pennyfarthing-dist/guides/measurement-framework.md +0 -210
  91. package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +0 -766
  92. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +0 -574
  93. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +0 -488
  94. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +0 -402
  95. package/pennyfarthing-dist/guides/permission-protocol.md +0 -188
  96. package/pennyfarthing-dist/guides/persona-loading.md +0 -46
  97. package/pennyfarthing-dist/guides/prompt-patterns.md +0 -338
  98. package/pennyfarthing-dist/guides/scale-levels.md +0 -114
  99. package/pennyfarthing-dist/guides/session-artifacts.md +0 -193
  100. package/pennyfarthing-dist/guides/session-schema.md +0 -346
  101. package/pennyfarthing-dist/guides/skill-schema.md +0 -412
  102. package/pennyfarthing-dist/guides/workflow-schema.md +0 -257
  103. package/pennyfarthing-dist/guides/workflow-step-schema.md +0 -512
  104. package/pennyfarthing-dist/guides/worktree-mode.md +0 -113
  105. package/pennyfarthing-dist/guides/xml-tags.md +0 -627
  106. package/pennyfarthing-dist/output-styles/teaching.md +0 -33
  107. package/pennyfarthing-dist/output-styles/terse.md +0 -20
  108. package/pennyfarthing-dist/output-styles/verbose.md +0 -28
  109. package/pennyfarthing-dist/personas/themes/a-team.yaml +0 -331
  110. package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +0 -324
  111. package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +0 -282
  112. package/pennyfarthing-dist/personas/themes/blade-runner.yaml +0 -289
  113. package/pennyfarthing-dist/personas/themes/catch-22.yaml +0 -304
  114. package/pennyfarthing-dist/personas/themes/control.yaml +0 -201
  115. package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +0 -315
  116. package/pennyfarthing-dist/personas/themes/discworld.yaml +0 -334
  117. package/pennyfarthing-dist/personas/themes/doctor-who.yaml +0 -284
  118. package/pennyfarthing-dist/personas/themes/dune.yaml +0 -301
  119. package/pennyfarthing-dist/personas/themes/firefly.yaml +0 -320
  120. package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +0 -284
  121. package/pennyfarthing-dist/personas/themes/harry-potter.yaml +0 -316
  122. package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +0 -323
  123. package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +0 -326
  124. package/pennyfarthing-dist/personas/themes/mad-max.yaml +0 -349
  125. package/pennyfarthing-dist/personas/themes/mash.yaml +0 -329
  126. package/pennyfarthing-dist/personas/themes/princess-bride.yaml +0 -344
  127. package/pennyfarthing-dist/personas/themes/sandman.yaml +0 -282
  128. package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +0 -358
  129. package/pennyfarthing-dist/personas/themes/star-wars.yaml +0 -297
  130. package/pennyfarthing-dist/personas/themes/the-expanse.yaml +0 -337
  131. package/pennyfarthing-dist/personas/themes/the-matrix.yaml +0 -342
  132. package/pennyfarthing-dist/personas/themes/watchmen.yaml +0 -285
  133. package/pennyfarthing-dist/personas/themes/west-wing.yaml +0 -285
  134. package/pennyfarthing-dist/personas/themes/x-files.yaml +0 -296
  135. package/pennyfarthing-dist/scripts/README.md +0 -87
  136. package/pennyfarthing-dist/scripts/core/README.md +0 -25
  137. package/pennyfarthing-dist/scripts/core/agent-session.sh +0 -390
  138. package/pennyfarthing-dist/scripts/core/check-context.sh +0 -194
  139. package/pennyfarthing-dist/scripts/core/handoff-marker.sh +0 -112
  140. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +0 -90
  141. package/pennyfarthing-dist/scripts/core/prime.sh +0 -30
  142. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +0 -21
  143. package/pennyfarthing-dist/scripts/git/README.md +0 -25
  144. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +0 -267
  145. package/pennyfarthing-dist/scripts/git/git-status-all.sh +0 -152
  146. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +0 -79
  147. package/pennyfarthing-dist/scripts/git/release.sh +0 -246
  148. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +0 -497
  149. package/pennyfarthing-dist/scripts/health/drift-detection.sh +0 -156
  150. package/pennyfarthing-dist/scripts/hooks/README.md +0 -32
  151. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  152. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +0 -106
  153. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +0 -95
  154. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +0 -65
  155. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -35
  156. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +0 -150
  157. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +0 -102
  158. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -71
  159. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +0 -42
  160. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +0 -20
  161. package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +0 -499
  162. package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +0 -30
  163. package/pennyfarthing-dist/scripts/hooks/session-start.sh +0 -97
  164. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +0 -65
  165. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +0 -78
  166. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +0 -94
  167. package/pennyfarthing-dist/scripts/jira/README.md +0 -36
  168. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +0 -95
  169. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +0 -91
  170. package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +0 -22
  171. package/pennyfarthing-dist/scripts/jira/jira-lib.sh +0 -464
  172. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +0 -260
  173. package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +0 -18
  174. package/pennyfarthing-dist/scripts/jira/jira-sync.sh +0 -16
  175. package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +0 -16
  176. package/pennyfarthing-dist/scripts/jira/sync-epic-to-jira.sh +0 -16
  177. package/pennyfarthing-dist/scripts/lib/README.md +0 -29
  178. package/pennyfarthing-dist/scripts/lib/background-tasks.sh +0 -177
  179. package/pennyfarthing-dist/scripts/lib/checkpoint.sh +0 -136
  180. package/pennyfarthing-dist/scripts/lib/common.sh +0 -212
  181. package/pennyfarthing-dist/scripts/lib/file-lock.sh +0 -269
  182. package/pennyfarthing-dist/scripts/lib/find-root.sh +0 -58
  183. package/pennyfarthing-dist/scripts/lib/logging.sh +0 -186
  184. package/pennyfarthing-dist/scripts/lib/retry.sh +0 -76
  185. package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +0 -102
  186. package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +0 -91
  187. package/pennyfarthing-dist/scripts/misc/README.md +0 -44
  188. package/pennyfarthing-dist/scripts/misc/add-short-names.sh +0 -13
  189. package/pennyfarthing-dist/scripts/misc/add_short_names.py +0 -226
  190. package/pennyfarthing-dist/scripts/misc/backlog.sh +0 -77
  191. package/pennyfarthing-dist/scripts/misc/check-status.sh +0 -247
  192. package/pennyfarthing-dist/scripts/misc/find-related-work.sh +0 -231
  193. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +0 -107
  194. package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +0 -74
  195. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +0 -10
  196. package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +0 -319
  197. package/pennyfarthing-dist/scripts/misc/repo-scan.sh +0 -141
  198. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +0 -778
  199. package/pennyfarthing-dist/scripts/misc/run-ci.sh +0 -212
  200. package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +0 -7
  201. package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +0 -319
  202. package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +0 -193
  203. package/pennyfarthing-dist/scripts/misc/statusline.sh +0 -259
  204. package/pennyfarthing-dist/scripts/misc/uninstall.sh +0 -275
  205. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +0 -160
  206. package/pennyfarthing-dist/scripts/portraits/generate-portraits.py +0 -417
  207. package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +0 -54
  208. package/pennyfarthing-dist/scripts/sprint/README.md +0 -29
  209. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +0 -133
  210. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +0 -91
  211. package/pennyfarthing-dist/scripts/sprint/check-story.sh +0 -158
  212. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +0 -52
  213. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +0 -63
  214. package/pennyfarthing-dist/scripts/sprint/list-future.sh +0 -145
  215. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +0 -110
  216. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +0 -148
  217. package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +0 -415
  218. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +0 -33
  219. package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +0 -230
  220. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +0 -134
  221. package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +0 -139
  222. package/pennyfarthing-dist/scripts/story/README.md +0 -23
  223. package/pennyfarthing-dist/scripts/story/create-story.sh +0 -19
  224. package/pennyfarthing-dist/scripts/story/size-story.sh +0 -18
  225. package/pennyfarthing-dist/scripts/story/story-template.sh +0 -18
  226. package/pennyfarthing-dist/scripts/test/README.md +0 -23
  227. package/pennyfarthing-dist/scripts/test/ensure-swebench-data.sh +0 -59
  228. package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +0 -220
  229. package/pennyfarthing-dist/scripts/test/swebench-judge.py +0 -374
  230. package/pennyfarthing-dist/scripts/test/test-cache.sh +0 -165
  231. package/pennyfarthing-dist/scripts/test/test-setup.sh +0 -337
  232. package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -582
  233. package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +0 -515
  234. package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +0 -599
  235. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +0 -332
  236. package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +0 -573
  237. package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +0 -859
  238. package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +0 -662
  239. package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +0 -589
  240. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +0 -106
  241. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +0 -597
  242. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +0 -514
  243. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +0 -517
  244. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -331
  245. package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +0 -647
  246. package/pennyfarthing-dist/scripts/theme/README.md +0 -22
  247. package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +0 -13
  248. package/pennyfarthing-dist/scripts/theme/compute_theme_tiers.py +0 -402
  249. package/pennyfarthing-dist/scripts/theme/list-themes.sh +0 -30
  250. package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +0 -97
  251. package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +0 -576
  252. package/pennyfarthing-dist/scripts/workflow/README.md +0 -28
  253. package/pennyfarthing-dist/scripts/workflow/check.py +0 -502
  254. package/pennyfarthing-dist/scripts/workflow/check.sh +0 -24
  255. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +0 -154
  256. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +0 -222
  257. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +0 -61
  258. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +0 -13
  259. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +0 -124
  260. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +0 -34
  261. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +0 -157
  262. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +0 -132
  263. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +0 -250
  264. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +0 -161
  265. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +0 -246
  266. package/pennyfarthing-dist/skills/changelog/SKILL.md +0 -385
  267. package/pennyfarthing-dist/skills/code-review/SKILL.md +0 -172
  268. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +0 -277
  269. package/pennyfarthing-dist/skills/cyclist/SKILL.md +0 -88
  270. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +0 -461
  271. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +0 -261
  272. package/pennyfarthing-dist/skills/jira/SKILL.md +0 -508
  273. package/pennyfarthing-dist/skills/judge/SKILL.md +0 -644
  274. package/pennyfarthing-dist/skills/just/SKILL.md +0 -414
  275. package/pennyfarthing-dist/skills/mermaid/SKILL.md +0 -256
  276. package/pennyfarthing-dist/skills/otel/skill.md +0 -227
  277. package/pennyfarthing-dist/skills/permissions/skill.md +0 -175
  278. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +0 -187
  279. package/pennyfarthing-dist/skills/skill-registry.schema.json +0 -107
  280. package/pennyfarthing-dist/skills/skill-registry.yaml +0 -393
  281. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +0 -101
  282. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +0 -97
  283. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +0 -164
  284. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +0 -101
  285. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +0 -116
  286. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +0 -164
  287. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +0 -39
  288. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +0 -147
  289. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +0 -93
  290. package/pennyfarthing-dist/skills/sprint/skill.md +0 -465
  291. package/pennyfarthing-dist/skills/story/scripts/create-story.sh +0 -159
  292. package/pennyfarthing-dist/skills/story/scripts/size-story.sh +0 -198
  293. package/pennyfarthing-dist/skills/story/scripts/story-template.sh +0 -162
  294. package/pennyfarthing-dist/skills/story/skill.md +0 -219
  295. package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +0 -446
  296. package/pennyfarthing-dist/skills/testing/SKILL.md +0 -121
  297. package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +0 -124
  298. package/pennyfarthing-dist/skills/theme/skill.md +0 -141
  299. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +0 -178
  300. package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +0 -91
  301. package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +0 -163
  302. package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +0 -138
  303. package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +0 -273
  304. package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +0 -167
  305. package/pennyfarthing-dist/skills/workflow/skill.md +0 -345
  306. package/pennyfarthing-dist/skills/yq/SKILL.md +0 -272
  307. package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +0 -187
  308. package/pennyfarthing-dist/templates/LEADERBOARD.template.md +0 -59
  309. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +0 -276
  310. package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +0 -61
  311. package/pennyfarthing-dist/templates/persona-config.yaml.template +0 -22
  312. package/pennyfarthing-dist/templates/preferences.yaml.template +0 -15
  313. package/pennyfarthing-dist/templates/settings.local.json.template +0 -110
  314. package/pennyfarthing-dist/templates/setup-env.sh.template +0 -18
  315. package/pennyfarthing-dist/templates/shared-context.md.template +0 -70
  316. package/pennyfarthing-dist/templates/sidecar/decisions.md.template +0 -40
  317. package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +0 -37
  318. package/pennyfarthing-dist/templates/sidecar/patterns.md.template +0 -34
  319. package/pennyfarthing-dist/workflows/agent-docs.yaml +0 -70
  320. package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +0 -113
  321. package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +0 -105
  322. package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +0 -127
  323. package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +0 -145
  324. package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +0 -150
  325. package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +0 -145
  326. package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +0 -154
  327. package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +0 -172
  328. package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +0 -102
  329. package/pennyfarthing-dist/workflows/architecture.yaml +0 -65
  330. package/pennyfarthing-dist/workflows/bdd.yaml +0 -60
  331. package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +0 -62
  332. package/pennyfarthing-dist/workflows/brainstorming/checklist.md +0 -44
  333. package/pennyfarthing-dist/workflows/brainstorming/instructions.md +0 -736
  334. package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +0 -49
  335. package/pennyfarthing-dist/workflows/code-review/checklist.md +0 -23
  336. package/pennyfarthing-dist/workflows/code-review/instructions.md +0 -234
  337. package/pennyfarthing-dist/workflows/code-review/workflow.yaml +0 -51
  338. package/pennyfarthing-dist/workflows/dev-story/checklist.md +0 -80
  339. package/pennyfarthing-dist/workflows/dev-story/instructions.xml +0 -410
  340. package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +0 -50
  341. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +0 -281
  342. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +0 -256
  343. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +0 -298
  344. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +0 -177
  345. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +0 -145
  346. package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +0 -57
  347. package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +0 -28
  348. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +0 -103
  349. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-02-categorize.md +0 -147
  350. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-03-execute.md +0 -215
  351. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +0 -97
  352. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +0 -78
  353. package/pennyfarthing-dist/workflows/git-cleanup.yaml +0 -59
  354. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +0 -211
  355. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +0 -199
  356. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -202
  357. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +0 -162
  358. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +0 -280
  359. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +0 -158
  360. package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +0 -4
  361. package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +0 -40
  362. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-01-connect.md +0 -257
  363. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-02-explore.md +0 -107
  364. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-03-fix.md +0 -127
  365. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-04-commit.md +0 -122
  366. package/pennyfarthing-dist/workflows/interactive-debug/workflow.yaml +0 -51
  367. package/pennyfarthing-dist/workflows/patch.yaml +0 -67
  368. package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +0 -13
  369. package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +0 -197
  370. package/pennyfarthing-dist/workflows/prd/data/project-types.csv +0 -11
  371. package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +0 -197
  372. package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +0 -159
  373. package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +0 -230
  374. package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +0 -232
  375. package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +0 -219
  376. package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +0 -213
  377. package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +0 -232
  378. package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +0 -243
  379. package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +0 -234
  380. package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +0 -237
  381. package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +0 -248
  382. package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +0 -223
  383. package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +0 -186
  384. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +0 -253
  385. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +0 -214
  386. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +0 -255
  387. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +0 -259
  388. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +0 -174
  389. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +0 -224
  390. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +0 -197
  391. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +0 -215
  392. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +0 -180
  393. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +0 -220
  394. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +0 -234
  395. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +0 -223
  396. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -211
  397. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +0 -249
  398. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +0 -269
  399. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +0 -215
  400. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +0 -270
  401. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +0 -248
  402. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +0 -238
  403. package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +0 -10
  404. package/pennyfarthing-dist/workflows/prd/workflow.yaml +0 -42
  405. package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +0 -195
  406. package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +0 -180
  407. package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +0 -221
  408. package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +0 -224
  409. package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +0 -228
  410. package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +0 -243
  411. package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +0 -216
  412. package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +0 -10
  413. package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +0 -31
  414. package/pennyfarthing-dist/workflows/project-context/project-context-template.md +0 -21
  415. package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +0 -206
  416. package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +0 -349
  417. package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +0 -306
  418. package/pennyfarthing-dist/workflows/project-context/workflow.yaml +0 -27
  419. package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +0 -157
  420. package/pennyfarthing-dist/workflows/project-setup/steps/step-02-clone-repos.md +0 -217
  421. package/pennyfarthing-dist/workflows/project-setup/steps/step-03-repos-yaml.md +0 -159
  422. package/pennyfarthing-dist/workflows/project-setup/steps/step-04-claude-md.md +0 -186
  423. package/pennyfarthing-dist/workflows/project-setup/steps/step-05-shared-context.md +0 -185
  424. package/pennyfarthing-dist/workflows/project-setup/steps/step-06-task-runner.md +0 -279
  425. package/pennyfarthing-dist/workflows/project-setup/steps/step-07-theme.md +0 -200
  426. package/pennyfarthing-dist/workflows/project-setup/steps/step-08-theme-packs.md +0 -142
  427. package/pennyfarthing-dist/workflows/project-setup/steps/step-09-cyclist.md +0 -245
  428. package/pennyfarthing-dist/workflows/project-setup/steps/step-10-complete.md +0 -204
  429. package/pennyfarthing-dist/workflows/project-setup/workflow.yaml +0 -41
  430. package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +0 -177
  431. package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +0 -143
  432. package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +0 -138
  433. package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +0 -135
  434. package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +0 -129
  435. package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +0 -163
  436. package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +0 -27
  437. package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +0 -201
  438. package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +0 -156
  439. package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +0 -140
  440. package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +0 -203
  441. package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +0 -74
  442. package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +0 -27
  443. package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +0 -159
  444. package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +0 -253
  445. package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +0 -263
  446. package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +0 -232
  447. package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +0 -260
  448. package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +0 -477
  449. package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +0 -205
  450. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +0 -262
  451. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +0 -227
  452. package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +0 -275
  453. package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +0 -286
  454. package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +0 -203
  455. package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +0 -510
  456. package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +0 -159
  457. package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +0 -264
  458. package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +0 -274
  459. package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +0 -228
  460. package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +0 -267
  461. package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +0 -522
  462. package/pennyfarthing-dist/workflows/research/templates/research.template.md +0 -29
  463. package/pennyfarthing-dist/workflows/research/workflow.yaml +0 -45
  464. package/pennyfarthing-dist/workflows/retrospective/checklist.md +0 -31
  465. package/pennyfarthing-dist/workflows/retrospective/instructions.md +0 -1443
  466. package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +0 -50
  467. package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +0 -33
  468. package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +0 -55
  469. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +0 -69
  470. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +0 -61
  471. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +0 -80
  472. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +0 -90
  473. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +0 -78
  474. package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +0 -34
  475. package/pennyfarthing-dist/workflows/tdd.yaml +0 -50
  476. package/pennyfarthing-dist/workflows/trivial.yaml +0 -40
  477. package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +0 -141
  478. package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +0 -133
  479. package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +0 -196
  480. package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +0 -222
  481. package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +0 -225
  482. package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +0 -240
  483. package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +0 -258
  484. package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +0 -260
  485. package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +0 -230
  486. package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +0 -230
  487. package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +0 -247
  488. package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +0 -254
  489. package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +0 -243
  490. package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +0 -270
  491. package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +0 -234
  492. package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +0 -13
  493. package/pennyfarthing-dist/workflows/ux-design/workflow.yaml +0 -41
  494. package/pennyfarthing_scripts/README.md +0 -66
  495. package/pennyfarthing_scripts/__init__.py +0 -17
  496. package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  497. package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  498. package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
  499. package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
  500. package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
  501. package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
  502. package/pennyfarthing_scripts/__pycache__/jira_bidirectional_sync.cpython-314.pyc +0 -0
  503. package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
  504. package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
  505. package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
  506. package/pennyfarthing_scripts/__pycache__/output.cpython-314.pyc +0 -0
  507. package/pennyfarthing_scripts/__pycache__/patch_mode.cpython-314.pyc +0 -0
  508. package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
  509. package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
  510. package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
  511. package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
  512. package/pennyfarthing_scripts/bellmode_hook.py +0 -154
  513. package/pennyfarthing_scripts/brownfield/__init__.py +0 -35
  514. package/pennyfarthing_scripts/brownfield/__main__.py +0 -7
  515. package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
  516. package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
  517. package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
  518. package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
  519. package/pennyfarthing_scripts/brownfield/cli.py +0 -131
  520. package/pennyfarthing_scripts/brownfield/discover.py +0 -753
  521. package/pennyfarthing_scripts/cli.py +0 -174
  522. package/pennyfarthing_scripts/common/__init__.py +0 -49
  523. package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
  524. package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
  525. package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
  526. package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
  527. package/pennyfarthing_scripts/common/config.py +0 -91
  528. package/pennyfarthing_scripts/common/output.py +0 -180
  529. package/pennyfarthing_scripts/common/themes.py +0 -253
  530. package/pennyfarthing_scripts/config.py +0 -21
  531. package/pennyfarthing_scripts/context.py +0 -414
  532. package/pennyfarthing_scripts/git/__init__.py +0 -29
  533. package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
  534. package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
  535. package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
  536. package/pennyfarthing_scripts/git/create_branches.py +0 -439
  537. package/pennyfarthing_scripts/git/status_all.py +0 -310
  538. package/pennyfarthing_scripts/hooks.py +0 -455
  539. package/pennyfarthing_scripts/jira/__init__.py +0 -93
  540. package/pennyfarthing_scripts/jira/__main__.py +0 -10
  541. package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
  542. package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
  543. package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
  544. package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
  545. package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
  546. package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
  547. package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
  548. package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
  549. package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
  550. package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
  551. package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
  552. package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
  553. package/pennyfarthing_scripts/jira/bidirectional.py +0 -561
  554. package/pennyfarthing_scripts/jira/claim.py +0 -211
  555. package/pennyfarthing_scripts/jira/cli.py +0 -150
  556. package/pennyfarthing_scripts/jira/client.py +0 -613
  557. package/pennyfarthing_scripts/jira/epic.py +0 -176
  558. package/pennyfarthing_scripts/jira/story.py +0 -219
  559. package/pennyfarthing_scripts/jira/sync.py +0 -350
  560. package/pennyfarthing_scripts/jira_bidirectional_sync.py +0 -37
  561. package/pennyfarthing_scripts/jira_epic_creation.py +0 -30
  562. package/pennyfarthing_scripts/jira_sync.py +0 -36
  563. package/pennyfarthing_scripts/jira_sync_story.py +0 -30
  564. package/pennyfarthing_scripts/migration/__init__.py +0 -39
  565. package/pennyfarthing_scripts/migration/__main__.py +0 -10
  566. package/pennyfarthing_scripts/migration/__pycache__/__init__.cpython-314.pyc +0 -0
  567. package/pennyfarthing_scripts/migration/__pycache__/__main__.cpython-314.pyc +0 -0
  568. package/pennyfarthing_scripts/migration/__pycache__/cli.cpython-314.pyc +0 -0
  569. package/pennyfarthing_scripts/migration/__pycache__/session.cpython-314.pyc +0 -0
  570. package/pennyfarthing_scripts/migration/__pycache__/skill.cpython-314.pyc +0 -0
  571. package/pennyfarthing_scripts/migration/__pycache__/step.cpython-314.pyc +0 -0
  572. package/pennyfarthing_scripts/migration/__pycache__/validate.cpython-314.pyc +0 -0
  573. package/pennyfarthing_scripts/migration/cli.py +0 -304
  574. package/pennyfarthing_scripts/migration/session.py +0 -384
  575. package/pennyfarthing_scripts/migration/skill.py +0 -188
  576. package/pennyfarthing_scripts/migration/step.py +0 -229
  577. package/pennyfarthing_scripts/migration/validate.py +0 -282
  578. package/pennyfarthing_scripts/output.py +0 -37
  579. package/pennyfarthing_scripts/patch_mode.py +0 -449
  580. package/pennyfarthing_scripts/preflight/__init__.py +0 -17
  581. package/pennyfarthing_scripts/preflight/__main__.py +0 -10
  582. package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
  583. package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
  584. package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
  585. package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
  586. package/pennyfarthing_scripts/preflight/cli.py +0 -141
  587. package/pennyfarthing_scripts/preflight/finish.py +0 -382
  588. package/pennyfarthing_scripts/pretooluse_hook.py +0 -142
  589. package/pennyfarthing_scripts/prime/__init__.py +0 -125
  590. package/pennyfarthing_scripts/prime/__main__.py +0 -8
  591. package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
  592. package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
  593. package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
  594. package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
  595. package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
  596. package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
  597. package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
  598. package/pennyfarthing_scripts/prime/__pycache__/tiers.cpython-314.pyc +0 -0
  599. package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  600. package/pennyfarthing_scripts/prime/cli.py +0 -645
  601. package/pennyfarthing_scripts/prime/loader.py +0 -239
  602. package/pennyfarthing_scripts/prime/models.py +0 -206
  603. package/pennyfarthing_scripts/prime/persona.py +0 -308
  604. package/pennyfarthing_scripts/prime/session.py +0 -183
  605. package/pennyfarthing_scripts/prime/tiers.py +0 -201
  606. package/pennyfarthing_scripts/prime/workflow.py +0 -275
  607. package/pennyfarthing_scripts/schema_validation_hook.py +0 -306
  608. package/pennyfarthing_scripts/sprint/__init__.py +0 -66
  609. package/pennyfarthing_scripts/sprint/__main__.py +0 -10
  610. package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
  611. package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
  612. package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
  613. package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
  614. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  615. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  616. package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
  617. package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
  618. package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
  619. package/pennyfarthing_scripts/sprint/archive.py +0 -108
  620. package/pennyfarthing_scripts/sprint/archive_epic.py +0 -399
  621. package/pennyfarthing_scripts/sprint/cli.py +0 -284
  622. package/pennyfarthing_scripts/sprint/import_epic.py +0 -431
  623. package/pennyfarthing_scripts/sprint/loader.py +0 -193
  624. package/pennyfarthing_scripts/sprint/status.py +0 -122
  625. package/pennyfarthing_scripts/sprint/validator.py +0 -405
  626. package/pennyfarthing_scripts/sprint/work.py +0 -192
  627. package/pennyfarthing_scripts/story/__init__.py +0 -67
  628. package/pennyfarthing_scripts/story/__main__.py +0 -10
  629. package/pennyfarthing_scripts/story/__pycache__/__init__.cpython-314.pyc +0 -0
  630. package/pennyfarthing_scripts/story/__pycache__/__main__.cpython-314.pyc +0 -0
  631. package/pennyfarthing_scripts/story/__pycache__/cli.cpython-314.pyc +0 -0
  632. package/pennyfarthing_scripts/story/__pycache__/create.cpython-314.pyc +0 -0
  633. package/pennyfarthing_scripts/story/__pycache__/size.cpython-314.pyc +0 -0
  634. package/pennyfarthing_scripts/story/__pycache__/template.cpython-314.pyc +0 -0
  635. package/pennyfarthing_scripts/story/cli.py +0 -105
  636. package/pennyfarthing_scripts/story/create.py +0 -167
  637. package/pennyfarthing_scripts/story/size.py +0 -113
  638. package/pennyfarthing_scripts/story/template.py +0 -151
  639. package/pennyfarthing_scripts/swebench.py +0 -216
  640. package/pennyfarthing_scripts/tests/__init__.py +0 -1
  641. package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
  642. package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
  643. package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
  644. package/pennyfarthing_scripts/tests/__pycache__/test_cli_modules.cpython-314-pytest-9.0.2.pyc +0 -0
  645. package/pennyfarthing_scripts/tests/__pycache__/test_common.cpython-314-pytest-9.0.2.pyc +0 -0
  646. package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
  647. package/pennyfarthing_scripts/tests/__pycache__/test_jira_package.cpython-314-pytest-9.0.2.pyc +0 -0
  648. package/pennyfarthing_scripts/tests/__pycache__/test_package_structure.cpython-314-pytest-9.0.2.pyc +0 -0
  649. package/pennyfarthing_scripts/tests/__pycache__/test_patch_mode.cpython-314-pytest-9.0.2.pyc +0 -0
  650. package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
  651. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
  652. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
  653. package/pennyfarthing_scripts/tests/__pycache__/test_story_package.cpython-314-pytest-9.0.2.pyc +0 -0
  654. package/pennyfarthing_scripts/tests/__pycache__/test_tiers.cpython-314-pytest-9.0.2.pyc +0 -0
  655. package/pennyfarthing_scripts/tests/__pycache__/test_token_counting.cpython-314-pytest-9.0.2.pyc +0 -0
  656. package/pennyfarthing_scripts/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
  657. package/pennyfarthing_scripts/tests/__pycache__/test_workflow_cli.cpython-314-pytest-9.0.2.pyc +0 -0
  658. package/pennyfarthing_scripts/tests/conftest.py +0 -106
  659. package/pennyfarthing_scripts/tests/test_brownfield.py +0 -842
  660. package/pennyfarthing_scripts/tests/test_cli_modules.py +0 -245
  661. package/pennyfarthing_scripts/tests/test_common.py +0 -180
  662. package/pennyfarthing_scripts/tests/test_git_utils.py +0 -866
  663. package/pennyfarthing_scripts/tests/test_jira_package.py +0 -334
  664. package/pennyfarthing_scripts/tests/test_package_structure.py +0 -372
  665. package/pennyfarthing_scripts/tests/test_patch_mode.py +0 -830
  666. package/pennyfarthing_scripts/tests/test_prime.py +0 -1050
  667. package/pennyfarthing_scripts/tests/test_sprint_package.py +0 -236
  668. package/pennyfarthing_scripts/tests/test_sprint_validator.py +0 -675
  669. package/pennyfarthing_scripts/tests/test_story_package.py +0 -156
  670. package/pennyfarthing_scripts/tests/test_tiers.py +0 -1090
  671. package/pennyfarthing_scripts/tests/test_token_counting.py +0 -559
  672. package/pennyfarthing_scripts/tests/test_workflow_check.py +0 -341
  673. package/pennyfarthing_scripts/welcome_hook.py +0 -157
  674. package/pennyfarthing_scripts/workflow.py +0 -287
  675. /package/{packages/core/bin → bin}/pennyfarthing.js +0 -0
  676. /package/{packages/core/dist → dist}/bmad/context-reader.d.ts +0 -0
  677. /package/{packages/core/dist → dist}/bmad/context-reader.d.ts.map +0 -0
  678. /package/{packages/core/dist → dist}/bmad/context-reader.js +0 -0
  679. /package/{packages/core/dist → dist}/bmad/context-reader.js.map +0 -0
  680. /package/{packages/core/dist → dist}/bmad/context-reader.test.d.ts +0 -0
  681. /package/{packages/core/dist → dist}/bmad/context-reader.test.d.ts.map +0 -0
  682. /package/{packages/core/dist → dist}/bmad/context-reader.test.js +0 -0
  683. /package/{packages/core/dist → dist}/bmad/context-reader.test.js.map +0 -0
  684. /package/{packages/core/dist → dist}/bmad/epics-parser.d.ts +0 -0
  685. /package/{packages/core/dist → dist}/bmad/epics-parser.d.ts.map +0 -0
  686. /package/{packages/core/dist → dist}/bmad/epics-parser.js +0 -0
  687. /package/{packages/core/dist → dist}/bmad/epics-parser.js.map +0 -0
  688. /package/{packages/core/dist → dist}/bmad/epics-parser.test.d.ts +0 -0
  689. /package/{packages/core/dist → dist}/bmad/epics-parser.test.d.ts.map +0 -0
  690. /package/{packages/core/dist → dist}/bmad/epics-parser.test.js +0 -0
  691. /package/{packages/core/dist → dist}/bmad/epics-parser.test.js.map +0 -0
  692. /package/{packages/core/dist → dist}/bmad/index.d.ts +0 -0
  693. /package/{packages/core/dist → dist}/bmad/index.d.ts.map +0 -0
  694. /package/{packages/core/dist → dist}/bmad/index.js +0 -0
  695. /package/{packages/core/dist → dist}/bmad/index.js.map +0 -0
  696. /package/{packages/core/dist → dist}/bmad/status-sync.d.ts +0 -0
  697. /package/{packages/core/dist → dist}/bmad/status-sync.d.ts.map +0 -0
  698. /package/{packages/core/dist → dist}/bmad/status-sync.js +0 -0
  699. /package/{packages/core/dist → dist}/bmad/status-sync.js.map +0 -0
  700. /package/{packages/core/dist → dist}/bmad/status-sync.test.d.ts +0 -0
  701. /package/{packages/core/dist → dist}/bmad/status-sync.test.d.ts.map +0 -0
  702. /package/{packages/core/dist → dist}/bmad/status-sync.test.js +0 -0
  703. /package/{packages/core/dist → dist}/bmad/status-sync.test.js.map +0 -0
  704. /package/{packages/core/dist → dist}/bmad/story-exporter.d.ts +0 -0
  705. /package/{packages/core/dist → dist}/bmad/story-exporter.d.ts.map +0 -0
  706. /package/{packages/core/dist → dist}/bmad/story-exporter.js +0 -0
  707. /package/{packages/core/dist → dist}/bmad/story-exporter.js.map +0 -0
  708. /package/{packages/core/dist → dist}/bmad/story-exporter.test.d.ts +0 -0
  709. /package/{packages/core/dist → dist}/bmad/story-exporter.test.d.ts.map +0 -0
  710. /package/{packages/core/dist → dist}/bmad/story-exporter.test.js +0 -0
  711. /package/{packages/core/dist → dist}/bmad/story-exporter.test.js.map +0 -0
  712. /package/{packages/core/dist → dist}/bmad/story-parser.d.ts +0 -0
  713. /package/{packages/core/dist → dist}/bmad/story-parser.d.ts.map +0 -0
  714. /package/{packages/core/dist → dist}/bmad/story-parser.js +0 -0
  715. /package/{packages/core/dist → dist}/bmad/story-parser.js.map +0 -0
  716. /package/{packages/core/dist → dist}/bmad/story-parser.test.d.ts +0 -0
  717. /package/{packages/core/dist → dist}/bmad/story-parser.test.d.ts.map +0 -0
  718. /package/{packages/core/dist → dist}/bmad/story-parser.test.js +0 -0
  719. /package/{packages/core/dist → dist}/bmad/story-parser.test.js.map +0 -0
  720. /package/{packages/core/dist → dist}/cli/commands/command.d.ts +0 -0
  721. /package/{packages/core/dist → dist}/cli/commands/command.d.ts.map +0 -0
  722. /package/{packages/core/dist → dist}/cli/commands/command.js +0 -0
  723. /package/{packages/core/dist → dist}/cli/commands/command.js.map +0 -0
  724. /package/{packages/core/dist → dist}/cli/commands/cyclist.d.ts +0 -0
  725. /package/{packages/core/dist → dist}/cli/commands/cyclist.d.ts.map +0 -0
  726. /package/{packages/core/dist → dist}/cli/commands/cyclist.js +0 -0
  727. /package/{packages/core/dist → dist}/cli/commands/cyclist.js.map +0 -0
  728. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.d.ts +0 -0
  729. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.d.ts.map +0 -0
  730. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.js +0 -0
  731. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.js.map +0 -0
  732. /package/{packages/core/dist → dist}/cli/commands/doctor-legacy.test.d.ts +0 -0
  733. /package/{packages/core/dist → dist}/cli/commands/doctor-legacy.test.d.ts.map +0 -0
  734. /package/{packages/core/dist → dist}/cli/commands/doctor-legacy.test.js +0 -0
  735. /package/{packages/core/dist → dist}/cli/commands/doctor-legacy.test.js.map +0 -0
  736. /package/{packages/core/dist → dist}/cli/commands/doctor.d.ts +0 -0
  737. /package/{packages/core/dist → dist}/cli/commands/doctor.d.ts.map +0 -0
  738. /package/{packages/core/dist → dist}/cli/commands/doctor.js +0 -0
  739. /package/{packages/core/dist → dist}/cli/commands/doctor.js.map +0 -0
  740. /package/{packages/core/dist → dist}/cli/commands/init.d.ts +0 -0
  741. /package/{packages/core/dist → dist}/cli/commands/init.d.ts.map +0 -0
  742. /package/{packages/core/dist → dist}/cli/commands/init.js +0 -0
  743. /package/{packages/core/dist → dist}/cli/commands/init.js.map +0 -0
  744. /package/{packages/core/dist → dist}/cli/commands/skill.d.ts +0 -0
  745. /package/{packages/core/dist → dist}/cli/commands/skill.d.ts.map +0 -0
  746. /package/{packages/core/dist → dist}/cli/commands/skill.js +0 -0
  747. /package/{packages/core/dist → dist}/cli/commands/skill.js.map +0 -0
  748. /package/{packages/core/dist → dist}/cli/commands/theme.d.ts +0 -0
  749. /package/{packages/core/dist → dist}/cli/commands/theme.d.ts.map +0 -0
  750. /package/{packages/core/dist → dist}/cli/commands/theme.js +0 -0
  751. /package/{packages/core/dist → dist}/cli/commands/theme.js.map +0 -0
  752. /package/{packages/core/dist → dist}/cli/commands/uninstall.d.ts +0 -0
  753. /package/{packages/core/dist → dist}/cli/commands/uninstall.d.ts.map +0 -0
  754. /package/{packages/core/dist → dist}/cli/commands/uninstall.js +0 -0
  755. /package/{packages/core/dist → dist}/cli/commands/uninstall.js.map +0 -0
  756. /package/{packages/core/dist → dist}/cli/commands/update.d.ts +0 -0
  757. /package/{packages/core/dist → dist}/cli/commands/update.d.ts.map +0 -0
  758. /package/{packages/core/dist → dist}/cli/commands/update.js +0 -0
  759. /package/{packages/core/dist → dist}/cli/commands/update.js.map +0 -0
  760. /package/{packages/core/dist → dist}/cli/commands/version.d.ts +0 -0
  761. /package/{packages/core/dist → dist}/cli/commands/version.d.ts.map +0 -0
  762. /package/{packages/core/dist → dist}/cli/commands/version.js +0 -0
  763. /package/{packages/core/dist → dist}/cli/commands/version.js.map +0 -0
  764. /package/{packages/core/dist → dist}/cli/customization.test.d.ts +0 -0
  765. /package/{packages/core/dist → dist}/cli/customization.test.d.ts.map +0 -0
  766. /package/{packages/core/dist → dist}/cli/customization.test.js +0 -0
  767. /package/{packages/core/dist → dist}/cli/customization.test.js.map +0 -0
  768. /package/{packages/core/dist → dist}/cli/cyclist-migration.test.d.ts +0 -0
  769. /package/{packages/core/dist → dist}/cli/cyclist-migration.test.d.ts.map +0 -0
  770. /package/{packages/core/dist → dist}/cli/cyclist-migration.test.js +0 -0
  771. /package/{packages/core/dist → dist}/cli/cyclist-migration.test.js.map +0 -0
  772. /package/{packages/core/dist → dist}/cli/index.d.ts +0 -0
  773. /package/{packages/core/dist → dist}/cli/index.d.ts.map +0 -0
  774. /package/{packages/core/dist → dist}/cli/index.js +0 -0
  775. /package/{packages/core/dist → dist}/cli/index.js.map +0 -0
  776. /package/{packages/core/dist → dist}/cli/ocean-profiles.test.d.ts +0 -0
  777. /package/{packages/core/dist → dist}/cli/ocean-profiles.test.d.ts.map +0 -0
  778. /package/{packages/core/dist → dist}/cli/ocean-profiles.test.js +0 -0
  779. /package/{packages/core/dist → dist}/cli/ocean-profiles.test.js.map +0 -0
  780. /package/{packages/core/dist → dist}/cli/theme-maker.test.d.ts +0 -0
  781. /package/{packages/core/dist → dist}/cli/theme-maker.test.d.ts.map +0 -0
  782. /package/{packages/core/dist → dist}/cli/theme-maker.test.js +0 -0
  783. /package/{packages/core/dist → dist}/cli/theme-maker.test.js.map +0 -0
  784. /package/{packages/core/dist → dist}/cli/utils/constants.d.ts +0 -0
  785. /package/{packages/core/dist → dist}/cli/utils/constants.d.ts.map +0 -0
  786. /package/{packages/core/dist → dist}/cli/utils/constants.js +0 -0
  787. /package/{packages/core/dist → dist}/cli/utils/constants.js.map +0 -0
  788. /package/{packages/core/dist → dist}/cli/utils/files.d.ts +0 -0
  789. /package/{packages/core/dist → dist}/cli/utils/files.d.ts.map +0 -0
  790. /package/{packages/core/dist → dist}/cli/utils/files.js +0 -0
  791. /package/{packages/core/dist → dist}/cli/utils/files.js.map +0 -0
  792. /package/{packages/core/dist → dist}/cli/utils/logger.d.ts +0 -0
  793. /package/{packages/core/dist → dist}/cli/utils/logger.d.ts.map +0 -0
  794. /package/{packages/core/dist → dist}/cli/utils/logger.js +0 -0
  795. /package/{packages/core/dist → dist}/cli/utils/logger.js.map +0 -0
  796. /package/{packages/core/dist → dist}/cli/utils/manifest.d.ts +0 -0
  797. /package/{packages/core/dist → dist}/cli/utils/manifest.d.ts.map +0 -0
  798. /package/{packages/core/dist → dist}/cli/utils/manifest.js +0 -0
  799. /package/{packages/core/dist → dist}/cli/utils/manifest.js.map +0 -0
  800. /package/{packages/core/dist → dist}/cli/utils/node-modules.d.ts +0 -0
  801. /package/{packages/core/dist → dist}/cli/utils/node-modules.d.ts.map +0 -0
  802. /package/{packages/core/dist → dist}/cli/utils/node-modules.js +0 -0
  803. /package/{packages/core/dist → dist}/cli/utils/node-modules.js.map +0 -0
  804. /package/{packages/core/dist → dist}/cli/utils/prompts.d.ts +0 -0
  805. /package/{packages/core/dist → dist}/cli/utils/prompts.d.ts.map +0 -0
  806. /package/{packages/core/dist → dist}/cli/utils/prompts.js +0 -0
  807. /package/{packages/core/dist → dist}/cli/utils/prompts.js.map +0 -0
  808. /package/{packages/core/dist → dist}/cli/utils/settings.d.ts +0 -0
  809. /package/{packages/core/dist → dist}/cli/utils/settings.d.ts.map +0 -0
  810. /package/{packages/core/dist → dist}/cli/utils/settings.js +0 -0
  811. /package/{packages/core/dist → dist}/cli/utils/settings.js.map +0 -0
  812. /package/{packages/core/dist → dist}/cli/utils/symlinks.d.ts +0 -0
  813. /package/{packages/core/dist → dist}/cli/utils/symlinks.d.ts.map +0 -0
  814. /package/{packages/core/dist → dist}/cli/utils/symlinks.js +0 -0
  815. /package/{packages/core/dist → dist}/cli/utils/symlinks.js.map +0 -0
  816. /package/{packages/core/dist → dist}/cli/utils/themes.d.ts +0 -0
  817. /package/{packages/core/dist → dist}/cli/utils/themes.d.ts.map +0 -0
  818. /package/{packages/core/dist → dist}/cli/utils/themes.js +0 -0
  819. /package/{packages/core/dist → dist}/cli/utils/themes.js.map +0 -0
  820. /package/{packages/core/dist → dist}/cli/utils/themes.test.d.ts +0 -0
  821. /package/{packages/core/dist → dist}/cli/utils/themes.test.d.ts.map +0 -0
  822. /package/{packages/core/dist → dist}/cli/utils/themes.test.js +0 -0
  823. /package/{packages/core/dist → dist}/cli/utils/themes.test.js.map +0 -0
  824. /package/{packages/core/dist → dist}/cli/utils/version.d.ts +0 -0
  825. /package/{packages/core/dist → dist}/cli/utils/version.d.ts.map +0 -0
  826. /package/{packages/core/dist → dist}/cli/utils/version.js +0 -0
  827. /package/{packages/core/dist → dist}/cli/utils/version.js.map +0 -0
  828. /package/{packages/core/dist → dist}/cli/workspace.test.d.ts +0 -0
  829. /package/{packages/core/dist → dist}/cli/workspace.test.d.ts.map +0 -0
  830. /package/{packages/core/dist → dist}/cli/workspace.test.js +0 -0
  831. /package/{packages/core/dist → dist}/cli/workspace.test.js.map +0 -0
  832. /package/{packages/core/dist → dist}/index.d.ts +0 -0
  833. /package/{packages/core/dist → dist}/index.d.ts.map +0 -0
  834. /package/{packages/core/dist → dist}/index.js +0 -0
  835. /package/{packages/core/dist → dist}/index.js.map +0 -0
  836. /package/{packages/core/dist → dist}/jira/jira-epic-creation.d.ts +0 -0
  837. /package/{packages/core/dist → dist}/jira/jira-epic-creation.d.ts.map +0 -0
  838. /package/{packages/core/dist → dist}/jira/jira-epic-creation.js +0 -0
  839. /package/{packages/core/dist → dist}/jira/jira-epic-creation.js.map +0 -0
  840. /package/{packages/core/dist → dist}/jira/jira-epic-creation.test.d.ts +0 -0
  841. /package/{packages/core/dist → dist}/jira/jira-epic-creation.test.d.ts.map +0 -0
  842. /package/{packages/core/dist → dist}/jira/jira-epic-creation.test.js +0 -0
  843. /package/{packages/core/dist → dist}/jira/jira-epic-creation.test.js.map +0 -0
  844. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.d.ts +0 -0
  845. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.d.ts.map +0 -0
  846. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.js +0 -0
  847. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.js.map +0 -0
  848. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.test.d.ts +0 -0
  849. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.test.d.ts.map +0 -0
  850. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.test.js +0 -0
  851. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.test.js.map +0 -0
  852. /package/{packages/core/dist → dist}/permissions/index.d.ts +0 -0
  853. /package/{packages/core/dist → dist}/permissions/index.d.ts.map +0 -0
  854. /package/{packages/core/dist → dist}/permissions/index.js +0 -0
  855. /package/{packages/core/dist → dist}/permissions/index.js.map +0 -0
  856. /package/{packages/core/dist → dist}/permissions/permission-schema.d.ts +0 -0
  857. /package/{packages/core/dist → dist}/permissions/permission-schema.d.ts.map +0 -0
  858. /package/{packages/core/dist → dist}/permissions/permission-schema.js +0 -0
  859. /package/{packages/core/dist → dist}/permissions/permission-schema.js.map +0 -0
  860. /package/{packages/core/dist → dist}/permissions/permission-schema.test.d.ts +0 -0
  861. /package/{packages/core/dist → dist}/permissions/permission-schema.test.d.ts.map +0 -0
  862. /package/{packages/core/dist → dist}/permissions/permission-schema.test.js +0 -0
  863. /package/{packages/core/dist → dist}/permissions/permission-schema.test.js.map +0 -0
  864. /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.d.ts +0 -0
  865. /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.d.ts.map +0 -0
  866. /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.js +0 -0
  867. /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.js.map +0 -0
  868. /package/{packages/core/dist → dist}/scripts/benchmark-integration.d.ts +0 -0
  869. /package/{packages/core/dist → dist}/scripts/benchmark-integration.d.ts.map +0 -0
  870. /package/{packages/core/dist → dist}/scripts/benchmark-integration.js +0 -0
  871. /package/{packages/core/dist → dist}/scripts/benchmark-integration.js.map +0 -0
  872. /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.d.ts +0 -0
  873. /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.d.ts.map +0 -0
  874. /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.js +0 -0
  875. /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.js.map +0 -0
  876. /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.d.ts +0 -0
  877. /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.d.ts.map +0 -0
  878. /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.js +0 -0
  879. /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.js.map +0 -0
  880. /package/{packages/core/dist → dist}/scripts/generate-all-spiders.d.ts +0 -0
  881. /package/{packages/core/dist → dist}/scripts/generate-all-spiders.d.ts.map +0 -0
  882. /package/{packages/core/dist → dist}/scripts/generate-all-spiders.js +0 -0
  883. /package/{packages/core/dist → dist}/scripts/generate-all-spiders.js.map +0 -0
  884. /package/{packages/core/dist → dist}/scripts/generate-report.d.ts +0 -0
  885. /package/{packages/core/dist → dist}/scripts/generate-report.d.ts.map +0 -0
  886. /package/{packages/core/dist → dist}/scripts/generate-report.js +0 -0
  887. /package/{packages/core/dist → dist}/scripts/generate-report.js.map +0 -0
  888. /package/{packages/core/dist → dist}/scripts/generate-report.test.d.ts +0 -0
  889. /package/{packages/core/dist → dist}/scripts/generate-report.test.d.ts.map +0 -0
  890. /package/{packages/core/dist → dist}/scripts/generate-report.test.js +0 -0
  891. /package/{packages/core/dist → dist}/scripts/generate-report.test.js.map +0 -0
  892. /package/{packages/core/dist → dist}/scripts/generate-spider-report.d.ts +0 -0
  893. /package/{packages/core/dist → dist}/scripts/generate-spider-report.d.ts.map +0 -0
  894. /package/{packages/core/dist → dist}/scripts/generate-spider-report.js +0 -0
  895. /package/{packages/core/dist → dist}/scripts/generate-spider-report.js.map +0 -0
  896. /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.d.ts +0 -0
  897. /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.d.ts.map +0 -0
  898. /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.js +0 -0
  899. /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.js.map +0 -0
  900. /package/{packages/core/dist → dist}/scripts/generate-spider.d.ts +0 -0
  901. /package/{packages/core/dist → dist}/scripts/generate-spider.d.ts.map +0 -0
  902. /package/{packages/core/dist → dist}/scripts/generate-spider.js +0 -0
  903. /package/{packages/core/dist → dist}/scripts/generate-spider.js.map +0 -0
  904. /package/{packages/core/dist → dist}/scripts/generate-spider.test.d.ts +0 -0
  905. /package/{packages/core/dist → dist}/scripts/generate-spider.test.d.ts.map +0 -0
  906. /package/{packages/core/dist → dist}/scripts/generate-spider.test.js +0 -0
  907. /package/{packages/core/dist → dist}/scripts/generate-spider.test.js.map +0 -0
  908. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.d.ts +0 -0
  909. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.d.ts.map +0 -0
  910. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.js +0 -0
  911. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.js.map +0 -0
  912. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.d.ts +0 -0
  913. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.d.ts.map +0 -0
  914. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.js +0 -0
  915. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.js.map +0 -0
  916. /package/{packages/core/dist → dist}/scripts/run-ci.test.d.ts +0 -0
  917. /package/{packages/core/dist → dist}/scripts/run-ci.test.d.ts.map +0 -0
  918. /package/{packages/core/dist → dist}/scripts/run-ci.test.js +0 -0
  919. /package/{packages/core/dist → dist}/scripts/run-ci.test.js.map +0 -0
  920. /package/{packages/core/dist → dist}/scripts/theme-detail.test.d.ts +0 -0
  921. /package/{packages/core/dist → dist}/scripts/theme-detail.test.d.ts.map +0 -0
  922. /package/{packages/core/dist → dist}/scripts/theme-detail.test.js +0 -0
  923. /package/{packages/core/dist → dist}/scripts/theme-detail.test.js.map +0 -0
  924. /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.d.ts +0 -0
  925. /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.d.ts.map +0 -0
  926. /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.js +0 -0
  927. /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.js.map +0 -0
  928. /package/{packages/core/dist → dist}/workflow/gate-handler.d.ts +0 -0
  929. /package/{packages/core/dist → dist}/workflow/gate-handler.d.ts.map +0 -0
  930. /package/{packages/core/dist → dist}/workflow/gate-handler.js +0 -0
  931. /package/{packages/core/dist → dist}/workflow/gate-handler.js.map +0 -0
  932. /package/{packages/core/dist → dist}/workflow/gate-handler.test.d.ts +0 -0
  933. /package/{packages/core/dist → dist}/workflow/gate-handler.test.d.ts.map +0 -0
  934. /package/{packages/core/dist → dist}/workflow/gate-handler.test.js +0 -0
  935. /package/{packages/core/dist → dist}/workflow/gate-handler.test.js.map +0 -0
  936. /package/{packages/core/dist → dist}/workflow/generic-sm-finish.d.ts +0 -0
  937. /package/{packages/core/dist → dist}/workflow/generic-sm-finish.d.ts.map +0 -0
  938. /package/{packages/core/dist → dist}/workflow/generic-sm-finish.js +0 -0
  939. /package/{packages/core/dist → dist}/workflow/generic-sm-finish.js.map +0 -0
  940. /package/{packages/core/dist → dist}/workflow/generic-sm-setup.d.ts +0 -0
  941. /package/{packages/core/dist → dist}/workflow/generic-sm-setup.d.ts.map +0 -0
  942. /package/{packages/core/dist → dist}/workflow/generic-sm-setup.js +0 -0
  943. /package/{packages/core/dist → dist}/workflow/generic-sm-setup.js.map +0 -0
  944. /package/{packages/core/dist → dist}/workflow/handoff.d.ts +0 -0
  945. /package/{packages/core/dist → dist}/workflow/handoff.d.ts.map +0 -0
  946. /package/{packages/core/dist → dist}/workflow/handoff.js +0 -0
  947. /package/{packages/core/dist → dist}/workflow/handoff.js.map +0 -0
  948. /package/{packages/core/dist → dist}/workflow/handoff.test.d.ts +0 -0
  949. /package/{packages/core/dist → dist}/workflow/handoff.test.d.ts.map +0 -0
  950. /package/{packages/core/dist → dist}/workflow/session-state.d.ts +0 -0
  951. /package/{packages/core/dist → dist}/workflow/session-state.d.ts.map +0 -0
  952. /package/{packages/core/dist → dist}/workflow/session-state.js +0 -0
  953. /package/{packages/core/dist → dist}/workflow/session-state.js.map +0 -0
  954. /package/{packages/core/dist → dist}/workflow/session-state.test.d.ts +0 -0
  955. /package/{packages/core/dist → dist}/workflow/session-state.test.d.ts.map +0 -0
  956. /package/{packages/core/dist → dist}/workflow/session-state.test.js +0 -0
  957. /package/{packages/core/dist → dist}/workflow/session-state.test.js.map +0 -0
  958. /package/{packages/core/dist → dist}/workflow/sm-subagents.test.d.ts +0 -0
  959. /package/{packages/core/dist → dist}/workflow/sm-subagents.test.d.ts.map +0 -0
  960. /package/{packages/core/dist → dist}/workflow/sm-subagents.test.js +0 -0
  961. /package/{packages/core/dist → dist}/workflow/sm-subagents.test.js.map +0 -0
  962. /package/{packages/core/dist → dist}/workflow/step-parser.d.ts +0 -0
  963. /package/{packages/core/dist → dist}/workflow/step-parser.d.ts.map +0 -0
  964. /package/{packages/core/dist → dist}/workflow/step-parser.js +0 -0
  965. /package/{packages/core/dist → dist}/workflow/step-parser.js.map +0 -0
  966. /package/{packages/core/dist → dist}/workflow/step-parser.test.d.ts +0 -0
  967. /package/{packages/core/dist → dist}/workflow/step-parser.test.d.ts.map +0 -0
  968. /package/{packages/core/dist → dist}/workflow/step-parser.test.js +0 -0
  969. /package/{packages/core/dist → dist}/workflow/step-parser.test.js.map +0 -0
  970. /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.d.ts +0 -0
  971. /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.d.ts.map +0 -0
  972. /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.js +0 -0
  973. /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.js.map +0 -0
  974. /package/{packages/core/dist → dist}/workflow/test-cache.d.ts +0 -0
  975. /package/{packages/core/dist → dist}/workflow/test-cache.d.ts.map +0 -0
  976. /package/{packages/core/dist → dist}/workflow/test-cache.js +0 -0
  977. /package/{packages/core/dist → dist}/workflow/test-cache.js.map +0 -0
  978. /package/{packages/core/dist → dist}/workflow/test-cache.test.d.ts +0 -0
  979. /package/{packages/core/dist → dist}/workflow/test-cache.test.d.ts.map +0 -0
  980. /package/{packages/core/dist → dist}/workflow/test-cache.test.js +0 -0
  981. /package/{packages/core/dist → dist}/workflow/test-cache.test.js.map +0 -0
  982. /package/{packages/core/dist → dist}/workflow/trimodal.d.ts +0 -0
  983. /package/{packages/core/dist → dist}/workflow/trimodal.d.ts.map +0 -0
  984. /package/{packages/core/dist → dist}/workflow/trimodal.js +0 -0
  985. /package/{packages/core/dist → dist}/workflow/trimodal.js.map +0 -0
  986. /package/{packages/core/dist → dist}/workflow/trimodal.test.d.ts +0 -0
  987. /package/{packages/core/dist → dist}/workflow/trimodal.test.d.ts.map +0 -0
  988. /package/{packages/core/dist → dist}/workflow/trimodal.test.js +0 -0
  989. /package/{packages/core/dist → dist}/workflow/trimodal.test.js.map +0 -0
  990. /package/{packages/core/dist → dist}/workflow/variable-resolver.d.ts +0 -0
  991. /package/{packages/core/dist → dist}/workflow/variable-resolver.d.ts.map +0 -0
  992. /package/{packages/core/dist → dist}/workflow/variable-resolver.js +0 -0
  993. /package/{packages/core/dist → dist}/workflow/variable-resolver.js.map +0 -0
  994. /package/{packages/core/dist → dist}/workflow/variable-resolver.test.d.ts +0 -0
  995. /package/{packages/core/dist → dist}/workflow/variable-resolver.test.d.ts.map +0 -0
  996. /package/{packages/core/dist → dist}/workflow/variable-resolver.test.js +0 -0
  997. /package/{packages/core/dist → dist}/workflow/variable-resolver.test.js.map +0 -0
  998. /package/{packages/core/dist → dist}/workflow/workflow-executor.d.ts +0 -0
  999. /package/{packages/core/dist → dist}/workflow/workflow-executor.d.ts.map +0 -0
  1000. /package/{packages/core/dist → dist}/workflow/workflow-executor.js +0 -0
  1001. /package/{packages/core/dist → dist}/workflow/workflow-executor.js.map +0 -0
  1002. /package/{packages/core/dist → dist}/workflow/workflow-executor.test.d.ts +0 -0
  1003. /package/{packages/core/dist → dist}/workflow/workflow-executor.test.d.ts.map +0 -0
  1004. /package/{packages/core/dist → dist}/workflow/workflow-executor.test.js +0 -0
  1005. /package/{packages/core/dist → dist}/workflow/workflow-executor.test.js.map +0 -0
  1006. /package/{packages/core/dist → dist}/workflow/workflow-loader.d.ts +0 -0
  1007. /package/{packages/core/dist → dist}/workflow/workflow-loader.d.ts.map +0 -0
  1008. /package/{packages/core/dist → dist}/workflow/workflow-loader.js +0 -0
  1009. /package/{packages/core/dist → dist}/workflow/workflow-loader.js.map +0 -0
  1010. /package/{packages/core/dist → dist}/workflow/workflow-loader.test.d.ts +0 -0
  1011. /package/{packages/core/dist → dist}/workflow/workflow-loader.test.d.ts.map +0 -0
  1012. /package/{packages/core/dist → dist}/workflow/workflow-loader.test.js +0 -0
  1013. /package/{packages/core/dist → dist}/workflow/workflow-loader.test.js.map +0 -0
  1014. /package/{packages/core/dist → dist}/workflow/workflow-migration.test.d.ts +0 -0
  1015. /package/{packages/core/dist → dist}/workflow/workflow-migration.test.d.ts.map +0 -0
  1016. /package/{packages/core/dist → dist}/workflow/workflow-migration.test.js +0 -0
  1017. /package/{packages/core/dist → dist}/workflow/workflow-migration.test.js.map +0 -0
  1018. /package/{packages/core/dist → dist}/workflow/workflow-permissions.d.ts +0 -0
  1019. /package/{packages/core/dist → dist}/workflow/workflow-permissions.d.ts.map +0 -0
  1020. /package/{packages/core/dist → dist}/workflow/workflow-permissions.js +0 -0
  1021. /package/{packages/core/dist → dist}/workflow/workflow-permissions.js.map +0 -0
  1022. /package/{packages/core/dist → dist}/workflow/workflow-permissions.test.d.ts +0 -0
  1023. /package/{packages/core/dist → dist}/workflow/workflow-permissions.test.d.ts.map +0 -0
  1024. /package/{packages/core/dist → dist}/workflow/workflow-permissions.test.js +0 -0
  1025. /package/{packages/core/dist → dist}/workflow/workflow-permissions.test.js.map +0 -0
  1026. /package/{packages/core/dist → dist}/workflow/workflow-router.d.ts +0 -0
  1027. /package/{packages/core/dist → dist}/workflow/workflow-router.d.ts.map +0 -0
  1028. /package/{packages/core/dist → dist}/workflow/workflow-router.js +0 -0
  1029. /package/{packages/core/dist → dist}/workflow/workflow-router.js.map +0 -0
  1030. /package/{packages/core/dist → dist}/workflow/workflow-router.test.d.ts +0 -0
  1031. /package/{packages/core/dist → dist}/workflow/workflow-router.test.d.ts.map +0 -0
  1032. /package/{packages/core/dist → dist}/workflow/workflow-router.test.js +0 -0
  1033. /package/{packages/core/dist → dist}/workflow/workflow-router.test.js.map +0 -0
  1034. /package/{packages/core/dist → dist}/workflow/workflow-schema.d.ts +0 -0
  1035. /package/{packages/core/dist → dist}/workflow/workflow-schema.d.ts.map +0 -0
  1036. /package/{packages/core/dist → dist}/workflow/workflow-schema.js +0 -0
  1037. /package/{packages/core/dist → dist}/workflow/workflow-schema.js.map +0 -0
  1038. /package/{packages/core/dist → dist}/workflow/workflow-schema.test.d.ts +0 -0
  1039. /package/{packages/core/dist → dist}/workflow/workflow-schema.test.d.ts.map +0 -0
  1040. /package/{packages/core/dist → dist}/workflow/workflow-schema.test.js +0 -0
  1041. /package/{packages/core/dist → dist}/workflow/workflow-schema.test.js.map +0 -0
  1042. /package/{packages/core/dist → dist}/workflow/workflow-stepped-schema.test.d.ts +0 -0
  1043. /package/{packages/core/dist → dist}/workflow/workflow-stepped-schema.test.d.ts.map +0 -0
@@ -1,573 +0,0 @@
1
- #!/usr/bin/env bash
2
- # implementation-readiness-workflow-import.test.sh - Tests for Story MSSCI-12138
3
- #
4
- # These tests verify that the BMAD implementation-readiness workflow is correctly
5
- # imported into Pennyfarthing's stepped workflow format.
6
- #
7
- # Source: ~/Projects/BMAD-METHOD/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/
8
- # Target: pennyfarthing-dist/workflows/implementation-readiness/
9
- #
10
- # This is a STEPPED workflow with 6 step files:
11
- # - step-01-document-discovery.md
12
- # - step-02-prd-analysis.md
13
- # - step-03-epic-coverage-validation.md
14
- # - step-04-ux-alignment.md
15
- # - step-05-epic-quality-review.md
16
- # - step-06-final-assessment.md
17
- #
18
- # AC1: pennyfarthing-dist/workflows/implementation-readiness/ directory created
19
- # AC2: workflow.yaml with correct schema (name, description, type, steps)
20
- # AC3: All 6 step files copied with variable syntax validated
21
- # AC4: Template file(s) copied if present
22
- # AC5: /workflow list shows implementation-readiness as available workflow
23
- # AC6: Workflow purpose documented (BMAD reference)
24
- #
25
- # Run with: ./implementation-readiness-workflow-import.test.sh
26
- # Or: bash implementation-readiness-workflow-import.test.sh
27
-
28
- set -euo pipefail
29
-
30
- # Colors for output
31
- RED='\033[0;31m'
32
- GREEN='\033[0;32m'
33
- YELLOW='\033[1;33m'
34
- NC='\033[0m' # No Color
35
-
36
- # Test counters
37
- TESTS_RUN=0
38
- TESTS_PASSED=0
39
- TESTS_FAILED=0
40
-
41
- # Paths
42
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
43
- PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
44
- BMAD_SOURCE="${BMAD_IMPL_READINESS_SOURCE:-$HOME/Projects/BMAD-METHOD/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness}"
45
- TARGET_DIR="$PROJECT_ROOT/pennyfarthing-dist/workflows/implementation-readiness"
46
-
47
- # =============================================================================
48
- # Test Framework
49
- # =============================================================================
50
-
51
- assert_eq() {
52
- local expected="$1"
53
- local actual="$2"
54
- local message="${3:-Values should be equal}"
55
-
56
- if [[ "$expected" == "$actual" ]]; then
57
- return 0
58
- else
59
- echo -e "${RED}FAIL${NC}: $message"
60
- echo " Expected: $expected"
61
- echo " Actual: $actual"
62
- return 1
63
- fi
64
- }
65
-
66
- assert_contains() {
67
- local haystack="$1"
68
- local needle="$2"
69
- local message="${3:-Output should contain expected text}"
70
-
71
- if [[ "$haystack" == *"$needle"* ]]; then
72
- return 0
73
- else
74
- echo -e "${RED}FAIL${NC}: $message"
75
- echo " Expected to contain: $needle"
76
- echo " Actual output: ${haystack:0:200}..."
77
- return 1
78
- fi
79
- }
80
-
81
- assert_not_contains() {
82
- local haystack="$1"
83
- local needle="$2"
84
- local message="${3:-Output should not contain text}"
85
-
86
- if [[ "$haystack" != *"$needle"* ]]; then
87
- return 0
88
- else
89
- echo -e "${RED}FAIL${NC}: $message"
90
- echo " Should not contain: $needle"
91
- return 1
92
- fi
93
- }
94
-
95
- assert_file_exists() {
96
- local filepath="$1"
97
- local message="${2:-File should exist}"
98
-
99
- if [[ -f "$filepath" ]]; then
100
- return 0
101
- else
102
- echo -e "${RED}FAIL${NC}: $message"
103
- echo " File not found: $filepath"
104
- return 1
105
- fi
106
- }
107
-
108
- assert_dir_exists() {
109
- local dirpath="$1"
110
- local message="${2:-Directory should exist}"
111
-
112
- if [[ -d "$dirpath" ]]; then
113
- return 0
114
- else
115
- echo -e "${RED}FAIL${NC}: $message"
116
- echo " Directory not found: $dirpath"
117
- return 1
118
- fi
119
- }
120
-
121
- assert_file_contains() {
122
- local filepath="$1"
123
- local needle="$2"
124
- local message="${3:-File should contain text}"
125
-
126
- if [[ ! -f "$filepath" ]]; then
127
- echo -e "${RED}FAIL${NC}: $message"
128
- echo " File not found: $filepath"
129
- return 1
130
- fi
131
-
132
- local content
133
- content=$(cat "$filepath")
134
-
135
- if [[ "$content" == *"$needle"* ]]; then
136
- return 0
137
- else
138
- echo -e "${RED}FAIL${NC}: $message"
139
- echo " Expected file to contain: $needle"
140
- echo " File: $filepath"
141
- return 1
142
- fi
143
- }
144
-
145
- assert_file_not_contains() {
146
- local filepath="$1"
147
- local needle="$2"
148
- local message="${3:-File should not contain text}"
149
-
150
- if [[ ! -f "$filepath" ]]; then
151
- echo -e "${RED}FAIL${NC}: $message"
152
- echo " File not found: $filepath"
153
- return 1
154
- fi
155
-
156
- local content
157
- content=$(cat "$filepath")
158
-
159
- if [[ "$content" != *"$needle"* ]]; then
160
- return 0
161
- else
162
- echo -e "${RED}FAIL${NC}: $message"
163
- echo " Should not contain: $needle"
164
- echo " File: $filepath"
165
- return 1
166
- fi
167
- }
168
-
169
- assert_file_not_empty() {
170
- local filepath="$1"
171
- local message="${2:-File should not be empty}"
172
-
173
- if [[ ! -f "$filepath" ]]; then
174
- echo -e "${RED}FAIL${NC}: $message"
175
- echo " File not found: $filepath"
176
- return 1
177
- fi
178
-
179
- if [[ -s "$filepath" ]]; then
180
- return 0
181
- else
182
- echo -e "${RED}FAIL${NC}: $message"
183
- echo " File is empty: $filepath"
184
- return 1
185
- fi
186
- }
187
-
188
- run_test() {
189
- local test_name="$1"
190
- local test_func="$2"
191
-
192
- TESTS_RUN=$((TESTS_RUN + 1))
193
-
194
- echo -n " $test_name... "
195
-
196
- if $test_func; then
197
- echo -e "${GREEN}PASS${NC}"
198
- TESTS_PASSED=$((TESTS_PASSED + 1))
199
- else
200
- TESTS_FAILED=$((TESTS_FAILED + 1))
201
- fi
202
- }
203
-
204
- # =============================================================================
205
- # Prerequisites Check
206
- # =============================================================================
207
-
208
- check_prerequisites() {
209
- echo "Checking prerequisites..."
210
-
211
- if [[ ! -d "$BMAD_SOURCE" ]]; then
212
- echo -e "${RED}ERROR${NC}: BMAD implementation-readiness workflow source not found at: $BMAD_SOURCE"
213
- echo "Set BMAD_IMPL_READINESS_SOURCE environment variable to point to the BMAD workflow directory"
214
- exit 1
215
- fi
216
-
217
- if [[ ! -f "$BMAD_SOURCE/workflow.md" ]]; then
218
- echo -e "${RED}ERROR${NC}: BMAD implementation-readiness workflow.md not found at: $BMAD_SOURCE/workflow.md"
219
- exit 1
220
- fi
221
-
222
- if [[ ! -d "$BMAD_SOURCE/steps" ]]; then
223
- echo -e "${RED}ERROR${NC}: BMAD implementation-readiness steps directory not found"
224
- exit 1
225
- fi
226
-
227
- echo -e "${GREEN}OK${NC}: Prerequisites met"
228
- echo ""
229
- }
230
-
231
- # =============================================================================
232
- # AC1: pennyfarthing-dist/workflows/implementation-readiness/ directory created
233
- # =============================================================================
234
-
235
- test_ac1_workflow_directory_exists() {
236
- assert_dir_exists "$TARGET_DIR" \
237
- "implementation-readiness workflow directory should exist at $TARGET_DIR"
238
- }
239
-
240
- test_ac1_workflow_yaml_exists() {
241
- assert_file_exists "$TARGET_DIR/workflow.yaml" \
242
- "workflow.yaml should exist in target directory"
243
- }
244
-
245
- test_ac1_steps_directory_exists() {
246
- assert_dir_exists "$TARGET_DIR/steps" \
247
- "steps/ directory should exist in target"
248
- }
249
-
250
- test_ac1_templates_directory_exists() {
251
- assert_dir_exists "$TARGET_DIR/templates" \
252
- "templates/ directory should exist in target"
253
- }
254
-
255
- # =============================================================================
256
- # AC2: workflow.yaml with correct schema (name, description, type, steps)
257
- # =============================================================================
258
-
259
- test_ac2_workflow_yaml_has_name() {
260
- assert_file_contains "$TARGET_DIR/workflow.yaml" "name:" \
261
- "workflow.yaml should have name field"
262
- }
263
-
264
- test_ac2_workflow_yaml_has_correct_name() {
265
- assert_file_contains "$TARGET_DIR/workflow.yaml" "implementation-readiness" \
266
- "workflow.yaml should have implementation-readiness in name"
267
- }
268
-
269
- test_ac2_workflow_yaml_has_description() {
270
- assert_file_contains "$TARGET_DIR/workflow.yaml" "description:" \
271
- "workflow.yaml should have description field"
272
- }
273
-
274
- test_ac2_workflow_yaml_has_type() {
275
- assert_file_contains "$TARGET_DIR/workflow.yaml" "type:" \
276
- "workflow.yaml should have type field"
277
- }
278
-
279
- test_ac2_workflow_yaml_has_stepped_type() {
280
- assert_file_contains "$TARGET_DIR/workflow.yaml" "stepped" \
281
- "workflow.yaml should have type: stepped (6 sequential steps)"
282
- }
283
-
284
- test_ac2_workflow_yaml_has_steps_config() {
285
- assert_file_contains "$TARGET_DIR/workflow.yaml" "steps:" \
286
- "workflow.yaml should have steps configuration"
287
- }
288
-
289
- test_ac2_workflow_yaml_has_steps_path() {
290
- # The workflow should define where step files are located
291
- assert_file_contains "$TARGET_DIR/workflow.yaml" "path:" \
292
- "workflow.yaml should have steps path defined"
293
- }
294
-
295
- # =============================================================================
296
- # AC3: All 6 step files copied with variable syntax validated
297
- # =============================================================================
298
-
299
- test_ac3_step_01_exists() {
300
- assert_file_exists "$TARGET_DIR/steps/step-01-document-discovery.md" \
301
- "step-01-document-discovery.md should exist"
302
- }
303
-
304
- test_ac3_step_02_exists() {
305
- assert_file_exists "$TARGET_DIR/steps/step-02-prd-analysis.md" \
306
- "step-02-prd-analysis.md should exist"
307
- }
308
-
309
- test_ac3_step_03_exists() {
310
- assert_file_exists "$TARGET_DIR/steps/step-03-epic-coverage-validation.md" \
311
- "step-03-epic-coverage-validation.md should exist"
312
- }
313
-
314
- test_ac3_step_04_exists() {
315
- assert_file_exists "$TARGET_DIR/steps/step-04-ux-alignment.md" \
316
- "step-04-ux-alignment.md should exist"
317
- }
318
-
319
- test_ac3_step_05_exists() {
320
- assert_file_exists "$TARGET_DIR/steps/step-05-epic-quality-review.md" \
321
- "step-05-epic-quality-review.md should exist"
322
- }
323
-
324
- test_ac3_step_06_exists() {
325
- assert_file_exists "$TARGET_DIR/steps/step-06-final-assessment.md" \
326
- "step-06-final-assessment.md should exist"
327
- }
328
-
329
- test_ac3_step_01_not_empty() {
330
- assert_file_not_empty "$TARGET_DIR/steps/step-01-document-discovery.md" \
331
- "step-01-document-discovery.md should have content"
332
- }
333
-
334
- test_ac3_step_06_not_empty() {
335
- assert_file_not_empty "$TARGET_DIR/steps/step-06-final-assessment.md" \
336
- "step-06-final-assessment.md should have content"
337
- }
338
-
339
- test_ac3_step_01_has_step_goal() {
340
- assert_file_contains "$TARGET_DIR/steps/step-01-document-discovery.md" "STEP GOAL" \
341
- "step-01 should have STEP GOAL section"
342
- }
343
-
344
- test_ac3_step_06_has_workflow_complete() {
345
- assert_file_contains "$TARGET_DIR/steps/step-06-final-assessment.md" "WORKFLOW COMPLETE" \
346
- "step-06 should indicate workflow completion"
347
- }
348
-
349
- test_ac3_step_count_is_6() {
350
- # Count step files in the steps directory
351
- local step_count
352
- step_count=$(find "$TARGET_DIR/steps" -name "step-*.md" 2>/dev/null | wc -l | tr -d ' ')
353
-
354
- if [[ "$step_count" -eq 6 ]]; then
355
- return 0
356
- else
357
- echo -e "${RED}FAIL${NC}: Expected 6 step files, found $step_count"
358
- return 1
359
- fi
360
- }
361
-
362
- # =============================================================================
363
- # AC4: Template file(s) copied if present
364
- # =============================================================================
365
-
366
- test_ac4_template_file_exists() {
367
- assert_file_exists "$TARGET_DIR/templates/readiness-report-template.md" \
368
- "readiness-report-template.md should be copied"
369
- }
370
-
371
- test_ac4_template_not_empty() {
372
- assert_file_not_empty "$TARGET_DIR/templates/readiness-report-template.md" \
373
- "template file should not be empty"
374
- }
375
-
376
- test_ac4_template_has_title() {
377
- assert_file_contains "$TARGET_DIR/templates/readiness-report-template.md" "Implementation Readiness" \
378
- "template should have Implementation Readiness title"
379
- }
380
-
381
- test_ac4_template_has_date_placeholder() {
382
- # Template should have {{date}} placeholder
383
- assert_file_contains "$TARGET_DIR/templates/readiness-report-template.md" "{{date}}" \
384
- "template should have {{date}} placeholder"
385
- }
386
-
387
- # =============================================================================
388
- # AC5: /workflow list shows implementation-readiness as available workflow
389
- # =============================================================================
390
-
391
- test_ac5_workflow_yaml_valid_yaml() {
392
- # The workflow.yaml should be parseable as YAML
393
- if command -v yq &> /dev/null; then
394
- if yq '.' "$TARGET_DIR/workflow.yaml" > /dev/null 2>&1; then
395
- return 0
396
- else
397
- echo -e "${RED}FAIL${NC}: workflow.yaml is not valid YAML"
398
- return 1
399
- fi
400
- else
401
- # Skip if yq not available
402
- echo -e "${YELLOW}SKIP${NC}: yq not available for YAML validation"
403
- return 0
404
- fi
405
- }
406
-
407
- test_ac5_workflow_has_triggers() {
408
- assert_file_contains "$TARGET_DIR/workflow.yaml" "triggers:" \
409
- "workflow.yaml should have triggers section for workflow listing"
410
- }
411
-
412
- test_ac5_workflow_triggers_has_types() {
413
- assert_file_contains "$TARGET_DIR/workflow.yaml" "types:" \
414
- "workflow.yaml triggers should have types field"
415
- }
416
-
417
- test_ac5_workflow_triggers_has_on_demand() {
418
- # This workflow should be invokable on demand
419
- assert_file_contains "$TARGET_DIR/workflow.yaml" "on_demand" \
420
- "workflow.yaml triggers should include on_demand"
421
- }
422
-
423
- # =============================================================================
424
- # AC6: Workflow purpose documented (BMAD reference)
425
- # =============================================================================
426
-
427
- test_ac6_workflow_description_mentions_bmad() {
428
- local content
429
- content=$(cat "$TARGET_DIR/workflow.yaml" 2>/dev/null || echo "")
430
-
431
- # Should mention BMAD, reference, or compatibility
432
- if [[ "$content" == *"BMAD"* ]] || [[ "$content" == *"bmad"* ]] || \
433
- [[ "$content" == *"reference"* ]] || [[ "$content" == *"compat"* ]]; then
434
- return 0
435
- else
436
- echo -e "${RED}FAIL${NC}: workflow.yaml should document BMAD origin/purpose"
437
- return 1
438
- fi
439
- }
440
-
441
- test_ac6_workflow_not_default() {
442
- # This workflow should NOT be a default workflow
443
- assert_file_not_contains "$TARGET_DIR/workflow.yaml" "default: true" \
444
- "implementation-readiness should not be default workflow"
445
- }
446
-
447
- test_ac6_workflow_has_comment_header() {
448
- # Should have a comment header explaining the workflow
449
- local first_line
450
- first_line=$(head -1 "$TARGET_DIR/workflow.yaml" 2>/dev/null || echo "")
451
-
452
- if [[ "$first_line" == "#"* ]]; then
453
- return 0
454
- else
455
- echo -e "${RED}FAIL${NC}: workflow.yaml should have comment header explaining purpose"
456
- return 1
457
- fi
458
- }
459
-
460
- test_ac6_description_mentions_readiness_or_validation() {
461
- # Description should mention readiness check or validation
462
- local content
463
- content=$(cat "$TARGET_DIR/workflow.yaml" 2>/dev/null || echo "")
464
-
465
- if [[ "$content" == *"readiness"* ]] || [[ "$content" == *"validation"* ]] || \
466
- [[ "$content" == *"validate"* ]] || [[ "$content" == *"assessment"* ]]; then
467
- return 0
468
- else
469
- echo -e "${RED}FAIL${NC}: workflow.yaml description should mention readiness/validation purpose"
470
- return 1
471
- fi
472
- }
473
-
474
- test_ac6_description_mentions_prd_or_architecture() {
475
- # Description should mention what it validates (PRD, Architecture, Epics)
476
- local content
477
- content=$(cat "$TARGET_DIR/workflow.yaml" 2>/dev/null || echo "")
478
-
479
- if [[ "$content" == *"PRD"* ]] || [[ "$content" == *"Architecture"* ]] || \
480
- [[ "$content" == *"Epic"* ]] || [[ "$content" == *"implementation"* ]]; then
481
- return 0
482
- else
483
- echo -e "${RED}FAIL${NC}: workflow.yaml description should mention PRD/Architecture/Epics"
484
- return 1
485
- fi
486
- }
487
-
488
- # =============================================================================
489
- # Run All Tests
490
- # =============================================================================
491
-
492
- echo ""
493
- echo "=============================================="
494
- echo "Story MSSCI-12138: Import Implementation-Readiness Workflow Tests"
495
- echo "=============================================="
496
- echo ""
497
-
498
- check_prerequisites
499
-
500
- echo "AC1: pennyfarthing-dist/workflows/implementation-readiness/ directory created"
501
- run_test "workflow directory exists" test_ac1_workflow_directory_exists
502
- run_test "workflow.yaml exists" test_ac1_workflow_yaml_exists
503
- run_test "steps/ directory exists" test_ac1_steps_directory_exists
504
- run_test "templates/ directory exists" test_ac1_templates_directory_exists
505
-
506
- echo ""
507
- echo "AC2: workflow.yaml with correct schema (name, description, type, steps)"
508
- run_test "workflow.yaml has name field" test_ac2_workflow_yaml_has_name
509
- run_test "workflow.yaml has correct name" test_ac2_workflow_yaml_has_correct_name
510
- run_test "workflow.yaml has description" test_ac2_workflow_yaml_has_description
511
- run_test "workflow.yaml has type field" test_ac2_workflow_yaml_has_type
512
- run_test "workflow.yaml has stepped type" test_ac2_workflow_yaml_has_stepped_type
513
- run_test "workflow.yaml has steps config" test_ac2_workflow_yaml_has_steps_config
514
- run_test "workflow.yaml has steps path" test_ac2_workflow_yaml_has_steps_path
515
-
516
- echo ""
517
- echo "AC3: All 6 step files copied with variable syntax validated"
518
- run_test "step-01-document-discovery.md exists" test_ac3_step_01_exists
519
- run_test "step-02-prd-analysis.md exists" test_ac3_step_02_exists
520
- run_test "step-03-epic-coverage-validation.md exists" test_ac3_step_03_exists
521
- run_test "step-04-ux-alignment.md exists" test_ac3_step_04_exists
522
- run_test "step-05-epic-quality-review.md exists" test_ac3_step_05_exists
523
- run_test "step-06-final-assessment.md exists" test_ac3_step_06_exists
524
- run_test "step-01 has content" test_ac3_step_01_not_empty
525
- run_test "step-06 has content" test_ac3_step_06_not_empty
526
- run_test "step-01 has STEP GOAL section" test_ac3_step_01_has_step_goal
527
- run_test "step-06 has WORKFLOW COMPLETE marker" test_ac3_step_06_has_workflow_complete
528
- run_test "exactly 6 step files present" test_ac3_step_count_is_6
529
-
530
- echo ""
531
- echo "AC4: Template file(s) copied if present"
532
- run_test "readiness-report-template.md exists" test_ac4_template_file_exists
533
- run_test "template file has content" test_ac4_template_not_empty
534
- run_test "template has correct title" test_ac4_template_has_title
535
- run_test "template has date placeholder" test_ac4_template_has_date_placeholder
536
-
537
- echo ""
538
- echo "AC5: /workflow list shows implementation-readiness as available workflow"
539
- run_test "workflow.yaml is valid YAML" test_ac5_workflow_yaml_valid_yaml
540
- run_test "workflow.yaml has triggers section" test_ac5_workflow_has_triggers
541
- run_test "triggers has types field" test_ac5_workflow_triggers_has_types
542
- run_test "triggers includes on_demand" test_ac5_workflow_triggers_has_on_demand
543
-
544
- echo ""
545
- echo "AC6: Workflow purpose documented (BMAD reference)"
546
- run_test "description mentions BMAD origin" test_ac6_workflow_description_mentions_bmad
547
- run_test "workflow is not default" test_ac6_workflow_not_default
548
- run_test "workflow.yaml has comment header" test_ac6_workflow_has_comment_header
549
- run_test "description mentions readiness/validation" test_ac6_description_mentions_readiness_or_validation
550
- run_test "description mentions PRD/Architecture/Epics" test_ac6_description_mentions_prd_or_architecture
551
-
552
- # =============================================================================
553
- # Summary
554
- # =============================================================================
555
-
556
- echo ""
557
- echo "=============================================="
558
- echo "Test Summary"
559
- echo "=============================================="
560
- echo -e "Tests run: $TESTS_RUN"
561
- echo -e "Tests passed: ${GREEN}$TESTS_PASSED${NC}"
562
- echo -e "Tests failed: ${RED}$TESTS_FAILED${NC}"
563
- echo ""
564
-
565
- if [[ $TESTS_FAILED -gt 0 ]]; then
566
- echo -e "${RED}FAILED${NC} - $TESTS_FAILED test(s) failed"
567
- echo ""
568
- echo "This is expected in RED state - Dev needs to import the workflow."
569
- exit 1
570
- else
571
- echo -e "${GREEN}PASSED${NC} - All tests passed"
572
- exit 0
573
- fi