@pennyfarthing/core 11.2.0 → 11.2.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 (367) hide show
  1. package/README.md +100 -40
  2. package/package.json +2 -1
  3. package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
  4. package/packages/core/dist/cli/commands/doctor.js +474 -66
  5. package/packages/core/dist/cli/commands/doctor.js.map +1 -1
  6. package/packages/core/dist/cli/commands/init.js +4 -4
  7. package/packages/core/dist/cli/commands/init.js.map +1 -1
  8. package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
  9. package/packages/core/dist/cli/commands/update.js +4 -5
  10. package/packages/core/dist/cli/commands/update.js.map +1 -1
  11. package/packages/core/dist/cli/utils/constants.d.ts +3 -8
  12. package/packages/core/dist/cli/utils/constants.d.ts.map +1 -1
  13. package/packages/core/dist/cli/utils/constants.js +3 -4
  14. package/packages/core/dist/cli/utils/constants.js.map +1 -1
  15. package/packages/core/dist/cli/utils/settings.d.ts +7 -0
  16. package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
  17. package/packages/core/dist/cli/utils/settings.js +70 -29
  18. package/packages/core/dist/cli/utils/settings.js.map +1 -1
  19. package/packages/core/dist/cli/utils/symlinks.js +16 -16
  20. package/packages/core/dist/cli/utils/symlinks.js.map +1 -1
  21. package/packages/core/dist/consultation/dialogue-manager.d.ts +1 -1
  22. package/packages/core/dist/consultation/dialogue-manager.d.ts.map +1 -1
  23. package/packages/core/dist/consultation/dialogue-manager.js +1 -1
  24. package/packages/core/dist/consultation/dialogue-manager.js.map +1 -1
  25. package/packages/core/dist/consultation/dialogue-manager.test.js.map +1 -1
  26. package/packages/core/dist/consultation/tandem-metrics.d.ts +91 -0
  27. package/packages/core/dist/consultation/tandem-metrics.d.ts.map +1 -0
  28. package/packages/core/dist/consultation/tandem-metrics.js +131 -0
  29. package/packages/core/dist/consultation/tandem-metrics.js.map +1 -0
  30. package/packages/core/dist/consultation/tandem-metrics.test.d.ts +18 -0
  31. package/packages/core/dist/consultation/tandem-metrics.test.d.ts.map +1 -0
  32. package/packages/core/dist/consultation/tandem-metrics.test.js +457 -0
  33. package/packages/core/dist/consultation/tandem-metrics.test.js.map +1 -0
  34. package/packages/core/dist/public/css/react.css +1 -1
  35. package/packages/core/dist/public/js/react/react.js +14 -14
  36. package/packages/core/dist/server/api/agent-load.js +1 -1
  37. package/packages/core/dist/server/api/agent-load.js.map +1 -1
  38. package/packages/core/dist/server/api/git.d.ts.map +1 -1
  39. package/packages/core/dist/server/api/git.js +0 -1
  40. package/packages/core/dist/server/api/git.js.map +1 -1
  41. package/packages/core/dist/server/api/index.d.ts +2 -0
  42. package/packages/core/dist/server/api/index.d.ts.map +1 -1
  43. package/packages/core/dist/server/api/index.js +2 -0
  44. package/packages/core/dist/server/api/index.js.map +1 -1
  45. package/packages/core/dist/server/api/project-info.d.ts +11 -0
  46. package/packages/core/dist/server/api/project-info.d.ts.map +1 -0
  47. package/packages/core/dist/server/api/project-info.js +18 -0
  48. package/packages/core/dist/server/api/project-info.js.map +1 -0
  49. package/packages/core/dist/server/otlp-receiver.d.ts.map +1 -1
  50. package/packages/core/dist/server/otlp-receiver.js +18 -1
  51. package/packages/core/dist/server/otlp-receiver.js.map +1 -1
  52. package/packages/core/dist/server/otlp-receiver.test.js +1 -1
  53. package/packages/core/dist/server/otlp-receiver.test.js.map +1 -1
  54. package/packages/core/dist/server/server.d.ts +0 -3
  55. package/packages/core/dist/server/server.d.ts.map +1 -1
  56. package/packages/core/dist/server/server.js +5 -38
  57. package/packages/core/dist/server/server.js.map +1 -1
  58. package/packages/core/dist/server/server.test.d.ts +1 -1
  59. package/packages/core/dist/server/server.test.js +12 -23
  60. package/packages/core/dist/server/server.test.js.map +1 -1
  61. package/packages/core/dist/server/settings.d.ts +1 -0
  62. package/packages/core/dist/server/settings.d.ts.map +1 -1
  63. package/packages/core/dist/server/settings.js +13 -0
  64. package/packages/core/dist/server/settings.js.map +1 -1
  65. package/packages/core/dist/shared/capabilities.d.ts +88 -0
  66. package/packages/core/dist/shared/capabilities.d.ts.map +1 -0
  67. package/packages/core/dist/shared/capabilities.js +133 -0
  68. package/packages/core/dist/shared/capabilities.js.map +1 -0
  69. package/packages/core/dist/shared/capabilities.test.d.ts +2 -0
  70. package/packages/core/dist/shared/capabilities.test.d.ts.map +1 -0
  71. package/packages/core/dist/shared/capabilities.test.js +217 -0
  72. package/packages/core/dist/shared/capabilities.test.js.map +1 -0
  73. package/packages/core/dist/shared/spawn-prompt.d.ts +47 -0
  74. package/packages/core/dist/shared/spawn-prompt.d.ts.map +1 -0
  75. package/packages/core/dist/shared/spawn-prompt.js +82 -0
  76. package/packages/core/dist/shared/spawn-prompt.js.map +1 -0
  77. package/packages/core/dist/shared/spawn-prompt.test.d.ts +2 -0
  78. package/packages/core/dist/shared/spawn-prompt.test.d.ts.map +1 -0
  79. package/packages/core/dist/shared/spawn-prompt.test.js +251 -0
  80. package/packages/core/dist/shared/spawn-prompt.test.js.map +1 -0
  81. package/packages/core/dist/workflow/tandem-workflow-templates.test.d.ts +18 -0
  82. package/packages/core/dist/workflow/tandem-workflow-templates.test.d.ts.map +1 -0
  83. package/packages/core/dist/workflow/tandem-workflow-templates.test.js +434 -0
  84. package/packages/core/dist/workflow/tandem-workflow-templates.test.js.map +1 -0
  85. package/packages/core/dist/workflow/team-lifecycle.d.ts +169 -0
  86. package/packages/core/dist/workflow/team-lifecycle.d.ts.map +1 -0
  87. package/packages/core/dist/workflow/team-lifecycle.js +217 -0
  88. package/packages/core/dist/workflow/team-lifecycle.js.map +1 -0
  89. package/packages/core/dist/workflow/team-lifecycle.test.d.ts +20 -0
  90. package/packages/core/dist/workflow/team-lifecycle.test.d.ts.map +1 -0
  91. package/packages/core/dist/workflow/team-lifecycle.test.js +966 -0
  92. package/packages/core/dist/workflow/team-lifecycle.test.js.map +1 -0
  93. package/packages/core/dist/workflow/workflow-schema.d.ts +32 -0
  94. package/packages/core/dist/workflow/workflow-schema.d.ts.map +1 -1
  95. package/packages/core/dist/workflow/workflow-schema.js +120 -0
  96. package/packages/core/dist/workflow/workflow-schema.js.map +1 -1
  97. package/packages/core/dist/workflow/workflow-schema.test.d.ts.map +1 -1
  98. package/packages/core/dist/workflow/workflow-schema.test.js +570 -1
  99. package/packages/core/dist/workflow/workflow-schema.test.js.map +1 -1
  100. package/packages/core/dist/workflow/workflow-team-templates.test.d.ts +17 -0
  101. package/packages/core/dist/workflow/workflow-team-templates.test.d.ts.map +1 -0
  102. package/packages/core/dist/workflow/workflow-team-templates.test.js +275 -0
  103. package/packages/core/dist/workflow/workflow-team-templates.test.js.map +1 -0
  104. package/pennyfarthing-dist/agents/dev.md +21 -12
  105. package/pennyfarthing-dist/agents/reviewer.md +23 -4
  106. package/pennyfarthing-dist/agents/sm-finish.md +19 -2
  107. package/pennyfarthing-dist/agents/sm-setup.md +7 -7
  108. package/pennyfarthing-dist/agents/sm.md +12 -12
  109. package/pennyfarthing-dist/agents/tea.md +2 -2
  110. package/pennyfarthing-dist/agents/testing-runner.md +1 -1
  111. package/pennyfarthing-dist/commands/pf-architect.md +1 -1
  112. package/pennyfarthing-dist/commands/pf-ba.md +1 -1
  113. package/pennyfarthing-dist/commands/pf-chore.md +2 -2
  114. package/pennyfarthing-dist/commands/pf-dev.md +1 -1
  115. package/pennyfarthing-dist/commands/pf-devops.md +1 -1
  116. package/pennyfarthing-dist/commands/pf-epic.md +6 -6
  117. package/pennyfarthing-dist/commands/pf-git.md +12 -10
  118. package/pennyfarthing-dist/commands/pf-health-check.md +1 -1
  119. package/pennyfarthing-dist/commands/pf-help.md +12 -12
  120. package/pennyfarthing-dist/commands/pf-orchestrator.md +1 -1
  121. package/pennyfarthing-dist/commands/pf-pm.md +1 -1
  122. package/pennyfarthing-dist/commands/pf-prime.md +8 -8
  123. package/pennyfarthing-dist/commands/pf-reviewer.md +1 -1
  124. package/pennyfarthing-dist/commands/pf-session.md +7 -7
  125. package/pennyfarthing-dist/commands/pf-sm.md +1 -1
  126. package/pennyfarthing-dist/commands/pf-sprint.md +7 -7
  127. package/pennyfarthing-dist/commands/pf-tea.md +1 -1
  128. package/pennyfarthing-dist/commands/pf-tech-writer.md +1 -1
  129. package/pennyfarthing-dist/commands/pf-theme.md +9 -9
  130. package/pennyfarthing-dist/commands/pf-ux-designer.md +1 -1
  131. package/pennyfarthing-dist/commands/pf-work.md +1 -1
  132. package/pennyfarthing-dist/gates/approval.md +63 -0
  133. package/pennyfarthing-dist/gates/confidence-sm.md +71 -0
  134. package/pennyfarthing-dist/gates/context-ok.md +56 -0
  135. package/pennyfarthing-dist/gates/evaluations/confidence-sm.md +54 -0
  136. package/pennyfarthing-dist/gates/quality-pass.md +67 -0
  137. package/pennyfarthing-dist/gates/tests-fail.md +84 -0
  138. package/pennyfarthing-dist/gates/tests-pass.md +79 -0
  139. package/pennyfarthing-dist/guides/agent-behavior.md +84 -29
  140. package/pennyfarthing-dist/guides/agent-coordination.md +10 -10
  141. package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +6 -6
  142. package/pennyfarthing-dist/guides/agent-template-tactical.md +1 -1
  143. package/pennyfarthing-dist/guides/bell-mode.md +1 -1
  144. package/pennyfarthing-dist/guides/bikerack.md +10 -10
  145. package/pennyfarthing-dist/guides/brownfield-tools.md +24 -24
  146. package/pennyfarthing-dist/guides/command-tag-taxonomy.md +1 -1
  147. package/pennyfarthing-dist/guides/gate-schema.md +2 -2
  148. package/pennyfarthing-dist/guides/gates.md +3 -3
  149. package/pennyfarthing-dist/guides/handoff-cli.md +8 -8
  150. package/pennyfarthing-dist/guides/hooks.md +29 -29
  151. package/pennyfarthing-dist/guides/prime.md +2 -2
  152. package/pennyfarthing-dist/guides/reflector.md +1 -1
  153. package/pennyfarthing-dist/guides/skill-schema.md +6 -6
  154. package/pennyfarthing-dist/guides/tandem-protocol.md +3 -3
  155. package/pennyfarthing-dist/guides/workflow-schema.md +1 -1
  156. package/pennyfarthing-dist/guides/worktree-mode.md +3 -3
  157. package/pennyfarthing-dist/guides/xml-tags.md +8 -8
  158. package/pennyfarthing-dist/scripts/README.md +4 -4
  159. package/pennyfarthing-dist/scripts/core/agent-session.sh +2 -5
  160. package/pennyfarthing-dist/scripts/core/check-context.sh +3 -1
  161. package/pennyfarthing-dist/scripts/core/pf.sh +5 -0
  162. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +4 -89
  163. package/pennyfarthing-dist/scripts/core/prime.sh +2 -25
  164. package/pennyfarthing-dist/scripts/git/README.md +14 -14
  165. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +2 -3
  166. package/pennyfarthing-dist/scripts/git/git-status-all.sh +2 -3
  167. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +2 -3
  168. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +2 -4
  169. package/pennyfarthing-dist/scripts/hooks/README.md +6 -6
  170. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +4 -183
  171. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +4 -95
  172. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +4 -65
  173. package/pennyfarthing-dist/scripts/hooks/cyclist-pretooluse-hook.sh +3 -31
  174. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +5 -4
  175. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +29 -34
  176. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +4 -71
  177. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +3 -19
  178. package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +4 -30
  179. package/pennyfarthing-dist/scripts/hooks/session-start.sh +3 -32
  180. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +4 -65
  181. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +4 -78
  182. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +3 -93
  183. package/pennyfarthing-dist/scripts/lib/env.sh +34 -0
  184. package/pennyfarthing-dist/scripts/lib/run-pf.sh +39 -0
  185. package/pennyfarthing-dist/scripts/misc/README.md +1 -1
  186. package/pennyfarthing-dist/scripts/misc/statusline.sh +4 -301
  187. package/pennyfarthing-dist/scripts/sprint/README.md +21 -21
  188. package/pennyfarthing-dist/scripts/workflow/README.md +2 -2
  189. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +2 -16
  190. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +3 -3
  191. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +3 -3
  192. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +3 -3
  193. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +3 -3
  194. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +3 -3
  195. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +3 -3
  196. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +3 -3
  197. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +3 -3
  198. package/pennyfarthing-dist/skills/pf-bc/examples.md +23 -23
  199. package/pennyfarthing-dist/skills/pf-bc/skill.md +17 -17
  200. package/pennyfarthing-dist/skills/pf-bc/usage.md +8 -8
  201. package/pennyfarthing-dist/skills/pf-jira/SKILL.md +15 -15
  202. package/pennyfarthing-dist/skills/pf-jira/examples.md +48 -48
  203. package/pennyfarthing-dist/skills/pf-jira/usage.md +15 -15
  204. package/pennyfarthing-dist/skills/pf-sprint/examples.md +80 -80
  205. package/pennyfarthing-dist/skills/pf-sprint/skill.md +35 -35
  206. package/pennyfarthing-dist/skills/pf-sprint/usage.md +30 -30
  207. package/pennyfarthing-dist/skills/pf-theme/examples.md +15 -15
  208. package/pennyfarthing-dist/skills/pf-theme/skill.md +6 -6
  209. package/pennyfarthing-dist/skills/pf-theme/usage.md +5 -5
  210. package/pennyfarthing-dist/skills/pf-workflow/examples.md +27 -27
  211. package/pennyfarthing-dist/skills/pf-workflow/skill.md +11 -11
  212. package/pennyfarthing-dist/skills/pf-workflow/usage.md +11 -11
  213. package/pennyfarthing-dist/skills/skill-registry.yaml +19 -19
  214. package/pennyfarthing-dist/templates/settings.local.json.template +19 -10
  215. package/pennyfarthing-dist/workflows/bdd-team.yaml +89 -0
  216. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +1 -1
  217. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +1 -1
  218. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +1 -1
  219. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +1 -1
  220. package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +47 -0
  221. package/pennyfarthing-dist/workflows/tdd-team.yaml +80 -0
  222. package/pennyfarthing-dist/workflows/tdd.yaml +11 -2
  223. package/pennyfarthing_scripts/CLAUDE.md +19 -10
  224. package/pennyfarthing_scripts/__init__.py +1 -1
  225. package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  226. package/pennyfarthing_scripts/__pycache__/bellmode_hook.cpython-314.pyc +0 -0
  227. package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
  228. package/pennyfarthing_scripts/__pycache__/context.cpython-314.pyc +0 -0
  229. package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
  230. package/pennyfarthing_scripts/__pycache__/pretooluse_hook.cpython-314.pyc +0 -0
  231. package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
  232. package/pennyfarthing_scripts/__pycache__/session_start_hook.cpython-314.pyc +0 -0
  233. package/pennyfarthing_scripts/bc/__pycache__/cli.cpython-314.pyc +0 -0
  234. package/pennyfarthing_scripts/bc/__pycache__/focus.cpython-314.pyc +0 -0
  235. package/pennyfarthing_scripts/bc/__pycache__/split.cpython-314.pyc +0 -0
  236. package/pennyfarthing_scripts/bc/cli.py +2 -2
  237. package/pennyfarthing_scripts/bellmode_hook.py +9 -296
  238. package/pennyfarthing_scripts/bikerack/__pycache__/audit_log_panel.cpython-314.pyc +0 -0
  239. package/pennyfarthing_scripts/bikerack/__pycache__/background_panel.cpython-314.pyc +0 -0
  240. package/pennyfarthing_scripts/bikerack/__pycache__/base_panel.cpython-314.pyc +0 -0
  241. package/pennyfarthing_scripts/bikerack/__pycache__/changed_panel.cpython-314.pyc +0 -0
  242. package/pennyfarthing_scripts/bikerack/__pycache__/context_meter_footer.cpython-314.pyc +0 -0
  243. package/pennyfarthing_scripts/bikerack/__pycache__/debug_panel.cpython-314.pyc +0 -0
  244. package/pennyfarthing_scripts/bikerack/__pycache__/diffs_panel.cpython-314.pyc +0 -0
  245. package/pennyfarthing_scripts/bikerack/__pycache__/events.cpython-314.pyc +0 -0
  246. package/pennyfarthing_scripts/bikerack/__pycache__/git_panel.cpython-314.pyc +0 -0
  247. package/pennyfarthing_scripts/bikerack/__pycache__/launcher.cpython-314.pyc +0 -0
  248. package/pennyfarthing_scripts/bikerack/__pycache__/portrait_resolver.cpython-314.pyc +0 -0
  249. package/pennyfarthing_scripts/bikerack/__pycache__/progress_panel.cpython-314.pyc +0 -0
  250. package/pennyfarthing_scripts/bikerack/__pycache__/sprint_panel.cpython-314.pyc +0 -0
  251. package/pennyfarthing_scripts/bikerack/__pycache__/story_detail_data.cpython-314.pyc +0 -0
  252. package/pennyfarthing_scripts/bikerack/__pycache__/story_detail_screen.cpython-314.pyc +0 -0
  253. package/pennyfarthing_scripts/bikerack/__pycache__/tui.cpython-314.pyc +0 -0
  254. package/pennyfarthing_scripts/bikerack/__pycache__/ws_client.cpython-314.pyc +0 -0
  255. package/pennyfarthing_scripts/bikerack/audit_log_panel.py +161 -0
  256. package/pennyfarthing_scripts/bikerack/base_panel.py +27 -4
  257. package/pennyfarthing_scripts/bikerack/changed_panel.py +96 -4
  258. package/pennyfarthing_scripts/bikerack/context_meter_footer.py +88 -0
  259. package/pennyfarthing_scripts/bikerack/debug_panel.py +1 -1
  260. package/pennyfarthing_scripts/bikerack/diffs_panel.py +30 -0
  261. package/pennyfarthing_scripts/bikerack/events.py +28 -0
  262. package/pennyfarthing_scripts/bikerack/launcher.py +6 -6
  263. package/pennyfarthing_scripts/bikerack/portrait_resolver.py +139 -0
  264. package/pennyfarthing_scripts/bikerack/progress_panel.py +0 -1
  265. package/pennyfarthing_scripts/bikerack/sprint_panel.py +373 -142
  266. package/pennyfarthing_scripts/bikerack/story_detail_data.py +247 -0
  267. package/pennyfarthing_scripts/bikerack/story_detail_screen.py +177 -0
  268. package/pennyfarthing_scripts/bikerack/tui.py +304 -62
  269. package/pennyfarthing_scripts/bikerack/ws_client.py +2 -2
  270. package/pennyfarthing_scripts/cli.py +5 -0
  271. package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
  272. package/pennyfarthing_scripts/common/config.py +29 -2
  273. package/pennyfarthing_scripts/common/pr_config.py +38 -0
  274. package/pennyfarthing_scripts/consultation/__pycache__/__init__.cpython-314.pyc +0 -0
  275. package/pennyfarthing_scripts/consultation/__pycache__/cli.cpython-314.pyc +0 -0
  276. package/pennyfarthing_scripts/consultation/cli.py +3 -3
  277. package/pennyfarthing_scripts/context.py +3 -3
  278. package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
  279. package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
  280. package/pennyfarthing_scripts/git/__pycache__/repos.cpython-314.pyc +0 -0
  281. package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
  282. package/pennyfarthing_scripts/git/hooks_installer.py +2 -3
  283. package/pennyfarthing_scripts/git/status_all.py +1 -1
  284. package/pennyfarthing_scripts/git/worktree.py +2 -2
  285. package/pennyfarthing_scripts/git_group/__pycache__/cli.cpython-314.pyc +0 -0
  286. package/pennyfarthing_scripts/handoff/__pycache__/cli.cpython-314.pyc +0 -0
  287. package/pennyfarthing_scripts/handoff/__pycache__/complete_phase.cpython-314.pyc +0 -0
  288. package/pennyfarthing_scripts/handoff/__pycache__/marker.cpython-314.pyc +0 -0
  289. package/pennyfarthing_scripts/handoff/__pycache__/phase_check.cpython-314.pyc +0 -0
  290. package/pennyfarthing_scripts/handoff/__pycache__/resolve_gate.cpython-314.pyc +0 -0
  291. package/pennyfarthing_scripts/handoff/cli.py +33 -1
  292. package/pennyfarthing_scripts/handoff/complete_phase.py +28 -0
  293. package/pennyfarthing_scripts/handoff/marker.py +15 -15
  294. package/pennyfarthing_scripts/handoff/phase_check.py +96 -0
  295. package/pennyfarthing_scripts/handoff/resolve_gate.py +13 -1
  296. package/pennyfarthing_scripts/hooks/__init__.py +442 -0
  297. package/pennyfarthing_scripts/hooks/__pycache__/__init__.cpython-314.pyc +0 -0
  298. package/pennyfarthing_scripts/hooks/__pycache__/bell_mode.cpython-314.pyc +0 -0
  299. package/pennyfarthing_scripts/hooks/__pycache__/cli.cpython-314.pyc +0 -0
  300. package/pennyfarthing_scripts/hooks/__pycache__/context_breaker.cpython-314.pyc +0 -0
  301. package/pennyfarthing_scripts/hooks/__pycache__/context_warning.cpython-314.pyc +0 -0
  302. package/pennyfarthing_scripts/hooks/__pycache__/cyclist_pretooluse.cpython-314.pyc +0 -0
  303. package/pennyfarthing_scripts/hooks/__pycache__/pre_edit_check.cpython-314.pyc +0 -0
  304. package/pennyfarthing_scripts/hooks/__pycache__/reflector_check.cpython-314.pyc +0 -0
  305. package/pennyfarthing_scripts/hooks/__pycache__/schema_validation.cpython-314.pyc +0 -0
  306. package/pennyfarthing_scripts/hooks/__pycache__/session_start.cpython-314.pyc +0 -0
  307. package/pennyfarthing_scripts/hooks/__pycache__/session_stop.cpython-314.pyc +0 -0
  308. package/pennyfarthing_scripts/hooks/__pycache__/sprint_yaml_validation.cpython-314.pyc +0 -0
  309. package/pennyfarthing_scripts/hooks/__pycache__/statusline.cpython-314.pyc +0 -0
  310. package/pennyfarthing_scripts/hooks/bell_mode.py +214 -0
  311. package/pennyfarthing_scripts/hooks/cli.py +96 -0
  312. package/pennyfarthing_scripts/hooks/context_breaker.py +104 -0
  313. package/pennyfarthing_scripts/hooks/context_warning.py +66 -0
  314. package/pennyfarthing_scripts/hooks/cyclist_pretooluse.py +129 -0
  315. package/pennyfarthing_scripts/hooks/pre_edit_check.py +77 -0
  316. package/pennyfarthing_scripts/hooks/reflector_check.py +270 -0
  317. package/pennyfarthing_scripts/hooks/schema_validation.py +202 -0
  318. package/pennyfarthing_scripts/hooks/session_start.py +294 -0
  319. package/pennyfarthing_scripts/hooks/session_stop.py +111 -0
  320. package/pennyfarthing_scripts/hooks/sprint_yaml_validation.py +97 -0
  321. package/pennyfarthing_scripts/hooks/statusline.py +429 -0
  322. package/pennyfarthing_scripts/hooks.py +27 -432
  323. package/pennyfarthing_scripts/pretooluse_hook.py +3 -185
  324. package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  325. package/pennyfarthing_scripts/prime/heatmap.py +3 -15
  326. package/pennyfarthing_scripts/prime/workflow.py +2 -1
  327. package/pennyfarthing_scripts/schema_validation_hook.py +3 -298
  328. package/pennyfarthing_scripts/session_start_hook.py +4 -186
  329. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  330. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  331. package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
  332. package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
  333. package/pennyfarthing_scripts/sprint/cli.py +121 -0
  334. package/pennyfarthing_scripts/sprint/loader.py +154 -3
  335. package/pennyfarthing_scripts/sprint/story_update.py +26 -0
  336. package/pennyfarthing_scripts/tests/__pycache__/test_bikerack.cpython-314-pytest-9.0.2.pyc +0 -0
  337. package/pennyfarthing_scripts/tests/__pycache__/test_handoff_cli.cpython-314-pytest-9.0.2.pyc +0 -0
  338. package/pennyfarthing_scripts/tests/__pycache__/test_workflow_list_team.cpython-314-pytest-9.0.2.pyc +0 -0
  339. package/pennyfarthing_scripts/tests/test_bikerack.py +26 -26
  340. package/pennyfarthing_scripts/tests/test_dialogue_manager.py +0 -1
  341. package/pennyfarthing_scripts/tests/test_sprint_panel.py +344 -265
  342. package/pennyfarthing_scripts/tests/test_workflow_list_team.py +147 -0
  343. package/pennyfarthing_scripts/validate/__pycache__/cli.cpython-314.pyc +0 -0
  344. package/pennyfarthing_scripts/validate/adapters/__pycache__/skill_command.cpython-314.pyc +0 -0
  345. package/pennyfarthing_scripts/validate/adapters/__pycache__/tandem_awareness.cpython-314.pyc +0 -0
  346. package/pennyfarthing_scripts/validate/adapters/__pycache__/team_mode.cpython-314.pyc +0 -0
  347. package/pennyfarthing_scripts/validate/adapters/__pycache__/workflow.cpython-314.pyc +0 -0
  348. package/pennyfarthing_scripts/validate/adapters/team_mode.py +323 -0
  349. package/pennyfarthing_scripts/validate/adapters/workflow.py +19 -0
  350. package/pennyfarthing_scripts/welcome_hook.py +3 -149
  351. package/pennyfarthing_scripts/workflow/__pycache__/__init__.cpython-314.pyc +0 -0
  352. package/pennyfarthing_scripts/workflow/__pycache__/cli.cpython-314.pyc +0 -0
  353. package/pennyfarthing_scripts/workflow/__pycache__/helpers.cpython-314.pyc +0 -0
  354. package/pennyfarthing_scripts/workflow/__pycache__/scale.cpython-314.pyc +0 -0
  355. package/pennyfarthing_scripts/workflow/__pycache__/state.cpython-314.pyc +0 -0
  356. package/pennyfarthing_scripts/workflow/__pycache__/team_lifecycle.cpython-314.pyc +0 -0
  357. package/pennyfarthing_scripts/workflow/cli.py +22 -20
  358. package/pennyfarthing_scripts/workflow/state.py +0 -1
  359. package/pennyfarthing_scripts/workflow/team_lifecycle.py +256 -0
  360. package/packages/core/dist/cli/cyclist-migration.test.d.ts +0 -16
  361. package/packages/core/dist/cli/cyclist-migration.test.d.ts.map +0 -1
  362. package/packages/core/dist/cli/cyclist-migration.test.js +0 -229
  363. package/packages/core/dist/cli/cyclist-migration.test.js.map +0 -1
  364. package/packages/core/dist/scripts/theme-detail.test.d.ts +0 -10
  365. package/packages/core/dist/scripts/theme-detail.test.d.ts.map +0 -1
  366. package/packages/core/dist/scripts/theme-detail.test.js +0 -199
  367. package/packages/core/dist/scripts/theme-detail.test.js.map +0 -1
@@ -4,178 +4,178 @@
4
4
 
5
5
  ```bash
6
6
  # Full sprint status
7
- pf sprint status
7
+ pf.sh sprint status
8
8
 
9
9
  # Only backlog stories
10
- pf sprint status backlog
10
+ pf.sh sprint status backlog
11
11
 
12
12
  # Only in-progress work
13
- pf sprint status in-progress
13
+ pf.sh sprint status in-progress
14
14
 
15
15
  # Only completed stories
16
- pf sprint status done
16
+ pf.sh sprint status done
17
17
 
18
18
  # Available stories grouped by epic
19
- pf sprint backlog
19
+ pf.sh sprint backlog
20
20
 
21
21
  # Sprint metrics and velocity
22
- pf sprint metrics
23
- pf sprint metrics --json
22
+ pf.sh sprint metrics
23
+ pf.sh sprint metrics --json
24
24
 
25
25
  # Sprint header as JSON (for scripts)
26
- pf sprint info
26
+ pf.sh sprint info
27
27
 
28
28
  # Future initiatives overview
29
- pf sprint future
29
+ pf.sh sprint future
30
30
 
31
31
  # Future epic detail with stories
32
- pf sprint future epic-55
32
+ pf.sh sprint future epic-55
33
33
  ```
34
34
 
35
35
  ## Starting Work
36
36
 
37
37
  ```bash
38
38
  # Show available stories (interactive)
39
- pf sprint work
39
+ pf.sh sprint work
40
40
 
41
41
  # Start specific story
42
- pf sprint work 91-3
42
+ pf.sh sprint work 91-3
43
43
 
44
44
  # Auto-select highest priority
45
- pf sprint work next
45
+ pf.sh sprint work next
46
46
 
47
47
  # Preview without starting
48
- pf sprint work 91-3 --dry-run
48
+ pf.sh sprint work 91-3 --dry-run
49
49
 
50
50
  # Check story availability (JSON output)
51
- pf sprint check 91-3
52
- pf sprint check MSSCI-15033
53
- pf sprint check next
51
+ pf.sh sprint check 91-3
52
+ pf.sh sprint check MSSCI-15033
53
+ pf.sh sprint check next
54
54
  ```
55
55
 
56
56
  ## Story Operations
57
57
 
58
58
  ```bash
59
59
  # Show story details
60
- pf sprint story show 91-3
61
- pf sprint story show MSSCI-15033 --json
60
+ pf.sh sprint story show 91-3
61
+ pf.sh sprint story show MSSCI-15033 --json
62
62
 
63
63
  # Add story to epic
64
- pf sprint story add 91 "Add error handling" 3
65
- pf sprint story add 91 "Fix null pointer" 2 --type bug
66
- pf sprint story add 91 "Refactor parser" 3 --workflow trivial --priority p0
64
+ pf.sh sprint story add 91 "Add error handling" 3
65
+ pf.sh sprint story add 91 "Fix null pointer" 2 --type bug
66
+ pf.sh sprint story add 91 "Refactor parser" 3 --workflow trivial --priority p0
67
67
 
68
68
  # Add standalone story to initiative
69
- pf sprint story add --initiative technical-debt "Fix flaky test" 2 --type bug
69
+ pf.sh sprint story add --initiative technical-debt "Fix flaky test" 2 --type bug
70
70
 
71
71
  # Update story fields
72
- pf sprint story update 91-3 --status in_progress
73
- pf sprint story update 91-3 --status done
74
- pf sprint story update 91-3 --points 5 --priority P0
75
- pf sprint story update 91-3 --assigned-to keith.avery@1898andco.io
76
- pf sprint story update 91-3 --workflow tdd-tandem
77
- pf sprint story update 91-3 --status done --dry-run
72
+ pf.sh sprint story update 91-3 --status in_progress
73
+ pf.sh sprint story update 91-3 --status done
74
+ pf.sh sprint story update 91-3 --points 5 --priority P0
75
+ pf.sh sprint story update 91-3 --assigned-to keith.avery@1898andco.io
76
+ pf.sh sprint story update 91-3 --workflow tdd-tandem
77
+ pf.sh sprint story update 91-3 --status done --dry-run
78
78
 
79
79
  # Get single field
80
- pf sprint story field 91-3 workflow # tdd
81
- pf sprint story field 91-3 jira # MSSCI-15033
82
- pf sprint story field 91-3 status # in_progress
80
+ pf.sh sprint story field 91-3 workflow # tdd
81
+ pf.sh sprint story field 91-3 jira # MSSCI-15033
82
+ pf.sh sprint story field 91-3 status # in_progress
83
83
 
84
84
  # Sizing guidelines
85
- pf sprint story size
86
- pf sprint story size 5
85
+ pf.sh sprint story size
86
+ pf.sh sprint story size 5
87
87
 
88
88
  # Story templates
89
- pf sprint story template
90
- pf sprint story template feature
91
- pf sprint story template bug
89
+ pf.sh sprint story template
90
+ pf.sh sprint story template feature
91
+ pf.sh sprint story template bug
92
92
 
93
93
  # Complete story (archive, merge, Jira transition)
94
- pf sprint story finish 91-3
95
- pf sprint story finish 91-3 --dry-run
94
+ pf.sh sprint story finish 91-3
95
+ pf.sh sprint story finish 91-3 --dry-run
96
96
 
97
97
  # Claim/unclaim in Jira
98
- pf sprint story claim MSSCI-15033
99
- pf sprint story claim MSSCI-15033 --unclaim
98
+ pf.sh sprint story claim MSSCI-15033
99
+ pf.sh sprint story claim MSSCI-15033 --unclaim
100
100
  ```
101
101
 
102
102
  ## Epic Operations
103
103
 
104
104
  ```bash
105
105
  # Show epic details
106
- pf sprint epic show 91
107
- pf sprint epic show MSSCI-14298
108
- pf sprint epic show 91 --json
106
+ pf.sh sprint epic show 91
107
+ pf.sh sprint epic show MSSCI-14298
108
+ pf.sh sprint epic show 91 --json
109
109
 
110
110
  # Add new epic
111
- pf sprint epic add epic-95 "New Feature Epic"
112
- pf sprint epic add epic-95 "New Feature" --priority p0 --jira MSSCI-15100
113
- pf sprint epic add epic-95 "New Feature" -d "Description of the epic"
111
+ pf.sh sprint epic add epic-95 "New Feature Epic"
112
+ pf.sh sprint epic add epic-95 "New Feature" --priority p0 --jira MSSCI-15100
113
+ pf.sh sprint epic add epic-95 "New Feature" -d "Description of the epic"
114
114
 
115
115
  # Update epic
116
- pf sprint epic update 91 --status in_progress
117
- pf sprint epic update MSSCI-14298 --priority P0
118
- pf sprint epic update 91 --status done --dry-run
116
+ pf.sh sprint epic update 91 --status in_progress
117
+ pf.sh sprint epic update MSSCI-14298 --priority P0
118
+ pf.sh sprint epic update 91 --status done --dry-run
119
119
 
120
120
  # Promote from future to current sprint
121
- pf sprint epic promote epic-55
122
- pf sprint epic promote 55
123
- pf sprint epic promote epic-55 --dry-run
121
+ pf.sh sprint epic promote epic-55
122
+ pf.sh sprint epic promote 55
123
+ pf.sh sprint epic promote epic-55 --dry-run
124
124
 
125
125
  # Archive completed epics
126
- pf sprint epic archive # Scan all completed
127
- pf sprint epic archive --dry-run # Preview
128
- pf sprint epic archive 91 # Specific epic
129
- pf sprint epic archive 91 --jira # Also update Jira
126
+ pf.sh sprint epic archive # Scan all completed
127
+ pf.sh sprint epic archive --dry-run # Preview
128
+ pf.sh sprint epic archive 91 # Specific epic
129
+ pf.sh sprint epic archive 91 --jira # Also update Jira
130
130
 
131
131
  # Cancel epic and all stories
132
- pf sprint epic cancel 91
133
- pf sprint epic cancel 91 --jira # Also cancel in Jira
134
- pf sprint epic cancel 91 --dry-run
132
+ pf.sh sprint epic cancel 91
133
+ pf.sh sprint epic cancel 91 --jira # Also cancel in Jira
134
+ pf.sh sprint epic cancel 91 --dry-run
135
135
 
136
136
  # Import BMAD epics
137
- pf sprint epic import docs/planning/feature-epics.md
138
- pf sprint epic import docs/planning/feature-epics.md "My Feature" --marker my-feature
139
- pf sprint epic import docs/planning/feature-epics.md --dry-run
137
+ pf.sh sprint epic import docs/planning/feature-epics.md
138
+ pf.sh sprint epic import docs/planning/feature-epics.md "My Feature" --marker my-feature
139
+ pf.sh sprint epic import docs/planning/feature-epics.md --dry-run
140
140
 
141
141
  # Remove from future.yaml
142
- pf sprint epic remove epic-41
143
- pf sprint epic remove epic-41 --dry-run
142
+ pf.sh sprint epic remove epic-41
143
+ pf.sh sprint epic remove epic-41 --dry-run
144
144
 
145
145
  # Get epic field
146
- pf sprint epic field 91 jira # MSSCI-14298
147
- pf sprint epic field 91 title # Epic title
146
+ pf.sh sprint epic field 91 jira # MSSCI-14298
147
+ pf.sh sprint epic field 91 title # Epic title
148
148
  ```
149
149
 
150
150
  ## Initiative Operations
151
151
 
152
152
  ```bash
153
153
  # Show initiative details
154
- pf sprint initiative show benchmark-reliability
155
- pf sprint initiative show technical-debt --json
154
+ pf.sh sprint initiative show benchmark-reliability
155
+ pf.sh sprint initiative show technical-debt --json
156
156
 
157
157
  # Cancel initiative
158
- pf sprint initiative cancel technical-debt
159
- pf sprint initiative cancel technical-debt --jira
160
- pf sprint initiative cancel technical-debt --dry-run
158
+ pf.sh sprint initiative cancel technical-debt
159
+ pf.sh sprint initiative cancel technical-debt --jira
160
+ pf.sh sprint initiative cancel technical-debt --dry-run
161
161
  ```
162
162
 
163
163
  ## Sprint Lifecycle
164
164
 
165
165
  ```bash
166
166
  # Initialize new sprint
167
- pf sprint new 2607 278 2026-02-16 2026-03-01 "Performance and polish"
168
- pf sprint new 2607 278 2026-02-16 2026-03-01 "Performance and polish" --dry-run
167
+ pf.sh sprint new 2607 278 2026-02-16 2026-03-01 "Performance and polish"
168
+ pf.sh sprint new 2607 278 2026-02-16 2026-03-01 "Performance and polish" --dry-run
169
169
 
170
170
  # Archive completed story
171
- pf sprint archive 91-3 856
172
- pf sprint archive 91-3 856 --apply # Archive + remove atomically
171
+ pf.sh sprint archive 91-3 856
172
+ pf.sh sprint archive 91-3 856 --apply # Archive + remove atomically
173
173
 
174
174
  # Validate sprint YAML
175
- pf sprint validate # All validators
176
- pf sprint validate sprint # Sprint YAML only
177
- pf sprint validate --fix # Auto-fix issues
178
- pf sprint validate --strict # Warnings as errors
175
+ pf.sh sprint validate # All validators
176
+ pf.sh sprint validate sprint # Sprint YAML only
177
+ pf.sh sprint validate --fix # Auto-fix issues
178
+ pf.sh sprint validate --strict # Warnings as errors
179
179
  ```
180
180
 
181
181
  ## Sizing Quick Reference
@@ -4,73 +4,73 @@ 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 `pf sprint` CLI commands - never manually edit sprint YAML.
7
+ IMPORTANT: Always use `pf.sh sprint` CLI commands - never manually edit sprint YAML.
8
8
  args: "[status|backlog|work|story|epic|initiative|archive|new|future|info|metrics|validate|standalone]"
9
9
  ---
10
10
 
11
11
  # /pf-sprint - Sprint Management
12
12
 
13
13
  <critical>
14
- Never manually edit `sprint/current-sprint.yaml`. Use `pf sprint` CLI commands for deterministic, correct YAML formatting.
14
+ Never manually edit `sprint/current-sprint.yaml`. Use `pf.sh sprint` CLI commands for deterministic, correct YAML formatting.
15
15
  </critical>
16
16
 
17
17
  ## Quick Reference
18
18
 
19
19
  | Command | CLI | Purpose |
20
20
  |---------|-----|---------|
21
- | `/pf-sprint` | `pf sprint status` | Show sprint status |
22
- | `/pf-sprint status [filter]` | `pf sprint status [filter]` | Filter: `backlog`, `todo`, `in-progress`, `review`, `done` |
23
- | `/pf-sprint backlog` | `pf sprint backlog` | Available stories by epic |
24
- | `/pf-sprint work [id]` | `pf sprint work [story-id] [--dry-run]` | Start work on a story |
25
- | `/pf-sprint archive <id> [pr]` | `pf sprint archive <id> [pr] [--apply] [--dry-run]` | Archive completed story |
26
- | `/pf-sprint new ...` | `pf sprint new <yyww> <jira-id> <start> <end> "<goal>" [--dry-run]` | Initialize new sprint |
27
- | `/pf-sprint future [epic-id]` | `pf sprint future [epic-id]` | Show future initiatives |
28
- | `/pf-sprint info` | `pf sprint info` | Sprint header as JSON |
29
- | `/pf-sprint metrics` | `pf sprint metrics [--json]` | Sprint progress and velocity |
30
- | `/pf-sprint validate` | `pf sprint validate [--fix] [--strict]` | Validate sprint YAML |
21
+ | `/pf-sprint` | `pf.sh sprint status` | Show sprint status |
22
+ | `/pf-sprint status [filter]` | `pf.sh sprint status [filter]` | Filter: `backlog`, `todo`, `in-progress`, `review`, `done` |
23
+ | `/pf-sprint backlog` | `pf.sh sprint backlog` | Available stories by epic |
24
+ | `/pf-sprint work [id]` | `pf.sh sprint work [story-id] [--dry-run]` | Start work on a story |
25
+ | `/pf-sprint archive <id> [pr]` | `pf.sh sprint archive <id> [pr] [--apply] [--dry-run]` | Archive completed story |
26
+ | `/pf-sprint new ...` | `pf.sh sprint new <yyww> <jira-id> <start> <end> "<goal>" [--dry-run]` | Initialize new sprint |
27
+ | `/pf-sprint future [epic-id]` | `pf.sh sprint future [epic-id]` | Show future initiatives |
28
+ | `/pf-sprint info` | `pf.sh sprint info` | Sprint header as JSON |
29
+ | `/pf-sprint metrics` | `pf.sh sprint metrics [--json]` | Sprint progress and velocity |
30
+ | `/pf-sprint validate` | `pf.sh sprint validate [--fix] [--strict]` | Validate sprint YAML |
31
31
 
32
32
  ### Story Commands
33
33
 
34
34
  | Command | CLI | Purpose |
35
35
  |---------|-----|---------|
36
- | `/pf-sprint story show <id>` | `pf sprint story show <id> [--json]` | Show story details |
37
- | `/pf-sprint story add ...` | `pf sprint story add <epic-id> "<title>" <pts> [opts]` | Add story to epic |
38
- | `/pf-sprint story update <id>` | `pf sprint story update <id> [opts]` | Update story fields |
39
- | `/pf-sprint story field <id> <f>` | `pf sprint story field <id> <field>` | Get single field value |
40
- | `/pf-sprint story size [pts]` | `pf sprint story size [points]` | Sizing guidelines |
41
- | `/pf-sprint story template [t]` | `pf sprint story template [type]` | Story templates |
42
- | `/pf-sprint story finish <id>` | `pf sprint story finish <id> [--dry-run]` | Complete story workflow |
43
- | `/pf-sprint story claim <id>` | `pf sprint story claim <id> [--claim/--unclaim] [--dry-run]` | Claim/unclaim in Jira |
36
+ | `/pf-sprint story show <id>` | `pf.sh sprint story show <id> [--json]` | Show story details |
37
+ | `/pf-sprint story add ...` | `pf.sh sprint story add <epic-id> "<title>" <pts> [opts]` | Add story to epic |
38
+ | `/pf-sprint story update <id>` | `pf.sh sprint story update <id> [opts]` | Update story fields |
39
+ | `/pf-sprint story field <id> <f>` | `pf.sh sprint story field <id> <field>` | Get single field value |
40
+ | `/pf-sprint story size [pts]` | `pf.sh sprint story size [points]` | Sizing guidelines |
41
+ | `/pf-sprint story template [t]` | `pf.sh sprint story template [type]` | Story templates |
42
+ | `/pf-sprint story finish <id>` | `pf.sh sprint story finish <id> [--dry-run]` | Complete story workflow |
43
+ | `/pf-sprint story claim <id>` | `pf.sh sprint story claim <id> [--claim/--unclaim] [--dry-run]` | Claim/unclaim in Jira |
44
44
 
45
45
  ### Epic Commands
46
46
 
47
47
  | Command | CLI | Purpose |
48
48
  |---------|-----|---------|
49
- | `/pf-sprint epic show <id>` | `pf sprint epic show <id> [--json]` | Show epic details |
50
- | `/pf-sprint epic add <id> <title>` | `pf sprint epic add <id> <title> [opts]` | Add epic to sprint |
51
- | `/pf-sprint epic update <id>` | `pf sprint epic update <id> [--status] [--priority] [--dry-run]` | Update epic fields |
52
- | `/pf-sprint epic promote <id>` | `pf sprint epic promote <id> [--dry-run]` | Move from future to current |
53
- | `/pf-sprint epic archive [id]` | `pf sprint epic archive [id] [--dry-run] [--jira]` | Archive completed epics |
54
- | `/pf-sprint epic cancel <id>` | `pf sprint epic cancel <id> [--jira] [--dry-run]` | Cancel epic and stories |
55
- | `/pf-sprint epic import <file>` | `pf sprint epic import <file> [init] [--marker] [--dry-run]` | Import BMAD epics |
56
- | `/pf-sprint epic remove <id>` | `pf sprint epic remove <id> [--dry-run]` | Remove from future.yaml |
57
- | `/pf-sprint epic field <id> <f>` | `pf sprint epic field <id> <field>` | Get single field value |
49
+ | `/pf-sprint epic show <id>` | `pf.sh sprint epic show <id> [--json]` | Show epic details |
50
+ | `/pf-sprint epic add <id> <title>` | `pf.sh sprint epic add <id> <title> [opts]` | Add epic to sprint |
51
+ | `/pf-sprint epic update <id>` | `pf.sh sprint epic update <id> [--status] [--priority] [--dry-run]` | Update epic fields |
52
+ | `/pf-sprint epic promote <id>` | `pf.sh sprint epic promote <id> [--dry-run]` | Move from future to current |
53
+ | `/pf-sprint epic archive [id]` | `pf.sh sprint epic archive [id] [--dry-run] [--jira]` | Archive completed epics |
54
+ | `/pf-sprint epic cancel <id>` | `pf.sh sprint epic cancel <id> [--jira] [--dry-run]` | Cancel epic and stories |
55
+ | `/pf-sprint epic import <file>` | `pf.sh sprint epic import <file> [init] [--marker] [--dry-run]` | Import BMAD epics |
56
+ | `/pf-sprint epic remove <id>` | `pf.sh sprint epic remove <id> [--dry-run]` | Remove from future.yaml |
57
+ | `/pf-sprint epic field <id> <f>` | `pf.sh sprint epic field <id> <field>` | Get single field value |
58
58
 
59
59
  ### Initiative Commands
60
60
 
61
61
  | Command | CLI | Purpose |
62
62
  |---------|-----|---------|
63
- | `/pf-sprint initiative show <n>` | `pf sprint initiative show <name> [--json]` | Show initiative details |
64
- | `/pf-sprint initiative cancel <n>` | `pf sprint initiative cancel <name> [--jira] [--dry-run]` | Cancel initiative |
63
+ | `/pf-sprint initiative show <n>` | `pf.sh sprint initiative show <name> [--json]` | Show initiative details |
64
+ | `/pf-sprint initiative cancel <n>` | `pf.sh sprint initiative cancel <name> [--jira] [--dry-run]` | Cancel initiative |
65
65
 
66
66
  ### Aliases
67
67
 
68
68
  | Alias | Equivalent |
69
69
  |-------|------------|
70
- | `pf status` | `pf sprint status` |
71
- | `pf backlog` | `pf sprint backlog` |
72
- | `pf work` | `pf sprint work` |
73
- | `pf story` | `pf sprint story` |
70
+ | `pf.sh status` | `pf.sh sprint status` |
71
+ | `pf.sh backlog` | `pf.sh sprint backlog` |
72
+ | `pf.sh work` | `pf.sh sprint work` |
73
+ | `pf.sh story` | `pf.sh sprint story` |
74
74
  | `/pf-session new` | `/pf-sprint work` |
75
75
 
76
76
  ---
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Top-Level Commands
4
4
 
5
- ### `pf sprint status [FILTER]`
5
+ ### `pf.sh sprint status [FILTER]`
6
6
 
7
7
  | Arg | Required | Type | Description |
8
8
  |-----|----------|------|-------------|
@@ -10,11 +10,11 @@
10
10
 
11
11
  Returns sprint metadata, stories grouped by epic, points breakdown.
12
12
 
13
- ### `pf sprint backlog`
13
+ ### `pf.sh sprint backlog`
14
14
 
15
15
  No arguments. Shows stories with `backlog`, `ready`, or `planning` status grouped by epic.
16
16
 
17
- ### `pf sprint work [STORY_ID] [--dry-run]`
17
+ ### `pf.sh sprint work [STORY_ID] [--dry-run]`
18
18
 
19
19
  | Arg/Option | Required | Description |
20
20
  |------------|----------|-------------|
@@ -23,7 +23,7 @@ No arguments. Shows stories with `backlog`, `ready`, or `planning` status groupe
23
23
 
24
24
  Without argument: shows backlog. With `next`: auto-selects highest priority.
25
25
 
26
- ### `pf sprint archive <STORY_ID> [PR_NUMBER] [--apply] [--dry-run]`
26
+ ### `pf.sh sprint archive <STORY_ID> [PR_NUMBER] [--apply] [--dry-run]`
27
27
 
28
28
  | Arg/Option | Required | Description |
29
29
  |------------|----------|-------------|
@@ -32,7 +32,7 @@ Without argument: shows backlog. With `next`: auto-selects highest priority.
32
32
  | `--apply` | No | Also remove from current-sprint.yaml |
33
33
  | `--dry-run` | No | Preview without making changes |
34
34
 
35
- ### `pf sprint new <YYWW> <JIRA_ID> <START> <END> <GOAL> [--dry-run]`
35
+ ### `pf.sh sprint new <YYWW> <JIRA_ID> <START> <END> <GOAL> [--dry-run]`
36
36
 
37
37
  | Arg | Required | Description |
38
38
  |-----|----------|-------------|
@@ -45,7 +45,7 @@ Without argument: shows backlog. With `next`: auto-selects highest priority.
45
45
 
46
46
  Creates `sprint/current-sprint.yaml` and `sprint/archive/sprint-{YYWW}-completed.yaml`.
47
47
 
48
- ### `pf sprint future [EPIC_ID]`
48
+ ### `pf.sh sprint future [EPIC_ID]`
49
49
 
50
50
  | Arg | Required | Description |
51
51
  |-----|----------|-------------|
@@ -53,11 +53,11 @@ Creates `sprint/current-sprint.yaml` and `sprint/archive/sprint-{YYWW}-completed
53
53
 
54
54
  Without arg: initiative summary. With arg: full epic detail with stories.
55
55
 
56
- ### `pf sprint info`
56
+ ### `pf.sh sprint info`
57
57
 
58
58
  No arguments. Returns sprint header fields plus computed totals as JSON.
59
59
 
60
- ### `pf sprint metrics [--json]`
60
+ ### `pf.sh sprint metrics [--json]`
61
61
 
62
62
  | Option | Description |
63
63
  |--------|-------------|
@@ -65,7 +65,7 @@ No arguments. Returns sprint header fields plus computed totals as JSON.
65
65
 
66
66
  Shows points, stories, timeline, and velocity tracking.
67
67
 
68
- ### `pf sprint check <ID>`
68
+ ### `pf.sh sprint check <ID>`
69
69
 
70
70
  | Arg | Required | Description |
71
71
  |-----|----------|-------------|
@@ -73,7 +73,7 @@ Shows points, stories, timeline, and velocity tracking.
73
73
 
74
74
  Returns JSON with `type` (`story`, `epic`, `next`, `not_found`), availability, and details.
75
75
 
76
- ### `pf sprint validate [SUBCOMMAND] [--fix] [--strict]`
76
+ ### `pf.sh sprint validate [SUBCOMMAND] [--fix] [--strict]`
77
77
 
78
78
  | Arg/Option | Required | Description |
79
79
  |------------|----------|-------------|
@@ -85,14 +85,14 @@ Returns JSON with `type` (`story`, `epic`, `next`, `not_found`), availability, a
85
85
 
86
86
  ## Story Commands
87
87
 
88
- ### `pf sprint story show <STORY_ID> [--json]`
88
+ ### `pf.sh sprint story show <STORY_ID> [--json]`
89
89
 
90
90
  | Arg/Option | Required | Description |
91
91
  |------------|----------|-------------|
92
92
  | `STORY_ID` | Yes | Story ID (e.g., `MSSCI-12664` or `67-1`) |
93
93
  | `--json` | No | Output as JSON |
94
94
 
95
- ### `pf sprint story add <EPIC_ID> <TITLE> <POINTS> [options]`
95
+ ### `pf.sh sprint story add <EPIC_ID> <TITLE> <POINTS> [options]`
96
96
 
97
97
  | Arg/Option | Required | Description |
98
98
  |------------|----------|-------------|
@@ -110,7 +110,7 @@ Returns JSON with `type` (`story`, `epic`, `next`, `not_found`), availability, a
110
110
 
111
111
  When using `--initiative`, positional args shift: `<TITLE> <POINTS>` (no epic ID).
112
112
 
113
- ### `pf sprint story update <STORY_ID> [options]`
113
+ ### `pf.sh sprint story update <STORY_ID> [options]`
114
114
 
115
115
  | Arg/Option | Required | Description |
116
116
  |------------|----------|-------------|
@@ -127,7 +127,7 @@ When using `--initiative`, positional args shift: `<TITLE> <POINTS>` (no epic ID
127
127
 
128
128
  Auto-sets `completed` date when status is `done`. Auto-sets `started` and `assigned_to` when status is `in_progress`.
129
129
 
130
- ### `pf sprint story field <STORY_ID> <FIELD>`
130
+ ### `pf.sh sprint story field <STORY_ID> <FIELD>`
131
131
 
132
132
  | Arg | Required | Description |
133
133
  |-----|----------|-------------|
@@ -136,19 +136,19 @@ Auto-sets `completed` date when status is `done`. Auto-sets `started` and `assig
136
136
 
137
137
  Returns field value or `null`. Defaults: `workflow=tdd`, `status=backlog`, `repos=pennyfarthing`.
138
138
 
139
- ### `pf sprint story size [POINTS]`
139
+ ### `pf.sh sprint story size [POINTS]`
140
140
 
141
141
  | Arg | Required | Description |
142
142
  |-----|----------|-------------|
143
143
  | `POINTS` | No | Specific point value |
144
144
 
145
- ### `pf sprint story template [TYPE]`
145
+ ### `pf.sh sprint story template [TYPE]`
146
146
 
147
147
  | Arg | Required | Description |
148
148
  |-----|----------|-------------|
149
149
  | `TYPE` | No | `feature`, `bug`, `refactor`, `chore` |
150
150
 
151
- ### `pf sprint story finish <STORY_ID> [--dry-run]`
151
+ ### `pf.sh sprint story finish <STORY_ID> [--dry-run]`
152
152
 
153
153
  | Arg/Option | Required | Description |
154
154
  |------------|----------|-------------|
@@ -157,7 +157,7 @@ Returns field value or `null`. Defaults: `workflow=tdd`, `status=backlog`, `repo
157
157
 
158
158
  Requires: session file exists, PR approved, reviewer phase complete.
159
159
 
160
- ### `pf sprint story claim <STORY_ID> [--claim/--unclaim] [--dry-run]`
160
+ ### `pf.sh sprint story claim <STORY_ID> [--claim/--unclaim] [--dry-run]`
161
161
 
162
162
  | Arg/Option | Required | Description |
163
163
  |------------|----------|-------------|
@@ -169,7 +169,7 @@ Requires: session file exists, PR approved, reviewer phase complete.
169
169
 
170
170
  ## Epic Commands
171
171
 
172
- ### `pf sprint epic show <EPIC_ID> [--json]`
172
+ ### `pf.sh sprint epic show <EPIC_ID> [--json]`
173
173
 
174
174
  | Arg/Option | Required | Description |
175
175
  |------------|----------|-------------|
@@ -178,7 +178,7 @@ Requires: session file exists, PR approved, reviewer phase complete.
178
178
 
179
179
  Searches both current sprint and future initiative shards.
180
180
 
181
- ### `pf sprint epic add <EPIC_ID> <TITLE> [options]`
181
+ ### `pf.sh sprint epic add <EPIC_ID> <TITLE> [options]`
182
182
 
183
183
  | Arg/Option | Required | Description |
184
184
  |------------|----------|-------------|
@@ -192,7 +192,7 @@ Searches both current sprint and future initiative shards.
192
192
  | `--sprint-file` | No | Path to sprint YAML file |
193
193
  | `--dry-run` | No | Preview without making changes |
194
194
 
195
- ### `pf sprint epic update <EPIC_ID> [options]`
195
+ ### `pf.sh sprint epic update <EPIC_ID> [options]`
196
196
 
197
197
  | Arg/Option | Required | Description |
198
198
  |------------|----------|-------------|
@@ -202,7 +202,7 @@ Searches both current sprint and future initiative shards.
202
202
  | `--sprint-file` | No | Path to sprint YAML file |
203
203
  | `--dry-run` | No | Preview without making changes |
204
204
 
205
- ### `pf sprint epic promote <EPIC_ID> [--dry-run]`
205
+ ### `pf.sh sprint epic promote <EPIC_ID> [--dry-run]`
206
206
 
207
207
  | Arg/Option | Required | Description |
208
208
  |------------|----------|-------------|
@@ -211,7 +211,7 @@ Searches both current sprint and future initiative shards.
211
211
 
212
212
  Moves epic from initiative shard to current-sprint.yaml. Detects ID collisions. Validates before writing.
213
213
 
214
- ### `pf sprint epic archive [EPIC_ID] [--dry-run] [--jira]`
214
+ ### `pf.sh sprint epic archive [EPIC_ID] [--dry-run] [--jira]`
215
215
 
216
216
  | Arg/Option | Required | Description |
217
217
  |------------|----------|-------------|
@@ -219,7 +219,7 @@ Moves epic from initiative shard to current-sprint.yaml. Detects ID collisions.
219
219
  | `--dry-run` | No | Preview without making changes |
220
220
  | `--jira` | No | Also update Jira epic status to Done |
221
221
 
222
- ### `pf sprint epic cancel <EPIC_ID> [--jira] [--dry-run]`
222
+ ### `pf.sh sprint epic cancel <EPIC_ID> [--jira] [--dry-run]`
223
223
 
224
224
  | Arg/Option | Required | Description |
225
225
  |------------|----------|-------------|
@@ -227,7 +227,7 @@ Moves epic from initiative shard to current-sprint.yaml. Detects ID collisions.
227
227
  | `--jira` | No | Also cancel in Jira |
228
228
  | `--dry-run` | No | Preview without making changes |
229
229
 
230
- ### `pf sprint epic import <FILE> [INITIATIVE] [--marker TAG] [--dry-run]`
230
+ ### `pf.sh sprint epic import <FILE> [INITIATIVE] [--marker TAG] [--dry-run]`
231
231
 
232
232
  | Arg/Option | Required | Description |
233
233
  |------------|----------|-------------|
@@ -236,14 +236,14 @@ Moves epic from initiative shard to current-sprint.yaml. Detects ID collisions.
236
236
  | `--marker` | No | Marker tag for stories (default: `imported`) |
237
237
  | `--dry-run` | No | Preview without making changes |
238
238
 
239
- ### `pf sprint epic remove <EPIC_ID> [--dry-run]`
239
+ ### `pf.sh sprint epic remove <EPIC_ID> [--dry-run]`
240
240
 
241
241
  | Arg/Option | Required | Description |
242
242
  |------------|----------|-------------|
243
243
  | `EPIC_ID` | Yes | Epic ID (e.g., `epic-41`) |
244
244
  | `--dry-run` | No | Preview without making changes |
245
245
 
246
- ### `pf sprint epic field <EPIC_ID> <FIELD>`
246
+ ### `pf.sh sprint epic field <EPIC_ID> <FIELD>`
247
247
 
248
248
  | Arg | Required | Description |
249
249
  |-----|----------|-------------|
@@ -254,14 +254,14 @@ Moves epic from initiative shard to current-sprint.yaml. Detects ID collisions.
254
254
 
255
255
  ## Initiative Commands
256
256
 
257
- ### `pf sprint initiative show <NAME> [--json]`
257
+ ### `pf.sh sprint initiative show <NAME> [--json]`
258
258
 
259
259
  | Arg/Option | Required | Description |
260
260
  |------------|----------|-------------|
261
261
  | `NAME` | Yes | Initiative slug (e.g., `benchmark-reliability`) |
262
262
  | `--json` | No | Output as JSON |
263
263
 
264
- ### `pf sprint initiative cancel <NAME> [--jira] [--dry-run]`
264
+ ### `pf.sh sprint initiative cancel <NAME> [--jira] [--dry-run]`
265
265
 
266
266
  | Arg/Option | Required | Description |
267
267
  |------------|----------|-------------|
@@ -290,4 +290,4 @@ Moves epic from initiative shard to current-sprint.yaml. Detects ID collisions.
290
290
  | Workflow | `tdd`, `trivial`, `bdd`, `tdd-tandem`, `bdd-tandem`, `agent-docs` |
291
291
  | Priority | `P0`, `P1`, `P2`, `P3` |
292
292
 
293
- Note: `tdd-tandem` and `bdd-tandem` are valid workflow values in YAML but the `pf sprint story add --workflow` CLI choice is limited to `tdd`, `trivial`, `bdd`. Set tandem workflows via `pf sprint story update --workflow tdd-tandem`.
293
+ Note: `tdd-tandem` and `bdd-tandem` are valid workflow values in YAML but the `pf.sh sprint story add --workflow` CLI choice is limited to `tdd`, `trivial`, `bdd`. Set tandem workflows via `pf.sh sprint story update --workflow tdd-tandem`.