@pennyfarthing/core 7.9.5 → 8.0.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 (631) hide show
  1. package/LICENSE +14 -0
  2. package/README.md +209 -0
  3. package/package.json +32 -37
  4. package/{dist → packages/core/dist}/cli/utils/files.d.ts +6 -2
  5. package/{dist → packages/core/dist}/cli/utils/files.d.ts.map +1 -1
  6. package/{dist → packages/core/dist}/cli/utils/files.js +12 -4
  7. package/{dist → packages/core/dist}/cli/utils/files.js.map +1 -1
  8. package/{dist → packages/core/dist}/cli/workspace.test.js +3 -1
  9. package/{dist → packages/core/dist}/cli/workspace.test.js.map +1 -1
  10. package/pennyfarthing-dist/agents/README.md +12 -12
  11. package/pennyfarthing-dist/agents/architect.md +1 -1
  12. package/pennyfarthing-dist/agents/dev.md +2 -2
  13. package/pennyfarthing-dist/agents/devops.md +1 -1
  14. package/pennyfarthing-dist/agents/handoff.md +2 -2
  15. package/pennyfarthing-dist/agents/pm.md +1 -1
  16. package/pennyfarthing-dist/agents/reviewer.md +2 -2
  17. package/pennyfarthing-dist/agents/sm-setup.md +5 -5
  18. package/pennyfarthing-dist/agents/sm.md +6 -6
  19. package/pennyfarthing-dist/agents/tea.md +2 -2
  20. package/pennyfarthing-dist/agents/tech-writer.md +1 -1
  21. package/pennyfarthing-dist/agents/testing-runner.md +4 -4
  22. package/pennyfarthing-dist/agents/ux-designer.md +1 -1
  23. package/pennyfarthing-dist/agents/workflow-status-check.md +2 -2
  24. package/pennyfarthing-dist/commands/architect.md +1 -1
  25. package/pennyfarthing-dist/commands/create-branches-from-story.md +5 -5
  26. package/pennyfarthing-dist/commands/dev.md +1 -1
  27. package/pennyfarthing-dist/commands/devops.md +1 -1
  28. package/pennyfarthing-dist/commands/health-check.md +3 -3
  29. package/pennyfarthing-dist/commands/orchestrator.md +1 -1
  30. package/pennyfarthing-dist/commands/parallel-work.md +4 -4
  31. package/pennyfarthing-dist/commands/pm.md +1 -1
  32. package/pennyfarthing-dist/commands/release.md +1 -1
  33. package/pennyfarthing-dist/commands/repo-status.md +2 -2
  34. package/pennyfarthing-dist/commands/retro.md +2 -2
  35. package/pennyfarthing-dist/commands/reviewer.md +1 -1
  36. package/pennyfarthing-dist/commands/set-theme.md +1 -1
  37. package/pennyfarthing-dist/commands/sm.md +1 -1
  38. package/pennyfarthing-dist/commands/sprint.md +7 -7
  39. package/pennyfarthing-dist/commands/start-epic.md +3 -3
  40. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +4 -4
  41. package/pennyfarthing-dist/commands/tea.md +1 -1
  42. package/pennyfarthing-dist/commands/tech-writer.md +1 -1
  43. package/pennyfarthing-dist/commands/ux-designer.md +1 -1
  44. package/pennyfarthing-dist/commands/work.md +1 -1
  45. package/pennyfarthing-dist/guides/agent-behavior.md +11 -11
  46. package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +1 -1
  47. package/pennyfarthing-dist/guides/agent-template-strategic.md +1 -1
  48. package/pennyfarthing-dist/guides/agent-template-tactical.md +2 -2
  49. package/pennyfarthing-dist/guides/worktree-mode.md +3 -3
  50. package/pennyfarthing-dist/guides/xml-tags.md +1 -1
  51. package/pennyfarthing-dist/personas/themes/mash.yaml +2 -2
  52. package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +1 -1
  53. package/pennyfarthing-dist/scripts/README.md +6 -6
  54. package/pennyfarthing-dist/scripts/core/README.md +3 -4
  55. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +12 -17
  56. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +1 -1
  57. package/pennyfarthing-dist/scripts/git/README.md +2 -2
  58. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +3 -15
  59. package/pennyfarthing-dist/scripts/git/release.sh +1 -1
  60. package/pennyfarthing-dist/scripts/health/drift-detection.sh +1 -1
  61. package/pennyfarthing-dist/scripts/hooks/README.md +1 -1
  62. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  63. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +3 -12
  64. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +3 -15
  65. package/pennyfarthing-dist/scripts/jira/README.md +2 -2
  66. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +1 -1
  67. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +1 -1
  68. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +2 -2
  69. package/pennyfarthing-dist/scripts/lib/find-root.sh +45 -25
  70. package/pennyfarthing-dist/scripts/misc/README.md +2 -2
  71. package/pennyfarthing-dist/scripts/misc/backlog.sh +3 -17
  72. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +4 -30
  73. package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +1 -1
  74. package/pennyfarthing-dist/scripts/misc/run-ci.sh +3 -10
  75. package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +1 -1
  76. package/pennyfarthing-dist/scripts/misc/uninstall.sh +0 -1
  77. package/pennyfarthing-dist/scripts/portraits/generate-portraits.py +19 -2
  78. package/pennyfarthing-dist/scripts/sprint/README.md +2 -2
  79. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +5 -5
  80. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +2 -2
  81. package/pennyfarthing-dist/scripts/sprint/check-story.sh +1 -1
  82. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +5 -5
  83. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +5 -5
  84. package/pennyfarthing-dist/scripts/sprint/list-future.sh +2 -2
  85. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +3 -3
  86. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +4 -4
  87. package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +11 -17
  88. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +2 -2
  89. package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +3 -14
  90. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +4 -4
  91. package/pennyfarthing-dist/scripts/story/README.md +2 -2
  92. package/pennyfarthing-dist/scripts/test/README.md +1 -1
  93. package/pennyfarthing-dist/scripts/theme/README.md +1 -1
  94. package/pennyfarthing-dist/scripts/workflow/README.md +2 -2
  95. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +1 -1
  96. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +1 -1
  97. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +1 -1
  98. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +2 -2
  99. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +2 -2
  100. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +2 -2
  101. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +2 -2
  102. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +2 -2
  103. package/pennyfarthing-dist/skills/cyclist/SKILL.md +2 -2
  104. package/pennyfarthing-dist/skills/jira/SKILL.md +15 -15
  105. package/pennyfarthing-dist/skills/judge/SKILL.md +1 -1
  106. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +3 -3
  107. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +2 -2
  108. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +2 -2
  109. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +1 -1
  110. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +3 -3
  111. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +4 -4
  112. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +2 -2
  113. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +2 -2
  114. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +4 -4
  115. package/pennyfarthing-dist/skills/sprint/skill.md +30 -30
  116. package/pennyfarthing-dist/skills/story/skill.md +16 -16
  117. package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +2 -2
  118. package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +2 -2
  119. package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +2 -2
  120. package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +2 -2
  121. package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +2 -2
  122. package/pennyfarthing-dist/skills/workflow/skill.md +14 -14
  123. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +2 -2
  124. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +2 -2
  125. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +1 -1
  126. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +1 -1
  127. package/pennyfarthing_scripts/README.md +66 -0
  128. package/pennyfarthing_scripts/__init__.py +17 -0
  129. package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  130. package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  131. package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
  132. package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
  133. package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
  134. package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
  135. package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
  136. package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
  137. package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
  138. package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
  139. package/pennyfarthing_scripts/bellmode_hook.py +154 -0
  140. package/pennyfarthing_scripts/brownfield/__init__.py +35 -0
  141. package/pennyfarthing_scripts/brownfield/__main__.py +7 -0
  142. package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
  143. package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
  144. package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
  145. package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
  146. package/pennyfarthing_scripts/brownfield/cli.py +131 -0
  147. package/pennyfarthing_scripts/brownfield/discover.py +753 -0
  148. package/pennyfarthing_scripts/common/__init__.py +49 -0
  149. package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
  150. package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
  151. package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
  152. package/pennyfarthing_scripts/common/config.py +91 -0
  153. package/pennyfarthing_scripts/common/output.py +180 -0
  154. package/pennyfarthing_scripts/config.py +21 -0
  155. package/pennyfarthing_scripts/git/__init__.py +29 -0
  156. package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
  157. package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
  158. package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
  159. package/pennyfarthing_scripts/git/create_branches.py +439 -0
  160. package/pennyfarthing_scripts/git/status_all.py +310 -0
  161. package/pennyfarthing_scripts/hooks.py +455 -0
  162. package/pennyfarthing_scripts/jira/__init__.py +93 -0
  163. package/pennyfarthing_scripts/jira/__main__.py +10 -0
  164. package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
  165. package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
  166. package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
  167. package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
  168. package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
  169. package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
  170. package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
  171. package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
  172. package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
  173. package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
  174. package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
  175. package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
  176. package/pennyfarthing_scripts/jira/bidirectional.py +561 -0
  177. package/pennyfarthing_scripts/jira/claim.py +211 -0
  178. package/pennyfarthing_scripts/jira/cli.py +150 -0
  179. package/pennyfarthing_scripts/jira/client.py +613 -0
  180. package/pennyfarthing_scripts/jira/epic.py +176 -0
  181. package/pennyfarthing_scripts/jira/story.py +219 -0
  182. package/pennyfarthing_scripts/jira/sync.py +350 -0
  183. package/pennyfarthing_scripts/jira_bidirectional_sync.py +37 -0
  184. package/pennyfarthing_scripts/jira_epic_creation.py +30 -0
  185. package/pennyfarthing_scripts/jira_sync.py +36 -0
  186. package/pennyfarthing_scripts/jira_sync_story.py +30 -0
  187. package/pennyfarthing_scripts/output.py +37 -0
  188. package/pennyfarthing_scripts/preflight/__init__.py +17 -0
  189. package/pennyfarthing_scripts/preflight/__main__.py +10 -0
  190. package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
  191. package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
  192. package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
  193. package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
  194. package/pennyfarthing_scripts/preflight/cli.py +141 -0
  195. package/pennyfarthing_scripts/preflight/finish.py +382 -0
  196. package/pennyfarthing_scripts/pretooluse_hook.py +142 -0
  197. package/pennyfarthing_scripts/prime/__init__.py +125 -0
  198. package/pennyfarthing_scripts/prime/__main__.py +8 -0
  199. package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
  200. package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
  201. package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
  202. package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
  203. package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
  204. package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
  205. package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
  206. package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  207. package/pennyfarthing_scripts/prime/cli.py +375 -0
  208. package/pennyfarthing_scripts/prime/loader.py +239 -0
  209. package/pennyfarthing_scripts/prime/models.py +169 -0
  210. package/pennyfarthing_scripts/prime/persona.py +288 -0
  211. package/pennyfarthing_scripts/prime/session.py +183 -0
  212. package/pennyfarthing_scripts/prime/workflow.py +275 -0
  213. package/pennyfarthing_scripts/sprint/__init__.py +66 -0
  214. package/pennyfarthing_scripts/sprint/__main__.py +10 -0
  215. package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
  216. package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
  217. package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
  218. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  219. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  220. package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
  221. package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
  222. package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
  223. package/pennyfarthing_scripts/sprint/archive.py +108 -0
  224. package/pennyfarthing_scripts/sprint/cli.py +124 -0
  225. package/pennyfarthing_scripts/sprint/loader.py +193 -0
  226. package/pennyfarthing_scripts/sprint/status.py +122 -0
  227. package/pennyfarthing_scripts/sprint/validator.py +405 -0
  228. package/pennyfarthing_scripts/sprint/work.py +192 -0
  229. package/pennyfarthing_scripts/story/__init__.py +67 -0
  230. package/pennyfarthing_scripts/story/__main__.py +10 -0
  231. package/pennyfarthing_scripts/story/cli.py +105 -0
  232. package/pennyfarthing_scripts/story/create.py +167 -0
  233. package/pennyfarthing_scripts/story/size.py +113 -0
  234. package/pennyfarthing_scripts/story/template.py +151 -0
  235. package/pennyfarthing_scripts/swebench.py +216 -0
  236. package/pennyfarthing_scripts/tests/__init__.py +1 -0
  237. package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
  238. package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
  239. package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
  240. package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
  241. package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
  242. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
  243. package/pennyfarthing_scripts/tests/conftest.py +106 -0
  244. package/pennyfarthing_scripts/tests/test_brownfield.py +842 -0
  245. package/pennyfarthing_scripts/tests/test_cli_modules.py +245 -0
  246. package/pennyfarthing_scripts/tests/test_common.py +180 -0
  247. package/pennyfarthing_scripts/tests/test_git_utils.py +866 -0
  248. package/pennyfarthing_scripts/tests/test_jira_package.py +334 -0
  249. package/pennyfarthing_scripts/tests/test_package_structure.py +372 -0
  250. package/pennyfarthing_scripts/tests/test_prime.py +1050 -0
  251. package/pennyfarthing_scripts/tests/test_sprint_package.py +236 -0
  252. package/pennyfarthing_scripts/tests/test_sprint_validator.py +675 -0
  253. package/pennyfarthing_scripts/tests/test_story_package.py +156 -0
  254. package/pennyfarthing_scripts/welcome_hook.py +157 -0
  255. package/pennyfarthing_scripts/workflow.py +183 -0
  256. package/pennyfarthing-dist/personas/BENCHMARK-METHODOLOGY.md +0 -105
  257. package/pennyfarthing-dist/personas/OCEAN-BENCHMARKING.md +0 -210
  258. package/pennyfarthing-dist/personas/TRAIL-OCEAN-MAPPING.md +0 -168
  259. package/pennyfarthing-dist/personas/ZEITGEIST-ANALYSIS.md +0 -171
  260. package/pennyfarthing-dist/personas/attributes.yaml +0 -69
  261. package/pennyfarthing-dist/personas/scripts/add-zeitgeist-calibrated.py +0 -81
  262. package/pennyfarthing-dist/personas/scripts/add-zeitgeist-scores.sh +0 -56
  263. package/pennyfarthing-dist/personas/zeitgeist-scores.yaml +0 -1172
  264. package/pennyfarthing-dist/scripts/core/run.sh +0 -92
  265. /package/{bin → packages/core/bin}/pennyfarthing.js +0 -0
  266. /package/{dist → packages/core/dist}/bmad/context-reader.d.ts +0 -0
  267. /package/{dist → packages/core/dist}/bmad/context-reader.d.ts.map +0 -0
  268. /package/{dist → packages/core/dist}/bmad/context-reader.js +0 -0
  269. /package/{dist → packages/core/dist}/bmad/context-reader.js.map +0 -0
  270. /package/{dist → packages/core/dist}/bmad/context-reader.test.d.ts +0 -0
  271. /package/{dist → packages/core/dist}/bmad/context-reader.test.d.ts.map +0 -0
  272. /package/{dist → packages/core/dist}/bmad/context-reader.test.js +0 -0
  273. /package/{dist → packages/core/dist}/bmad/context-reader.test.js.map +0 -0
  274. /package/{dist → packages/core/dist}/bmad/epics-parser.d.ts +0 -0
  275. /package/{dist → packages/core/dist}/bmad/epics-parser.d.ts.map +0 -0
  276. /package/{dist → packages/core/dist}/bmad/epics-parser.js +0 -0
  277. /package/{dist → packages/core/dist}/bmad/epics-parser.js.map +0 -0
  278. /package/{dist → packages/core/dist}/bmad/epics-parser.test.d.ts +0 -0
  279. /package/{dist → packages/core/dist}/bmad/epics-parser.test.d.ts.map +0 -0
  280. /package/{dist → packages/core/dist}/bmad/epics-parser.test.js +0 -0
  281. /package/{dist → packages/core/dist}/bmad/epics-parser.test.js.map +0 -0
  282. /package/{dist → packages/core/dist}/bmad/index.d.ts +0 -0
  283. /package/{dist → packages/core/dist}/bmad/index.d.ts.map +0 -0
  284. /package/{dist → packages/core/dist}/bmad/index.js +0 -0
  285. /package/{dist → packages/core/dist}/bmad/index.js.map +0 -0
  286. /package/{dist → packages/core/dist}/bmad/status-sync.d.ts +0 -0
  287. /package/{dist → packages/core/dist}/bmad/status-sync.d.ts.map +0 -0
  288. /package/{dist → packages/core/dist}/bmad/status-sync.js +0 -0
  289. /package/{dist → packages/core/dist}/bmad/status-sync.js.map +0 -0
  290. /package/{dist → packages/core/dist}/bmad/status-sync.test.d.ts +0 -0
  291. /package/{dist → packages/core/dist}/bmad/status-sync.test.d.ts.map +0 -0
  292. /package/{dist → packages/core/dist}/bmad/status-sync.test.js +0 -0
  293. /package/{dist → packages/core/dist}/bmad/status-sync.test.js.map +0 -0
  294. /package/{dist → packages/core/dist}/bmad/story-exporter.d.ts +0 -0
  295. /package/{dist → packages/core/dist}/bmad/story-exporter.d.ts.map +0 -0
  296. /package/{dist → packages/core/dist}/bmad/story-exporter.js +0 -0
  297. /package/{dist → packages/core/dist}/bmad/story-exporter.js.map +0 -0
  298. /package/{dist → packages/core/dist}/bmad/story-exporter.test.d.ts +0 -0
  299. /package/{dist → packages/core/dist}/bmad/story-exporter.test.d.ts.map +0 -0
  300. /package/{dist → packages/core/dist}/bmad/story-exporter.test.js +0 -0
  301. /package/{dist → packages/core/dist}/bmad/story-exporter.test.js.map +0 -0
  302. /package/{dist → packages/core/dist}/bmad/story-parser.d.ts +0 -0
  303. /package/{dist → packages/core/dist}/bmad/story-parser.d.ts.map +0 -0
  304. /package/{dist → packages/core/dist}/bmad/story-parser.js +0 -0
  305. /package/{dist → packages/core/dist}/bmad/story-parser.js.map +0 -0
  306. /package/{dist → packages/core/dist}/bmad/story-parser.test.d.ts +0 -0
  307. /package/{dist → packages/core/dist}/bmad/story-parser.test.d.ts.map +0 -0
  308. /package/{dist → packages/core/dist}/bmad/story-parser.test.js +0 -0
  309. /package/{dist → packages/core/dist}/bmad/story-parser.test.js.map +0 -0
  310. /package/{dist → packages/core/dist}/cli/commands/command.d.ts +0 -0
  311. /package/{dist → packages/core/dist}/cli/commands/command.d.ts.map +0 -0
  312. /package/{dist → packages/core/dist}/cli/commands/command.js +0 -0
  313. /package/{dist → packages/core/dist}/cli/commands/command.js.map +0 -0
  314. /package/{dist → packages/core/dist}/cli/commands/cyclist.d.ts +0 -0
  315. /package/{dist → packages/core/dist}/cli/commands/cyclist.d.ts.map +0 -0
  316. /package/{dist → packages/core/dist}/cli/commands/cyclist.js +0 -0
  317. /package/{dist → packages/core/dist}/cli/commands/cyclist.js.map +0 -0
  318. /package/{dist → packages/core/dist}/cli/commands/cyclist.test.d.ts +0 -0
  319. /package/{dist → packages/core/dist}/cli/commands/cyclist.test.d.ts.map +0 -0
  320. /package/{dist → packages/core/dist}/cli/commands/cyclist.test.js +0 -0
  321. /package/{dist → packages/core/dist}/cli/commands/cyclist.test.js.map +0 -0
  322. /package/{dist → packages/core/dist}/cli/commands/doctor-legacy.test.d.ts +0 -0
  323. /package/{dist → packages/core/dist}/cli/commands/doctor-legacy.test.d.ts.map +0 -0
  324. /package/{dist → packages/core/dist}/cli/commands/doctor-legacy.test.js +0 -0
  325. /package/{dist → packages/core/dist}/cli/commands/doctor-legacy.test.js.map +0 -0
  326. /package/{dist → packages/core/dist}/cli/commands/doctor.d.ts +0 -0
  327. /package/{dist → packages/core/dist}/cli/commands/doctor.d.ts.map +0 -0
  328. /package/{dist → packages/core/dist}/cli/commands/doctor.js +0 -0
  329. /package/{dist → packages/core/dist}/cli/commands/doctor.js.map +0 -0
  330. /package/{dist → packages/core/dist}/cli/commands/init.d.ts +0 -0
  331. /package/{dist → packages/core/dist}/cli/commands/init.d.ts.map +0 -0
  332. /package/{dist → packages/core/dist}/cli/commands/init.js +0 -0
  333. /package/{dist → packages/core/dist}/cli/commands/init.js.map +0 -0
  334. /package/{dist → packages/core/dist}/cli/commands/skill.d.ts +0 -0
  335. /package/{dist → packages/core/dist}/cli/commands/skill.d.ts.map +0 -0
  336. /package/{dist → packages/core/dist}/cli/commands/skill.js +0 -0
  337. /package/{dist → packages/core/dist}/cli/commands/skill.js.map +0 -0
  338. /package/{dist → packages/core/dist}/cli/commands/theme.d.ts +0 -0
  339. /package/{dist → packages/core/dist}/cli/commands/theme.d.ts.map +0 -0
  340. /package/{dist → packages/core/dist}/cli/commands/theme.js +0 -0
  341. /package/{dist → packages/core/dist}/cli/commands/theme.js.map +0 -0
  342. /package/{dist → packages/core/dist}/cli/commands/uninstall.d.ts +0 -0
  343. /package/{dist → packages/core/dist}/cli/commands/uninstall.d.ts.map +0 -0
  344. /package/{dist → packages/core/dist}/cli/commands/uninstall.js +0 -0
  345. /package/{dist → packages/core/dist}/cli/commands/uninstall.js.map +0 -0
  346. /package/{dist → packages/core/dist}/cli/commands/update.d.ts +0 -0
  347. /package/{dist → packages/core/dist}/cli/commands/update.d.ts.map +0 -0
  348. /package/{dist → packages/core/dist}/cli/commands/update.js +0 -0
  349. /package/{dist → packages/core/dist}/cli/commands/update.js.map +0 -0
  350. /package/{dist → packages/core/dist}/cli/commands/version.d.ts +0 -0
  351. /package/{dist → packages/core/dist}/cli/commands/version.d.ts.map +0 -0
  352. /package/{dist → packages/core/dist}/cli/commands/version.js +0 -0
  353. /package/{dist → packages/core/dist}/cli/commands/version.js.map +0 -0
  354. /package/{dist → packages/core/dist}/cli/customization.test.d.ts +0 -0
  355. /package/{dist → packages/core/dist}/cli/customization.test.d.ts.map +0 -0
  356. /package/{dist → packages/core/dist}/cli/customization.test.js +0 -0
  357. /package/{dist → packages/core/dist}/cli/customization.test.js.map +0 -0
  358. /package/{dist → packages/core/dist}/cli/cyclist-migration.test.d.ts +0 -0
  359. /package/{dist → packages/core/dist}/cli/cyclist-migration.test.d.ts.map +0 -0
  360. /package/{dist → packages/core/dist}/cli/cyclist-migration.test.js +0 -0
  361. /package/{dist → packages/core/dist}/cli/cyclist-migration.test.js.map +0 -0
  362. /package/{dist → packages/core/dist}/cli/index.d.ts +0 -0
  363. /package/{dist → packages/core/dist}/cli/index.d.ts.map +0 -0
  364. /package/{dist → packages/core/dist}/cli/index.js +0 -0
  365. /package/{dist → packages/core/dist}/cli/index.js.map +0 -0
  366. /package/{dist → packages/core/dist}/cli/ocean-profiles.test.d.ts +0 -0
  367. /package/{dist → packages/core/dist}/cli/ocean-profiles.test.d.ts.map +0 -0
  368. /package/{dist → packages/core/dist}/cli/ocean-profiles.test.js +0 -0
  369. /package/{dist → packages/core/dist}/cli/ocean-profiles.test.js.map +0 -0
  370. /package/{dist → packages/core/dist}/cli/theme-maker.test.d.ts +0 -0
  371. /package/{dist → packages/core/dist}/cli/theme-maker.test.d.ts.map +0 -0
  372. /package/{dist → packages/core/dist}/cli/theme-maker.test.js +0 -0
  373. /package/{dist → packages/core/dist}/cli/theme-maker.test.js.map +0 -0
  374. /package/{dist → packages/core/dist}/cli/utils/constants.d.ts +0 -0
  375. /package/{dist → packages/core/dist}/cli/utils/constants.d.ts.map +0 -0
  376. /package/{dist → packages/core/dist}/cli/utils/constants.js +0 -0
  377. /package/{dist → packages/core/dist}/cli/utils/constants.js.map +0 -0
  378. /package/{dist → packages/core/dist}/cli/utils/logger.d.ts +0 -0
  379. /package/{dist → packages/core/dist}/cli/utils/logger.d.ts.map +0 -0
  380. /package/{dist → packages/core/dist}/cli/utils/logger.js +0 -0
  381. /package/{dist → packages/core/dist}/cli/utils/logger.js.map +0 -0
  382. /package/{dist → packages/core/dist}/cli/utils/manifest.d.ts +0 -0
  383. /package/{dist → packages/core/dist}/cli/utils/manifest.d.ts.map +0 -0
  384. /package/{dist → packages/core/dist}/cli/utils/manifest.js +0 -0
  385. /package/{dist → packages/core/dist}/cli/utils/manifest.js.map +0 -0
  386. /package/{dist → packages/core/dist}/cli/utils/node-modules.d.ts +0 -0
  387. /package/{dist → packages/core/dist}/cli/utils/node-modules.d.ts.map +0 -0
  388. /package/{dist → packages/core/dist}/cli/utils/node-modules.js +0 -0
  389. /package/{dist → packages/core/dist}/cli/utils/node-modules.js.map +0 -0
  390. /package/{dist → packages/core/dist}/cli/utils/prompts.d.ts +0 -0
  391. /package/{dist → packages/core/dist}/cli/utils/prompts.d.ts.map +0 -0
  392. /package/{dist → packages/core/dist}/cli/utils/prompts.js +0 -0
  393. /package/{dist → packages/core/dist}/cli/utils/prompts.js.map +0 -0
  394. /package/{dist → packages/core/dist}/cli/utils/symlinks.d.ts +0 -0
  395. /package/{dist → packages/core/dist}/cli/utils/symlinks.d.ts.map +0 -0
  396. /package/{dist → packages/core/dist}/cli/utils/symlinks.js +0 -0
  397. /package/{dist → packages/core/dist}/cli/utils/symlinks.js.map +0 -0
  398. /package/{dist → packages/core/dist}/cli/utils/themes.d.ts +0 -0
  399. /package/{dist → packages/core/dist}/cli/utils/themes.d.ts.map +0 -0
  400. /package/{dist → packages/core/dist}/cli/utils/themes.js +0 -0
  401. /package/{dist → packages/core/dist}/cli/utils/themes.js.map +0 -0
  402. /package/{dist → packages/core/dist}/cli/utils/themes.test.d.ts +0 -0
  403. /package/{dist → packages/core/dist}/cli/utils/themes.test.d.ts.map +0 -0
  404. /package/{dist → packages/core/dist}/cli/utils/themes.test.js +0 -0
  405. /package/{dist → packages/core/dist}/cli/utils/themes.test.js.map +0 -0
  406. /package/{dist → packages/core/dist}/cli/utils/version.d.ts +0 -0
  407. /package/{dist → packages/core/dist}/cli/utils/version.d.ts.map +0 -0
  408. /package/{dist → packages/core/dist}/cli/utils/version.js +0 -0
  409. /package/{dist → packages/core/dist}/cli/utils/version.js.map +0 -0
  410. /package/{dist → packages/core/dist}/cli/workspace.test.d.ts +0 -0
  411. /package/{dist → packages/core/dist}/cli/workspace.test.d.ts.map +0 -0
  412. /package/{dist → packages/core/dist}/index.d.ts +0 -0
  413. /package/{dist → packages/core/dist}/index.d.ts.map +0 -0
  414. /package/{dist → packages/core/dist}/index.js +0 -0
  415. /package/{dist → packages/core/dist}/index.js.map +0 -0
  416. /package/{dist → packages/core/dist}/jira/jira-epic-creation.d.ts +0 -0
  417. /package/{dist → packages/core/dist}/jira/jira-epic-creation.d.ts.map +0 -0
  418. /package/{dist → packages/core/dist}/jira/jira-epic-creation.js +0 -0
  419. /package/{dist → packages/core/dist}/jira/jira-epic-creation.js.map +0 -0
  420. /package/{dist → packages/core/dist}/jira/jira-epic-creation.test.d.ts +0 -0
  421. /package/{dist → packages/core/dist}/jira/jira-epic-creation.test.d.ts.map +0 -0
  422. /package/{dist → packages/core/dist}/jira/jira-epic-creation.test.js +0 -0
  423. /package/{dist → packages/core/dist}/jira/jira-epic-creation.test.js.map +0 -0
  424. /package/{dist → packages/core/dist}/jira/jira-sprint-sync.d.ts +0 -0
  425. /package/{dist → packages/core/dist}/jira/jira-sprint-sync.d.ts.map +0 -0
  426. /package/{dist → packages/core/dist}/jira/jira-sprint-sync.js +0 -0
  427. /package/{dist → packages/core/dist}/jira/jira-sprint-sync.js.map +0 -0
  428. /package/{dist → packages/core/dist}/jira/jira-sprint-sync.test.d.ts +0 -0
  429. /package/{dist → packages/core/dist}/jira/jira-sprint-sync.test.d.ts.map +0 -0
  430. /package/{dist → packages/core/dist}/jira/jira-sprint-sync.test.js +0 -0
  431. /package/{dist → packages/core/dist}/jira/jira-sprint-sync.test.js.map +0 -0
  432. /package/{dist → packages/core/dist}/permissions/index.d.ts +0 -0
  433. /package/{dist → packages/core/dist}/permissions/index.d.ts.map +0 -0
  434. /package/{dist → packages/core/dist}/permissions/index.js +0 -0
  435. /package/{dist → packages/core/dist}/permissions/index.js.map +0 -0
  436. /package/{dist → packages/core/dist}/permissions/permission-schema.d.ts +0 -0
  437. /package/{dist → packages/core/dist}/permissions/permission-schema.d.ts.map +0 -0
  438. /package/{dist → packages/core/dist}/permissions/permission-schema.js +0 -0
  439. /package/{dist → packages/core/dist}/permissions/permission-schema.js.map +0 -0
  440. /package/{dist → packages/core/dist}/permissions/permission-schema.test.d.ts +0 -0
  441. /package/{dist → packages/core/dist}/permissions/permission-schema.test.d.ts.map +0 -0
  442. /package/{dist → packages/core/dist}/permissions/permission-schema.test.js +0 -0
  443. /package/{dist → packages/core/dist}/permissions/permission-schema.test.js.map +0 -0
  444. /package/{dist → packages/core/dist}/scripts/add-ocean-profiles.d.ts +0 -0
  445. /package/{dist → packages/core/dist}/scripts/add-ocean-profiles.d.ts.map +0 -0
  446. /package/{dist → packages/core/dist}/scripts/add-ocean-profiles.js +0 -0
  447. /package/{dist → packages/core/dist}/scripts/add-ocean-profiles.js.map +0 -0
  448. /package/{dist → packages/core/dist}/scripts/benchmark-integration.d.ts +0 -0
  449. /package/{dist → packages/core/dist}/scripts/benchmark-integration.d.ts.map +0 -0
  450. /package/{dist → packages/core/dist}/scripts/benchmark-integration.js +0 -0
  451. /package/{dist → packages/core/dist}/scripts/benchmark-integration.js.map +0 -0
  452. /package/{dist → packages/core/dist}/scripts/benchmark-integration.test.d.ts +0 -0
  453. /package/{dist → packages/core/dist}/scripts/benchmark-integration.test.d.ts.map +0 -0
  454. /package/{dist → packages/core/dist}/scripts/benchmark-integration.test.js +0 -0
  455. /package/{dist → packages/core/dist}/scripts/benchmark-integration.test.js.map +0 -0
  456. /package/{dist → packages/core/dist}/scripts/debugging-scenarios.test.d.ts +0 -0
  457. /package/{dist → packages/core/dist}/scripts/debugging-scenarios.test.d.ts.map +0 -0
  458. /package/{dist → packages/core/dist}/scripts/debugging-scenarios.test.js +0 -0
  459. /package/{dist → packages/core/dist}/scripts/debugging-scenarios.test.js.map +0 -0
  460. /package/{dist → packages/core/dist}/scripts/generate-all-spiders.d.ts +0 -0
  461. /package/{dist → packages/core/dist}/scripts/generate-all-spiders.d.ts.map +0 -0
  462. /package/{dist → packages/core/dist}/scripts/generate-all-spiders.js +0 -0
  463. /package/{dist → packages/core/dist}/scripts/generate-all-spiders.js.map +0 -0
  464. /package/{dist → packages/core/dist}/scripts/generate-report.d.ts +0 -0
  465. /package/{dist → packages/core/dist}/scripts/generate-report.d.ts.map +0 -0
  466. /package/{dist → packages/core/dist}/scripts/generate-report.js +0 -0
  467. /package/{dist → packages/core/dist}/scripts/generate-report.js.map +0 -0
  468. /package/{dist → packages/core/dist}/scripts/generate-report.test.d.ts +0 -0
  469. /package/{dist → packages/core/dist}/scripts/generate-report.test.d.ts.map +0 -0
  470. /package/{dist → packages/core/dist}/scripts/generate-report.test.js +0 -0
  471. /package/{dist → packages/core/dist}/scripts/generate-report.test.js.map +0 -0
  472. /package/{dist → packages/core/dist}/scripts/generate-spider-report.d.ts +0 -0
  473. /package/{dist → packages/core/dist}/scripts/generate-spider-report.d.ts.map +0 -0
  474. /package/{dist → packages/core/dist}/scripts/generate-spider-report.js +0 -0
  475. /package/{dist → packages/core/dist}/scripts/generate-spider-report.js.map +0 -0
  476. /package/{dist → packages/core/dist}/scripts/generate-spider-report.test.d.ts +0 -0
  477. /package/{dist → packages/core/dist}/scripts/generate-spider-report.test.d.ts.map +0 -0
  478. /package/{dist → packages/core/dist}/scripts/generate-spider-report.test.js +0 -0
  479. /package/{dist → packages/core/dist}/scripts/generate-spider-report.test.js.map +0 -0
  480. /package/{dist → packages/core/dist}/scripts/generate-spider.d.ts +0 -0
  481. /package/{dist → packages/core/dist}/scripts/generate-spider.d.ts.map +0 -0
  482. /package/{dist → packages/core/dist}/scripts/generate-spider.js +0 -0
  483. /package/{dist → packages/core/dist}/scripts/generate-spider.js.map +0 -0
  484. /package/{dist → packages/core/dist}/scripts/generate-spider.test.d.ts +0 -0
  485. /package/{dist → packages/core/dist}/scripts/generate-spider.test.d.ts.map +0 -0
  486. /package/{dist → packages/core/dist}/scripts/generate-spider.test.js +0 -0
  487. /package/{dist → packages/core/dist}/scripts/generate-spider.test.js.map +0 -0
  488. /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.d.ts +0 -0
  489. /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.d.ts.map +0 -0
  490. /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.js +0 -0
  491. /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.js.map +0 -0
  492. /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.test.d.ts +0 -0
  493. /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.test.d.ts.map +0 -0
  494. /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.test.js +0 -0
  495. /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.test.js.map +0 -0
  496. /package/{dist → packages/core/dist}/scripts/run-ci.test.d.ts +0 -0
  497. /package/{dist → packages/core/dist}/scripts/run-ci.test.d.ts.map +0 -0
  498. /package/{dist → packages/core/dist}/scripts/run-ci.test.js +0 -0
  499. /package/{dist → packages/core/dist}/scripts/run-ci.test.js.map +0 -0
  500. /package/{dist → packages/core/dist}/scripts/theme-detail.test.d.ts +0 -0
  501. /package/{dist → packages/core/dist}/scripts/theme-detail.test.d.ts.map +0 -0
  502. /package/{dist → packages/core/dist}/scripts/theme-detail.test.js +0 -0
  503. /package/{dist → packages/core/dist}/scripts/theme-detail.test.js.map +0 -0
  504. /package/{dist → packages/core/dist}/scripts/validate-ocean-profiles.d.ts +0 -0
  505. /package/{dist → packages/core/dist}/scripts/validate-ocean-profiles.d.ts.map +0 -0
  506. /package/{dist → packages/core/dist}/scripts/validate-ocean-profiles.js +0 -0
  507. /package/{dist → packages/core/dist}/scripts/validate-ocean-profiles.js.map +0 -0
  508. /package/{dist → packages/core/dist}/workflow/gate-handler.d.ts +0 -0
  509. /package/{dist → packages/core/dist}/workflow/gate-handler.d.ts.map +0 -0
  510. /package/{dist → packages/core/dist}/workflow/gate-handler.js +0 -0
  511. /package/{dist → packages/core/dist}/workflow/gate-handler.js.map +0 -0
  512. /package/{dist → packages/core/dist}/workflow/gate-handler.test.d.ts +0 -0
  513. /package/{dist → packages/core/dist}/workflow/gate-handler.test.d.ts.map +0 -0
  514. /package/{dist → packages/core/dist}/workflow/gate-handler.test.js +0 -0
  515. /package/{dist → packages/core/dist}/workflow/gate-handler.test.js.map +0 -0
  516. /package/{dist → packages/core/dist}/workflow/generic-sm-finish.d.ts +0 -0
  517. /package/{dist → packages/core/dist}/workflow/generic-sm-finish.d.ts.map +0 -0
  518. /package/{dist → packages/core/dist}/workflow/generic-sm-finish.js +0 -0
  519. /package/{dist → packages/core/dist}/workflow/generic-sm-finish.js.map +0 -0
  520. /package/{dist → packages/core/dist}/workflow/generic-sm-setup.d.ts +0 -0
  521. /package/{dist → packages/core/dist}/workflow/generic-sm-setup.d.ts.map +0 -0
  522. /package/{dist → packages/core/dist}/workflow/generic-sm-setup.js +0 -0
  523. /package/{dist → packages/core/dist}/workflow/generic-sm-setup.js.map +0 -0
  524. /package/{dist → packages/core/dist}/workflow/handoff.d.ts +0 -0
  525. /package/{dist → packages/core/dist}/workflow/handoff.d.ts.map +0 -0
  526. /package/{dist → packages/core/dist}/workflow/handoff.js +0 -0
  527. /package/{dist → packages/core/dist}/workflow/handoff.js.map +0 -0
  528. /package/{dist → packages/core/dist}/workflow/handoff.test.d.ts +0 -0
  529. /package/{dist → packages/core/dist}/workflow/handoff.test.d.ts.map +0 -0
  530. /package/{dist → packages/core/dist}/workflow/handoff.test.js +0 -0
  531. /package/{dist → packages/core/dist}/workflow/handoff.test.js.map +0 -0
  532. /package/{dist → packages/core/dist}/workflow/index.d.ts +0 -0
  533. /package/{dist → packages/core/dist}/workflow/index.d.ts.map +0 -0
  534. /package/{dist → packages/core/dist}/workflow/index.js +0 -0
  535. /package/{dist → packages/core/dist}/workflow/index.js.map +0 -0
  536. /package/{dist → packages/core/dist}/workflow/session-state.d.ts +0 -0
  537. /package/{dist → packages/core/dist}/workflow/session-state.d.ts.map +0 -0
  538. /package/{dist → packages/core/dist}/workflow/session-state.js +0 -0
  539. /package/{dist → packages/core/dist}/workflow/session-state.js.map +0 -0
  540. /package/{dist → packages/core/dist}/workflow/session-state.test.d.ts +0 -0
  541. /package/{dist → packages/core/dist}/workflow/session-state.test.d.ts.map +0 -0
  542. /package/{dist → packages/core/dist}/workflow/session-state.test.js +0 -0
  543. /package/{dist → packages/core/dist}/workflow/session-state.test.js.map +0 -0
  544. /package/{dist → packages/core/dist}/workflow/sm-subagents.test.d.ts +0 -0
  545. /package/{dist → packages/core/dist}/workflow/sm-subagents.test.d.ts.map +0 -0
  546. /package/{dist → packages/core/dist}/workflow/sm-subagents.test.js +0 -0
  547. /package/{dist → packages/core/dist}/workflow/sm-subagents.test.js.map +0 -0
  548. /package/{dist → packages/core/dist}/workflow/step-parser.d.ts +0 -0
  549. /package/{dist → packages/core/dist}/workflow/step-parser.d.ts.map +0 -0
  550. /package/{dist → packages/core/dist}/workflow/step-parser.js +0 -0
  551. /package/{dist → packages/core/dist}/workflow/step-parser.js.map +0 -0
  552. /package/{dist → packages/core/dist}/workflow/step-parser.test.d.ts +0 -0
  553. /package/{dist → packages/core/dist}/workflow/step-parser.test.d.ts.map +0 -0
  554. /package/{dist → packages/core/dist}/workflow/step-parser.test.js +0 -0
  555. /package/{dist → packages/core/dist}/workflow/step-parser.test.js.map +0 -0
  556. /package/{dist → packages/core/dist}/workflow/story-workflow-routing.test.d.ts +0 -0
  557. /package/{dist → packages/core/dist}/workflow/story-workflow-routing.test.d.ts.map +0 -0
  558. /package/{dist → packages/core/dist}/workflow/story-workflow-routing.test.js +0 -0
  559. /package/{dist → packages/core/dist}/workflow/story-workflow-routing.test.js.map +0 -0
  560. /package/{dist → packages/core/dist}/workflow/test-cache.d.ts +0 -0
  561. /package/{dist → packages/core/dist}/workflow/test-cache.d.ts.map +0 -0
  562. /package/{dist → packages/core/dist}/workflow/test-cache.js +0 -0
  563. /package/{dist → packages/core/dist}/workflow/test-cache.js.map +0 -0
  564. /package/{dist → packages/core/dist}/workflow/test-cache.test.d.ts +0 -0
  565. /package/{dist → packages/core/dist}/workflow/test-cache.test.d.ts.map +0 -0
  566. /package/{dist → packages/core/dist}/workflow/test-cache.test.js +0 -0
  567. /package/{dist → packages/core/dist}/workflow/test-cache.test.js.map +0 -0
  568. /package/{dist → packages/core/dist}/workflow/trimodal.d.ts +0 -0
  569. /package/{dist → packages/core/dist}/workflow/trimodal.d.ts.map +0 -0
  570. /package/{dist → packages/core/dist}/workflow/trimodal.js +0 -0
  571. /package/{dist → packages/core/dist}/workflow/trimodal.js.map +0 -0
  572. /package/{dist → packages/core/dist}/workflow/trimodal.test.d.ts +0 -0
  573. /package/{dist → packages/core/dist}/workflow/trimodal.test.d.ts.map +0 -0
  574. /package/{dist → packages/core/dist}/workflow/trimodal.test.js +0 -0
  575. /package/{dist → packages/core/dist}/workflow/trimodal.test.js.map +0 -0
  576. /package/{dist → packages/core/dist}/workflow/variable-resolver.d.ts +0 -0
  577. /package/{dist → packages/core/dist}/workflow/variable-resolver.d.ts.map +0 -0
  578. /package/{dist → packages/core/dist}/workflow/variable-resolver.js +0 -0
  579. /package/{dist → packages/core/dist}/workflow/variable-resolver.js.map +0 -0
  580. /package/{dist → packages/core/dist}/workflow/variable-resolver.test.d.ts +0 -0
  581. /package/{dist → packages/core/dist}/workflow/variable-resolver.test.d.ts.map +0 -0
  582. /package/{dist → packages/core/dist}/workflow/variable-resolver.test.js +0 -0
  583. /package/{dist → packages/core/dist}/workflow/variable-resolver.test.js.map +0 -0
  584. /package/{dist → packages/core/dist}/workflow/workflow-executor.d.ts +0 -0
  585. /package/{dist → packages/core/dist}/workflow/workflow-executor.d.ts.map +0 -0
  586. /package/{dist → packages/core/dist}/workflow/workflow-executor.js +0 -0
  587. /package/{dist → packages/core/dist}/workflow/workflow-executor.js.map +0 -0
  588. /package/{dist → packages/core/dist}/workflow/workflow-executor.test.d.ts +0 -0
  589. /package/{dist → packages/core/dist}/workflow/workflow-executor.test.d.ts.map +0 -0
  590. /package/{dist → packages/core/dist}/workflow/workflow-executor.test.js +0 -0
  591. /package/{dist → packages/core/dist}/workflow/workflow-executor.test.js.map +0 -0
  592. /package/{dist → packages/core/dist}/workflow/workflow-loader.d.ts +0 -0
  593. /package/{dist → packages/core/dist}/workflow/workflow-loader.d.ts.map +0 -0
  594. /package/{dist → packages/core/dist}/workflow/workflow-loader.js +0 -0
  595. /package/{dist → packages/core/dist}/workflow/workflow-loader.js.map +0 -0
  596. /package/{dist → packages/core/dist}/workflow/workflow-loader.test.d.ts +0 -0
  597. /package/{dist → packages/core/dist}/workflow/workflow-loader.test.d.ts.map +0 -0
  598. /package/{dist → packages/core/dist}/workflow/workflow-loader.test.js +0 -0
  599. /package/{dist → packages/core/dist}/workflow/workflow-loader.test.js.map +0 -0
  600. /package/{dist → packages/core/dist}/workflow/workflow-migration.test.d.ts +0 -0
  601. /package/{dist → packages/core/dist}/workflow/workflow-migration.test.d.ts.map +0 -0
  602. /package/{dist → packages/core/dist}/workflow/workflow-migration.test.js +0 -0
  603. /package/{dist → packages/core/dist}/workflow/workflow-migration.test.js.map +0 -0
  604. /package/{dist → packages/core/dist}/workflow/workflow-permissions.d.ts +0 -0
  605. /package/{dist → packages/core/dist}/workflow/workflow-permissions.d.ts.map +0 -0
  606. /package/{dist → packages/core/dist}/workflow/workflow-permissions.js +0 -0
  607. /package/{dist → packages/core/dist}/workflow/workflow-permissions.js.map +0 -0
  608. /package/{dist → packages/core/dist}/workflow/workflow-permissions.test.d.ts +0 -0
  609. /package/{dist → packages/core/dist}/workflow/workflow-permissions.test.d.ts.map +0 -0
  610. /package/{dist → packages/core/dist}/workflow/workflow-permissions.test.js +0 -0
  611. /package/{dist → packages/core/dist}/workflow/workflow-permissions.test.js.map +0 -0
  612. /package/{dist → packages/core/dist}/workflow/workflow-router.d.ts +0 -0
  613. /package/{dist → packages/core/dist}/workflow/workflow-router.d.ts.map +0 -0
  614. /package/{dist → packages/core/dist}/workflow/workflow-router.js +0 -0
  615. /package/{dist → packages/core/dist}/workflow/workflow-router.js.map +0 -0
  616. /package/{dist → packages/core/dist}/workflow/workflow-router.test.d.ts +0 -0
  617. /package/{dist → packages/core/dist}/workflow/workflow-router.test.d.ts.map +0 -0
  618. /package/{dist → packages/core/dist}/workflow/workflow-router.test.js +0 -0
  619. /package/{dist → packages/core/dist}/workflow/workflow-router.test.js.map +0 -0
  620. /package/{dist → packages/core/dist}/workflow/workflow-schema.d.ts +0 -0
  621. /package/{dist → packages/core/dist}/workflow/workflow-schema.d.ts.map +0 -0
  622. /package/{dist → packages/core/dist}/workflow/workflow-schema.js +0 -0
  623. /package/{dist → packages/core/dist}/workflow/workflow-schema.js.map +0 -0
  624. /package/{dist → packages/core/dist}/workflow/workflow-schema.test.d.ts +0 -0
  625. /package/{dist → packages/core/dist}/workflow/workflow-schema.test.d.ts.map +0 -0
  626. /package/{dist → packages/core/dist}/workflow/workflow-schema.test.js +0 -0
  627. /package/{dist → packages/core/dist}/workflow/workflow-schema.test.js.map +0 -0
  628. /package/{dist → packages/core/dist}/workflow/workflow-stepped-schema.test.d.ts +0 -0
  629. /package/{dist → packages/core/dist}/workflow/workflow-stepped-schema.test.d.ts.map +0 -0
  630. /package/{dist → packages/core/dist}/workflow/workflow-stepped-schema.test.js +0 -0
  631. /package/{dist → packages/core/dist}/workflow/workflow-stepped-schema.test.js.map +0 -0
package/LICENSE ADDED
@@ -0,0 +1,14 @@
1
+ Copyright (c) 2026 1898 & Co.
2
+
3
+ All rights reserved.
4
+
5
+ This software and associated documentation files (the "Software") are proprietary
6
+ and confidential. No part of this Software may be reproduced, distributed, or
7
+ transmitted in any form or by any means, including photocopying, recording, or
8
+ other electronic or mechanical methods, without the prior written permission of
9
+ the copyright holder.
10
+
11
+ Unauthorized copying, modification, distribution, or use of this Software, via
12
+ any medium, is strictly prohibited.
13
+
14
+ For licensing inquiries, contact: 1898 & Co.
package/README.md ADDED
@@ -0,0 +1,209 @@
1
+ # Pennyfarthing
2
+
3
+ **v7.9.2** | *The outer loop goes once, the inner loop goes many times.*
4
+
5
+ <img src="pennyfarthing.png" alt="Pennyfarthing Logo" width="75" style="float:left; margin:10px">
6
+
7
+ A Claude Code agent orchestration framework built around three pillars: a flexible development platform, scientific personality research, and streamlined integrations.
8
+
9
+ ---
10
+
11
+ ## What is Pennyfarthing?
12
+
13
+ ### 1. Development Platform
14
+
15
+ A multi-agent system with customizable BikeLane workflows for structured software development:
16
+
17
+ - **19 Coordinated Agents** - SM, TEA, Dev, Reviewer, Architect, PM, and more
18
+ - **19 BikeLane Workflows** - Phased (TDD, BDD, Trivial), Stepped (PRD, Architecture), Procedural (Brainstorming, Retrospective)
19
+ - **45 Slash Commands** - Entry points for agent activation and workflows
20
+ - **22 Skills** - Reusable knowledge domains (testing, code-review, jira, mermaid, etc.)
21
+ - **Automatic Handoffs** - Context-aware agent transitions via subagent delegation
22
+
23
+ ### 2. Personality Research
24
+
25
+ A scientific study of how strong personalities affect AI agent behavior:
26
+
27
+ - **OCEAN Profiling** - Big Five personality scores for every character
28
+ - **TRAIL Framework** - Categorizing errors (reasoning, planning, execution) and correlating with personality
29
+ - **Benchmarking System** - `/solo`, `/benchmark-control`, `/benchmark` for statistical evaluation
30
+ - **JobFair** - Discovering which characters excel at roles beyond their native specialization
31
+
32
+ The 102 persona themes (Discworld, Star Trek, Breaking Bad, etc.) are instruments of inquiry, not decoration. Early findings show character expertise often trumps abstract personality scores.
33
+
34
+ ### 3. Integration & Tooling
35
+
36
+ Smoothing out development processes:
37
+
38
+ - **Jira Integration** - Bidirectional sync, epic auto-creation, sprint velocity
39
+ - **Sprint Management** - Story tracking with `current-sprint.yaml`
40
+ - **Cyclist Visual Terminal** - Rich UI with agent portraits, session stats, workflow visualization
41
+
42
+ ---
43
+
44
+ ### [**Explore the Research Showcase**](https://animated-meme-3e4494y.pages.github.io/)
45
+
46
+ 102 themes with OCEAN spider charts, benchmark tiers, and 1020 character profiles.
47
+
48
+ ---
49
+
50
+ ## Quick Start
51
+
52
+ ```bash
53
+ cd your-project
54
+
55
+ # Install CLI
56
+ npm install --save-dev @pennyfarthing/core
57
+
58
+ # Initialize (creates symlinks)
59
+ npx pennyfarthing init
60
+
61
+ # Verify installation
62
+ npx pennyfarthing doctor
63
+
64
+ # Start working (in Claude Code)
65
+ /work
66
+ ```
67
+
68
+ ### Optional: Visual Terminal
69
+
70
+ ```bash
71
+ # Install Cyclist (160 MB, includes portraits)
72
+ npm install --save-dev @pennyfarthing/cyclist
73
+
74
+ # Launch
75
+ npx pennyfarthing cyclist
76
+ ```
77
+
78
+ ## BikeLane Workflows
79
+
80
+ BikeLane is the umbrella workflow system supporting three types:
81
+
82
+ | Type | Description | Examples |
83
+ |------|-------------|----------|
84
+ | **Phased** | Agent-driven with automatic handoffs | tdd, bdd, trivial, agent-docs |
85
+ | **Stepped** | Progressive disclosure with user gates | prd, architecture, research, sprint-planning |
86
+ | **Procedural** | Flexible agent-guided processes | brainstorming, code-review, retrospective |
87
+
88
+ ### Example: TDD Workflow (Phased)
89
+
90
+ ```
91
+ /work → SM → TEA → Dev → Reviewer → SM (finish)
92
+ │ │ │ │
93
+ setup tests impl review
94
+ ```
95
+
96
+ | Agent | Role | Phase |
97
+ |-------|------|-------|
98
+ | **SM** | Scrum Master | Story selection, session setup, completion |
99
+ | **TEA** | Test Engineer | Write failing tests (RED) |
100
+ | **Dev** | Developer | Make tests pass (GREEN) |
101
+ | **Reviewer** | Code Reviewer | Quality validation, approve/reject |
102
+
103
+ Use `/workflow list` to see all 19 workflows. Use `/workflow start <name>` to begin any workflow.
104
+
105
+ ## Benchmarking & Personality Research
106
+
107
+ Pennyfarthing includes a scientific benchmarking system for evaluating how personality affects agent performance:
108
+
109
+ ```bash
110
+ # Run a single agent on a scenario
111
+ /solo theme:agent --scenario cache-invalidation
112
+
113
+ # Create a control baseline (10 runs)
114
+ /benchmark-control reviewer --scenario order-service
115
+
116
+ # Compare persona vs control with statistics
117
+ /benchmark breaking-bad reviewer --scenario order-service
118
+ ```
119
+
120
+ **Key Findings:**
121
+ - Cohen's d effect sizes measure performance differences
122
+ - Multivariate OCEAN patterns predict better than individual traits
123
+ - Character expertise often trumps abstract personality scores
124
+ - The "Stoic Analyst" profile (Low O + High C + Low E + Low N) excels at code review
125
+
126
+ See [Benchmarking Documentation](docs/BENCHMARKING.md) for methodology.
127
+
128
+ ## CLI Commands
129
+
130
+ | Command | Description |
131
+ |---------|-------------|
132
+ | `pennyfarthing init` | Initialize in a project |
133
+ | `pennyfarthing update` | Update to latest version |
134
+ | `pennyfarthing doctor` | Check installation health |
135
+ | `pennyfarthing doctor --fix` | Auto-fix common issues |
136
+ | `pennyfarthing uninstall` | Remove for clean reinstall |
137
+ | `pennyfarthing theme list` | Show available themes |
138
+ | `pennyfarthing theme set <name>` | Change active theme |
139
+
140
+ ## Documentation
141
+
142
+ | Document | Description |
143
+ |----------|-------------|
144
+ | [**User Guide**](docs/USER-GUIDE.md) | Complete documentation |
145
+ | [Getting Started](docs/GETTING-STARTED.md) | Quick start guide |
146
+ | [Workflow Diagrams](docs/WORKFLOW-DIAGRAMS.md) | Visual Mermaid diagrams for all workflows |
147
+ | [BikeLane](docs/BIKELANE.md) | Workflow system architecture |
148
+ | [Agents](docs/AGENTS.md) | Agent reference |
149
+ | [Commands](docs/COMMANDS.md) | Slash command reference |
150
+ | [Benchmarking](docs/BENCHMARKING.md) | Scientific persona evaluation |
151
+ | [Jira Integration](docs/JIRA-INTEGRATION.md) | Jira CLI and sprint sync |
152
+ | [Cyclist](docs/CYCLIST.md) | Visual terminal documentation |
153
+
154
+ ## Available Themes (102)
155
+
156
+ | Category | Themes |
157
+ |----------|--------|
158
+ | **Sci-Fi TV** | `the-expanse`, `star-trek-tng`, `firefly`, `battlestar-galactica`, `doctor-who` |
159
+ | **Sci-Fi Film** | `star-wars`, `dune`, `blade-runner`, `the-matrix`, `alien` |
160
+ | **Fantasy** | `game-of-thrones`, `lord-of-the-rings`, `discworld`, `sandman`, `arthurian-mythos` |
161
+ | **Drama** | `breaking-bad`, `the-wire`, `succession`, `mad-men`, `fargo` |
162
+ | **Comedy** | `the-office`, `parks-and-rec`, `ted-lasso`, `the-good-place` |
163
+ | **Literary** | `shakespeare`, `jane-austen`, `sherlock-holmes`, `hitchhikers-guide` |
164
+ | **Games** | `mass-effect`, `portal`, `baldurs-gate`, `disco-elysium` |
165
+
166
+ All themes include OCEAN (Big Five) personality profiles. See [Theme Comparison](docs/THEME-COMPARISON.md) for personality analysis.
167
+
168
+ Configure in `.pennyfarthing/config.local.yaml`:
169
+ ```yaml
170
+ theme: the-expanse
171
+ ```
172
+
173
+ ## Directory Structure
174
+
175
+ After initialization:
176
+
177
+ ```
178
+ your-project/
179
+ ├── .claude/
180
+ │ ├── commands/ # → symlinks to @pennyfarthing/core
181
+ │ ├── skills/ # → symlinks to @pennyfarthing/core
182
+ │ └── project/ # Your customizations
183
+ ├── .pennyfarthing/
184
+ │ ├── agents/ # → symlink to @pennyfarthing/core
185
+ │ ├── workflows/ # → symlink to @pennyfarthing/core
186
+ │ ├── sidecars/ # Agent learning files
187
+ │ └── config.local.yaml # Theme selection
188
+ ├── sprint/
189
+ │ ├── current-sprint.yaml # Active sprint
190
+ │ └── archive/ # Completed sessions
191
+ └── .session/
192
+ └── {story-id}-session.md # Active work session
193
+ ```
194
+
195
+ ## What's New in v7.6
196
+
197
+ - **BikeLane Workflow System** - Unified umbrella for Phased, Stepped, and Procedural workflows
198
+ - **BMAD 6.0 Compatibility** - Full import support for BMAD workflows with tri-modal execution
199
+ - **19 Workflows** - Expanded from TDD-only to comprehensive workflow library
200
+ - **Scientific Benchmarking** - TRAIL-OCEAN hypothesis testing framework
201
+ - **JobFair** - Cross-role performance discovery system
202
+
203
+ See [CHANGELOG.md](CHANGELOG.md) for full details.
204
+
205
+ ---
206
+
207
+ ## License
208
+
209
+ Copyright 2025-2026 1898 & Co. All rights reserved.
package/package.json CHANGED
@@ -1,47 +1,43 @@
1
1
  {
2
2
  "name": "@pennyfarthing/core",
3
- "version": "7.9.5",
3
+ "version": "8.0.0",
4
4
  "description": "Claude Code agent framework with TDD workflow and persona system",
5
5
  "type": "module",
6
- "keywords": [
7
- "claude",
8
- "claude-code",
9
- "agents",
10
- "ai",
11
- "tdd",
12
- "workflow",
13
- "anthropic"
6
+ "bin": {
7
+ "pennyfarthing": "./packages/core/bin/pennyfarthing.js"
8
+ },
9
+ "files": [
10
+ "packages/core/bin/",
11
+ "packages/core/dist/",
12
+ "pennyfarthing-dist/agents/",
13
+ "pennyfarthing-dist/commands/",
14
+ "pennyfarthing-dist/guides/",
15
+ "pennyfarthing-dist/output-styles/",
16
+ "pennyfarthing-dist/personas/themes/",
17
+ "pennyfarthing-dist/scripts/",
18
+ "pennyfarthing-dist/skills/",
19
+ "pennyfarthing-dist/templates/",
20
+ "pennyfarthing-dist/workflows/",
21
+ "pennyfarthing_scripts/",
22
+ "README.md"
14
23
  ],
15
- "license": "UNLICENSED",
16
- "author": "1898andCo",
17
24
  "repository": {
18
25
  "type": "git",
19
- "url": "https://github.com/1898andCo/pennyfarthing.git",
20
- "directory": "packages/core"
26
+ "url": "https://github.com/1898andCo/pennyfarthing.git"
21
27
  },
22
28
  "homepage": "https://github.com/1898andCo/pennyfarthing#readme",
23
29
  "bugs": {
24
30
  "url": "https://github.com/1898andCo/pennyfarthing/issues"
25
31
  },
26
- "bin": {
27
- "pennyfarthing": "./bin/pennyfarthing.js"
28
- },
29
- "main": "dist/index.js",
30
- "types": "dist/index.d.ts",
31
- "files": [
32
- "dist/",
33
- "bin/",
34
- "pennyfarthing-dist/"
35
- ],
36
32
  "scripts": {
37
- "build": "tsc",
38
- "dev": "tsc --watch",
39
- "test": "node --test dist/**/*.test.js",
40
- "lint": "eslint src/",
41
- "clean": "rm -rf dist/"
33
+ "build": "pnpm --filter @pennyfarthing/shared build && pnpm --filter @pennyfarthing/core build && pnpm --filter @pennyfarthing/cyclist build && ./scripts/utils/generate-skill-docs.sh",
34
+ "docs": "./scripts/utils/generate-skill-docs.sh",
35
+ "dev": "pnpm -r --parallel dev",
36
+ "test": "pnpm -r test",
37
+ "lint": "eslint 'packages/*/src/**/*.ts' --max-warnings 0",
38
+ "clean": "pnpm -r clean"
42
39
  },
43
40
  "dependencies": {
44
- "@pennyfarthing/shared": "^7.9.0",
45
41
  "chalk": "^5.3.0",
46
42
  "commander": "^12.1.0",
47
43
  "fs-extra": "^11.2.0",
@@ -50,15 +46,14 @@
50
46
  "yaml": "^2.3.4"
51
47
  },
52
48
  "devDependencies": {
53
- "@types/fs-extra": "^11.0.4",
54
- "@types/inquirer": "^9.0.7",
55
- "@types/node": "^20.10.0",
56
- "typescript": "^5.3.3"
57
- },
58
- "publishConfig": {
59
- "access": "public"
49
+ "@eslint/js": "^9.39.2",
50
+ "eslint": "^9.39.2",
51
+ "globals": "^17.0.0",
52
+ "typescript": "^5.3.3",
53
+ "typescript-eslint": "^8.53.0"
60
54
  },
61
55
  "engines": {
62
56
  "node": ">=18.0.0"
63
- }
57
+ },
58
+ "packageManager": "pnpm@9.0.0"
64
59
  }
@@ -61,8 +61,12 @@ export declare function getDirectoryHashes(dirPath: string): Record<string, stri
61
61
  /**
62
62
  * Find the project root by walking up from a starting directory.
63
63
  *
64
- * Looks for .pennyfarthing/ directory as the primary marker - this exists in any
65
- * project using Pennyfarthing (created by `pennyfarthing init`).
64
+ * Checks for markers in priority order:
65
+ * 1. pennyfarthing-dist/ + packages/ together - Framework source repo (unique combination)
66
+ * 2. .pennyfarthing/ - Consumer project (created by `pennyfarthing init`)
67
+ *
68
+ * The first check uses BOTH markers because an orchestrator might have pennyfarthing-dist/
69
+ * via symlink, but only the actual pennyfarthing repo has both pennyfarthing-dist/ AND packages/.
66
70
  *
67
71
  * @param startDir - Starting directory (defaults to __dirname equivalent)
68
72
  * @returns Absolute path to project root
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/files.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM/C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,MAAM,EAAE,CASV;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAIzE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAI5E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKhE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAK/E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAU1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAkBzD"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/files.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM/C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,MAAM,EAAE,CASV;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAIzE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAI5E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKhE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAK/E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAU1E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsBzD"}
@@ -138,8 +138,12 @@ export function getDirectoryHashes(dirPath) {
138
138
  /**
139
139
  * Find the project root by walking up from a starting directory.
140
140
  *
141
- * Looks for .pennyfarthing/ directory as the primary marker - this exists in any
142
- * project using Pennyfarthing (created by `pennyfarthing init`).
141
+ * Checks for markers in priority order:
142
+ * 1. pennyfarthing-dist/ + packages/ together - Framework source repo (unique combination)
143
+ * 2. .pennyfarthing/ - Consumer project (created by `pennyfarthing init`)
144
+ *
145
+ * The first check uses BOTH markers because an orchestrator might have pennyfarthing-dist/
146
+ * via symlink, but only the actual pennyfarthing repo has both pennyfarthing-dist/ AND packages/.
143
147
  *
144
148
  * @param startDir - Starting directory (defaults to __dirname equivalent)
145
149
  * @returns Absolute path to project root
@@ -148,7 +152,11 @@ export function getDirectoryHashes(dirPath) {
148
152
  export function findMonorepoRoot(startDir) {
149
153
  let dir = startDir;
150
154
  for (let i = 0; i < 10; i++) {
151
- // Primary marker: .pennyfarthing/ directory (created by pennyfarthing init)
155
+ // Primary marker: pennyfarthing-dist/ + packages/ together (framework source repo only)
156
+ if (existsSync(join(dir, 'pennyfarthing-dist')) && existsSync(join(dir, 'packages'))) {
157
+ return dir;
158
+ }
159
+ // Secondary marker: .pennyfarthing/ directory (consumer project)
152
160
  if (existsSync(join(dir, '.pennyfarthing'))) {
153
161
  return dir;
154
162
  }
@@ -159,6 +167,6 @@ export function findMonorepoRoot(startDir) {
159
167
  }
160
168
  dir = parent;
161
169
  }
162
- throw new Error(`Could not find project root (.pennyfarthing/) starting from ${startDir}`);
170
+ throw new Error(`Could not find project root (pennyfarthing-dist/+packages/ or .pennyfarthing/) starting from ${startDir}`);
163
171
  }
164
172
  //# sourceMappingURL=files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/cli/utils/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/cli/utils/files.ts"],"names":[],"mappings":"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"}
@@ -141,7 +141,9 @@ describe('Story 11-2: pnpm Workspace Structure', () => {
141
141
  const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
142
142
  const deps = pkg.dependencies || {};
143
143
  assert.ok(deps['@pennyfarthing/shared'], 'packages/core should depend on @pennyfarthing/shared');
144
- assert.ok(deps['@pennyfarthing/shared'].includes('workspace'), 'Dependency should use workspace protocol (workspace:*)');
144
+ // Accept either workspace protocol (development) or version (for npm publish)
145
+ const sharedDep = deps['@pennyfarthing/shared'];
146
+ assert.ok(sharedDep.includes('workspace') || sharedDep.match(/^\^?\d+\.\d+\.\d+/), 'Dependency should use workspace protocol or semver version');
145
147
  });
146
148
  });
147
149
  describe('Root package.json', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.test.js","sourceRoot":"","sources":["../../src/cli/workspace.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.test.js","sourceRoot":"","sources":["../../src/cli/workspace.test.ts"],"names":[],"mappings":"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"}
@@ -213,39 +213,39 @@ Reviewer → Dev: Changes requested
213
213
 
214
214
  ## Path Standards
215
215
 
216
- **IMPORTANT:** Use relative paths from project root or the `run.sh` wrapper for script execution.
216
+ **IMPORTANT:** Scripts self-locate via `BASH_SOURCE`. Use direct script invocation.
217
217
 
218
218
  ### Standard Pattern
219
219
  ```bash
220
- # ✅ CORRECT - Use run.sh wrapper (handles path resolution)
221
- .pennyfarthing/scripts/core/run.sh core/agent-session.sh start "Agent Name"
220
+ # ✅ CORRECT - Direct script invocation (scripts self-locate via BASH_SOURCE)
221
+ .pennyfarthing/scripts/core/agent-session.sh start "Agent Name"
222
222
 
223
223
  # ✅ CORRECT - Relative paths for files (Claude starts in project root)
224
224
  .session/{STORY_ID}-session.md
225
225
 
226
226
  # ✅ CORRECT - Commands use climber pattern to find project root
227
227
  d="$PWD"; while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done
228
- "$d/.pennyfarthing/scripts/core/run.sh" core/agent-session.sh start "sm"
228
+ "$d/.pennyfarthing/scripts/core/agent-session.sh" start "sm"
229
229
 
230
230
  # ❌ WRONG - $CLAUDE_PROJECT_DIR doesn't exist in Claude Bash calls
231
- $CLAUDE_PROJECT_DIR/scripts/run.sh core/agent-session.sh # BROKEN!
231
+ $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/core/agent-session.sh # BROKEN!
232
232
 
233
233
  # ❌ WRONG - Don't hardcode absolute paths
234
- /Users/someone/project/scripts/run.sh core/agent-session.sh
234
+ /Users/someone/project/.pennyfarthing/scripts/core/agent-session.sh
235
235
  ```
236
236
 
237
237
  ### Why Relative Paths?
238
238
  - `$CLAUDE_PROJECT_DIR` is available in hooks but NOT in Claude's Bash tool calls
239
- - `run.sh` internally finds project root via `.pennyfarthing/` marker
239
+ - Scripts self-locate via `BASH_SOURCE` and `find-root.sh`
240
240
  - Claude Code always starts in the project root directory
241
241
  - The climber pattern handles subdirectory execution if needed
242
242
 
243
243
  ### Path Context
244
- | Context | `$CLAUDE_PROJECT_DIR` | Relative Paths | run.sh |
245
- |---------|----------------------|----------------|--------|
246
- | Hooks (settings.json) | ✅ Available | ✅ Works | ✅ Works |
247
- | Claude Bash calls | ❌ Not set | ✅ Works | ✅ Works |
248
- | Scripts (via run.sh) | ❌ Use `$PROJECT_ROOT` | ✅ Works | - |
244
+ | Context | `$CLAUDE_PROJECT_DIR` | Relative Paths |
245
+ |---------|----------------------|----------------|
246
+ | Hooks (settings.json) | ✅ Available | ✅ Works |
247
+ | Claude Bash calls | ❌ Not set | ✅ Works |
248
+ | Inside scripts | ❌ Use `$PROJECT_ROOT` | ✅ Works |
249
249
 
250
250
  ## Background Subagent Execution
251
251
 
@@ -176,5 +176,5 @@ Task tool:
176
176
  <exit>
177
177
  To exit: "Exit Architect" or switch to another agent.
178
178
 
179
- On exit, run: `./scripts/run.sh core/agent-session.sh stop`
179
+ On exit, run: `./.pennyfarthing/scripts/core/agent-session.sh stop`
180
180
  </exit>
@@ -59,7 +59,7 @@ PR_NUMBER: "{PR_NUMBER}"
59
59
 
60
60
  Read `**Workflow:**` and `**Phase:**` from session. Query:
61
61
  ```bash
62
- OWNER=$(.pennyfarthing/scripts/core/run.sh workflow/phase-owner.sh {workflow} {phase})
62
+ OWNER=$(.pennyfarthing/scripts/workflow/phase-owner.sh {workflow} {phase})
63
63
  ```
64
64
 
65
65
  **If OWNER != "dev":** Run `handoff-marker.sh $OWNER`, output result, tell user.
@@ -153,7 +153,7 @@ Write to session file BEFORE spawning handoff:
153
153
  3. Await `HANDOFF_RESULT` with `next_agent`
154
154
  4. **ABSOLUTE LAST ACTION:**
155
155
  ```bash
156
- .pennyfarthing/scripts/core/handoff-marker.sh {next_agent}
156
+ .pennyfarthing/scripts/handoff/handoff-marker.sh {next_agent}
157
157
  ```
158
158
  5. Output result verbatim and EXIT
159
159
  </exit-sequence>
@@ -199,5 +199,5 @@ Task tool:
199
199
  <exit>
200
200
  To exit: "Exit DevOps" or switch to another agent.
201
201
 
202
- On exit, run: `./scripts/run.sh core/agent-session.sh stop`
202
+ On exit, run: `./.pennyfarthing/scripts/core/agent-session.sh stop`
203
203
  </exit>
@@ -39,7 +39,7 @@ Return `HANDOFF_RESULT` with the next agent name - the calling agent runs `hando
39
39
 
40
40
  <gate>
41
41
  ### tests_pass (Dev → Reviewer)
42
- - [ ] Quality checks pass (run: `.pennyfarthing/scripts/run.sh workflow/check.sh`)
42
+ - [ ] Quality checks pass (run: `.pennyfarthing/scripts/workflow/check.sh`)
43
43
  - [ ] Git working tree clean
44
44
  - [ ] Changes pushed to remote
45
45
  - [ ] PR exists and is open
@@ -229,7 +229,7 @@ When you receive `HANDOFF_RESULT`:
229
229
  **CRITICAL: The calling agent MUST run this as their ABSOLUTE LAST ACTION:**
230
230
 
231
231
  ```bash
232
- .pennyfarthing/scripts/core/handoff-marker.sh {next_agent}
232
+ .pennyfarthing/scripts/handoff/handoff-marker.sh {next_agent}
233
233
  ```
234
234
 
235
235
  Then output the script's result verbatim and EXIT. Nothing else after.
@@ -148,5 +148,5 @@ REFLECT: Recommend completing Epic 38 batch before starting new epics. P1 bugs f
148
148
  <exit>
149
149
  To exit: "Exit PM" or switch to another agent.
150
150
 
151
- On exit, run: `./scripts/run.sh core/agent-session.sh stop`
151
+ On exit, run: `./.pennyfarthing/scripts/core/agent-session.sh stop`
152
152
  </exit>
@@ -72,7 +72,7 @@ ASSESSMENT_SECTION: "Reviewer Assessment"
72
72
 
73
73
  Read `**Workflow:**` and `**Phase:**` from session. Query:
74
74
  ```bash
75
- OWNER=$(.pennyfarthing/scripts/core/run.sh workflow/phase-owner.sh {workflow} {phase})
75
+ OWNER=$(.pennyfarthing/scripts/workflow/phase-owner.sh {workflow} {phase})
76
76
  ```
77
77
 
78
78
  **If OWNER != "reviewer":** Run `handoff-marker.sh $OWNER`, output result, tell user.
@@ -163,7 +163,7 @@ OWNER=$(.pennyfarthing/scripts/core/run.sh workflow/phase-owner.sh {workflow} {p
163
163
  3. Await `HANDOFF_RESULT` with `next_agent`
164
164
  4. **ABSOLUTE LAST ACTION:**
165
165
  ```bash
166
- .pennyfarthing/scripts/core/handoff-marker.sh {next_agent}
166
+ .pennyfarthing/scripts/handoff/handoff-marker.sh {next_agent}
167
167
  ```
168
168
  5. Output result verbatim and EXIT
169
169
 
@@ -26,7 +26,7 @@ model: haiku
26
26
 
27
27
  - [ ] Use `/sprint backlog` for initial backlog scan:
28
28
  ```bash
29
- .pennyfarthing/scripts/core/run.sh sprint/available-stories.sh
29
+ .pennyfarthing/scripts/sprint/available-stories.sh
30
30
  ```
31
31
  - [ ] Use `/jira` skill to enrich with Jira status/assignee:
32
32
  - `/jira search "project=MSSCI AND sprint in openSprints()"` - Get all sprint stories
@@ -92,7 +92,7 @@ Other formats break Cyclist detection.
92
92
  EPIC_NUM=$(echo "{STORY_ID}" | cut -d'-' -f1)
93
93
 
94
94
  # Get epic's Jira key (use script, not direct yq)
95
- EPIC_JIRA=$(.pennyfarthing/scripts/core/run.sh sprint/get-epic-field.sh "$EPIC_NUM" jira)
95
+ EPIC_JIRA=$(.pennyfarthing/scripts/sprint/get-epic-field.sh "$EPIC_NUM" jira)
96
96
  ```
97
97
 
98
98
  If missing or "null": auto-create via `jira-epic-creation.ts`
@@ -139,10 +139,10 @@ Use `/jira claim` command:
139
139
 
140
140
  ```bash
141
141
  # Check availability first
142
- .pennyfarthing/scripts/core/run.sh jira/jira-claim-story.sh {JIRA_KEY}
142
+ .pennyfarthing/scripts/jira/jira-claim-story.sh {JIRA_KEY}
143
143
 
144
144
  # Then claim (assign to self + move to In Progress)
145
- .pennyfarthing/scripts/core/run.sh jira/jira-claim-story.sh {JIRA_KEY} --claim
145
+ .pennyfarthing/scripts/jira/jira-claim-story.sh {JIRA_KEY} --claim
146
146
  ```
147
147
 
148
148
  **Exit codes:**
@@ -184,7 +184,7 @@ git checkout -b feat/{STORY_ID}-{SLUG}
184
184
  After session file is created, determine how to route:
185
185
 
186
186
  ```bash
187
- WORKFLOW_TYPE=$(.pennyfarthing/scripts/core/run.sh workflow/get-workflow-type.sh "{WORKFLOW}")
187
+ WORKFLOW_TYPE=$(.pennyfarthing/scripts/workflow/get-workflow-type.sh "{WORKFLOW}")
188
188
  ```
189
189
 
190
190
  | Workflow Type | Routing |