@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
@@ -15,7 +15,24 @@ model: haiku
15
15
  </arguments>
16
16
 
17
17
  <execution>
18
- ## Run Preflight Script
18
+ ## 1. Create PR (if needed)
19
+
20
+ Before running preflight, check if a PR exists for the branch. If not, create one
21
+ using the project's `pr_mode` config:
22
+
23
+ ```bash
24
+ # Read pr_mode: draft | ready | none
25
+ PR_MODE=$(source .venv/bin/activate && python -m pennyfarthing_scripts.common.pr_config)
26
+ ```
27
+
28
+ - If `PR_MODE=draft`: `gh pr create --draft --title "feat({STORY_ID}): {title}" --body "..." --base develop`
29
+ - If `PR_MODE=ready`: `gh pr create --title "feat({STORY_ID}): {title}" --body "..." --base develop`
30
+ - If `PR_MODE=none`: Skip PR creation entirely.
31
+
32
+ Check for existing PR first: `gh pr list --head {BRANCH} --json number --jq '.[0].number'`
33
+ If a PR already exists, skip creation.
34
+
35
+ ## 2. Run Preflight Script
19
36
 
20
37
  The preflight script runs all checks in parallel using asyncio:
21
38
 
@@ -36,7 +53,7 @@ The script returns JSON with:
36
53
  <critical>
37
54
  ## Jira Transition
38
55
 
39
- The Jira transition to Done is handled by `pf sprint story finish`.
56
+ The Jira transition to Done is handled by `pf.sh sprint story finish`.
40
57
  Do NOT transition Jira here - that would duplicate the finish script's work.
41
58
  This subagent only performs preflight checks and assessment.
42
59
  </critical>
@@ -26,7 +26,7 @@ model: haiku
26
26
 
27
27
  - [ ] Use `/pf-sprint backlog` for initial backlog scan:
28
28
  ```bash
29
- pf sprint backlog
29
+ "$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint backlog
30
30
  ```
31
31
  - [ ] Use `/pf-jira` skill to enrich with Jira status/assignee:
32
32
  - `/pf-jira search "project=MSSCI AND sprint in openSprints()"` - Get all sprint stories
@@ -92,10 +92,10 @@ Other formats break Cyclist detection.
92
92
  EPIC_NUM=$(echo "{STORY_ID}" | cut -d'-' -f1)
93
93
 
94
94
  # Get epic's Jira key (use script, not direct yq)
95
- EPIC_JIRA=$(pf sprint epic field "$EPIC_NUM" jira)
95
+ EPIC_JIRA=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint epic field "$EPIC_NUM" jira)
96
96
  ```
97
97
 
98
- If missing or "null": auto-create via `pf jira create epic {EPIC_NUM}`
98
+ If missing or "null": auto-create via `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira create epic {EPIC_NUM}`
99
99
 
100
100
  ## Step 2: Check Workflow Permissions
101
101
 
@@ -135,14 +135,14 @@ GRANTS=$(cat .claude/settings.local.json 2>/dev/null | jq '.permissions.grants /
135
135
 
136
136
  ## Step 3: Claim in Jira
137
137
 
138
- Use `pf jira check` and `pf jira claim` commands:
138
+ Use the pf wrapper for Jira commands:
139
139
 
140
140
  ```bash
141
141
  # Check availability first
142
- pf jira check {JIRA_KEY}
142
+ "$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira check {JIRA_KEY}
143
143
 
144
144
  # Then claim (assign to self + move to In Progress)
145
- pf jira claim {JIRA_KEY}
145
+ "$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira claim {JIRA_KEY}
146
146
  ```
147
147
 
148
148
  **Exit codes:**
@@ -184,7 +184,7 @@ git checkout -b feat/{STORY_ID}-{SLUG}
184
184
  After session file is created, determine how to route:
185
185
 
186
186
  ```bash
187
- WORKFLOW_TYPE=$(pf workflow type "{WORKFLOW}")
187
+ WORKFLOW_TYPE=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow type "{WORKFLOW}")
188
188
  ```
189
189
 
190
190
  | Workflow Type | Routing |
@@ -25,12 +25,12 @@ The moment you start reading implementation files or planning how code should wo
25
25
  </critical>
26
26
 
27
27
  <critical>
28
- Use `pf jira <command>` for all Jira interactions. Key commands:
28
+ Use the pf wrapper for all Jira interactions. Key commands:
29
29
  ```
30
- pf jira check MSSCI-XXXXX # Check story availability
31
- pf jira claim MSSCI-XXXXX # Claim story (assign + In Progress)
32
- pf jira move MSSCI-XXXXX "Done" # Transition status
33
- pf jira reconcile # Audit YAML vs Jira
30
+ "$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira check MSSCI-XXXXX # Check story availability
31
+ "$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira claim MSSCI-XXXXX # Claim story (assign + In Progress)
32
+ "$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira move MSSCI-XXXXX "Done" # Transition status
33
+ "$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira reconcile # Audit YAML vs Jira
34
34
  ```
35
35
  If they are broken, COMPLAIN LOUDLY
36
36
  </critical>
@@ -107,7 +107,7 @@ Prime script provides workflow state. Route based on state from activation outpu
107
107
 
108
108
  2. **Run finish command:**
109
109
  ```bash
110
- pf sprint story finish {STORY_ID}
110
+ "$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint story finish {STORY_ID}
111
111
  ```
112
112
 
113
113
  3. **Commit results:**
@@ -153,8 +153,8 @@ Present to user:
153
153
 
154
154
  1. **Get workflow type:**
155
155
  ```bash
156
- WORKFLOW=$(pf sprint story field X-Y workflow)
157
- WORKFLOW_TYPE=$(pf workflow type "$WORKFLOW")
156
+ WORKFLOW=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint story field X-Y workflow)
157
+ WORKFLOW_TYPE=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow type "$WORKFLOW")
158
158
  ```
159
159
 
160
160
  2. **Spawn `sm-setup MODE=setup`** with:
@@ -167,7 +167,7 @@ Present to user:
167
167
  ```
168
168
 
169
169
  4. **Route based on workflow type:**
170
- - **Phased workflow** → Run exit protocol: `pf handoff complete-phase` then `pf handoff marker`
170
+ - **Phased workflow** → Run exit protocol: `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff complete-phase` then `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker`
171
171
  - **Stepped workflow** → Tell user to run `/pf-workflow start {workflow}` (no handoff)
172
172
  </session-new-flow>
173
173
 
@@ -212,7 +212,7 @@ Before handoff, verify ALL of these:
212
212
  > **Triggered when:** `EMPTY_BACKLOG_STATE`
213
213
 
214
214
  1. Report: "Sprint backlog empty. All stories done or cancelled."
215
- 2. Show future work: `pf sprint future`
215
+ 2. Show future work: `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint future`
216
216
  3. Offer: "Promote stories from `future.yaml`?" → `/pf-sprint promote {epic-id}`
217
217
 
218
218
  **Never suggest:** Closing sprint early, starting sprint planning. Sprints are fixed two-week periods.
@@ -262,10 +262,10 @@ SM does NOT hand off to agents. Instead, use `/pf-workflow start {name}` to begi
262
262
 
263
263
  Read `**Workflow:**` and `**Phase:**` from session. Query:
264
264
  ```bash
265
- OWNER=$(pf workflow phase-check {workflow} {phase})
265
+ OWNER=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow phase-check {workflow} {phase})
266
266
  ```
267
267
 
268
- **If OWNER != "sm":** Run `pf handoff marker $OWNER`, output result, tell user.
268
+ **If OWNER != "sm":** Run `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker $OWNER`, output result, tell user.
269
269
 
270
270
  **Note:** SM also handles `approved` status (finish phase).
271
271
  </phase-check>
@@ -44,10 +44,10 @@ STORY_ID: "{STORY_ID}"
44
44
 
45
45
  Read `**Workflow:**` and `**Phase:**` from session. Query:
46
46
  ```bash
47
- OWNER=$(pf workflow phase-check {workflow} {phase})
47
+ OWNER=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow phase-check {workflow} {phase})
48
48
  ```
49
49
 
50
- **If OWNER != "tea":** Run `pf handoff marker $OWNER`, output result, tell user.
50
+ **If OWNER != "tea":** Run `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker $OWNER`, output result, tell user.
51
51
  </phase-check>
52
52
 
53
53
  <on-activation>
@@ -40,7 +40,7 @@ This runs lint + typecheck + tests. Exit 0 = all passed.
40
40
  ## Setup
41
41
 
42
42
  ```bash
43
- # Repo config available via: pf git status, or Python API:
43
+ # Repo config available via: pf.sh git status, or Python API:
44
44
  # from pennyfarthing_scripts.git.repos import load_repos_config
45
45
  source .pennyfarthing/scripts/test/test-setup.sh
46
46
 
@@ -5,7 +5,7 @@ description: System Architect - Technical design and architecture
5
5
  <agent-activation>
6
6
  **FIRST:** Use Bash tool to run:
7
7
  ```bash
8
- pf agent start "architect"
8
+ source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "architect"
9
9
  ```
10
10
  This loads your persona and agent context. Adopt the character shown in the output.
11
11
  </agent-activation>
@@ -5,7 +5,7 @@ description: Business Analyst - Requirements discovery and stakeholder analysis
5
5
  <agent-activation>
6
6
  **FIRST:** Use Bash tool to run:
7
7
  ```bash
8
- pf agent start "ba"
8
+ source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "ba"
9
9
  ```
10
10
  This loads your persona and agent context. Adopt the character shown in the output.
11
11
  </agent-activation>
@@ -68,7 +68,7 @@ git status --short
68
68
  git -C pennyfarthing status --short 2>/dev/null
69
69
 
70
70
  # Or use the multi-repo status script:
71
- pf git status --brief
71
+ pf.sh git status --brief
72
72
  ```
73
73
 
74
74
  Collect which repos have changes. If ALL repos are clean, abort with "No changes to commit."
@@ -191,7 +191,7 @@ cd {orchestrator_root}
191
191
 
192
192
  After all repos are processed:
193
193
  ```bash
194
- pf git status --brief
194
+ pf.sh git status --brief
195
195
  ```
196
196
 
197
197
  All repos should show clean.
@@ -5,7 +5,7 @@ description: Developer - Feature implementation and coding
5
5
  <agent-activation>
6
6
  **FIRST:** Use Bash tool to run:
7
7
  ```bash
8
- pf agent start "dev"
8
+ source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "dev"
9
9
  ```
10
10
  This loads your persona and agent context. Adopt the character shown in the output.
11
11
  </agent-activation>
@@ -5,7 +5,7 @@ description: DevOps Engineer - Infrastructure and deployment automation
5
5
  <agent-activation>
6
6
  **FIRST:** Use Bash tool to run:
7
7
  ```bash
8
- pf agent start "devops"
8
+ source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "devops"
9
9
  ```
10
10
  This loads your persona and agent context. Adopt the character shown in the output.
11
11
  </agent-activation>
@@ -16,8 +16,8 @@ Manage epic lifecycle. Start an epic by moving it to the current sprint and gene
16
16
  Start an epic — move to current sprint and generate technical context.
17
17
 
18
18
  ```bash
19
- pf epic start 79
20
- pf epic start epic-79
19
+ pf.sh epic start 79
20
+ pf.sh epic start epic-79
21
21
  ```
22
22
 
23
23
  <workflow>
@@ -33,8 +33,8 @@ pf epic start epic-79
33
33
  Close an epic — verify completion, update status, and archive context.
34
34
 
35
35
  ```bash
36
- pf epic close 79
37
- pf epic close epic-79
36
+ pf.sh epic close 79
37
+ pf.sh epic close epic-79
38
38
  ```
39
39
 
40
40
  <workflow>
@@ -57,8 +57,8 @@ pf epic close epic-79
57
57
  ## CLI Equivalent
58
58
 
59
59
  ```bash
60
- pf epic start <epic-id>
61
- pf epic close <epic-id>
60
+ pf.sh epic start <epic-id>
61
+ pf.sh epic close <epic-id>
62
62
  ```
63
63
 
64
64
  ## Related
@@ -16,7 +16,7 @@ Manage git operations across all configured repos. Consolidates repository statu
16
16
  Check git status of all project repos.
17
17
 
18
18
  ```bash
19
- pf git status [--brief]
19
+ pf.sh git status [--brief]
20
20
  ```
21
21
 
22
22
  Shows branch, uncommitted changes, and ahead/behind status for each configured repo.
@@ -25,18 +25,20 @@ Shows branch, uncommitted changes, and ahead/behind status for each configured r
25
25
 
26
26
  Organize uncommitted changes into proper commits and branches.
27
27
 
28
+ **When this subcommand is invoked, immediately start the stepped workflow:**
29
+
28
30
  ```bash
29
- pf git cleanup
31
+ pf.sh workflow start git-cleanup
30
32
  ```
31
33
 
32
- Starts the git-cleanup stepped workflow via BikeLane. Handles multiple repos.
34
+ Then follow each step's instructions. Use `pf.sh workflow complete-step git-cleanup` to advance between steps. The workflow handles multi-repo analysis, change categorization, branch creation, commits, and push.
33
35
 
34
36
  ### `/pf-git branches <story-id>`
35
37
 
36
38
  Create feature branches in both repos from a story.
37
39
 
38
40
  ```bash
39
- pf git branches 86-3
41
+ pf.sh git branches 86-3
40
42
  ```
41
43
 
42
44
  ### `/pf-git release`
@@ -44,7 +46,7 @@ pf git branches 86-3
44
46
  Interactive release with verification gates.
45
47
 
46
48
  ```bash
47
- pf git release
49
+ pf.sh git release
48
50
  ```
49
51
 
50
52
  Starts the release stepped workflow — an 11-step process with gates at each stage.
@@ -60,13 +62,13 @@ Starts the release stepped workflow — an 11-step process with gates at each st
60
62
 
61
63
  ## CLI Equivalent
62
64
 
63
- All commands are also available via `pf git`:
65
+ All commands are also available via `pf.sh git`:
64
66
 
65
67
  ```bash
66
- pf git status
67
- pf git cleanup
68
- pf git branches 86-3
69
- pf git release
68
+ pf.sh git status
69
+ pf.sh git cleanup
70
+ pf.sh git branches 86-3
71
+ pf.sh git release
70
72
  ```
71
73
 
72
74
  ## Related
@@ -3,7 +3,7 @@ description: Check Pennyfarthing installation health and apply updates
3
3
  ---
4
4
 
5
5
  ```bash
6
- pf agent start "devops"
6
+ source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "devops"
7
7
  ```
8
8
 
9
9
  <agent-activation>
@@ -52,7 +52,7 @@ SM → TEA → Dev → Reviewer → SM (finish)
52
52
 
53
53
  Commands are organized by resource. Each group is accessible via both slash commands and CLI.
54
54
 
55
- ### Sprint — `/pf-sprint` · `pf sprint`
55
+ ### Sprint — `/pf-sprint` · `pf.sh sprint`
56
56
 
57
57
  | Command | Description |
58
58
  |---------|-------------|
@@ -65,7 +65,7 @@ Commands are organized by resource. Each group is accessible via both slash comm
65
65
  | `/pf-sprint story [show\|add\|update\|size\|finish]` | Story operations |
66
66
  | `/pf-sprint epic [show\|add\|promote\|archive]` | Epic operations |
67
67
 
68
- ### Git — `/pf-git` · `pf git`
68
+ ### Git — `/pf-git` · `pf.sh git`
69
69
 
70
70
  | Command | Description |
71
71
  |---------|-------------|
@@ -74,21 +74,21 @@ Commands are organized by resource. Each group is accessible via both slash comm
74
74
  | `/pf-git branches <id>` | Create feature branches from story |
75
75
  | `/pf-git release` | Interactive release workflow |
76
76
 
77
- ### Session — `/pf-session` · `pf session`
77
+ ### Session — `/pf-session` · `pf.sh session`
78
78
 
79
79
  | Command | Description |
80
80
  |---------|-------------|
81
81
  | `/pf-session new` | Start next available story |
82
82
  | `/pf-session continue` | Resume from checkpoint |
83
83
 
84
- ### Epic — `/pf-epic` · `pf epic`
84
+ ### Epic — `/pf-epic` · `pf.sh epic`
85
85
 
86
86
  | Command | Description |
87
87
  |---------|-------------|
88
88
  | `/pf-epic start <id>` | Start epic for development |
89
89
  | `/pf-epic close <id>` | Close completed epic |
90
90
 
91
- ### Jira — `/pf-jira` · `pf jira`
91
+ ### Jira — `/pf-jira` · `pf.sh jira`
92
92
 
93
93
  | Command | Description |
94
94
  |---------|-------------|
@@ -98,7 +98,7 @@ Commands are organized by resource. Each group is accessible via both slash comm
98
98
  | `/pf-jira sync-epic` | Sync epic to Jira |
99
99
  | `/pf-jira reconcile` | Report mismatches |
100
100
 
101
- ### Theme — `/pf-theme` · `pf theme`
101
+ ### Theme — `/pf-theme` · `pf.sh theme`
102
102
 
103
103
  | Command | Description |
104
104
  |---------|-------------|
@@ -108,7 +108,7 @@ Commands are organized by resource. Each group is accessible via both slash comm
108
108
  | `/pf-theme create <name>` | Create custom theme |
109
109
  | `/pf-theme maker` | Interactive theme wizard |
110
110
 
111
- ### Workflow — `/pf-workflow` · `pf workflow`
111
+ ### Workflow — `/pf-workflow` · `pf.sh workflow`
112
112
 
113
113
  | Command | Description |
114
114
  |---------|-------------|
@@ -221,11 +221,11 @@ Based on your current state, here's what you might need:
221
221
 
222
222
  For detailed help on any command group:
223
223
  ```bash
224
- pf help # Overview of all groups
225
- pf help sprint # Sprint commands
226
- pf help git # Git commands
227
- pf help session # Session commands
228
- pf help epic # Epic commands
224
+ pf.sh help # Overview of all groups
225
+ pf.sh help sprint # Sprint commands
226
+ pf.sh help git # Git commands
227
+ pf.sh help session # Session commands
228
+ pf.sh help epic # Epic commands
229
229
  ```
230
230
 
231
231
  ## Documentation
@@ -5,7 +5,7 @@ description: Orchestrator - Coordinator of all agents and meta operations
5
5
  <agent-activation>
6
6
  **FIRST:** Use Bash tool to run:
7
7
  ```bash
8
- pf agent start "orchestrator"
8
+ source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "orchestrator"
9
9
  ```
10
10
  This loads your persona and agent context. Adopt the character shown in the output.
11
11
  </agent-activation>
@@ -5,7 +5,7 @@ description: Product Manager - Strategic planning and prioritization
5
5
  <agent-activation>
6
6
  **FIRST:** Use Bash tool to run:
7
7
  ```bash
8
- pf agent start "pm"
8
+ source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "pm"
9
9
  ```
10
10
  This loads your persona and agent context. Adopt the character shown in the output.
11
11
  </agent-activation>
@@ -4,7 +4,7 @@ description: Load essential project context at agent activation
4
4
 
5
5
  <purpose>
6
6
  Quickly load essential context files to reduce agent cold-start overhead.
7
- Automatically invoked on agent activation via `pf agent start`.
7
+ Automatically invoked on agent activation via `pf.sh agent start`.
8
8
  </purpose>
9
9
 
10
10
  <when-to-use>
@@ -21,19 +21,19 @@ Use the `pf` CLI:
21
21
 
22
22
  ```bash
23
23
  # Load all essential context (default)
24
- pf agent start "sm"
24
+ pf.sh agent start "sm"
25
25
 
26
26
  # Minimal mode - fastest startup
27
- pf agent start "sm" --minimal
27
+ pf.sh agent start "sm" --minimal
28
28
 
29
29
  # Full mode - include domain docs
30
- pf agent start "sm" --full
30
+ pf.sh agent start "sm" --full
31
31
 
32
32
  # Skip persona loading
33
- pf agent start "sm" --no-persona
33
+ pf.sh agent start "sm" --no-persona
34
34
 
35
35
  # JSON output (for Cyclist integration)
36
- pf agent start "sm" --json
36
+ pf.sh agent start "sm" --json
37
37
  ```
38
38
 
39
39
  ## Options
@@ -111,7 +111,7 @@ With `--quiet`, section headers are suppressed.
111
111
  The `/prime` command is automatically invoked when agents activate:
112
112
 
113
113
  1. User invokes `/sm`, `/tea`, `/dev`, or `/reviewer`
114
- 2. `pf agent start <name>` runs
114
+ 2. `pf.sh agent start <name>` runs
115
115
  3. Context is loaded: workflow state, agent definition, persona, behavior guide, sprint context, session, sidecars
116
116
  4. Agent starts with full context AND their learned patterns loaded
117
117
 
@@ -129,7 +129,7 @@ If context becomes stale mid-session, run `/prime` manually:
129
129
  </integration>
130
130
 
131
131
  <reference>
132
- - **CLI:** `pf agent start <name>` or `python3 -m pennyfarthing_scripts.cli agent start <name>`
132
+ - **CLI:** `pf.sh agent start <name>` or `python3 -m pennyfarthing_scripts.cli agent start <name>`
133
133
  - **Loads:** Workflow state, agent definition, persona, behavior guide, sprint context, session, sidecars
134
134
  - **Sidecar location:** `.pennyfarthing/sidecars/{agent}/*.md`
135
135
  - **Behavior guide:** `.pennyfarthing/guides/agent-behavior.md` (all agents)
@@ -5,7 +5,7 @@ description: Code Reviewer - Critical code review and quality enforcement
5
5
  <agent-activation>
6
6
  **FIRST:** Use Bash tool to run:
7
7
  ```bash
8
- pf agent start "reviewer"
8
+ source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "reviewer"
9
9
  ```
10
10
  This loads your persona and agent context. Adopt the character shown in the output.
11
11
  </agent-activation>
@@ -16,19 +16,19 @@ Manage work session lifecycle. Start new stories from the backlog or resume from
16
16
  Start the next available story from the sprint backlog.
17
17
 
18
18
  ```bash
19
- pf session new
19
+ pf.sh session new
20
20
  ```
21
21
 
22
- Equivalent to `pf sprint work next`. Auto-selects the highest priority story.
22
+ Equivalent to `pf.sh sprint work next`. Auto-selects the highest priority story.
23
23
 
24
24
  ### `/pf-session continue [--list] [--story-id ID]`
25
25
 
26
26
  Resume work from a saved checkpoint after context circuit breaker.
27
27
 
28
28
  ```bash
29
- pf session continue # Interactive checkpoint selection
30
- pf session continue --list # Show available checkpoints
31
- pf session continue --story-id MSSCI-12345 # Resume specific story
29
+ pf.sh session continue # Interactive checkpoint selection
30
+ pf.sh session continue --list # Show available checkpoints
31
+ pf.sh session continue --story-id MSSCI-12345 # Resume specific story
32
32
  ```
33
33
 
34
34
  ## Quick Reference
@@ -41,8 +41,8 @@ pf session continue --story-id MSSCI-12345 # Resume specific story
41
41
  ## CLI Equivalent
42
42
 
43
43
  ```bash
44
- pf session new
45
- pf session continue [--list] [--story-id ID]
44
+ pf.sh session new
45
+ pf.sh session continue [--list] [--story-id ID]
46
46
  ```
47
47
 
48
48
  ## Related
@@ -5,7 +5,7 @@ description: Scrum Master - Story coordination and sprint management
5
5
  <agent-activation>
6
6
  **FIRST:** Use Bash tool to run:
7
7
  ```bash
8
- pf agent start "sm"
8
+ source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "sm"
9
9
  ```
10
10
  This loads your persona and agent context. Adopt the character shown in the output.
11
11
  </agent-activation>
@@ -20,7 +20,7 @@ Never manually edit `sprint/current-sprint.yaml`. Always use the provided script
20
20
  Show current sprint status with story counts and points.
21
21
 
22
22
  ```bash
23
- pf sprint status [filter]
23
+ pf.sh sprint status [filter]
24
24
  ```
25
25
 
26
26
  | Filter | Description |
@@ -35,7 +35,7 @@ pf sprint status [filter]
35
35
  Show available stories ready for work, grouped by epic.
36
36
 
37
37
  ```bash
38
- pf sprint backlog
38
+ pf.sh sprint backlog
39
39
  ```
40
40
 
41
41
  ### `/pf-sprint work [story-id|epic-id|next]`
@@ -59,7 +59,7 @@ if [[ "$OPEN_PRS" -gt 0 ]]; then
59
59
  fi
60
60
 
61
61
  # Check if story is available
62
- pf sprint check <story-id>
62
+ pf.sh sprint check <story-id>
63
63
 
64
64
  # Then load SM to begin work
65
65
  ```
@@ -78,7 +78,7 @@ When starting work, this command:
78
78
  Archive a completed story.
79
79
 
80
80
  ```bash
81
- pf sprint archive <story-id> [pr-number] [--apply]
81
+ pf.sh sprint archive <story-id> [pr-number] [--apply]
82
82
  ```
83
83
 
84
84
  | Option | Description |
@@ -90,7 +90,7 @@ pf sprint archive <story-id> [pr-number] [--apply]
90
90
  Initialize a new sprint.
91
91
 
92
92
  ```bash
93
- pf sprint new 2605 277 2026-02-03 2026-02-16 "Sprint goal"
93
+ pf.sh sprint new 2605 277 2026-02-03 2026-02-16 "Sprint goal"
94
94
  ```
95
95
 
96
96
  ### `/pf-sprint future [--epic EPIC_ID]`
@@ -98,7 +98,7 @@ pf sprint new 2605 277 2026-02-03 2026-02-16 "Sprint goal"
98
98
  Show future work available for promotion.
99
99
 
100
100
  ```bash
101
- pf sprint future [--epic epic-XX]
101
+ pf.sh sprint future [--epic epic-XX]
102
102
  ```
103
103
 
104
104
  ### `/pf-sprint promote <epic-id>`
@@ -106,7 +106,7 @@ pf sprint future [--epic epic-XX]
106
106
  Move an epic from future.yaml to current sprint.
107
107
 
108
108
  ```bash
109
- pf sprint epic promote epic-XX
109
+ pf.sh sprint epic promote epic-XX
110
110
  ```
111
111
 
112
112
  ## Quick Reference
@@ -5,7 +5,7 @@ description: Test Engineer/Architect - Test strategy and TDD
5
5
  <agent-activation>
6
6
  **FIRST:** Use Bash tool to run:
7
7
  ```bash
8
- pf agent start "tea"
8
+ source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "tea"
9
9
  ```
10
10
  This loads your persona and agent context. Adopt the character shown in the output.
11
11
  </agent-activation>
@@ -5,7 +5,7 @@ description: Technical Writer - Documentation creation and maintenance
5
5
  <agent-activation>
6
6
  **FIRST:** Use Bash tool to run:
7
7
  ```bash
8
- pf agent start "tech-writer"
8
+ source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "tech-writer"
9
9
  ```
10
10
  This loads your persona and agent context. Adopt the character shown in the output.
11
11
  </agent-activation>