@pennyfarthing/core 10.0.3 → 10.1.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 (282) hide show
  1. package/README.md +9 -7
  2. package/package.json +7 -1
  3. package/packages/core/dist/cli/commands/cyclist.d.ts +5 -1
  4. package/packages/core/dist/cli/commands/cyclist.d.ts.map +1 -1
  5. package/packages/core/dist/cli/commands/cyclist.js +4 -4
  6. package/packages/core/dist/cli/commands/cyclist.js.map +1 -1
  7. package/packages/core/dist/cli/commands/cyclist.test.js +2 -2
  8. package/packages/core/dist/cli/commands/cyclist.test.js.map +1 -1
  9. package/packages/core/dist/cli/commands/doctor-legacy.test.js +17 -16
  10. package/packages/core/dist/cli/commands/doctor-legacy.test.js.map +1 -1
  11. package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
  12. package/packages/core/dist/cli/commands/doctor.js +251 -4
  13. package/packages/core/dist/cli/commands/doctor.js.map +1 -1
  14. package/packages/core/dist/cli/commands/init.d.ts +7 -0
  15. package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
  16. package/packages/core/dist/cli/commands/init.js +43 -7
  17. package/packages/core/dist/cli/commands/init.js.map +1 -1
  18. package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
  19. package/packages/core/dist/cli/commands/update.js +26 -0
  20. package/packages/core/dist/cli/commands/update.js.map +1 -1
  21. package/packages/core/dist/cli/index.js +1 -1
  22. package/packages/core/dist/cli/index.js.map +1 -1
  23. package/packages/core/dist/cli/ocean-profiles.test.js +1 -1
  24. package/packages/core/dist/cli/ocean-profiles.test.js.map +1 -1
  25. package/packages/core/dist/cli/utils/files.d.ts +10 -0
  26. package/packages/core/dist/cli/utils/files.d.ts.map +1 -1
  27. package/packages/core/dist/cli/utils/files.js +35 -0
  28. package/packages/core/dist/cli/utils/files.js.map +1 -1
  29. package/packages/core/dist/cli/utils/python.d.ts +22 -0
  30. package/packages/core/dist/cli/utils/python.d.ts.map +1 -0
  31. package/packages/core/dist/cli/utils/python.js +102 -0
  32. package/packages/core/dist/cli/utils/python.js.map +1 -0
  33. package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
  34. package/packages/core/dist/cli/utils/settings.js +10 -0
  35. package/packages/core/dist/cli/utils/settings.js.map +1 -1
  36. package/packages/core/dist/scripts/generate-report.d.ts.map +1 -1
  37. package/packages/core/dist/scripts/generate-report.js +11 -7
  38. package/packages/core/dist/scripts/generate-report.js.map +1 -1
  39. package/packages/core/dist/scripts/generate-spider-report.d.ts.map +1 -1
  40. package/packages/core/dist/scripts/generate-spider-report.js +12 -8
  41. package/packages/core/dist/scripts/generate-spider-report.js.map +1 -1
  42. package/packages/core/dist/scripts/generate-spider.d.ts.map +1 -1
  43. package/packages/core/dist/scripts/generate-spider.js +6 -4
  44. package/packages/core/dist/scripts/generate-spider.js.map +1 -1
  45. package/packages/core/dist/scripts/generate-spider.test.js +2 -2
  46. package/packages/core/dist/scripts/generate-spider.test.js.map +1 -1
  47. package/pennyfarthing-dist/agents/README.md +1 -3
  48. package/pennyfarthing-dist/agents/architect.md +0 -6
  49. package/pennyfarthing-dist/agents/devops.md +0 -6
  50. package/pennyfarthing-dist/agents/orchestrator.md +0 -6
  51. package/pennyfarthing-dist/agents/pm.md +1 -7
  52. package/pennyfarthing-dist/agents/sm-finish.md +1 -1
  53. package/pennyfarthing-dist/agents/sm-setup.md +2 -2
  54. package/pennyfarthing-dist/agents/sm.md +4 -11
  55. package/pennyfarthing-dist/commands/architect.md +11 -3
  56. package/pennyfarthing-dist/commands/close-epic.md +24 -131
  57. package/pennyfarthing-dist/commands/create-theme.md +14 -24
  58. package/pennyfarthing-dist/commands/dev.md +11 -3
  59. package/pennyfarthing-dist/commands/devops.md +11 -3
  60. package/pennyfarthing-dist/commands/health-check.md +1 -3
  61. package/pennyfarthing-dist/commands/help.md +8 -12
  62. package/pennyfarthing-dist/commands/list-themes.md +14 -16
  63. package/pennyfarthing-dist/commands/orchestrator.md +11 -3
  64. package/pennyfarthing-dist/commands/parallel-work.md +1 -3
  65. package/pennyfarthing-dist/commands/pm.md +11 -3
  66. package/pennyfarthing-dist/commands/prime.md +6 -6
  67. package/pennyfarthing-dist/commands/repo-status.md +2 -2
  68. package/pennyfarthing-dist/commands/reviewer.md +11 -3
  69. package/pennyfarthing-dist/commands/run-ci.md +1 -1
  70. package/pennyfarthing-dist/commands/set-theme.md +14 -51
  71. package/pennyfarthing-dist/commands/setup.md +1 -1
  72. package/pennyfarthing-dist/commands/show-theme.md +14 -16
  73. package/pennyfarthing-dist/commands/sm.md +11 -3
  74. package/pennyfarthing-dist/commands/sprint.md +8 -8
  75. package/pennyfarthing-dist/commands/tea.md +11 -3
  76. package/pennyfarthing-dist/commands/tech-writer.md +11 -3
  77. package/pennyfarthing-dist/commands/theme-maker.md +14 -671
  78. package/pennyfarthing-dist/commands/theme.md +95 -0
  79. package/pennyfarthing-dist/commands/ux-designer.md +11 -3
  80. package/pennyfarthing-dist/commands/work.md +3 -5
  81. package/pennyfarthing-dist/guides/agent-coordination.md +11 -13
  82. package/pennyfarthing-dist/guides/agent-template-tactical.md +2 -3
  83. package/pennyfarthing-dist/guides/command-tag-taxonomy.md +212 -0
  84. package/pennyfarthing-dist/guides/hooks.md +5 -5
  85. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +3 -3
  86. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +9 -59
  87. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +4 -5
  88. package/pennyfarthing-dist/guides/prime.md +2 -2
  89. package/pennyfarthing-dist/guides/skill-schema.md +25 -26
  90. package/pennyfarthing-dist/guides/xml-tags.md +2 -2
  91. package/pennyfarthing-dist/scripts/README.md +2 -2
  92. package/pennyfarthing-dist/scripts/core/agent-session.sh +6 -2
  93. package/pennyfarthing-dist/scripts/core/prime.sh +8 -10
  94. package/pennyfarthing-dist/scripts/git/git-status-all.sh +1 -1
  95. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +8 -6
  96. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +3 -3
  97. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +14 -12
  98. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +4 -3
  99. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +11 -5
  100. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +1 -1
  101. package/pennyfarthing-dist/scripts/misc/README.md +1 -1
  102. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +3 -3
  103. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +1 -2
  104. package/pennyfarthing-dist/scripts/sprint/README.md +32 -17
  105. package/pennyfarthing-dist/scripts/story/README.md +1 -1
  106. package/pennyfarthing-dist/scripts/test/test-setup.sh +1 -1
  107. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +5 -5
  108. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +3 -79
  109. package/pennyfarthing-dist/scripts/theme/README.md +1 -1
  110. package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +0 -1
  111. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +62 -17
  112. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +2 -2
  113. package/pennyfarthing-dist/skills/skill-registry.yaml +41 -28
  114. package/pennyfarthing-dist/skills/sprint/skill.md +386 -68
  115. package/pennyfarthing-dist/skills/story/skill.md +14 -206
  116. package/pennyfarthing-dist/skills/theme/skill.md +290 -75
  117. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +23 -166
  118. package/pennyfarthing-dist/skills/workflow/skill.md +4 -4
  119. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +0 -11
  120. package/pennyfarthing-dist/templates/auto-load-sm.sh.template +14 -0
  121. package/pennyfarthing-dist/templates/settings.local.json.template +9 -0
  122. package/pennyfarthing-dist/workflows/2party-tdd.yaml +399 -0
  123. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +42 -25
  124. package/pennyfarthing-dist/workflows/git-cleanup.yaml +1 -1
  125. package/pennyfarthing-dist/workflows/project-setup/steps/step-10-complete.md +1 -1
  126. package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
  127. package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
  128. package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
  129. package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
  130. package/pennyfarthing_scripts/cli.py +15 -0
  131. package/pennyfarthing_scripts/codemarkers/__init__.py +19 -0
  132. package/pennyfarthing_scripts/codemarkers/__main__.py +6 -0
  133. package/pennyfarthing_scripts/codemarkers/__pycache__/__init__.cpython-314.pyc +0 -0
  134. package/pennyfarthing_scripts/codemarkers/__pycache__/__main__.cpython-314.pyc +0 -0
  135. package/pennyfarthing_scripts/codemarkers/__pycache__/analyze.cpython-314.pyc +0 -0
  136. package/pennyfarthing_scripts/codemarkers/__pycache__/cli.cpython-314.pyc +0 -0
  137. package/pennyfarthing_scripts/codemarkers/__pycache__/formatters.cpython-314.pyc +0 -0
  138. package/pennyfarthing_scripts/codemarkers/__pycache__/models.cpython-314.pyc +0 -0
  139. package/pennyfarthing_scripts/codemarkers/analyze.py +326 -0
  140. package/pennyfarthing_scripts/codemarkers/cli.py +129 -0
  141. package/pennyfarthing_scripts/codemarkers/formatters.py +89 -0
  142. package/pennyfarthing_scripts/codemarkers/models.py +45 -0
  143. package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
  144. package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
  145. package/pennyfarthing_scripts/common/config.py +2 -1
  146. package/pennyfarthing_scripts/complexity/__init__.py +15 -0
  147. package/pennyfarthing_scripts/complexity/__main__.py +6 -0
  148. package/pennyfarthing_scripts/complexity/__pycache__/__init__.cpython-314.pyc +0 -0
  149. package/pennyfarthing_scripts/complexity/__pycache__/__main__.cpython-314.pyc +0 -0
  150. package/pennyfarthing_scripts/complexity/__pycache__/analyze.cpython-314.pyc +0 -0
  151. package/pennyfarthing_scripts/complexity/__pycache__/cli.cpython-314.pyc +0 -0
  152. package/pennyfarthing_scripts/complexity/__pycache__/formatters.cpython-314.pyc +0 -0
  153. package/pennyfarthing_scripts/complexity/__pycache__/models.cpython-314.pyc +0 -0
  154. package/pennyfarthing_scripts/complexity/analyze.py +207 -0
  155. package/pennyfarthing_scripts/complexity/cli.py +78 -0
  156. package/pennyfarthing_scripts/complexity/formatters.py +64 -0
  157. package/pennyfarthing_scripts/complexity/models.py +32 -0
  158. package/pennyfarthing_scripts/deadcode/__init__.py +6 -0
  159. package/pennyfarthing_scripts/deadcode/__main__.py +6 -0
  160. package/pennyfarthing_scripts/deadcode/__pycache__/__init__.cpython-314.pyc +0 -0
  161. package/pennyfarthing_scripts/deadcode/__pycache__/__main__.cpython-314.pyc +0 -0
  162. package/pennyfarthing_scripts/deadcode/__pycache__/analyze.cpython-314.pyc +0 -0
  163. package/pennyfarthing_scripts/deadcode/__pycache__/cli.cpython-314.pyc +0 -0
  164. package/pennyfarthing_scripts/deadcode/__pycache__/formatters.cpython-314.pyc +0 -0
  165. package/pennyfarthing_scripts/deadcode/__pycache__/models.cpython-314.pyc +0 -0
  166. package/pennyfarthing_scripts/deadcode/analyze.py +323 -0
  167. package/pennyfarthing_scripts/deadcode/cli.py +163 -0
  168. package/pennyfarthing_scripts/deadcode/formatters.py +106 -0
  169. package/pennyfarthing_scripts/deadcode/models.py +54 -0
  170. package/pennyfarthing_scripts/dependencies/__init__.py +20 -0
  171. package/pennyfarthing_scripts/dependencies/__main__.py +5 -0
  172. package/pennyfarthing_scripts/dependencies/__pycache__/__init__.cpython-314.pyc +0 -0
  173. package/pennyfarthing_scripts/dependencies/__pycache__/__main__.cpython-314.pyc +0 -0
  174. package/pennyfarthing_scripts/dependencies/__pycache__/analyze.cpython-314.pyc +0 -0
  175. package/pennyfarthing_scripts/dependencies/__pycache__/cli.cpython-314.pyc +0 -0
  176. package/pennyfarthing_scripts/dependencies/__pycache__/formatters.cpython-314.pyc +0 -0
  177. package/pennyfarthing_scripts/dependencies/__pycache__/models.cpython-314.pyc +0 -0
  178. package/pennyfarthing_scripts/dependencies/analyze.py +155 -0
  179. package/pennyfarthing_scripts/dependencies/cli.py +72 -0
  180. package/pennyfarthing_scripts/dependencies/formatters.py +63 -0
  181. package/pennyfarthing_scripts/dependencies/models.py +39 -0
  182. package/pennyfarthing_scripts/healthscore/__init__.py +21 -0
  183. package/pennyfarthing_scripts/healthscore/__main__.py +6 -0
  184. package/pennyfarthing_scripts/healthscore/__pycache__/__init__.cpython-314.pyc +0 -0
  185. package/pennyfarthing_scripts/healthscore/__pycache__/__main__.cpython-314.pyc +0 -0
  186. package/pennyfarthing_scripts/healthscore/__pycache__/analyze.cpython-314.pyc +0 -0
  187. package/pennyfarthing_scripts/healthscore/__pycache__/cli.cpython-314.pyc +0 -0
  188. package/pennyfarthing_scripts/healthscore/__pycache__/formatters.cpython-314.pyc +0 -0
  189. package/pennyfarthing_scripts/healthscore/__pycache__/models.cpython-314.pyc +0 -0
  190. package/pennyfarthing_scripts/healthscore/analyze.py +161 -0
  191. package/pennyfarthing_scripts/healthscore/cli.py +76 -0
  192. package/pennyfarthing_scripts/healthscore/formatters.py +46 -0
  193. package/pennyfarthing_scripts/healthscore/models.py +44 -0
  194. package/pennyfarthing_scripts/hotspots/__pycache__/__init__.cpython-314.pyc +0 -0
  195. package/pennyfarthing_scripts/hotspots/__pycache__/__main__.cpython-314.pyc +0 -0
  196. package/pennyfarthing_scripts/hotspots/__pycache__/analyze.cpython-314.pyc +0 -0
  197. package/pennyfarthing_scripts/hotspots/__pycache__/cli.cpython-314.pyc +0 -0
  198. package/pennyfarthing_scripts/hotspots/__pycache__/formatters.cpython-314.pyc +0 -0
  199. package/pennyfarthing_scripts/hotspots/__pycache__/models.cpython-314.pyc +0 -0
  200. package/pennyfarthing_scripts/hotspots/analyze.py +28 -1
  201. package/pennyfarthing_scripts/hotspots/cli.py +11 -9
  202. package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
  203. package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
  204. package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
  205. package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
  206. package/pennyfarthing_scripts/jira/__pycache__/create.cpython-314.pyc +0 -0
  207. package/pennyfarthing_scripts/jira/__pycache__/operations.cpython-314.pyc +0 -0
  208. package/pennyfarthing_scripts/jira/__pycache__/reconcile.cpython-314.pyc +0 -0
  209. package/pennyfarthing_scripts/jira/bidirectional.py +42 -15
  210. package/pennyfarthing_scripts/jira/cli.py +78 -1
  211. package/pennyfarthing_scripts/jira/client.py +28 -0
  212. package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
  213. package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
  214. package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
  215. package/pennyfarthing_scripts/prime/__pycache__/tiers.cpython-314.pyc +0 -0
  216. package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  217. package/pennyfarthing_scripts/prime/workflow.py +5 -3
  218. package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
  219. package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
  220. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  221. package/pennyfarthing_scripts/sprint/__pycache__/epic_add.cpython-314.pyc +0 -0
  222. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  223. package/pennyfarthing_scripts/sprint/__pycache__/story_add.cpython-314.pyc +0 -0
  224. package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
  225. package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
  226. package/pennyfarthing_scripts/sprint/__pycache__/validate_cmd.cpython-314.pyc +0 -0
  227. package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
  228. package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
  229. package/pennyfarthing_scripts/sprint/__pycache__/yaml_io.cpython-314.pyc +0 -0
  230. package/pennyfarthing_scripts/sprint/archive.py +63 -6
  231. package/pennyfarthing_scripts/sprint/archive_epic.py +198 -85
  232. package/pennyfarthing_scripts/sprint/cli.py +1565 -65
  233. package/pennyfarthing_scripts/sprint/epic_add.py +173 -0
  234. package/pennyfarthing_scripts/sprint/loader.py +46 -2
  235. package/pennyfarthing_scripts/sprint/story_add.py +202 -27
  236. package/pennyfarthing_scripts/sprint/story_finish.py +211 -0
  237. package/pennyfarthing_scripts/sprint/validate_cmd.py +44 -5
  238. package/pennyfarthing_scripts/sprint/validator.py +13 -3
  239. package/pennyfarthing_scripts/sprint/work.py +43 -3
  240. package/pennyfarthing_scripts/sprint/yaml_io.py +124 -15
  241. package/pennyfarthing_scripts/tests/__pycache__/test_codemarkers.cpython-314-pytest-9.0.2.pyc +0 -0
  242. package/pennyfarthing_scripts/tests/__pycache__/test_healthscore.cpython-314-pytest-9.0.2.pyc +0 -0
  243. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
  244. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
  245. package/pennyfarthing_scripts/tests/__pycache__/test_story_add.cpython-314-pytest-9.0.2.pyc +0 -0
  246. package/pennyfarthing_scripts/tests/__pycache__/test_story_update.cpython-314-pytest-9.0.2.pyc +0 -0
  247. package/pennyfarthing_scripts/tests/__pycache__/test_validate_cmd.cpython-314-pytest-9.0.2.pyc +0 -0
  248. package/pennyfarthing_scripts/tests/__pycache__/test_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
  249. package/pennyfarthing_scripts/tests/test_codemarkers.py +682 -0
  250. package/pennyfarthing_scripts/tests/test_healthscore.py +524 -0
  251. package/pennyfarthing_scripts/tests/test_sprint_package.py +166 -0
  252. package/pennyfarthing_scripts/tests/test_yaml_io.py +117 -0
  253. package/pennyfarthing_scripts/theme/__init__.py +5 -0
  254. package/pennyfarthing_scripts/theme/__main__.py +6 -0
  255. package/pennyfarthing_scripts/theme/__pycache__/__init__.cpython-314.pyc +0 -0
  256. package/pennyfarthing_scripts/theme/__pycache__/cli.cpython-314.pyc +0 -0
  257. package/pennyfarthing_scripts/theme/cli.py +286 -0
  258. package/scripts/README.md +53 -0
  259. package/scripts/postinstall.cjs +34 -0
  260. package/pennyfarthing-dist/agents/workflow-status-check.md +0 -96
  261. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +0 -133
  262. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +0 -91
  263. package/pennyfarthing-dist/scripts/sprint/check-story.sh +0 -158
  264. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +0 -52
  265. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +0 -63
  266. package/pennyfarthing-dist/scripts/sprint/list-future.sh +0 -145
  267. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +0 -110
  268. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +0 -148
  269. package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +0 -415
  270. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +0 -33
  271. package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +0 -230
  272. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +0 -134
  273. package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +0 -139
  274. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +0 -101
  275. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +0 -97
  276. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +0 -164
  277. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +0 -23
  278. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +0 -116
  279. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +0 -164
  280. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +0 -39
  281. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +0 -147
  282. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +0 -23
@@ -4,14 +4,14 @@ description: |
4
4
  Sprint status, backlog, and story management for Pennyfarthing. Use when checking current
5
5
  sprint status, finding available stories, reviewing backlog, or understanding story context
6
6
  and history.
7
- IMPORTANT: Always use the provided scripts - never manually edit sprint YAML.
8
- args: "[status|backlog|work|archive|new|promote]"
7
+ IMPORTANT: Always use `pf sprint` CLI commands - never manually edit sprint YAML.
8
+ args: "[status|backlog|work|archive|new|story|epic|standalone]"
9
9
  ---
10
10
 
11
11
  # /sprint - Sprint Management
12
12
 
13
13
  <critical>
14
- Never manually edit `sprint/current-sprint.yaml`. Use the scripts below for deterministic, correct YAML formatting.
14
+ Never manually edit `sprint/current-sprint.yaml`. Use `pf sprint` CLI commands for deterministic, correct YAML formatting.
15
15
  </critical>
16
16
 
17
17
  ## Commands
@@ -21,7 +21,7 @@ Never manually edit `sprint/current-sprint.yaml`. Use the scripts below for dete
21
21
  Show current sprint status with story counts and points.
22
22
 
23
23
  <run>
24
- .pennyfarthing/scripts/sprint/sprint-status.sh [filter]
24
+ pf sprint status [filter]
25
25
  </run>
26
26
 
27
27
  <args>
@@ -31,10 +31,10 @@ Show current sprint status with story counts and points.
31
31
  </args>
32
32
 
33
33
  <example>
34
- .pennyfarthing/scripts/sprint/sprint-status.sh # All stories
35
- .pennyfarthing/scripts/sprint/sprint-status.sh todo # Backlog only
36
- .pennyfarthing/scripts/sprint/sprint-status.sh in-progress # WIP only
37
- .pennyfarthing/scripts/sprint/sprint-status.sh done # Completed only
34
+ pf sprint status # All stories
35
+ pf sprint status todo # Backlog only
36
+ pf sprint status in-progress # WIP only
37
+ pf sprint status done # Completed only
38
38
  </example>
39
39
 
40
40
  <output>
@@ -49,7 +49,7 @@ When filtered, only shows epics with matching stories.
49
49
  Show available stories grouped by epic with Jira context.
50
50
 
51
51
  <run>
52
- .pennyfarthing/scripts/sprint/available-stories.sh
52
+ pf sprint backlog
53
53
  </run>
54
54
 
55
55
  <output>
@@ -82,7 +82,7 @@ Shows backlog, user selects story, then proceeds to setup.
82
82
  #### With story ID: Direct start
83
83
 
84
84
  <run>
85
- .pennyfarthing/scripts/sprint/check-story.sh <story-id>
85
+ pf sprint check <story-id>
86
86
  </run>
87
87
 
88
88
  <args>
@@ -97,14 +97,14 @@ Shows backlog, user selects story, then proceeds to setup.
97
97
  </output>
98
98
 
99
99
  <example>
100
- .pennyfarthing/scripts/sprint/check-story.sh MSSCI-12038
100
+ pf sprint check MSSCI-12038
101
101
  # Returns: {"type": "story", "available": true, "title": "...", ...}
102
102
  </example>
103
103
 
104
104
  #### With epic ID: Start first available story in epic
105
105
 
106
106
  <run>
107
- .pennyfarthing/scripts/sprint/check-story.sh <epic-id>
107
+ pf sprint check <epic-id>
108
108
  </run>
109
109
 
110
110
  <output>
@@ -113,14 +113,14 @@ Action: Automatically start work on `first_story` if available.
113
113
  </output>
114
114
 
115
115
  <example>
116
- .pennyfarthing/scripts/sprint/check-story.sh MSSCI-11952
116
+ pf sprint check MSSCI-11952
117
117
  # Returns: {"type": "epic", "first_story": {"id": "MSSCI-11954", ...}, ...}
118
118
  </example>
119
119
 
120
120
  #### With `next`: Auto-select highest priority story
121
121
 
122
122
  <run>
123
- .pennyfarthing/scripts/sprint/check-story.sh next
123
+ pf sprint check next
124
124
  </run>
125
125
 
126
126
  <output>
@@ -129,7 +129,7 @@ Action: Automatically start work on returned story.
129
129
  </output>
130
130
 
131
131
  <example>
132
- .pennyfarthing/scripts/sprint/check-story.sh next
132
+ pf sprint check next
133
133
  # Returns: {"type": "next", "story": {"id": "MSSCI-11950", "priority": "P1", ...}}
134
134
  </example>
135
135
 
@@ -140,7 +140,7 @@ Action: Automatically start work on returned story.
140
140
  Archive a completed story to the sprint archive file.
141
141
 
142
142
  <run>
143
- .pennyfarthing/scripts/sprint/archive-story.sh <story-id> [pr-number] [--apply]
143
+ pf sprint archive <story-id> [pr-number] [--apply]
144
144
  </run>
145
145
 
146
146
  <args>
@@ -153,10 +153,10 @@ Archive a completed story to the sprint archive file.
153
153
 
154
154
  <example>
155
155
  # Archive only (manual removal needed)
156
- .pennyfarthing/scripts/sprint/archive-story.sh 35-2 368
156
+ pf sprint archive 35-2 368
157
157
 
158
158
  # Archive and remove atomically (recommended)
159
- .pennyfarthing/scripts/sprint/archive-story.sh 35-2 368 --apply
159
+ pf sprint archive 35-2 368 --apply
160
160
  </example>
161
161
 
162
162
  <output>
@@ -173,7 +173,7 @@ Archive a completed story to the sprint archive file.
173
173
  Initialize a new sprint from template.
174
174
 
175
175
  <run>
176
- .pennyfarthing/scripts/sprint/new-sprint.sh <yyww> <jira-id> <start> <end> "<goal>"
176
+ pf sprint new <yyww> <jira-id> <start> <end> "<goal>"
177
177
  </run>
178
178
 
179
179
  <args>
@@ -187,7 +187,7 @@ Initialize a new sprint from template.
187
187
  </args>
188
188
 
189
189
  <example>
190
- .pennyfarthing/scripts/sprint/new-sprint.sh 2605 277 2026-02-03 2026-02-16 "Polish and stabilization"
190
+ pf sprint new 2605 277 2026-02-03 2026-02-16 "Polish and stabilization"
191
191
  </example>
192
192
 
193
193
  <output>
@@ -205,23 +205,23 @@ Warning: Prompts for confirmation if current sprint is still active.
205
205
  Show future work initiatives and epics available for promotion.
206
206
 
207
207
  <run>
208
- .pennyfarthing/scripts/sprint/list-future.sh [--epic EPIC_ID]
208
+ pf sprint future [EPIC_ID]
209
209
  </run>
210
210
 
211
211
  <args>
212
212
  | Arg | Required | Description |
213
213
  |-----|----------|-------------|
214
- | `--epic` | No | Show detailed stories for a specific epic |
214
+ | `EPIC_ID` | No | Show detailed stories for a specific epic |
215
215
  </args>
216
216
 
217
217
  <output>
218
- Without `--epic`:
218
+ Without epic ID:
219
219
  - Initiatives grouped by status (READY, BLOCKED, planning)
220
220
  - Epics with points, priority, and status
221
221
  - Summary of total epics and points
222
222
  - Promotion instructions
223
223
 
224
- With `--epic`:
224
+ With epic ID:
225
225
  - Full epic details including description
226
226
  - All stories with points and status
227
227
  - Promotion command for that epic
@@ -229,20 +229,20 @@ With `--epic`:
229
229
 
230
230
  <example>
231
231
  # Show all future work
232
- .pennyfarthing/scripts/sprint/list-future.sh
232
+ pf sprint future
233
233
 
234
234
  # Show details for specific epic
235
- .pennyfarthing/scripts/sprint/list-future.sh --epic epic-55
235
+ pf sprint future epic-55
236
236
  </example>
237
237
 
238
238
  ---
239
239
 
240
- ### `/sprint promote <epic-id>`
240
+ ### `/sprint promote <epic-id>` (deprecated — use `/sprint epic promote`)
241
241
 
242
242
  Move an epic from `future.yaml` to `current-sprint.yaml`.
243
243
 
244
244
  <run>
245
- .pennyfarthing/scripts/sprint/promote-epic.sh <epic-id>
245
+ pf sprint epic promote <epic-id>
246
246
  </run>
247
247
 
248
248
  <args>
@@ -251,17 +251,6 @@ Move an epic from `future.yaml` to `current-sprint.yaml`.
251
251
  | `epic-id` | Yes | Local epic ID (e.g., `epic-41`) |
252
252
  </args>
253
253
 
254
- <example>
255
- .pennyfarthing/scripts/sprint/promote-epic.sh epic-41
256
- </example>
257
-
258
- <output>
259
- 1. Finds epic in `sprint/planning.yaml`
260
- 2. Extracts epic metadata and all stories
261
- 3. Appends to `sprint/current-sprint.yaml` epics section
262
- 4. Outputs yq command to remove from planning.yaml
263
- </output>
264
-
265
254
  <when>
266
255
  Next steps after promote:
267
256
  - Review appended YAML in current-sprint.yaml
@@ -271,14 +260,328 @@ Next steps after promote:
271
260
 
272
261
  ---
273
262
 
263
+ ### `/sprint story show <story-id> [--json]`
264
+
265
+ Show details for a specific story.
266
+
267
+ <run>
268
+ pf sprint story show <story-id> [--json]
269
+ </run>
270
+
271
+ <args>
272
+ | Arg | Required | Description |
273
+ |-----|----------|-------------|
274
+ | `story-id` | Yes | Story ID (e.g., `MSSCI-12664` or `67-1`) |
275
+ | `--json` | No | Output as JSON |
276
+ </args>
277
+
278
+ ---
279
+
280
+ ### `/sprint story add <epic-id> "<title>" <points> [options]`
281
+
282
+ Add a new story to an epic in sprint YAML.
283
+
284
+ <run>
285
+ pf sprint story add <epic-id> "<title>" <points> [options]
286
+ </run>
287
+
288
+ <args>
289
+ | Arg | Required | Description |
290
+ |-----|----------|-------------|
291
+ | `epic-id` | Yes | Parent epic (e.g., `epic-76`) |
292
+ | `title` | Yes | Story title (quoted) |
293
+ | `points` | Yes | Story points (1, 2, 3, 5, 8) |
294
+ | `--type` | No | Story type: feature, bug, chore, refactor (default: feature) |
295
+ | `--priority` | No | Priority: P0, P1, P2, P3 (default: P1) |
296
+ | `--workflow` | No | Workflow: tdd, trivial, bdd (default: tdd) |
297
+ | `--jira` | No | Jira issue key |
298
+ </args>
299
+
300
+ <example>
301
+ pf sprint story add epic-76 "Add error handling" 3
302
+ pf sprint story add epic-76 "Fix null pointer" 2 --type bug
303
+ </example>
304
+
305
+ ---
306
+
307
+ ### `/sprint story update <story-id> [options]`
308
+
309
+ Update fields on a story.
310
+
311
+ <run>
312
+ pf sprint story update <story-id> [options]
313
+ </run>
314
+
315
+ <args>
316
+ | Arg | Required | Description |
317
+ |-----|----------|-------------|
318
+ | `story-id` | Yes | Story ID (e.g., `76-4`) |
319
+ | `--status` | No | New status (backlog, ready, in_progress, done, canceled) |
320
+ | `--points` | No | New points value |
321
+ | `--priority` | No | New priority |
322
+ | `--assigned-to` | No | Assignee |
323
+ | `--dry-run` | No | Preview changes without writing |
324
+ </args>
325
+
326
+ ---
327
+
328
+ ### `/sprint story size [points]`
329
+
330
+ Display story sizing guidelines.
331
+
332
+ <run>
333
+ pf sprint story size [points]
334
+ </run>
335
+
336
+ <args>
337
+ | Arg | Required | Description |
338
+ |-----|----------|-------------|
339
+ | `points` | No | Specific point value to show guidance for |
340
+ </args>
341
+
342
+ <output>
343
+ Sizing characteristics, workflow suggestions, examples.
344
+ </output>
345
+
346
+ ---
347
+
348
+ ### `/sprint story template [type]`
349
+
350
+ Display story templates by type.
351
+
352
+ <run>
353
+ pf sprint story template [type]
354
+ </run>
355
+
356
+ <args>
357
+ | Arg | Required | Description |
358
+ |-----|----------|-------------|
359
+ | `type` | No | Template type: feature, bug, refactor, chore |
360
+ </args>
361
+
362
+ <output>
363
+ YAML template with acceptance criteria patterns.
364
+ </output>
365
+
366
+ ---
367
+
368
+ ### `/sprint story finish <story-id> [--dry-run]`
369
+
370
+ Complete a story: archive session, merge PR, transition Jira, update sprint YAML.
371
+
372
+ <critical>
373
+ Prerequisites before running:
374
+ - Session file exists at `.session/{story-id}-session.md`
375
+ - PR is approved and mergeable
376
+ - Reviewer has approved (phase: finish in session)
377
+ </critical>
378
+
379
+ <run>
380
+ pf sprint story finish <story-id> [--dry-run]
381
+ </run>
382
+
383
+ <args>
384
+ | Arg | Required | Description |
385
+ |-----|----------|-------------|
386
+ | `story-id` | Yes | Story ID (e.g., `MSSCI-12052`) |
387
+ | `--dry-run` | No | Show what would be done without executing |
388
+ </args>
389
+
390
+ ---
391
+
392
+ ### `/sprint story claim <story-id> [--claim|--unclaim]`
393
+
394
+ Claim or unclaim a story in Jira.
395
+
396
+ <run>
397
+ pf sprint story claim <story-id>
398
+ </run>
399
+
400
+ ---
401
+
402
+ ### `/sprint epic add <epic-id> <title> [options]`
403
+
404
+ Add a new epic to the current sprint.
405
+
406
+ <run>
407
+ pf sprint epic add <epic-id> <title> [options]
408
+ </run>
409
+
410
+ <args>
411
+ | Arg | Required | Description |
412
+ |-----|----------|-------------|
413
+ | `epic-id` | Yes | Epic ID (e.g., `epic-85`) |
414
+ | `title` | Yes | Epic title |
415
+ | `--priority` | No | Priority: P0, P1, P2, P3 (default: P1) |
416
+ | `--jira` | No | Jira epic key |
417
+ | `--description` | No | Epic description |
418
+ </args>
419
+
420
+ ---
421
+
422
+ ### `/sprint epic promote <epic-id>`
423
+
424
+ Move an epic from `future.yaml` to `current-sprint.yaml`.
425
+
426
+ <run>
427
+ pf sprint epic promote <epic-id>
428
+ </run>
429
+
430
+ <args>
431
+ | Arg | Required | Description |
432
+ |-----|----------|-------------|
433
+ | `epic-id` | Yes | Local epic ID (e.g., `epic-41`) |
434
+ </args>
435
+
436
+ ---
437
+
438
+ ### `/sprint epic archive [epic-id] [--dry-run] [--jira]`
439
+
440
+ Archive completed epics.
441
+
442
+ <run>
443
+ pf sprint epic archive [epic-id] [--dry-run] [--jira]
444
+ </run>
445
+
446
+ ---
447
+
448
+ ### `/sprint epic import <file> [initiative] [--marker] [--dry-run]`
449
+
450
+ Import BMAD epics-and-stories output to future.yaml.
451
+
452
+ <run>
453
+ pf sprint epic import <file> [initiative] [--marker TAG] [--dry-run]
454
+ </run>
455
+
456
+ ---
457
+
458
+ ### `/sprint epic show <epic-id> [--json]`
459
+
460
+ Show details for a specific epic. Searches both current sprint and future initiative shards.
461
+
462
+ <run>
463
+ pf sprint epic show <epic-id> [--json]
464
+ </run>
465
+
466
+ <args>
467
+ | Arg | Required | Description |
468
+ |-----|----------|-------------|
469
+ | `epic-id` | Yes | Epic ID (e.g., `epic-42` or `MSSCI-14298`) |
470
+ | `--json` | No | Output as JSON |
471
+ </args>
472
+
473
+ ---
474
+
475
+ ### `/sprint epic cancel <epic-id> [--jira] [--dry-run]`
476
+
477
+ Cancel an epic and all its stories. Searches both current sprint and future initiative shards.
478
+
479
+ <run>
480
+ pf sprint epic cancel <epic-id> [--jira] [--dry-run]
481
+ </run>
482
+
483
+ <args>
484
+ | Arg | Required | Description |
485
+ |-----|----------|-------------|
486
+ | `epic-id` | Yes | Epic ID (e.g., `epic-42` or `MSSCI-14298`) |
487
+ | `--jira` | No | Also cancel the epic in Jira |
488
+ | `--dry-run` | No | Show what would be done without making changes |
489
+ </args>
490
+
491
+ ---
492
+
493
+ ### `/sprint epic remove <epic-id> [--dry-run]`
494
+
495
+ Remove an epic from future.yaml.
496
+
497
+ <run>
498
+ pf sprint epic remove <epic-id> [--dry-run]
499
+ </run>
500
+
501
+ ---
502
+
503
+ ### `/sprint initiative show <name> [--json]`
504
+
505
+ Show details for a specific initiative including its epics and stories.
506
+
507
+ <run>
508
+ pf sprint initiative show <name> [--json]
509
+ </run>
510
+
511
+ <args>
512
+ | Arg | Required | Description |
513
+ |-----|----------|-------------|
514
+ | `name` | Yes | Initiative slug (e.g., `benchmark-reliability`, `technical-debt`) |
515
+ | `--json` | No | Output as JSON |
516
+ </args>
517
+
518
+ ---
519
+
520
+ ### `/sprint initiative cancel <name> [--jira] [--dry-run]`
521
+
522
+ Cancel an initiative and all its epics/stories.
523
+
524
+ <run>
525
+ pf sprint initiative cancel <name> [--jira] [--dry-run]
526
+ </run>
527
+
528
+ <args>
529
+ | Arg | Required | Description |
530
+ |-----|----------|-------------|
531
+ | `name` | Yes | Initiative slug (e.g., `benchmark-reliability`, `technical-debt`) |
532
+ | `--jira` | No | Also cancel epics in Jira |
533
+ | `--dry-run` | No | Show what would be done without making changes |
534
+ </args>
535
+
536
+ ---
537
+
538
+ ### `/sprint standalone ["title"] [points]`
539
+
540
+ Wrap current changes into a standalone Jira story, branch, PR, and merge.
541
+
542
+ This is an agent-executed workflow. Use `/standalone` to run it interactively.
543
+
544
+ ---
545
+
546
+ ## Sizing Quick Reference
547
+
548
+ | Points | Scale | Complexity | Examples |
549
+ |--------|-------|------------|----------|
550
+ | 1-2 | Trivial | Single file, minimal testing | Config, typo, simple fix |
551
+ | 3 | Small | Few files, some testing | Validation, single component |
552
+ | 5 | Medium | Multiple files, comprehensive testing | New page, API endpoint |
553
+ | 8 | Large | Significant scope, extensive testing | Integration, major refactor |
554
+ | 13+ | **SPLIT** | Too complex for single story | Break into smaller stories |
555
+
556
+ ## Acceptance Criteria Patterns
557
+
558
+ ### Good AC (SMART)
559
+
560
+ <example>
561
+ - "Admin users can access /admin/settings without 403"
562
+ - "API returns 204 No Content on successful DELETE"
563
+ - "Tests cover admin, manager, analyst roles"
564
+ </example>
565
+
566
+ ### Bad AC (Vague)
567
+
568
+ <critical>
569
+ Avoid these patterns:
570
+ - "Feature works correctly"
571
+ - "No bugs"
572
+ - "Good performance"
573
+ </critical>
574
+
575
+ ---
576
+
274
577
  ## Read Operations
275
578
 
276
- These scripts read sprint YAML without modifying it. Use these instead of direct `yq` queries.
579
+ These commands read sprint YAML without modifying it. Use these instead of direct `yq` queries.
277
580
 
278
581
  ### Get Story Field
279
582
 
280
583
  <run>
281
- .pennyfarthing/scripts/sprint/get-story-field.sh <story-id> <field>
584
+ pf sprint story field <story-id> <field>
282
585
  </run>
283
586
 
284
587
  <args>
@@ -289,9 +592,9 @@ These scripts read sprint YAML without modifying it. Use these instead of direct
289
592
  </args>
290
593
 
291
594
  <example>
292
- .pennyfarthing/scripts/sprint/get-story-field.sh 35-2 workflow # Returns: tdd
293
- .pennyfarthing/scripts/sprint/get-story-field.sh 35-2 jira # Returns: MSSCI-12345
294
- .pennyfarthing/scripts/sprint/get-story-field.sh 35-2 status # Returns: in_progress
595
+ pf sprint story field 35-2 workflow # Returns: tdd
596
+ pf sprint story field 35-2 jira # Returns: MSSCI-12345
597
+ pf sprint story field 35-2 status # Returns: in_progress
295
598
  </example>
296
599
 
297
600
  <output>
@@ -303,7 +606,7 @@ Field value or "null" if not found. Common fields: `workflow`, `status`, `jira`,
303
606
  ### Get Epic Field
304
607
 
305
608
  <run>
306
- .pennyfarthing/scripts/sprint/get-epic-field.sh <epic-id> <field>
609
+ pf sprint epic field <epic-id> <field>
307
610
  </run>
308
611
 
309
612
  <args>
@@ -314,8 +617,8 @@ Field value or "null" if not found. Common fields: `workflow`, `status`, `jira`,
314
617
  </args>
315
618
 
316
619
  <example>
317
- .pennyfarthing/scripts/sprint/get-epic-field.sh epic-35 jira # Returns: MSSCI-11234
318
- .pennyfarthing/scripts/sprint/get-epic-field.sh 35 title # Returns: Epic title
620
+ pf sprint epic field epic-35 jira # Returns: MSSCI-11234
621
+ pf sprint epic field 35 title # Returns: Epic title
319
622
  </example>
320
623
 
321
624
  <output>
@@ -354,7 +657,7 @@ d="$PWD"; while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$
354
657
  ### Story Setup Steps
355
658
 
356
659
  <output>
357
- 1. **Check story** via `check-story.sh` (if ID provided)
660
+ 1. **Check story** via `pf sprint check` (if ID provided)
358
661
  2. **Write context** to `.session/context-story-{id}.md`
359
662
  3. **Setup story** via `sm-setup` subagent (claims Jira, creates branch)
360
663
  4. **Handoff** to next agent based on workflow:
@@ -426,9 +729,7 @@ The `in_sprint` field tracks Jira sprint membership:
426
729
 
427
730
  ## Dependencies
428
731
 
429
- <run>
430
- brew install yq
431
- </run>
732
+ All sprint commands use the `pf` Python CLI. No external dependencies like `yq` are required.
432
733
 
433
734
  <when>
434
735
  For Jira integration, see `/jira` skill prerequisites.
@@ -436,23 +737,41 @@ For Jira integration, see `/jira` skill prerequisites.
436
737
 
437
738
  ## Quick Reference
438
739
 
439
- | Command | Script/Action |
440
- |---------|---------------|
441
- | `/sprint` | `sprint-status.sh` |
442
- | `/sprint status` | `sprint-status.sh` |
443
- | `/sprint status todo` | `sprint-status.sh todo` |
444
- | `/sprint status in-progress` | `sprint-status.sh in-progress` |
445
- | `/sprint status done` | `sprint-status.sh done` |
446
- | `/sprint backlog` | `available-stories.sh` |
740
+ | Command | CLI |
741
+ |---------|-----|
742
+ | `/sprint` | `pf sprint status` |
743
+ | `/sprint status` | `pf sprint status` |
744
+ | `/sprint status todo` | `pf sprint status todo` |
745
+ | `/sprint status in-progress` | `pf sprint status in-progress` |
746
+ | `/sprint status done` | `pf sprint status done` |
747
+ | `/sprint backlog` | `pf sprint backlog` |
447
748
  | `/sprint work` | Interactive story selection → SM flow |
448
- | `/sprint work MSSCI-XXX` | `check-story.sh` → direct start |
449
- | `/sprint work EPIC-ID` | `check-story.sh` → start first story |
450
- | `/sprint work next` | `check-story.sh next` → start highest priority |
451
- | `/sprint archive MSSCI-XXX` | `archive-story.sh MSSCI-XXX` |
452
- | `/sprint new 2605 277 ...` | `new-sprint.sh 2605 277 ...` |
453
- | `/sprint future` | `list-future.sh` |
454
- | `/sprint future --epic X` | `list-future.sh --epic X` |
455
- | `/sprint promote epic-41` | `promote-epic.sh epic-41` |
749
+ | `/sprint work MSSCI-XXX` | `pf sprint check MSSCI-XXX` → direct start |
750
+ | `/sprint work EPIC-ID` | `pf sprint check EPIC-ID` → start first story |
751
+ | `/sprint work next` | `pf sprint check next` → start highest priority |
752
+ | `/sprint archive MSSCI-XXX` | `pf sprint archive MSSCI-XXX` |
753
+ | `/sprint new 2605 277 ...` | `pf sprint new 2605 277 ...` |
754
+ | `/sprint future` | `pf sprint future` |
755
+ | `/sprint future epic-55` | `pf sprint future epic-55` |
756
+ | `/sprint story show ID` | `pf sprint story show ID` |
757
+ | `/sprint story add ...` | `pf sprint story add ...` |
758
+ | `/sprint story update ID` | `pf sprint story update ID` |
759
+ | `/sprint story field ID FIELD` | `pf sprint story field ID FIELD` |
760
+ | `/sprint story size` | `pf sprint story size` |
761
+ | `/sprint story template` | `pf sprint story template` |
762
+ | `/sprint story finish ID` | `pf sprint story finish ID` |
763
+ | `/sprint story claim ID` | `pf sprint story claim ID` |
764
+ | `/sprint epic show ID` | `pf sprint epic show ID` |
765
+ | `/sprint epic field ID FIELD` | `pf sprint epic field ID FIELD` |
766
+ | `/sprint epic add ...` | `pf sprint epic add ...` |
767
+ | `/sprint epic promote ID` | `pf sprint epic promote ID` |
768
+ | `/sprint epic archive` | `pf sprint epic archive` |
769
+ | `/sprint epic cancel ID` | `pf sprint epic cancel ID` |
770
+ | `/sprint epic import FILE` | `pf sprint epic import FILE` |
771
+ | `/sprint epic remove ID` | `pf sprint epic remove ID` |
772
+ | `/sprint initiative show NAME` | `pf sprint initiative show NAME` |
773
+ | `/sprint initiative cancel NAME` | `pf sprint initiative cancel NAME` |
774
+ | `/sprint standalone` | Standalone story workflow |
456
775
  | `/new-work` | Alias for `/sprint work` |
457
776
  | `/new-work MSSCI-XXX` | Alias for `/sprint work MSSCI-XXX` |
458
777
  | `/new-work next` | Alias for `/sprint work next` |
@@ -462,4 +781,3 @@ For Jira integration, see `/jira` skill prerequisites.
462
781
  | Skill | Purpose |
463
782
  |-------|---------|
464
783
  | `/jira` | Jira operations (create, sync, reconcile, claim) |
465
- | `/story` | Story creation, sizing, finish workflow |