@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
@@ -0,0 +1,176 @@
1
+ """
2
+ Create Jira epics from Pennyfarthing sprint YAML definitions.
3
+
4
+ Usage:
5
+ python -m pennyfarthing_scripts.jira create epic <epic_id> [options]
6
+
7
+ Options:
8
+ --dry-run Show what would be done without making changes
9
+
10
+ Examples:
11
+ python -m pennyfarthing_scripts.jira create epic epic-63 --dry-run
12
+ python -m pennyfarthing_scripts.jira create epic 63
13
+ """
14
+
15
+ import argparse
16
+ import json
17
+ import sys
18
+ from typing import Any
19
+
20
+ from pennyfarthing_scripts.jira.client import JiraClient, JIRA_PROJECT
21
+ from pennyfarthing_scripts.sprint.loader import find_epic, load_sprint as load_current_sprint
22
+
23
+
24
+ def parse_args(args: list[str] | None = None) -> argparse.Namespace:
25
+ """Parse command line arguments.
26
+
27
+ Args:
28
+ args: Command line arguments (defaults to sys.argv[1:])
29
+
30
+ Returns:
31
+ Parsed arguments namespace
32
+ """
33
+ parser = argparse.ArgumentParser(
34
+ description="Create Jira epic from Pennyfarthing sprint YAML"
35
+ )
36
+ parser.add_argument("epic_id", help="Epic ID (e.g., epic-63 or 63)")
37
+ parser.add_argument("--dry-run", action="store_true", help="Show changes without applying")
38
+
39
+ return parser.parse_args(args)
40
+
41
+
42
+ def build_epic_payload(epic_data: dict[str, Any]) -> dict[str, Any]:
43
+ """Build Jira API payload for creating an epic.
44
+
45
+ Args:
46
+ epic_data: Epic data from sprint YAML
47
+
48
+ Returns:
49
+ Jira API request payload
50
+ """
51
+ title = epic_data.get("title", "")
52
+ description = epic_data.get("description", "")
53
+
54
+ # Build ADF (Atlassian Document Format) for description
55
+ description_adf = {
56
+ "type": "doc",
57
+ "version": 1,
58
+ "content": [
59
+ {
60
+ "type": "paragraph",
61
+ "content": [{"type": "text", "text": description}] if description else [],
62
+ }
63
+ ],
64
+ }
65
+
66
+ return {
67
+ "fields": {
68
+ "project": {"key": JIRA_PROJECT},
69
+ "summary": title,
70
+ "description": description_adf,
71
+ "issuetype": {"name": "Epic"},
72
+ }
73
+ }
74
+
75
+
76
+ def create_epic(
77
+ title: str,
78
+ description: str = "",
79
+ *,
80
+ dry_run: bool = False,
81
+ ) -> dict[str, Any]:
82
+ """Create a Jira epic.
83
+
84
+ Args:
85
+ title: Epic title/summary
86
+ description: Epic description
87
+ dry_run: If True, show changes without applying
88
+
89
+ Returns:
90
+ Result dict with success, key, error fields
91
+ """
92
+ epic_data = {"title": title, "description": description}
93
+ payload = build_epic_payload(epic_data)
94
+
95
+ if dry_run:
96
+ return {
97
+ "success": True,
98
+ "dry_run": True,
99
+ "payload": payload,
100
+ }
101
+
102
+ client = JiraClient()
103
+ response = client.create_issue_sync(payload)
104
+
105
+ if response and "key" in response:
106
+ return {
107
+ "success": True,
108
+ "key": response["key"],
109
+ "id": response.get("id"),
110
+ }
111
+ else:
112
+ return {
113
+ "success": False,
114
+ "error": "Failed to create epic",
115
+ "response": response,
116
+ }
117
+
118
+
119
+ def create_epic_from_yaml(epic_id: str, *, dry_run: bool = False) -> dict[str, Any]:
120
+ """Create a Jira epic from sprint YAML definition.
121
+
122
+ Args:
123
+ epic_id: Epic ID (e.g., "epic-63" or "63")
124
+ dry_run: If True, show changes without applying
125
+
126
+ Returns:
127
+ Result dict with success, key, error fields
128
+ """
129
+ sprint_data = load_current_sprint()
130
+ if not sprint_data:
131
+ return {"success": False, "error": "Could not load sprint YAML"}
132
+
133
+ epic = find_epic(sprint_data, epic_id)
134
+ if not epic:
135
+ return {"success": False, "error": f"Epic '{epic_id}' not found in sprint YAML"}
136
+
137
+ # Check if epic already has a Jira key
138
+ if epic.get("jira"):
139
+ return {
140
+ "success": False,
141
+ "error": f"Epic already has Jira key: {epic['jira']}",
142
+ }
143
+
144
+ title = epic.get("title", f"Epic {epic_id}")
145
+ description = epic.get("description", "")
146
+
147
+ return create_epic(title, description, dry_run=dry_run)
148
+
149
+
150
+ def main(args: list[str] | None = None) -> int:
151
+ """CLI entry point.
152
+
153
+ Args:
154
+ args: Command line arguments (defaults to sys.argv[1:])
155
+
156
+ Returns:
157
+ Exit code (0 for success, 1 for failure)
158
+ """
159
+ parsed_args = parse_args(args)
160
+
161
+ result = create_epic_from_yaml(parsed_args.epic_id, dry_run=parsed_args.dry_run)
162
+
163
+ if result["success"]:
164
+ if result.get("dry_run"):
165
+ print(f"[DRY-RUN] Would create epic for {parsed_args.epic_id}")
166
+ print(f" Payload: {json.dumps(result.get('payload', {}), indent=2)}")
167
+ else:
168
+ print(f"Created epic: {result.get('key')}")
169
+ return 0
170
+ else:
171
+ print(f"Failed: {result.get('error', 'Unknown error')}", file=sys.stderr)
172
+ return 1
173
+
174
+
175
+ if __name__ == "__main__":
176
+ sys.exit(main())
@@ -0,0 +1,219 @@
1
+ """
2
+ Sync a single story between Pennyfarthing sprint YAML and Jira.
3
+
4
+ Usage:
5
+ python -m pennyfarthing_scripts.jira story <story_key> [options]
6
+
7
+ Options:
8
+ --transition Sync status (transition Jira issue)
9
+ --points Sync story points
10
+ --comment MSG Add comment to issue
11
+ --dry-run Show what would be done without making changes
12
+
13
+ Examples:
14
+ python -m pennyfarthing_scripts.jira story 63-7 --transition
15
+ python -m pennyfarthing_scripts.jira story MSSCI-12401 --points --dry-run
16
+ """
17
+
18
+ import argparse
19
+ import sys
20
+ from typing import Any
21
+
22
+ from pennyfarthing_scripts.jira import client as jira_client
23
+ from pennyfarthing_scripts.sprint.loader import (
24
+ find_epic,
25
+ find_story,
26
+ get_story_by_id,
27
+ load_sprint as load_current_sprint,
28
+ )
29
+
30
+
31
+ def parse_args(args: list[str] | None = None) -> argparse.Namespace:
32
+ """Parse command line arguments.
33
+
34
+ Args:
35
+ args: Command line arguments (defaults to sys.argv[1:])
36
+
37
+ Returns:
38
+ Parsed arguments namespace
39
+ """
40
+ parser = argparse.ArgumentParser(
41
+ description="Sync a single story between Pennyfarthing and Jira"
42
+ )
43
+ parser.add_argument("story_key", help="Story ID (e.g., 63-7) or Jira key (MSSCI-12401)")
44
+ parser.add_argument("--transition", action="store_true", help="Sync status")
45
+ parser.add_argument("--points", action="store_true", help="Sync story points")
46
+ parser.add_argument("--comment", type=str, help="Add comment to issue")
47
+ parser.add_argument("--dry-run", action="store_true", help="Show changes without applying")
48
+
49
+ return parser.parse_args(args)
50
+
51
+
52
+ def get_story_from_sprint(story_key: str) -> dict[str, Any] | None:
53
+ """Find a story in the sprint YAML.
54
+
55
+ Args:
56
+ story_key: Story ID or Jira key
57
+
58
+ Returns:
59
+ Story dict if found, None otherwise
60
+ """
61
+ # Try direct lookup first
62
+ story = get_story_by_id(story_key)
63
+ if story:
64
+ return story
65
+
66
+ # If it looks like a local ID (e.g., "63-7"), try finding via epic
67
+ if "-" in story_key and not story_key.startswith("MSSCI"):
68
+ sprint_data = load_current_sprint()
69
+ if sprint_data:
70
+ parts = story_key.split("-")
71
+ if len(parts) >= 2:
72
+ epic_num = parts[0]
73
+ epic = find_epic(sprint_data, epic_num)
74
+ if epic:
75
+ return find_story(epic, story_key)
76
+
77
+ return None
78
+
79
+
80
+ def fetch_jira_issue(jira_key: str) -> dict[str, Any] | None:
81
+ """Fetch issue from Jira.
82
+
83
+ Args:
84
+ jira_key: Jira issue key
85
+
86
+ Returns:
87
+ Issue JSON if found, None otherwise
88
+ """
89
+ return jira_client.get_issue(jira_key)
90
+
91
+
92
+ def sync_story(
93
+ story_key: str,
94
+ *,
95
+ do_transition: bool = False,
96
+ sync_points: bool = False,
97
+ comment: str | None = None,
98
+ dry_run: bool = False,
99
+ ) -> dict[str, Any]:
100
+ """Sync a story between Pennyfarthing and Jira.
101
+
102
+ Args:
103
+ story_key: Story ID or Jira key
104
+ do_transition: Whether to sync status
105
+ sync_points: Whether to sync story points
106
+ comment: Comment to add (optional)
107
+ dry_run: If True, show changes without applying
108
+
109
+ Returns:
110
+ Result dict with success, actions, error fields
111
+ """
112
+ # Find story in sprint YAML
113
+ story = get_story_from_sprint(story_key)
114
+ if not story:
115
+ return {
116
+ "success": False,
117
+ "error": f"Story '{story_key}' not found in sprint YAML",
118
+ }
119
+
120
+ jira_key = story.get("jira")
121
+ if not jira_key:
122
+ return {
123
+ "success": False,
124
+ "error": f"Story '{story_key}' has no Jira key",
125
+ }
126
+
127
+ # Fetch current Jira state
128
+ issue = fetch_jira_issue(jira_key)
129
+ if not issue:
130
+ return {
131
+ "success": False,
132
+ "error": f"Could not fetch Jira issue {jira_key}",
133
+ }
134
+
135
+ actions = []
136
+ errors = []
137
+
138
+ # Sync status if requested
139
+ if do_transition:
140
+ current_jira_status = jira_client.get_jira_field(issue, "fields.status.name")
141
+ target_status = jira_client.map_status_to_jira(story.get("status"))
142
+
143
+ if current_jira_status != target_status:
144
+ action = f"transition {jira_key}: {current_jira_status} -> {target_status}"
145
+ if dry_run:
146
+ actions.append(f"[DRY-RUN] {action}")
147
+ else:
148
+ if jira_client.update_issue_status(jira_key, target_status):
149
+ actions.append(action)
150
+ else:
151
+ errors.append(f"Failed to transition {jira_key}")
152
+ else:
153
+ actions.append(f"status already {current_jira_status}")
154
+
155
+ # Sync points if requested
156
+ if sync_points:
157
+ story_points = story.get("points")
158
+ if story_points is not None:
159
+ current_points = jira_client.get_story_points(jira_key, issue)
160
+ if current_points != story_points:
161
+ action = f"sync points {jira_key}: {current_points} -> {story_points}"
162
+ if dry_run:
163
+ actions.append(f"[DRY-RUN] {action}")
164
+ else:
165
+ # Note: point sync requires REST API, not CLI
166
+ actions.append(f"[SKIP] {action} (requires REST API)")
167
+
168
+ # Add comment if provided
169
+ if comment:
170
+ action = f"add comment to {jira_key}"
171
+ if dry_run:
172
+ actions.append(f"[DRY-RUN] {action}")
173
+ else:
174
+ if jira_client.add_comment(jira_key, comment):
175
+ actions.append(action)
176
+ else:
177
+ errors.append(f"Failed to add comment to {jira_key}")
178
+
179
+ return {
180
+ "success": len(errors) == 0,
181
+ "story_id": story.get("id"),
182
+ "jira_key": jira_key,
183
+ "actions": actions,
184
+ "errors": errors if errors else None,
185
+ "dry_run": dry_run,
186
+ }
187
+
188
+
189
+ def main(args: list[str] | None = None) -> int:
190
+ """CLI entry point.
191
+
192
+ Args:
193
+ args: Command line arguments (defaults to sys.argv[1:])
194
+
195
+ Returns:
196
+ Exit code (0 for success, 1 for failure)
197
+ """
198
+ parsed_args = parse_args(args)
199
+
200
+ result = sync_story(
201
+ parsed_args.story_key,
202
+ do_transition=parsed_args.transition,
203
+ sync_points=parsed_args.points,
204
+ comment=parsed_args.comment,
205
+ dry_run=parsed_args.dry_run,
206
+ )
207
+
208
+ if result["success"]:
209
+ print(f"Synced {result.get('story_id', parsed_args.story_key)}")
210
+ for action in result.get("actions", []):
211
+ print(f" {action}")
212
+ return 0
213
+ else:
214
+ print(f"Failed: {result.get('error', 'Unknown error')}", file=sys.stderr)
215
+ return 1
216
+
217
+
218
+ if __name__ == "__main__":
219
+ sys.exit(main())