@pennyfarthing/core 10.0.0 → 10.0.2

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 (493) hide show
  1. package/LICENSE +14 -0
  2. package/package.json +22 -12
  3. package/pennyfarthing-dist/agents/README.md +348 -0
  4. package/pennyfarthing-dist/agents/architect.md +180 -0
  5. package/pennyfarthing-dist/agents/dev.md +169 -0
  6. package/pennyfarthing-dist/agents/devops.md +203 -0
  7. package/pennyfarthing-dist/agents/handoff.md +235 -0
  8. package/pennyfarthing-dist/agents/orchestrator.md +182 -0
  9. package/pennyfarthing-dist/agents/pm.md +152 -0
  10. package/pennyfarthing-dist/agents/reviewer-preflight.md +129 -0
  11. package/pennyfarthing-dist/agents/reviewer.md +197 -0
  12. package/pennyfarthing-dist/agents/sm-file-summary.md +79 -0
  13. package/pennyfarthing-dist/agents/sm-finish.md +82 -0
  14. package/pennyfarthing-dist/agents/sm-handoff.md +129 -0
  15. package/pennyfarthing-dist/agents/sm-setup.md +251 -0
  16. package/pennyfarthing-dist/agents/sm.md +298 -0
  17. package/pennyfarthing-dist/agents/tea.md +161 -0
  18. package/pennyfarthing-dist/agents/tech-writer.md +226 -0
  19. package/pennyfarthing-dist/agents/testing-runner.md +184 -0
  20. package/pennyfarthing-dist/agents/ux-designer.md +236 -0
  21. package/pennyfarthing-dist/agents/workflow-status-check.md +96 -0
  22. package/pennyfarthing-dist/commands/architect.md +9 -0
  23. package/pennyfarthing-dist/commands/benchmark-control.md +69 -0
  24. package/pennyfarthing-dist/commands/benchmark.md +485 -0
  25. package/pennyfarthing-dist/commands/brainstorming.md +91 -0
  26. package/pennyfarthing-dist/commands/check.md +156 -0
  27. package/pennyfarthing-dist/commands/chore.md +218 -0
  28. package/pennyfarthing-dist/commands/close-epic.md +139 -0
  29. package/pennyfarthing-dist/commands/continue-session.md +218 -0
  30. package/pennyfarthing-dist/commands/create-branches-from-story.md +358 -0
  31. package/pennyfarthing-dist/commands/create-theme.md +29 -0
  32. package/pennyfarthing-dist/commands/dev.md +9 -0
  33. package/pennyfarthing-dist/commands/devops.md +9 -0
  34. package/pennyfarthing-dist/commands/fix-blocker.md +22 -0
  35. package/pennyfarthing-dist/commands/git-cleanup.md +57 -0
  36. package/pennyfarthing-dist/commands/health-check.md +143 -0
  37. package/pennyfarthing-dist/commands/help.md +264 -0
  38. package/pennyfarthing-dist/commands/job-fair.md +102 -0
  39. package/pennyfarthing-dist/commands/list-themes.md +21 -0
  40. package/pennyfarthing-dist/commands/new-work.md +23 -0
  41. package/pennyfarthing-dist/commands/orchestrator.md +9 -0
  42. package/pennyfarthing-dist/commands/parallel-work.md +73 -0
  43. package/pennyfarthing-dist/commands/party-mode.md +77 -0
  44. package/pennyfarthing-dist/commands/patch.md +210 -0
  45. package/pennyfarthing-dist/commands/permissions.md +193 -0
  46. package/pennyfarthing-dist/commands/pm.md +9 -0
  47. package/pennyfarthing-dist/commands/prime.md +136 -0
  48. package/pennyfarthing-dist/commands/release.md +74 -0
  49. package/pennyfarthing-dist/commands/repo-status.md +49 -0
  50. package/pennyfarthing-dist/commands/retro.md +200 -0
  51. package/pennyfarthing-dist/commands/reviewer.md +9 -0
  52. package/pennyfarthing-dist/commands/run-ci.md +116 -0
  53. package/pennyfarthing-dist/commands/set-theme.md +56 -0
  54. package/pennyfarthing-dist/commands/setup.md +65 -0
  55. package/pennyfarthing-dist/commands/show-theme.md +21 -0
  56. package/pennyfarthing-dist/commands/sm.md +9 -0
  57. package/pennyfarthing-dist/commands/solo.md +447 -0
  58. package/pennyfarthing-dist/commands/sprint-planning.md +109 -0
  59. package/pennyfarthing-dist/commands/sprint.md +142 -0
  60. package/pennyfarthing-dist/commands/standalone.md +194 -0
  61. package/pennyfarthing-dist/commands/start-epic.md +168 -0
  62. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +184 -0
  63. package/pennyfarthing-dist/commands/sync-work-with-sprint.md +373 -0
  64. package/pennyfarthing-dist/commands/tea.md +9 -0
  65. package/pennyfarthing-dist/commands/tech-writer.md +9 -0
  66. package/pennyfarthing-dist/commands/theme-maker.md +676 -0
  67. package/pennyfarthing-dist/commands/update-domain-docs.md +83 -0
  68. package/pennyfarthing-dist/commands/ux-designer.md +9 -0
  69. package/pennyfarthing-dist/commands/work.md +25 -0
  70. package/pennyfarthing-dist/commands/workflow.md +21 -0
  71. package/pennyfarthing-dist/guides/agent-behavior.md +92 -0
  72. package/pennyfarthing-dist/guides/agent-coordination.md +475 -0
  73. package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +432 -0
  74. package/pennyfarthing-dist/guides/agent-template-strategic.md +148 -0
  75. package/pennyfarthing-dist/guides/agent-template-tactical.md +162 -0
  76. package/pennyfarthing-dist/guides/hooks.md +230 -0
  77. package/pennyfarthing-dist/guides/measurement-framework.md +210 -0
  78. package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +766 -0
  79. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +574 -0
  80. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +488 -0
  81. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +402 -0
  82. package/pennyfarthing-dist/guides/permission-protocol.md +188 -0
  83. package/pennyfarthing-dist/guides/persona-loading.md +46 -0
  84. package/pennyfarthing-dist/guides/prompt-patterns.md +338 -0
  85. package/pennyfarthing-dist/guides/scale-levels.md +114 -0
  86. package/pennyfarthing-dist/guides/session-artifacts.md +193 -0
  87. package/pennyfarthing-dist/guides/session-schema.md +346 -0
  88. package/pennyfarthing-dist/guides/skill-schema.md +412 -0
  89. package/pennyfarthing-dist/guides/workflow-schema.md +257 -0
  90. package/pennyfarthing-dist/guides/workflow-step-schema.md +512 -0
  91. package/pennyfarthing-dist/guides/worktree-mode.md +113 -0
  92. package/pennyfarthing-dist/guides/xml-tags.md +627 -0
  93. package/pennyfarthing-dist/output-styles/teaching.md +33 -0
  94. package/pennyfarthing-dist/output-styles/terse.md +20 -0
  95. package/pennyfarthing-dist/output-styles/verbose.md +28 -0
  96. package/pennyfarthing-dist/personas/themes/a-team.yaml +331 -0
  97. package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +324 -0
  98. package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +282 -0
  99. package/pennyfarthing-dist/personas/themes/blade-runner.yaml +289 -0
  100. package/pennyfarthing-dist/personas/themes/catch-22.yaml +304 -0
  101. package/pennyfarthing-dist/personas/themes/control.yaml +201 -0
  102. package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +315 -0
  103. package/pennyfarthing-dist/personas/themes/discworld.yaml +334 -0
  104. package/pennyfarthing-dist/personas/themes/doctor-who.yaml +284 -0
  105. package/pennyfarthing-dist/personas/themes/dune.yaml +301 -0
  106. package/pennyfarthing-dist/personas/themes/firefly.yaml +320 -0
  107. package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +284 -0
  108. package/pennyfarthing-dist/personas/themes/harry-potter.yaml +316 -0
  109. package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +323 -0
  110. package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +326 -0
  111. package/pennyfarthing-dist/personas/themes/mad-max.yaml +349 -0
  112. package/pennyfarthing-dist/personas/themes/mash.yaml +329 -0
  113. package/pennyfarthing-dist/personas/themes/princess-bride.yaml +344 -0
  114. package/pennyfarthing-dist/personas/themes/sandman.yaml +282 -0
  115. package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +358 -0
  116. package/pennyfarthing-dist/personas/themes/star-wars.yaml +297 -0
  117. package/pennyfarthing-dist/personas/themes/the-expanse.yaml +337 -0
  118. package/pennyfarthing-dist/personas/themes/the-matrix.yaml +342 -0
  119. package/pennyfarthing-dist/personas/themes/watchmen.yaml +285 -0
  120. package/pennyfarthing-dist/personas/themes/west-wing.yaml +285 -0
  121. package/pennyfarthing-dist/personas/themes/x-files.yaml +296 -0
  122. package/pennyfarthing-dist/scripts/README.md +87 -0
  123. package/pennyfarthing-dist/scripts/core/README.md +25 -0
  124. package/pennyfarthing-dist/scripts/core/agent-session.sh +390 -0
  125. package/pennyfarthing-dist/scripts/core/check-context.sh +194 -0
  126. package/pennyfarthing-dist/scripts/core/handoff-marker.sh +112 -0
  127. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +90 -0
  128. package/pennyfarthing-dist/scripts/core/prime.sh +30 -0
  129. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +21 -0
  130. package/pennyfarthing-dist/scripts/git/README.md +25 -0
  131. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +267 -0
  132. package/pennyfarthing-dist/scripts/git/git-status-all.sh +152 -0
  133. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +79 -0
  134. package/pennyfarthing-dist/scripts/git/release.sh +246 -0
  135. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +497 -0
  136. package/pennyfarthing-dist/scripts/health/drift-detection.sh +156 -0
  137. package/pennyfarthing-dist/scripts/hooks/README.md +32 -0
  138. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  139. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +106 -0
  140. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +95 -0
  141. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +65 -0
  142. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +35 -0
  143. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +150 -0
  144. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +190 -0
  145. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +71 -0
  146. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +42 -0
  147. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +20 -0
  148. package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +499 -0
  149. package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +30 -0
  150. package/pennyfarthing-dist/scripts/hooks/session-start.sh +97 -0
  151. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +65 -0
  152. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +78 -0
  153. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +94 -0
  154. package/pennyfarthing-dist/scripts/jira/README.md +36 -0
  155. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +95 -0
  156. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +91 -0
  157. package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +22 -0
  158. package/pennyfarthing-dist/scripts/jira/jira-lib.sh +464 -0
  159. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +260 -0
  160. package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +18 -0
  161. package/pennyfarthing-dist/scripts/jira/jira-sync.sh +16 -0
  162. package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +16 -0
  163. package/pennyfarthing-dist/scripts/jira/sync-epic-to-jira.sh +16 -0
  164. package/pennyfarthing-dist/scripts/lib/README.md +29 -0
  165. package/pennyfarthing-dist/scripts/lib/background-tasks.sh +177 -0
  166. package/pennyfarthing-dist/scripts/lib/checkpoint.sh +136 -0
  167. package/pennyfarthing-dist/scripts/lib/common.sh +212 -0
  168. package/pennyfarthing-dist/scripts/lib/file-lock.sh +269 -0
  169. package/pennyfarthing-dist/scripts/lib/find-root.sh +58 -0
  170. package/pennyfarthing-dist/scripts/lib/logging.sh +186 -0
  171. package/pennyfarthing-dist/scripts/lib/retry.sh +76 -0
  172. package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +102 -0
  173. package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +91 -0
  174. package/pennyfarthing-dist/scripts/misc/README.md +44 -0
  175. package/pennyfarthing-dist/scripts/misc/add-short-names.sh +13 -0
  176. package/pennyfarthing-dist/scripts/misc/add_short_names.py +226 -0
  177. package/pennyfarthing-dist/scripts/misc/backlog.sh +77 -0
  178. package/pennyfarthing-dist/scripts/misc/check-status.sh +247 -0
  179. package/pennyfarthing-dist/scripts/misc/find-related-work.sh +231 -0
  180. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +107 -0
  181. package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +74 -0
  182. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +10 -0
  183. package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +319 -0
  184. package/pennyfarthing-dist/scripts/misc/repo-scan.sh +141 -0
  185. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +778 -0
  186. package/pennyfarthing-dist/scripts/misc/run-ci.sh +212 -0
  187. package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +7 -0
  188. package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +319 -0
  189. package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +193 -0
  190. package/pennyfarthing-dist/scripts/misc/statusline.sh +257 -0
  191. package/pennyfarthing-dist/scripts/misc/uninstall.sh +275 -0
  192. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +160 -0
  193. package/pennyfarthing-dist/scripts/portraits/generate-portraits.py +417 -0
  194. package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +54 -0
  195. package/pennyfarthing-dist/scripts/sprint/README.md +29 -0
  196. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +133 -0
  197. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +91 -0
  198. package/pennyfarthing-dist/scripts/sprint/check-story.sh +158 -0
  199. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +52 -0
  200. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +63 -0
  201. package/pennyfarthing-dist/scripts/sprint/list-future.sh +145 -0
  202. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +110 -0
  203. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +148 -0
  204. package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +415 -0
  205. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +33 -0
  206. package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +230 -0
  207. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +134 -0
  208. package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +139 -0
  209. package/pennyfarthing-dist/scripts/story/README.md +23 -0
  210. package/pennyfarthing-dist/scripts/story/create-story.sh +19 -0
  211. package/pennyfarthing-dist/scripts/story/size-story.sh +18 -0
  212. package/pennyfarthing-dist/scripts/story/story-template.sh +18 -0
  213. package/pennyfarthing-dist/scripts/test/README.md +23 -0
  214. package/pennyfarthing-dist/scripts/test/ensure-swebench-data.sh +59 -0
  215. package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +220 -0
  216. package/pennyfarthing-dist/scripts/test/swebench-judge.py +374 -0
  217. package/pennyfarthing-dist/scripts/test/test-cache.sh +165 -0
  218. package/pennyfarthing-dist/scripts/test/test-setup.sh +337 -0
  219. package/pennyfarthing-dist/scripts/tests/check.test.sh +582 -0
  220. package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +515 -0
  221. package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +599 -0
  222. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +332 -0
  223. package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +573 -0
  224. package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +859 -0
  225. package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +662 -0
  226. package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +589 -0
  227. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +106 -0
  228. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +597 -0
  229. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +514 -0
  230. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +517 -0
  231. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +331 -0
  232. package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +647 -0
  233. package/pennyfarthing-dist/scripts/theme/README.md +22 -0
  234. package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +13 -0
  235. package/pennyfarthing-dist/scripts/theme/compute_theme_tiers.py +402 -0
  236. package/pennyfarthing-dist/scripts/theme/list-themes.sh +30 -0
  237. package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +97 -0
  238. package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +576 -0
  239. package/pennyfarthing-dist/scripts/workflow/README.md +28 -0
  240. package/pennyfarthing-dist/scripts/workflow/check.py +502 -0
  241. package/pennyfarthing-dist/scripts/workflow/check.sh +24 -0
  242. package/pennyfarthing-dist/scripts/workflow/complete-step.py +304 -0
  243. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +154 -0
  244. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +222 -0
  245. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +61 -0
  246. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +13 -0
  247. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +124 -0
  248. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +34 -0
  249. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +157 -0
  250. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +132 -0
  251. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +250 -0
  252. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +161 -0
  253. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +246 -0
  254. package/pennyfarthing-dist/skills/changelog/SKILL.md +385 -0
  255. package/pennyfarthing-dist/skills/code-review/SKILL.md +172 -0
  256. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +277 -0
  257. package/pennyfarthing-dist/skills/cyclist/SKILL.md +88 -0
  258. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +461 -0
  259. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +261 -0
  260. package/pennyfarthing-dist/skills/jira/SKILL.md +508 -0
  261. package/pennyfarthing-dist/skills/judge/SKILL.md +644 -0
  262. package/pennyfarthing-dist/skills/just/SKILL.md +414 -0
  263. package/pennyfarthing-dist/skills/mermaid/SKILL.md +256 -0
  264. package/pennyfarthing-dist/skills/otel/skill.md +227 -0
  265. package/pennyfarthing-dist/skills/permissions/skill.md +157 -0
  266. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +187 -0
  267. package/pennyfarthing-dist/skills/skill-registry.schema.json +107 -0
  268. package/pennyfarthing-dist/skills/skill-registry.yaml +393 -0
  269. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +101 -0
  270. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +97 -0
  271. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +164 -0
  272. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +101 -0
  273. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +116 -0
  274. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +164 -0
  275. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +39 -0
  276. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +147 -0
  277. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +93 -0
  278. package/pennyfarthing-dist/skills/sprint/skill.md +465 -0
  279. package/pennyfarthing-dist/skills/story/scripts/create-story.sh +159 -0
  280. package/pennyfarthing-dist/skills/story/scripts/size-story.sh +198 -0
  281. package/pennyfarthing-dist/skills/story/scripts/story-template.sh +162 -0
  282. package/pennyfarthing-dist/skills/story/skill.md +219 -0
  283. package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +446 -0
  284. package/pennyfarthing-dist/skills/testing/SKILL.md +121 -0
  285. package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +124 -0
  286. package/pennyfarthing-dist/skills/theme/skill.md +141 -0
  287. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +178 -0
  288. package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +91 -0
  289. package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +163 -0
  290. package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +138 -0
  291. package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +273 -0
  292. package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +167 -0
  293. package/pennyfarthing-dist/skills/workflow/skill.md +345 -0
  294. package/pennyfarthing-dist/skills/yq/SKILL.md +272 -0
  295. package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +187 -0
  296. package/pennyfarthing-dist/templates/LEADERBOARD.template.md +59 -0
  297. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +276 -0
  298. package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +61 -0
  299. package/pennyfarthing-dist/templates/persona-config.yaml.template +22 -0
  300. package/pennyfarthing-dist/templates/preferences.yaml.template +15 -0
  301. package/pennyfarthing-dist/templates/settings.local.json.template +130 -0
  302. package/pennyfarthing-dist/templates/setup-env.sh.template +18 -0
  303. package/pennyfarthing-dist/templates/shared-context.md.template +70 -0
  304. package/pennyfarthing-dist/templates/sidecar/decisions.md.template +40 -0
  305. package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +37 -0
  306. package/pennyfarthing-dist/templates/sidecar/patterns.md.template +34 -0
  307. package/pennyfarthing-dist/workflows/agent-docs.yaml +70 -0
  308. package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +113 -0
  309. package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +105 -0
  310. package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +127 -0
  311. package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +145 -0
  312. package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +150 -0
  313. package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +145 -0
  314. package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +154 -0
  315. package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +172 -0
  316. package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +102 -0
  317. package/pennyfarthing-dist/workflows/architecture.yaml +65 -0
  318. package/pennyfarthing-dist/workflows/bdd.yaml +60 -0
  319. package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +62 -0
  320. package/pennyfarthing-dist/workflows/brainstorming/checklist.md +44 -0
  321. package/pennyfarthing-dist/workflows/brainstorming/instructions.md +736 -0
  322. package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +49 -0
  323. package/pennyfarthing-dist/workflows/code-review/checklist.md +23 -0
  324. package/pennyfarthing-dist/workflows/code-review/instructions.md +234 -0
  325. package/pennyfarthing-dist/workflows/code-review/workflow.yaml +51 -0
  326. package/pennyfarthing-dist/workflows/dev-story/checklist.md +80 -0
  327. package/pennyfarthing-dist/workflows/dev-story/instructions.xml +410 -0
  328. package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +50 -0
  329. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +281 -0
  330. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +256 -0
  331. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +298 -0
  332. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +177 -0
  333. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +145 -0
  334. package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +57 -0
  335. package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +28 -0
  336. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +103 -0
  337. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-02-categorize.md +147 -0
  338. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-03-execute.md +215 -0
  339. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +97 -0
  340. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +78 -0
  341. package/pennyfarthing-dist/workflows/git-cleanup.yaml +59 -0
  342. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +211 -0
  343. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +199 -0
  344. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +202 -0
  345. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +162 -0
  346. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +280 -0
  347. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +158 -0
  348. package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +4 -0
  349. package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +40 -0
  350. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-01-connect.md +257 -0
  351. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-02-explore.md +107 -0
  352. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-03-fix.md +127 -0
  353. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-04-commit.md +122 -0
  354. package/pennyfarthing-dist/workflows/interactive-debug/workflow.yaml +51 -0
  355. package/pennyfarthing-dist/workflows/patch.yaml +67 -0
  356. package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +13 -0
  357. package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +197 -0
  358. package/pennyfarthing-dist/workflows/prd/data/project-types.csv +11 -0
  359. package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +197 -0
  360. package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +159 -0
  361. package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +230 -0
  362. package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +232 -0
  363. package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +219 -0
  364. package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +213 -0
  365. package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +232 -0
  366. package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +243 -0
  367. package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +234 -0
  368. package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +237 -0
  369. package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +248 -0
  370. package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +223 -0
  371. package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +186 -0
  372. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +253 -0
  373. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +214 -0
  374. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +255 -0
  375. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +259 -0
  376. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +174 -0
  377. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +224 -0
  378. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +197 -0
  379. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +215 -0
  380. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +180 -0
  381. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +220 -0
  382. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +234 -0
  383. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +223 -0
  384. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +211 -0
  385. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +249 -0
  386. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +269 -0
  387. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +215 -0
  388. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +270 -0
  389. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +248 -0
  390. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +238 -0
  391. package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +10 -0
  392. package/pennyfarthing-dist/workflows/prd/workflow.yaml +42 -0
  393. package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +195 -0
  394. package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +180 -0
  395. package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +221 -0
  396. package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +224 -0
  397. package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +228 -0
  398. package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +243 -0
  399. package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +216 -0
  400. package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +10 -0
  401. package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +31 -0
  402. package/pennyfarthing-dist/workflows/project-context/project-context-template.md +21 -0
  403. package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +206 -0
  404. package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +349 -0
  405. package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +306 -0
  406. package/pennyfarthing-dist/workflows/project-context/workflow.yaml +27 -0
  407. package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +157 -0
  408. package/pennyfarthing-dist/workflows/project-setup/steps/step-02-clone-repos.md +217 -0
  409. package/pennyfarthing-dist/workflows/project-setup/steps/step-03-repos-yaml.md +159 -0
  410. package/pennyfarthing-dist/workflows/project-setup/steps/step-04-claude-md.md +186 -0
  411. package/pennyfarthing-dist/workflows/project-setup/steps/step-05-shared-context.md +185 -0
  412. package/pennyfarthing-dist/workflows/project-setup/steps/step-06-task-runner.md +279 -0
  413. package/pennyfarthing-dist/workflows/project-setup/steps/step-07-theme.md +200 -0
  414. package/pennyfarthing-dist/workflows/project-setup/steps/step-08-theme-packs.md +142 -0
  415. package/pennyfarthing-dist/workflows/project-setup/steps/step-09-cyclist.md +245 -0
  416. package/pennyfarthing-dist/workflows/project-setup/steps/step-10-complete.md +204 -0
  417. package/pennyfarthing-dist/workflows/project-setup/workflow.yaml +41 -0
  418. package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +177 -0
  419. package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +143 -0
  420. package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +138 -0
  421. package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +135 -0
  422. package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +129 -0
  423. package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +163 -0
  424. package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +27 -0
  425. package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +201 -0
  426. package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +156 -0
  427. package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +140 -0
  428. package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +203 -0
  429. package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +74 -0
  430. package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +27 -0
  431. package/pennyfarthing-dist/workflows/release/steps/step-01-preflight.md +105 -0
  432. package/pennyfarthing-dist/workflows/release/steps/step-02-bump.md +95 -0
  433. package/pennyfarthing-dist/workflows/release/steps/step-03-changelog.md +125 -0
  434. package/pennyfarthing-dist/workflows/release/steps/step-04-readme.md +101 -0
  435. package/pennyfarthing-dist/workflows/release/steps/step-05-claude-md.md +102 -0
  436. package/pennyfarthing-dist/workflows/release/steps/step-06-retro.md +59 -0
  437. package/pennyfarthing-dist/workflows/release/steps/step-07-commit.md +109 -0
  438. package/pennyfarthing-dist/workflows/release/steps/step-08-merge.md +65 -0
  439. package/pennyfarthing-dist/workflows/release/steps/step-09-push.md +75 -0
  440. package/pennyfarthing-dist/workflows/release/steps/step-10-publish.md +93 -0
  441. package/pennyfarthing-dist/workflows/release/steps/step-11-finalize.md +71 -0
  442. package/pennyfarthing-dist/workflows/release.yaml +62 -0
  443. package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +159 -0
  444. package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +253 -0
  445. package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +263 -0
  446. package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +232 -0
  447. package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +260 -0
  448. package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +477 -0
  449. package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +205 -0
  450. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +262 -0
  451. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +227 -0
  452. package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +275 -0
  453. package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +286 -0
  454. package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +203 -0
  455. package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +510 -0
  456. package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +159 -0
  457. package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +264 -0
  458. package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +274 -0
  459. package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +228 -0
  460. package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +267 -0
  461. package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +522 -0
  462. package/pennyfarthing-dist/workflows/research/templates/research.template.md +29 -0
  463. package/pennyfarthing-dist/workflows/research/workflow.yaml +45 -0
  464. package/pennyfarthing-dist/workflows/retrospective/checklist.md +31 -0
  465. package/pennyfarthing-dist/workflows/retrospective/instructions.md +1443 -0
  466. package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +50 -0
  467. package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +33 -0
  468. package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +55 -0
  469. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +69 -0
  470. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +61 -0
  471. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +80 -0
  472. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +90 -0
  473. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +78 -0
  474. package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +34 -0
  475. package/pennyfarthing-dist/workflows/tdd.yaml +50 -0
  476. package/pennyfarthing-dist/workflows/trivial.yaml +40 -0
  477. package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +141 -0
  478. package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +133 -0
  479. package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +196 -0
  480. package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +222 -0
  481. package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +225 -0
  482. package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +240 -0
  483. package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +258 -0
  484. package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +260 -0
  485. package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +230 -0
  486. package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +230 -0
  487. package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +247 -0
  488. package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +254 -0
  489. package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +243 -0
  490. package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +270 -0
  491. package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +234 -0
  492. package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +13 -0
  493. package/pennyfarthing-dist/workflows/ux-design/workflow.yaml +41 -0
@@ -0,0 +1,147 @@
1
+ #!/bin/bash
2
+ # Display current sprint status
3
+ # Usage: .pennyfarthing/scripts/sprint/sprint-status.sh [filter]
4
+ # or: Invoked with PROJECT_ROOT already set
5
+ #
6
+ # Filters:
7
+ # (none) - Show all stories
8
+ # todo - Show only backlog stories
9
+ # in-progress - Show only in_progress stories
10
+ # done - Show only done/cancelled stories
11
+
12
+ set -euo pipefail
13
+
14
+ # PROJECT_ROOT should be set by find-root.sh, but find it if not
15
+ if [[ -z "${PROJECT_ROOT:-}" ]]; then
16
+ d="$PWD"
17
+ while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do
18
+ d="$(dirname "$d")"
19
+ done
20
+ PROJECT_ROOT="$d"
21
+ fi
22
+
23
+ # Parse filter argument
24
+ FILTER="${1:-}"
25
+ case "$FILTER" in
26
+ todo|backlog)
27
+ STATUS_FILTER="backlog"
28
+ FILTER_LABEL="Todo"
29
+ ;;
30
+ in-progress|wip)
31
+ STATUS_FILTER="in_progress"
32
+ FILTER_LABEL="In Progress"
33
+ ;;
34
+ done|completed)
35
+ STATUS_FILTER="done"
36
+ FILTER_LABEL="Done"
37
+ ;;
38
+ cancelled|canceled)
39
+ STATUS_FILTER="cancelled"
40
+ FILTER_LABEL="Cancelled"
41
+ ;;
42
+ "")
43
+ STATUS_FILTER=""
44
+ FILTER_LABEL=""
45
+ ;;
46
+ *)
47
+ echo "Error: Unknown filter '$FILTER'"
48
+ echo "Valid filters: todo, in-progress, done, cancelled"
49
+ exit 1
50
+ ;;
51
+ esac
52
+
53
+ SPRINT_FILE="$PROJECT_ROOT/sprint/current-sprint.yaml"
54
+
55
+ if [[ ! -f "$SPRINT_FILE" ]]; then
56
+ echo "Error: Sprint file not found at $SPRINT_FILE"
57
+ exit 1
58
+ fi
59
+
60
+ if ! command -v yq &> /dev/null; then
61
+ echo "Error: yq is required but not installed"
62
+ echo "Install with: brew install yq"
63
+ exit 1
64
+ fi
65
+
66
+ # Extract sprint metadata
67
+ SPRINT_NAME=$(yq eval '.sprint.name' "$SPRINT_FILE")
68
+ SPRINT_GOAL=$(yq eval '.sprint.goal' "$SPRINT_FILE")
69
+ START_DATE=$(yq eval '.sprint.start_date' "$SPRINT_FILE")
70
+ END_DATE=$(yq eval '.sprint.end_date' "$SPRINT_FILE")
71
+ STATUS=$(yq eval '.sprint.status' "$SPRINT_FILE")
72
+
73
+ echo "# Sprint Status"
74
+ echo ""
75
+ echo "**Sprint:** $SPRINT_NAME"
76
+ echo "**Goal:** $SPRINT_GOAL"
77
+ echo "**Dates:** $START_DATE to $END_DATE"
78
+ echo "**Status:** $STATUS"
79
+ echo ""
80
+
81
+ # Count stories by status
82
+ TOTAL_STORIES=$(yq eval '[.epics[].stories[]] | length' "$SPRINT_FILE")
83
+ BACKLOG=$(yq eval '[.epics[].stories[] | select(.status == "backlog")] | length' "$SPRINT_FILE")
84
+ IN_PROGRESS=$(yq eval '[.epics[].stories[] | select(.status == "in_progress")] | length' "$SPRINT_FILE")
85
+
86
+ # Sum points using paste+bc (yq add not available in all versions)
87
+ sum_points() {
88
+ local result
89
+ result=$(echo "$1" | paste -sd+ - | bc 2>/dev/null)
90
+ echo "${result:-0}"
91
+ }
92
+
93
+ TOTAL_POINTS=$(sum_points "$(yq '.epics[].stories[].points' "$SPRINT_FILE")")
94
+ BACKLOG_POINTS=$(sum_points "$(yq '.epics[].stories[] | select(.status == "backlog") | .points' "$SPRINT_FILE")")
95
+ IN_PROGRESS_POINTS=$(sum_points "$(yq '.epics[].stories[] | select(.status == "in_progress") | .points' "$SPRINT_FILE")")
96
+
97
+ echo "## Summary"
98
+ echo ""
99
+ echo "| Status | Stories | Points |"
100
+ echo "|--------|---------|--------|"
101
+ echo "| Backlog | $BACKLOG | $BACKLOG_POINTS |"
102
+ echo "| In Progress | $IN_PROGRESS | $IN_PROGRESS_POINTS |"
103
+ echo "| **Total Remaining** | **$TOTAL_STORIES** | **$TOTAL_POINTS** |"
104
+ echo ""
105
+
106
+ # List stories by epic (grouped - epic name appears once)
107
+ if [[ -n "$FILTER_LABEL" ]]; then
108
+ echo "## Stories by Epic (${FILTER_LABEL} only)"
109
+ else
110
+ echo "## Stories by Epic"
111
+ fi
112
+ echo ""
113
+
114
+ # Process each epic, output header once then all its stories
115
+ # Apply status filter if specified
116
+ if [[ -n "$STATUS_FILTER" ]]; then
117
+ yq eval -o=json '.epics[]' "$SPRINT_FILE" 2>/dev/null | jq -r --arg status "$STATUS_FILTER" '
118
+ .title as $title |
119
+ [.stories[] | select(.status == $status)] |
120
+ if length > 0 then
121
+ "### " + $title + "\n" +
122
+ (map("- [" + .status + "] " + .id + ": " + .title + " (" + (.points | tostring) + " pts)") | join("\n")) + "\n"
123
+ else
124
+ empty
125
+ end
126
+ ' 2>/dev/null || echo "No stories found"
127
+ else
128
+ yq eval -o=json '.epics[]' "$SPRINT_FILE" 2>/dev/null | jq -r '
129
+ "### " + .title + "\n" +
130
+ (.stories | map("- [" + .status + "] " + .id + ": " + .title + " (" + (.points | tostring) + " pts)") | join("\n")) + "\n"
131
+ ' 2>/dev/null || echo "No stories found"
132
+ fi
133
+
134
+ # Check archive for completed count
135
+ SPRINT_NUM=$(echo "$SPRINT_NAME" | sed 's/TO Sprint //')
136
+ ARCHIVE_FILE="$PROJECT_ROOT/sprint/archive/sprint-${SPRINT_NUM}-completed.yaml"
137
+
138
+ if [[ -f "$ARCHIVE_FILE" ]]; then
139
+ COMPLETED_COUNT=$(yq '.completed | length' "$ARCHIVE_FILE" 2>/dev/null || echo "0")
140
+ COMPLETED_POINTS=$(sum_points "$(yq '.completed[].points' "$ARCHIVE_FILE" 2>/dev/null)")
141
+ echo ""
142
+ echo "## Completed This Sprint"
143
+ echo ""
144
+ echo "**Stories:** $COMPLETED_COUNT | **Points:** $COMPLETED_POINTS"
145
+ echo ""
146
+ echo "See: sprint/archive/sprint-${SPRINT_NUM}-completed.yaml"
147
+ fi
@@ -0,0 +1,93 @@
1
+ #!/bin/bash
2
+ # Sync an epic and its stories to Jira
3
+ # Usage: .pennyfarthing/scripts/sprint/sync-epic-jira.sh <epic-id> [--dry-run] [--transition] [--points] [--all]
4
+ #
5
+ # Example: .pennyfarthing/scripts/sprint/sync-epic-jira.sh MSSCI-11952
6
+ # Example: .pennyfarthing/scripts/sprint/sync-epic-jira.sh MSSCI-11952 --all
7
+ #
8
+ # This script syncs status and story points from sprint YAML to Jira.
9
+ # Thin wrapper that delegates to Python CLI.
10
+
11
+ set -euo pipefail
12
+
13
+ # Find package root (where pennyfarthing_scripts lives) from script location
14
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
15
+ PACKAGE_ROOT="$(cd "$SCRIPT_DIR/../../../.." && pwd -P)"
16
+
17
+ # Set PYTHONPATH so Python can find pennyfarthing_scripts
18
+ export PYTHONPATH="${PACKAGE_ROOT}:${PYTHONPATH:-}"
19
+
20
+ EPIC_ID="${1:-}"
21
+
22
+ if [[ -z "$EPIC_ID" ]]; then
23
+ echo "Usage: sync-epic-jira.sh <epic-id> [options]"
24
+ echo ""
25
+ echo "Syncs an epic and its stories from sprint YAML to Jira."
26
+ echo ""
27
+ echo "Options:"
28
+ echo " --dry-run Show what would be done without making changes"
29
+ echo " --transition Transition Jira issues to match sprint YAML status"
30
+ echo " --points Sync story points from sprint YAML to Jira"
31
+ echo " --all Equivalent to --transition --points"
32
+ echo ""
33
+ echo "Examples:"
34
+ echo " sync-epic-jira.sh MSSCI-11952 # Show sync status"
35
+ echo " sync-epic-jira.sh MSSCI-11952 --dry-run # Preview changes"
36
+ echo " sync-epic-jira.sh MSSCI-11952 --all # Sync status and points"
37
+ exit 1
38
+ fi
39
+
40
+ # PROJECT_ROOT should be set by find-root.sh, but find it if not
41
+ if [[ -z "${PROJECT_ROOT:-}" ]]; then
42
+ d="$PWD"
43
+ while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do
44
+ d="$(dirname "$d")"
45
+ done
46
+ PROJECT_ROOT="$d"
47
+ fi
48
+
49
+ SPRINT_FILE="$PROJECT_ROOT/sprint/current-sprint.yaml"
50
+
51
+ if [[ ! -f "$SPRINT_FILE" ]]; then
52
+ echo "Error: Sprint file not found at $SPRINT_FILE"
53
+ exit 1
54
+ fi
55
+
56
+ if ! command -v yq &> /dev/null; then
57
+ echo "Error: yq is required but not installed"
58
+ echo "Install with: brew install yq"
59
+ exit 1
60
+ fi
61
+
62
+ # Check if epic exists in sprint YAML
63
+ EPIC_EXISTS=$(yq ".epics[] | select(.id == \"$EPIC_ID\") | .id" "$SPRINT_FILE" 2>/dev/null || echo "")
64
+
65
+ if [[ -z "$EPIC_EXISTS" ]]; then
66
+ echo "Error: Epic $EPIC_ID not found in $SPRINT_FILE"
67
+ echo ""
68
+ echo "Available epics:"
69
+ yq '.epics[].id' "$SPRINT_FILE" 2>/dev/null || echo " None found"
70
+ exit 1
71
+ fi
72
+
73
+ # Build arguments for Python CLI
74
+ shift # Remove epic-id from arguments
75
+ SYNC_ARGS=("$EPIC_ID")
76
+
77
+ # Handle --all flag
78
+ for arg in "$@"; do
79
+ case "$arg" in
80
+ --all)
81
+ SYNC_ARGS+=("--transition" "--points")
82
+ ;;
83
+ *)
84
+ SYNC_ARGS+=("$arg")
85
+ ;;
86
+ esac
87
+ done
88
+
89
+ echo "Syncing epic $EPIC_ID to Jira..."
90
+ echo ""
91
+
92
+ # Delegate to Python CLI
93
+ exec python3 -m pennyfarthing_scripts.jira sync "${SYNC_ARGS[@]}"
@@ -0,0 +1,465 @@
1
+ ---
2
+ name: sprint
3
+ description: |
4
+ Sprint status, backlog, and story management for Pennyfarthing. Use when checking current
5
+ sprint status, finding available stories, reviewing backlog, or understanding story context
6
+ and history.
7
+ IMPORTANT: Always use the provided scripts - never manually edit sprint YAML.
8
+ args: "[status|backlog|work|archive|new|promote]"
9
+ ---
10
+
11
+ # /sprint - Sprint Management
12
+
13
+ <critical>
14
+ Never manually edit `sprint/current-sprint.yaml`. Use the scripts below for deterministic, correct YAML formatting.
15
+ </critical>
16
+
17
+ ## Commands
18
+
19
+ ### `/sprint` or `/sprint status [filter]`
20
+
21
+ Show current sprint status with story counts and points.
22
+
23
+ <run>
24
+ .pennyfarthing/scripts/sprint/sprint-status.sh [filter]
25
+ </run>
26
+
27
+ <args>
28
+ | Arg | Required | Description |
29
+ |-----|----------|-------------|
30
+ | `filter` | No | Filter stories: `todo`, `in-progress`, `done`, `cancelled` |
31
+ </args>
32
+
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
38
+ </example>
39
+
40
+ <output>
41
+ Sprint metadata, stories by status (grouped under epic headers), points breakdown, completed count from archive.
42
+ When filtered, only shows epics with matching stories.
43
+ </output>
44
+
45
+ ---
46
+
47
+ ### `/sprint backlog`
48
+
49
+ Show available stories grouped by epic with Jira context.
50
+
51
+ <run>
52
+ .pennyfarthing/scripts/sprint/available-stories.sh
53
+ </run>
54
+
55
+ <output>
56
+ Backlog stories with epic descriptions, points, priority, and workflow tags.
57
+ </output>
58
+
59
+ ---
60
+
61
+ ### `/sprint work [story-id|epic-id|next]`
62
+
63
+ Start work on a story. This is the primary entry point for development work.
64
+
65
+ <when>
66
+ - Starting new development work
67
+ - `/new-work` is an alias for this command
68
+ </when>
69
+
70
+ #### Without argument: Interactive selection
71
+
72
+ Shows backlog, user selects story, then proceeds to setup.
73
+
74
+ <output>
75
+ 1. Load SM persona
76
+ 2. Check for in-progress work
77
+ 3. Show available stories
78
+ 4. User selects story
79
+ 5. Setup and handoff to TEA/Dev
80
+ </output>
81
+
82
+ #### With story ID: Direct start
83
+
84
+ <run>
85
+ .pennyfarthing/scripts/sprint/check-story.sh <story-id>
86
+ </run>
87
+
88
+ <args>
89
+ | Arg | Required | Description |
90
+ |-----|----------|-------------|
91
+ | `story-id` | Yes | Jira key (e.g., `MSSCI-12038`) |
92
+ </args>
93
+
94
+ <output>
95
+ - `available: true` - Skip backlog, proceed to setup
96
+ - `available: false` - Report why (assigned, in progress, etc.)
97
+ </output>
98
+
99
+ <example>
100
+ .pennyfarthing/scripts/sprint/check-story.sh MSSCI-12038
101
+ # Returns: {"type": "story", "available": true, "title": "...", ...}
102
+ </example>
103
+
104
+ #### With epic ID: Start first available story in epic
105
+
106
+ <run>
107
+ .pennyfarthing/scripts/sprint/check-story.sh <epic-id>
108
+ </run>
109
+
110
+ <output>
111
+ Epic info with `first_story` (highest priority available story).
112
+ Action: Automatically start work on `first_story` if available.
113
+ </output>
114
+
115
+ <example>
116
+ .pennyfarthing/scripts/sprint/check-story.sh MSSCI-11952
117
+ # Returns: {"type": "epic", "first_story": {"id": "MSSCI-11954", ...}, ...}
118
+ </example>
119
+
120
+ #### With `next`: Auto-select highest priority story
121
+
122
+ <run>
123
+ .pennyfarthing/scripts/sprint/check-story.sh next
124
+ </run>
125
+
126
+ <output>
127
+ Highest-priority available story across all epics.
128
+ Action: Automatically start work on returned story.
129
+ </output>
130
+
131
+ <example>
132
+ .pennyfarthing/scripts/sprint/check-story.sh next
133
+ # Returns: {"type": "next", "story": {"id": "MSSCI-11950", "priority": "P1", ...}}
134
+ </example>
135
+
136
+ ---
137
+
138
+ ### `/sprint archive <story-id> [pr-number] [--apply]`
139
+
140
+ Archive a completed story to the sprint archive file.
141
+
142
+ <run>
143
+ .pennyfarthing/scripts/sprint/archive-story.sh <story-id> [pr-number] [--apply]
144
+ </run>
145
+
146
+ <args>
147
+ | Arg | Required | Description |
148
+ |-----|----------|-------------|
149
+ | `story-id` | Yes | Story ID (e.g., `35-2`) |
150
+ | `pr-number` | No | PR number if merged via PR |
151
+ | `--apply` | No | Also remove story from current-sprint.yaml |
152
+ </args>
153
+
154
+ <example>
155
+ # Archive only (manual removal needed)
156
+ .pennyfarthing/scripts/sprint/archive-story.sh 35-2 368
157
+
158
+ # Archive and remove atomically (recommended)
159
+ .pennyfarthing/scripts/sprint/archive-story.sh 35-2 368 --apply
160
+ </example>
161
+
162
+ <output>
163
+ 1. Extracts story from `current-sprint.yaml`
164
+ 2. Appends to `sprint/archive/sprint-{YYWW}-completed.yaml`
165
+ 3. With `--apply`: Also removes from current sprint
166
+ 4. Without `--apply`: Outputs command to complete removal
167
+ </output>
168
+
169
+ ---
170
+
171
+ ### `/sprint new <yyww> <jira-id> <start> <end> "<goal>"`
172
+
173
+ Initialize a new sprint from template.
174
+
175
+ <run>
176
+ .pennyfarthing/scripts/sprint/new-sprint.sh <yyww> <jira-id> <start> <end> "<goal>"
177
+ </run>
178
+
179
+ <args>
180
+ | Arg | Required | Description |
181
+ |-----|----------|-------------|
182
+ | `yyww` | Yes | Sprint identifier (e.g., `2605` for 2026 week 5) |
183
+ | `jira-id` | Yes | Jira sprint ID number (e.g., `277`) |
184
+ | `start` | Yes | Start date `YYYY-MM-DD` |
185
+ | `end` | Yes | End date `YYYY-MM-DD` |
186
+ | `goal` | Yes | Sprint goal (quoted string) |
187
+ </args>
188
+
189
+ <example>
190
+ .pennyfarthing/scripts/sprint/new-sprint.sh 2605 277 2026-02-03 2026-02-16 "Polish and stabilization"
191
+ </example>
192
+
193
+ <output>
194
+ Creates:
195
+ - `sprint/current-sprint.yaml` - New sprint file
196
+ - `sprint/archive/sprint-{YYWW}-completed.yaml` - Empty archive
197
+
198
+ Warning: Prompts for confirmation if current sprint is still active.
199
+ </output>
200
+
201
+ ---
202
+
203
+ ### `/sprint future [--epic EPIC_ID]`
204
+
205
+ Show future work initiatives and epics available for promotion.
206
+
207
+ <run>
208
+ .pennyfarthing/scripts/sprint/list-future.sh [--epic EPIC_ID]
209
+ </run>
210
+
211
+ <args>
212
+ | Arg | Required | Description |
213
+ |-----|----------|-------------|
214
+ | `--epic` | No | Show detailed stories for a specific epic |
215
+ </args>
216
+
217
+ <output>
218
+ Without `--epic`:
219
+ - Initiatives grouped by status (READY, BLOCKED, planning)
220
+ - Epics with points, priority, and status
221
+ - Summary of total epics and points
222
+ - Promotion instructions
223
+
224
+ With `--epic`:
225
+ - Full epic details including description
226
+ - All stories with points and status
227
+ - Promotion command for that epic
228
+ </output>
229
+
230
+ <example>
231
+ # Show all future work
232
+ .pennyfarthing/scripts/sprint/list-future.sh
233
+
234
+ # Show details for specific epic
235
+ .pennyfarthing/scripts/sprint/list-future.sh --epic epic-55
236
+ </example>
237
+
238
+ ---
239
+
240
+ ### `/sprint promote <epic-id>`
241
+
242
+ Move an epic from `future.yaml` to `current-sprint.yaml`.
243
+
244
+ <run>
245
+ .pennyfarthing/scripts/sprint/promote-epic.sh <epic-id>
246
+ </run>
247
+
248
+ <args>
249
+ | Arg | Required | Description |
250
+ |-----|----------|-------------|
251
+ | `epic-id` | Yes | Local epic ID (e.g., `epic-41`) |
252
+ </args>
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
+ <when>
266
+ Next steps after promote:
267
+ - Review appended YAML in current-sprint.yaml
268
+ - Create Jira epic: `/jira create epic <epic-id>`
269
+ - Remove from planning.yaml if desired
270
+ </when>
271
+
272
+ ---
273
+
274
+ ## Read Operations
275
+
276
+ These scripts read sprint YAML without modifying it. Use these instead of direct `yq` queries.
277
+
278
+ ### Get Story Field
279
+
280
+ <run>
281
+ .pennyfarthing/scripts/sprint/get-story-field.sh <story-id> <field>
282
+ </run>
283
+
284
+ <args>
285
+ | Arg | Required | Description |
286
+ |-----|----------|-------------|
287
+ | `story-id` | Yes | Story ID (e.g., `35-2`) |
288
+ | `field` | Yes | Field name to extract |
289
+ </args>
290
+
291
+ <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
295
+ </example>
296
+
297
+ <output>
298
+ Field value or "null" if not found. Common fields: `workflow`, `status`, `jira`, `points`, `title`, `repos`, `priority`.
299
+ </output>
300
+
301
+ ---
302
+
303
+ ### Get Epic Field
304
+
305
+ <run>
306
+ .pennyfarthing/scripts/sprint/get-epic-field.sh <epic-id> <field>
307
+ </run>
308
+
309
+ <args>
310
+ | Arg | Required | Description |
311
+ |-----|----------|-------------|
312
+ | `epic-id` | Yes | Epic ID (e.g., `epic-35` or just `35`) |
313
+ | `field` | Yes | Field name to extract |
314
+ </args>
315
+
316
+ <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
319
+ </example>
320
+
321
+ <output>
322
+ Field value or "null" if not found. Common fields: `jira`, `title`, `description`, `status`.
323
+ </output>
324
+
325
+ ---
326
+
327
+ ## Jira Operations
328
+
329
+ For Jira-specific operations, use the `/jira` skill:
330
+
331
+ | Task | Command |
332
+ |------|---------|
333
+ | Create epic in Jira | `/jira create epic <epic-id>` |
334
+ | Sync epic to Jira | `/jira sync <epic-id>` |
335
+ | Reconcile YAML vs Jira | `/jira reconcile` |
336
+ | Claim a story | `/jira claim <issue-key>` |
337
+ | View issue details | `/jira view <issue-key>` |
338
+
339
+ ---
340
+
341
+ ## Work Flow Details
342
+
343
+ <when>
344
+ When `/sprint work` (or `/new-work`) starts a story:
345
+ </when>
346
+
347
+ <agent-activation>
348
+ Load SM persona first:
349
+ ```bash
350
+ d="$PWD"; while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done; "$d/.pennyfarthing/scripts/core/agent-session.sh" start "sm"
351
+ ```
352
+ </agent-activation>
353
+
354
+ ### Story Setup Steps
355
+
356
+ <output>
357
+ 1. **Check story** via `check-story.sh` (if ID provided)
358
+ 2. **Write context** to `.session/context-story-{id}.md`
359
+ 3. **Setup story** via `sm-setup` subagent (claims Jira, creates branch)
360
+ 4. **Handoff** to next agent based on workflow:
361
+
362
+ | Workflow | Route |
363
+ |----------|-------|
364
+ | `trivial` | SM → Dev |
365
+ | `tdd` | SM → TEA → Dev → Reviewer |
366
+ | `agent-docs` | SM → Orchestrator |
367
+ </output>
368
+
369
+ ### Gates Before Handoff
370
+
371
+ <critical>
372
+ All gates must pass before handoff:
373
+ - [ ] Session file exists at `.session/{story-id}-session.md`
374
+ - [ ] Story context written with ACs
375
+ - [ ] Jira claimed (assigned, In Progress)
376
+ - [ ] Branch created
377
+ </critical>
378
+
379
+ ---
380
+
381
+ ## File Locations
382
+
383
+ | File | Purpose |
384
+ |------|---------|
385
+ | `sprint/current-sprint.yaml` | Active/backlog work only |
386
+ | `sprint/archive/sprint-{YYWW}-completed.yaml` | Completed stories for sprint |
387
+ | `sprint/sprint-template.yaml` | Format reference |
388
+
389
+ ## YAML Constraints
390
+
391
+ | Field | Valid Values |
392
+ |-------|-------------|
393
+ | Sprint name | `"TO Sprint YYWW"` (e.g., "TO Sprint 2604") |
394
+ | Story IDs | Jira keys `MSSCI-XXXXX` |
395
+ | Status | `backlog`, `ready`, `in_progress`, `done` |
396
+ | Workflow | `tdd`, `trivial`, `agent-docs`, `bdd` |
397
+ | Priority | `P0`, `P1`, `P2`, `P3` |
398
+ | in_sprint | `true`, `false` - Jira sprint membership |
399
+
400
+ ## Sprint Schema
401
+
402
+ ### Sprint-level fields
403
+
404
+ | Field | Description |
405
+ |-------|-------------|
406
+ | `name` | Sprint name in "TO Sprint YYWW" format |
407
+ | `jira_sprint_id` | Numeric Jira sprint ID (e.g., 276) |
408
+ | `jira_sprint_name` | Jira sprint name (should match name) |
409
+ | `goal` | Sprint goal/objective |
410
+ | `start_date` | YYYY-MM-DD |
411
+ | `end_date` | YYYY-MM-DD |
412
+ | `status` | `active` or `closed` |
413
+
414
+ ### Story-level fields
415
+
416
+ | Field | Description |
417
+ |-------|-------------|
418
+ | `in_sprint` | `true/false` - whether story is in Jira sprint (synced bidirectionally) |
419
+
420
+ <output>
421
+ The `in_sprint` field tracks Jira sprint membership:
422
+ - `in_sprint: true` - Story is in the Jira sprint
423
+ - `in_sprint: false` - Story is not in Jira sprint (backlog)
424
+ - Field omitted - Sprint membership not explicitly tracked
425
+ </output>
426
+
427
+ ## Dependencies
428
+
429
+ <run>
430
+ brew install yq
431
+ </run>
432
+
433
+ <when>
434
+ For Jira integration, see `/jira` skill prerequisites.
435
+ </when>
436
+
437
+ ## Quick Reference
438
+
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` |
447
+ | `/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` |
456
+ | `/new-work` | Alias for `/sprint work` |
457
+ | `/new-work MSSCI-XXX` | Alias for `/sprint work MSSCI-XXX` |
458
+ | `/new-work next` | Alias for `/sprint work next` |
459
+
460
+ ## Related Skills
461
+
462
+ | Skill | Purpose |
463
+ |-------|---------|
464
+ | `/jira` | Jira operations (create, sync, reconcile, claim) |
465
+ | `/story` | Story creation, sizing, finish workflow |