@pennyfarthing/core 11.2.1 → 11.3.1

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 (405) hide show
  1. package/README.md +102 -42
  2. package/package.json +1 -1
  3. package/packages/core/dist/cli/commands/doctor-legacy.test.js +2 -2
  4. package/packages/core/dist/cli/commands/doctor-legacy.test.js.map +1 -1
  5. package/packages/core/dist/cli/commands/doctor.d.ts +55 -0
  6. package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
  7. package/packages/core/dist/cli/commands/doctor.js +324 -50
  8. package/packages/core/dist/cli/commands/doctor.js.map +1 -1
  9. package/packages/core/dist/cli/commands/init.d.ts +12 -0
  10. package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
  11. package/packages/core/dist/cli/commands/init.js +45 -0
  12. package/packages/core/dist/cli/commands/init.js.map +1 -1
  13. package/packages/core/dist/cli/commands/pyproject-install.test.d.ts +19 -0
  14. package/packages/core/dist/cli/commands/pyproject-install.test.d.ts.map +1 -0
  15. package/packages/core/dist/cli/commands/pyproject-install.test.js +261 -0
  16. package/packages/core/dist/cli/commands/pyproject-install.test.js.map +1 -0
  17. package/packages/core/dist/cli/commands/stale-artifacts-cleanup.test.d.ts +17 -0
  18. package/packages/core/dist/cli/commands/stale-artifacts-cleanup.test.d.ts.map +1 -0
  19. package/packages/core/dist/cli/commands/stale-artifacts-cleanup.test.js +470 -0
  20. package/packages/core/dist/cli/commands/stale-artifacts-cleanup.test.js.map +1 -0
  21. package/packages/core/dist/cli/commands/update-consolidation.test.js +14 -6
  22. package/packages/core/dist/cli/commands/update-consolidation.test.js.map +1 -1
  23. package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
  24. package/packages/core/dist/cli/commands/update.js +31 -2
  25. package/packages/core/dist/cli/commands/update.js.map +1 -1
  26. package/packages/core/dist/cli/index.js +2 -0
  27. package/packages/core/dist/cli/index.js.map +1 -1
  28. package/packages/core/dist/cli/utils/python.d.ts.map +1 -1
  29. package/packages/core/dist/cli/utils/python.js +11 -0
  30. package/packages/core/dist/cli/utils/python.js.map +1 -1
  31. package/packages/core/dist/cli/utils/settings-hook-migration.test.d.ts +17 -0
  32. package/packages/core/dist/cli/utils/settings-hook-migration.test.d.ts.map +1 -0
  33. package/packages/core/dist/cli/utils/settings-hook-migration.test.js +382 -0
  34. package/packages/core/dist/cli/utils/settings-hook-migration.test.js.map +1 -0
  35. package/packages/core/dist/cli/utils/settings.d.ts +0 -4
  36. package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
  37. package/packages/core/dist/cli/utils/settings.js +45 -27
  38. package/packages/core/dist/cli/utils/settings.js.map +1 -1
  39. package/packages/core/dist/cli/utils/stale-artifacts.d.ts +59 -0
  40. package/packages/core/dist/cli/utils/stale-artifacts.d.ts.map +1 -0
  41. package/packages/core/dist/cli/utils/stale-artifacts.js +163 -0
  42. package/packages/core/dist/cli/utils/stale-artifacts.js.map +1 -0
  43. package/packages/core/dist/consultation/dialogue-manager.d.ts +1 -1
  44. package/packages/core/dist/consultation/dialogue-manager.d.ts.map +1 -1
  45. package/packages/core/dist/consultation/dialogue-manager.js +1 -1
  46. package/packages/core/dist/consultation/dialogue-manager.js.map +1 -1
  47. package/packages/core/dist/consultation/dialogue-manager.test.js.map +1 -1
  48. package/packages/core/dist/consultation/tandem-metrics.test.js.map +1 -1
  49. package/packages/core/dist/public/css/react.css +1 -1
  50. package/packages/core/dist/public/js/react/react.js +9 -9
  51. package/packages/core/dist/server/api/git.d.ts.map +1 -1
  52. package/packages/core/dist/server/api/git.js +0 -1
  53. package/packages/core/dist/server/api/git.js.map +1 -1
  54. package/packages/core/dist/server/api/index.d.ts +2 -0
  55. package/packages/core/dist/server/api/index.d.ts.map +1 -1
  56. package/packages/core/dist/server/api/index.js +2 -0
  57. package/packages/core/dist/server/api/index.js.map +1 -1
  58. package/packages/core/dist/server/api/project-info.d.ts +11 -0
  59. package/packages/core/dist/server/api/project-info.d.ts.map +1 -0
  60. package/packages/core/dist/server/api/project-info.js +18 -0
  61. package/packages/core/dist/server/api/project-info.js.map +1 -0
  62. package/packages/core/dist/server/otlp-receiver.d.ts.map +1 -1
  63. package/packages/core/dist/server/otlp-receiver.js +18 -1
  64. package/packages/core/dist/server/otlp-receiver.js.map +1 -1
  65. package/packages/core/dist/server/otlp-receiver.test.js +1 -1
  66. package/packages/core/dist/server/otlp-receiver.test.js.map +1 -1
  67. package/packages/core/dist/server/server.d.ts.map +1 -1
  68. package/packages/core/dist/server/server.js +3 -2
  69. package/packages/core/dist/server/server.js.map +1 -1
  70. package/packages/core/dist/server/server.test.d.ts +1 -1
  71. package/packages/core/dist/server/server.test.js +8 -8
  72. package/packages/core/dist/server/settings.d.ts +1 -0
  73. package/packages/core/dist/server/settings.d.ts.map +1 -1
  74. package/packages/core/dist/server/settings.js +18 -0
  75. package/packages/core/dist/server/settings.js.map +1 -1
  76. package/packages/core/dist/workflow/tandem-workflow-templates.test.js +7 -5
  77. package/packages/core/dist/workflow/tandem-workflow-templates.test.js.map +1 -1
  78. package/packages/core/dist/workflow/workflow-migration.test.js +6 -5
  79. package/packages/core/dist/workflow/workflow-migration.test.js.map +1 -1
  80. package/packages/core/dist/workflow/workflow-team-templates.test.d.ts +17 -0
  81. package/packages/core/dist/workflow/workflow-team-templates.test.d.ts.map +1 -0
  82. package/packages/core/dist/workflow/workflow-team-templates.test.js +275 -0
  83. package/packages/core/dist/workflow/workflow-team-templates.test.js.map +1 -0
  84. package/pennyfarthing-dist/agents/dev.md +19 -4
  85. package/pennyfarthing-dist/agents/devops.md +2 -10
  86. package/pennyfarthing-dist/agents/reviewer-preflight.md +4 -5
  87. package/pennyfarthing-dist/agents/reviewer.md +17 -4
  88. package/pennyfarthing-dist/agents/sm-finish.md +1 -1
  89. package/pennyfarthing-dist/agents/sm-setup.md +7 -7
  90. package/pennyfarthing-dist/agents/sm.md +16 -29
  91. package/pennyfarthing-dist/agents/tea.md +2 -2
  92. package/pennyfarthing-dist/agents/testing-runner.md +1 -1
  93. package/pennyfarthing-dist/commands/pf-architect.md +1 -1
  94. package/pennyfarthing-dist/commands/pf-ba.md +1 -1
  95. package/pennyfarthing-dist/commands/pf-chore.md +2 -2
  96. package/pennyfarthing-dist/commands/pf-dev.md +1 -1
  97. package/pennyfarthing-dist/commands/pf-devops.md +1 -1
  98. package/pennyfarthing-dist/commands/pf-epic.md +6 -6
  99. package/pennyfarthing-dist/commands/pf-git.md +10 -10
  100. package/pennyfarthing-dist/commands/pf-health-check.md +31 -12
  101. package/pennyfarthing-dist/commands/pf-help.md +12 -12
  102. package/pennyfarthing-dist/commands/pf-orchestrator.md +1 -1
  103. package/pennyfarthing-dist/commands/pf-pm.md +1 -1
  104. package/pennyfarthing-dist/commands/pf-prime.md +8 -8
  105. package/pennyfarthing-dist/commands/pf-reviewer.md +1 -1
  106. package/pennyfarthing-dist/commands/pf-session.md +7 -7
  107. package/pennyfarthing-dist/commands/pf-sm.md +1 -1
  108. package/pennyfarthing-dist/commands/pf-sprint.md +7 -7
  109. package/pennyfarthing-dist/commands/pf-tea.md +1 -1
  110. package/pennyfarthing-dist/commands/pf-tech-writer.md +1 -1
  111. package/pennyfarthing-dist/commands/pf-theme.md +9 -9
  112. package/pennyfarthing-dist/commands/pf-ux-designer.md +1 -1
  113. package/pennyfarthing-dist/commands/pf-work.md +1 -1
  114. package/pennyfarthing-dist/gates/{confidence-sm.md → confidence.md} +16 -17
  115. package/pennyfarthing-dist/gates/dev-exit.md +75 -0
  116. package/pennyfarthing-dist/gates/merge-ready.md +49 -0
  117. package/pennyfarthing-dist/gates/release-ready.md +95 -0
  118. package/pennyfarthing-dist/gates/reviewer-preflight-check.md +90 -0
  119. package/pennyfarthing-dist/gates/sm-setup-exit.md +82 -0
  120. package/pennyfarthing-dist/guides/agent-behavior.md +129 -20
  121. package/pennyfarthing-dist/guides/agent-coordination.md +10 -10
  122. package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +6 -6
  123. package/pennyfarthing-dist/guides/agent-template-tactical.md +1 -1
  124. package/pennyfarthing-dist/guides/bell-mode.md +1 -1
  125. package/pennyfarthing-dist/guides/bikerack.md +10 -10
  126. package/pennyfarthing-dist/guides/brownfield-tools.md +24 -24
  127. package/pennyfarthing-dist/guides/command-tag-taxonomy.md +1 -1
  128. package/pennyfarthing-dist/guides/gate-schema.md +2 -2
  129. package/pennyfarthing-dist/guides/gates.md +10 -5
  130. package/pennyfarthing-dist/guides/handoff-cli.md +8 -8
  131. package/pennyfarthing-dist/guides/hooks.md +27 -27
  132. package/pennyfarthing-dist/guides/prime.md +2 -2
  133. package/pennyfarthing-dist/guides/reflector.md +1 -1
  134. package/pennyfarthing-dist/guides/skill-schema.md +6 -6
  135. package/pennyfarthing-dist/guides/tandem-protocol.md +3 -3
  136. package/pennyfarthing-dist/guides/workflow-schema.md +1 -1
  137. package/pennyfarthing-dist/guides/worktree-mode.md +3 -3
  138. package/pennyfarthing-dist/guides/xml-tags.md +8 -8
  139. package/pennyfarthing-dist/scripts/README.md +4 -4
  140. package/pennyfarthing-dist/scripts/core/agent-session.sh +2 -5
  141. package/pennyfarthing-dist/scripts/core/check-context.sh +1 -1
  142. package/pennyfarthing-dist/scripts/core/pf.sh +5 -0
  143. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +2 -5
  144. package/pennyfarthing-dist/scripts/core/prime.sh +2 -25
  145. package/pennyfarthing-dist/scripts/git/README.md +14 -14
  146. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +2 -3
  147. package/pennyfarthing-dist/scripts/git/git-status-all.sh +2 -3
  148. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +2 -3
  149. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +2 -4
  150. package/pennyfarthing-dist/scripts/hooks/README.md +6 -6
  151. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +3 -3
  152. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +3 -3
  153. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +3 -3
  154. package/pennyfarthing-dist/scripts/hooks/cyclist-pretooluse-hook.sh +3 -3
  155. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +5 -4
  156. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +2 -1
  157. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +3 -3
  158. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +3 -3
  159. package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +3 -3
  160. package/pennyfarthing-dist/scripts/hooks/session-start.sh +3 -3
  161. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +3 -3
  162. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +3 -3
  163. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +3 -4
  164. package/pennyfarthing-dist/scripts/lib/env.sh +34 -0
  165. package/pennyfarthing-dist/scripts/lib/find-root.sh +5 -0
  166. package/pennyfarthing-dist/scripts/lib/run-pf.sh +43 -0
  167. package/pennyfarthing-dist/scripts/misc/README.md +1 -1
  168. package/pennyfarthing-dist/scripts/misc/statusline.sh +3 -3
  169. package/pennyfarthing-dist/scripts/sprint/README.md +21 -21
  170. package/pennyfarthing-dist/scripts/workflow/README.md +2 -2
  171. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +2 -16
  172. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +3 -3
  173. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +3 -3
  174. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +3 -3
  175. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +3 -3
  176. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +3 -3
  177. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +3 -3
  178. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +3 -3
  179. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +3 -3
  180. package/pennyfarthing-dist/skills/pf-bc/examples.md +23 -23
  181. package/pennyfarthing-dist/skills/pf-bc/skill.md +17 -17
  182. package/pennyfarthing-dist/skills/pf-bc/usage.md +8 -8
  183. package/pennyfarthing-dist/skills/pf-jira/SKILL.md +15 -15
  184. package/pennyfarthing-dist/skills/pf-jira/examples.md +48 -48
  185. package/pennyfarthing-dist/skills/pf-jira/usage.md +15 -15
  186. package/pennyfarthing-dist/skills/pf-settings/skill.md +42 -0
  187. package/pennyfarthing-dist/skills/pf-sprint/examples.md +80 -80
  188. package/pennyfarthing-dist/skills/pf-sprint/skill.md +35 -35
  189. package/pennyfarthing-dist/skills/pf-sprint/usage.md +30 -30
  190. package/pennyfarthing-dist/skills/pf-theme/examples.md +15 -15
  191. package/pennyfarthing-dist/skills/pf-theme/skill.md +6 -6
  192. package/pennyfarthing-dist/skills/pf-theme/usage.md +5 -5
  193. package/pennyfarthing-dist/skills/pf-workflow/examples.md +27 -27
  194. package/pennyfarthing-dist/skills/pf-workflow/skill.md +11 -11
  195. package/pennyfarthing-dist/skills/pf-workflow/usage.md +11 -11
  196. package/pennyfarthing-dist/skills/skill-registry.yaml +34 -19
  197. package/pennyfarthing-dist/templates/pyproject.toml +27 -0
  198. package/pennyfarthing-dist/templates/settings.local.json.template +11 -11
  199. package/pennyfarthing-dist/workflows/bdd-tandem.yaml +7 -3
  200. package/pennyfarthing-dist/workflows/bdd-team.yaml +89 -0
  201. package/pennyfarthing-dist/workflows/bdd.yaml +7 -3
  202. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +1 -1
  203. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +1 -1
  204. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +1 -1
  205. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +1 -1
  206. package/pennyfarthing-dist/workflows/installation-check/steps/step-01-foundation.md +77 -0
  207. package/pennyfarthing-dist/workflows/installation-check/steps/step-02-commands.md +82 -0
  208. package/pennyfarthing-dist/workflows/installation-check/steps/step-03-hooks.md +121 -0
  209. package/pennyfarthing-dist/workflows/installation-check/steps/step-04-scripts.md +83 -0
  210. package/pennyfarthing-dist/workflows/installation-check/steps/step-05-layout.md +81 -0
  211. package/pennyfarthing-dist/workflows/installation-check/steps/step-06-legacy.md +94 -0
  212. package/pennyfarthing-dist/workflows/installation-check/steps/step-07-tools.md +80 -0
  213. package/pennyfarthing-dist/workflows/installation-check/steps/step-08-summary.md +99 -0
  214. package/pennyfarthing-dist/workflows/installation-check/workflow.yaml +47 -0
  215. package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +47 -0
  216. package/pennyfarthing-dist/workflows/tdd-tandem.yaml +7 -3
  217. package/pennyfarthing-dist/workflows/tdd-team.yaml +80 -0
  218. package/pennyfarthing-dist/workflows/tdd.yaml +7 -3
  219. package/pennyfarthing-dist/workflows/trivial.yaml +7 -3
  220. package/pennyfarthing_scripts/__init__.py +1 -1
  221. package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  222. package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  223. package/pennyfarthing_scripts/__pycache__/cli.cpython-311.pyc +0 -0
  224. package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
  225. package/pennyfarthing_scripts/__pycache__/context.cpython-311.pyc +0 -0
  226. package/pennyfarthing_scripts/__pycache__/context.cpython-314.pyc +0 -0
  227. package/pennyfarthing_scripts/bc/__pycache__/__init__.cpython-311.pyc +0 -0
  228. package/pennyfarthing_scripts/bc/__pycache__/cli.cpython-311.pyc +0 -0
  229. package/pennyfarthing_scripts/bc/__pycache__/cli.cpython-314.pyc +0 -0
  230. package/pennyfarthing_scripts/bc/__pycache__/focus.cpython-311.pyc +0 -0
  231. package/pennyfarthing_scripts/bc/__pycache__/focus.cpython-314.pyc +0 -0
  232. package/pennyfarthing_scripts/bc/__pycache__/split.cpython-314.pyc +0 -0
  233. package/pennyfarthing_scripts/bc/cli.py +23 -2
  234. package/pennyfarthing_scripts/bc/focus.py +1 -0
  235. package/pennyfarthing_scripts/bc/split.py +52 -0
  236. package/pennyfarthing_scripts/bellmode_hook.py +2 -5
  237. package/pennyfarthing_scripts/bikerack/__pycache__/__init__.cpython-311.pyc +0 -0
  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__/cli.cpython-311.pyc +0 -0
  243. package/pennyfarthing_scripts/bikerack/__pycache__/cli.cpython-314.pyc +0 -0
  244. package/pennyfarthing_scripts/bikerack/__pycache__/context_meter_footer.cpython-314.pyc +0 -0
  245. package/pennyfarthing_scripts/bikerack/__pycache__/debug_panel.cpython-314.pyc +0 -0
  246. package/pennyfarthing_scripts/bikerack/__pycache__/diffs_panel.cpython-314.pyc +0 -0
  247. package/pennyfarthing_scripts/bikerack/__pycache__/events.cpython-314.pyc +0 -0
  248. package/pennyfarthing_scripts/bikerack/__pycache__/git_panel.cpython-314.pyc +0 -0
  249. package/pennyfarthing_scripts/bikerack/__pycache__/launcher.cpython-311.pyc +0 -0
  250. package/pennyfarthing_scripts/bikerack/__pycache__/launcher.cpython-314.pyc +0 -0
  251. package/pennyfarthing_scripts/bikerack/__pycache__/portrait_resolver.cpython-314.pyc +0 -0
  252. package/pennyfarthing_scripts/bikerack/__pycache__/progress_panel.cpython-314.pyc +0 -0
  253. package/pennyfarthing_scripts/bikerack/__pycache__/sprint_panel.cpython-314.pyc +0 -0
  254. package/pennyfarthing_scripts/bikerack/__pycache__/story_detail_data.cpython-314.pyc +0 -0
  255. package/pennyfarthing_scripts/bikerack/__pycache__/story_detail_screen.cpython-314.pyc +0 -0
  256. package/pennyfarthing_scripts/bikerack/__pycache__/tui.cpython-314.pyc +0 -0
  257. package/pennyfarthing_scripts/bikerack/__pycache__/ws_client.cpython-314.pyc +0 -0
  258. package/pennyfarthing_scripts/bikerack/audit_log_panel.py +48 -6
  259. package/pennyfarthing_scripts/bikerack/context_meter_footer.py +53 -3
  260. package/pennyfarthing_scripts/bikerack/launcher.py +6 -6
  261. package/pennyfarthing_scripts/bikerack/progress_panel.py +0 -1
  262. package/pennyfarthing_scripts/bikerack/sprint_panel.py +1 -1
  263. package/pennyfarthing_scripts/bikerack/story_detail_data.py +4 -1
  264. package/pennyfarthing_scripts/bikerack/story_detail_screen.py +2 -1
  265. package/pennyfarthing_scripts/bikerack/tui.py +214 -10
  266. package/pennyfarthing_scripts/bikerack/ws_client.py +2 -2
  267. package/pennyfarthing_scripts/cli.py +5 -0
  268. package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-311.pyc +0 -0
  269. package/pennyfarthing_scripts/common/__pycache__/config.cpython-311.pyc +0 -0
  270. package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
  271. package/pennyfarthing_scripts/common/__pycache__/output.cpython-311.pyc +0 -0
  272. package/pennyfarthing_scripts/common/__pycache__/pr_config.cpython-314.pyc +0 -0
  273. package/pennyfarthing_scripts/common/config.py +29 -2
  274. package/pennyfarthing_scripts/consultation/__pycache__/__init__.cpython-311.pyc +0 -0
  275. package/pennyfarthing_scripts/consultation/__pycache__/__init__.cpython-314.pyc +0 -0
  276. package/pennyfarthing_scripts/consultation/__pycache__/cli.cpython-311.pyc +0 -0
  277. package/pennyfarthing_scripts/consultation/__pycache__/cli.cpython-314.pyc +0 -0
  278. package/pennyfarthing_scripts/consultation/cli.py +3 -3
  279. package/pennyfarthing_scripts/context.py +3 -3
  280. package/pennyfarthing_scripts/deadcode/__pycache__/__init__.cpython-311.pyc +0 -0
  281. package/pennyfarthing_scripts/deadcode/__pycache__/cli.cpython-311.pyc +0 -0
  282. package/pennyfarthing_scripts/epic/__pycache__/__init__.cpython-311.pyc +0 -0
  283. package/pennyfarthing_scripts/epic/__pycache__/cli.cpython-311.pyc +0 -0
  284. package/pennyfarthing_scripts/git/hooks_installer.py +2 -3
  285. package/pennyfarthing_scripts/git/status_all.py +1 -1
  286. package/pennyfarthing_scripts/git/worktree.py +2 -2
  287. package/pennyfarthing_scripts/git_group/__pycache__/__init__.cpython-311.pyc +0 -0
  288. package/pennyfarthing_scripts/git_group/__pycache__/cli.cpython-311.pyc +0 -0
  289. package/pennyfarthing_scripts/git_group/__pycache__/cli.cpython-314.pyc +0 -0
  290. package/pennyfarthing_scripts/handoff/__pycache__/__init__.cpython-311.pyc +0 -0
  291. package/pennyfarthing_scripts/handoff/__pycache__/cli.cpython-311.pyc +0 -0
  292. package/pennyfarthing_scripts/handoff/__pycache__/cli.cpython-314.pyc +0 -0
  293. package/pennyfarthing_scripts/handoff/__pycache__/complete_phase.cpython-314.pyc +0 -0
  294. package/pennyfarthing_scripts/handoff/__pycache__/marker.cpython-314.pyc +0 -0
  295. package/pennyfarthing_scripts/handoff/__pycache__/phase_check.cpython-314.pyc +0 -0
  296. package/pennyfarthing_scripts/handoff/__pycache__/resolve_gate.cpython-314.pyc +0 -0
  297. package/pennyfarthing_scripts/healthscore/__pycache__/__init__.cpython-311.pyc +0 -0
  298. package/pennyfarthing_scripts/healthscore/__pycache__/analyze.cpython-311.pyc +0 -0
  299. package/pennyfarthing_scripts/healthscore/__pycache__/cli.cpython-311.pyc +0 -0
  300. package/pennyfarthing_scripts/healthscore/__pycache__/models.cpython-311.pyc +0 -0
  301. package/pennyfarthing_scripts/hooks/__init__.py +8 -3
  302. package/pennyfarthing_scripts/hooks/__pycache__/__init__.cpython-311.pyc +0 -0
  303. package/pennyfarthing_scripts/hooks/__pycache__/__init__.cpython-314.pyc +0 -0
  304. package/pennyfarthing_scripts/hooks/__pycache__/bell_mode.cpython-311.pyc +0 -0
  305. package/pennyfarthing_scripts/hooks/__pycache__/bell_mode.cpython-314.pyc +0 -0
  306. package/pennyfarthing_scripts/hooks/__pycache__/cli.cpython-311.pyc +0 -0
  307. package/pennyfarthing_scripts/hooks/__pycache__/cli.cpython-314.pyc +0 -0
  308. package/pennyfarthing_scripts/hooks/__pycache__/context_breaker.cpython-311.pyc +0 -0
  309. package/pennyfarthing_scripts/hooks/__pycache__/context_breaker.cpython-314.pyc +0 -0
  310. package/pennyfarthing_scripts/hooks/__pycache__/context_warning.cpython-311.pyc +0 -0
  311. package/pennyfarthing_scripts/hooks/__pycache__/context_warning.cpython-314.pyc +0 -0
  312. package/pennyfarthing_scripts/hooks/__pycache__/cyclist_pretooluse.cpython-311.pyc +0 -0
  313. package/pennyfarthing_scripts/hooks/__pycache__/cyclist_pretooluse.cpython-314.pyc +0 -0
  314. package/pennyfarthing_scripts/hooks/__pycache__/pre_edit_check.cpython-311.pyc +0 -0
  315. package/pennyfarthing_scripts/hooks/__pycache__/pre_edit_check.cpython-314.pyc +0 -0
  316. package/pennyfarthing_scripts/hooks/__pycache__/reflector_check.cpython-311.pyc +0 -0
  317. package/pennyfarthing_scripts/hooks/__pycache__/reflector_check.cpython-314.pyc +0 -0
  318. package/pennyfarthing_scripts/hooks/__pycache__/schema_validation.cpython-311.pyc +0 -0
  319. package/pennyfarthing_scripts/hooks/__pycache__/schema_validation.cpython-314.pyc +0 -0
  320. package/pennyfarthing_scripts/hooks/__pycache__/session_start.cpython-311.pyc +0 -0
  321. package/pennyfarthing_scripts/hooks/__pycache__/session_start.cpython-314.pyc +0 -0
  322. package/pennyfarthing_scripts/hooks/__pycache__/session_stop.cpython-314.pyc +0 -0
  323. package/pennyfarthing_scripts/hooks/__pycache__/sprint_yaml_validation.cpython-311.pyc +0 -0
  324. package/pennyfarthing_scripts/hooks/__pycache__/sprint_yaml_validation.cpython-314.pyc +0 -0
  325. package/pennyfarthing_scripts/hooks/__pycache__/statusline.cpython-311.pyc +0 -0
  326. package/pennyfarthing_scripts/hooks/__pycache__/statusline.cpython-314.pyc +0 -0
  327. package/pennyfarthing_scripts/hooks/bell_mode.py +0 -1
  328. package/pennyfarthing_scripts/hooks/pre_edit_check.py +0 -1
  329. package/pennyfarthing_scripts/hooks/reflector_check.py +1 -2
  330. package/pennyfarthing_scripts/hooks/schema_validation.py +0 -1
  331. package/pennyfarthing_scripts/hooks/session_start.py +6 -8
  332. package/pennyfarthing_scripts/hooks/statusline.py +10 -1
  333. package/pennyfarthing_scripts/hotspots/__pycache__/__init__.cpython-311.pyc +0 -0
  334. package/pennyfarthing_scripts/hotspots/__pycache__/analyze.cpython-311.pyc +0 -0
  335. package/pennyfarthing_scripts/hotspots/__pycache__/cli.cpython-311.pyc +0 -0
  336. package/pennyfarthing_scripts/hotspots/__pycache__/models.cpython-311.pyc +0 -0
  337. package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-311.pyc +0 -0
  338. package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-311.pyc +0 -0
  339. package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-311.pyc +0 -0
  340. package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-311.pyc +0 -0
  341. package/pennyfarthing_scripts/jira/__pycache__/client.cpython-311.pyc +0 -0
  342. package/pennyfarthing_scripts/jira/__pycache__/create.cpython-311.pyc +0 -0
  343. package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-311.pyc +0 -0
  344. package/pennyfarthing_scripts/jira/__pycache__/operations.cpython-311.pyc +0 -0
  345. package/pennyfarthing_scripts/jira/__pycache__/reconcile.cpython-311.pyc +0 -0
  346. package/pennyfarthing_scripts/jira/__pycache__/story.cpython-311.pyc +0 -0
  347. package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-311.pyc +0 -0
  348. package/pennyfarthing_scripts/launch/__pycache__/__init__.cpython-311.pyc +0 -0
  349. package/pennyfarthing_scripts/launch/__pycache__/cli.cpython-311.pyc +0 -0
  350. package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  351. package/pennyfarthing_scripts/prime/heatmap.py +3 -15
  352. package/pennyfarthing_scripts/session/__pycache__/__init__.cpython-311.pyc +0 -0
  353. package/pennyfarthing_scripts/session/__pycache__/cli.cpython-311.pyc +0 -0
  354. package/pennyfarthing_scripts/settings/__init__.py +0 -0
  355. package/pennyfarthing_scripts/settings/__pycache__/__init__.cpython-314.pyc +0 -0
  356. package/pennyfarthing_scripts/settings/__pycache__/cli.cpython-314.pyc +0 -0
  357. package/pennyfarthing_scripts/settings/__pycache__/settings.cpython-314.pyc +0 -0
  358. package/pennyfarthing_scripts/settings/cli.py +55 -0
  359. package/pennyfarthing_scripts/settings/settings.py +98 -0
  360. package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-311.pyc +0 -0
  361. package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-311.pyc +0 -0
  362. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-311.pyc +0 -0
  363. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  364. package/pennyfarthing_scripts/sprint/__pycache__/epic_add.cpython-311.pyc +0 -0
  365. package/pennyfarthing_scripts/sprint/__pycache__/epic_update.cpython-311.pyc +0 -0
  366. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-311.pyc +0 -0
  367. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  368. package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-311.pyc +0 -0
  369. package/pennyfarthing_scripts/sprint/__pycache__/story_add.cpython-311.pyc +0 -0
  370. package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
  371. package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-311.pyc +0 -0
  372. package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
  373. package/pennyfarthing_scripts/sprint/__pycache__/validate_cmd.cpython-311.pyc +0 -0
  374. package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-311.pyc +0 -0
  375. package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-311.pyc +0 -0
  376. package/pennyfarthing_scripts/sprint/__pycache__/yaml_io.cpython-311.pyc +0 -0
  377. package/pennyfarthing_scripts/sprint/cli.py +121 -0
  378. package/pennyfarthing_scripts/sprint/loader.py +154 -3
  379. package/pennyfarthing_scripts/sprint/story_update.py +7 -0
  380. package/pennyfarthing_scripts/tests/__pycache__/test_bikerack.cpython-314-pytest-9.0.2.pyc +0 -0
  381. package/pennyfarthing_scripts/tests/__pycache__/test_tui_focus.cpython-314-pytest-9.0.2.pyc +0 -0
  382. package/pennyfarthing_scripts/tests/__pycache__/test_tui_panel_persistence.cpython-314-pytest-9.0.2.pyc +0 -0
  383. package/pennyfarthing_scripts/tests/test_bikerack.py +26 -26
  384. package/pennyfarthing_scripts/tests/test_confidence_sm_gate.py +17 -16
  385. package/pennyfarthing_scripts/tests/test_dialogue_manager.py +0 -1
  386. package/pennyfarthing_scripts/tests/test_resolve_gate_file_field.py +45 -47
  387. package/pennyfarthing_scripts/tests/test_workflow_list_team.py +143 -0
  388. package/pennyfarthing_scripts/theme/__pycache__/__init__.cpython-311.pyc +0 -0
  389. package/pennyfarthing_scripts/theme/__pycache__/cli.cpython-311.pyc +0 -0
  390. package/pennyfarthing_scripts/validate/__pycache__/__init__.cpython-311.pyc +0 -0
  391. package/pennyfarthing_scripts/validate/__pycache__/cli.cpython-311.pyc +0 -0
  392. package/pennyfarthing_scripts/validate/__pycache__/cli.cpython-314.pyc +0 -0
  393. package/pennyfarthing_scripts/validate/adapters/team_mode.py +323 -0
  394. package/pennyfarthing_scripts/workflow/__pycache__/__init__.cpython-311.pyc +0 -0
  395. package/pennyfarthing_scripts/workflow/__pycache__/__init__.cpython-314.pyc +0 -0
  396. package/pennyfarthing_scripts/workflow/__pycache__/cli.cpython-311.pyc +0 -0
  397. package/pennyfarthing_scripts/workflow/__pycache__/cli.cpython-314.pyc +0 -0
  398. package/pennyfarthing_scripts/workflow/__pycache__/helpers.cpython-314.pyc +0 -0
  399. package/pennyfarthing_scripts/workflow/__pycache__/scale.cpython-311.pyc +0 -0
  400. package/pennyfarthing_scripts/workflow/__pycache__/scale.cpython-314.pyc +0 -0
  401. package/pennyfarthing_scripts/workflow/__pycache__/state.cpython-311.pyc +0 -0
  402. package/pennyfarthing_scripts/workflow/__pycache__/state.cpython-314.pyc +0 -0
  403. package/pennyfarthing_scripts/workflow/cli.py +15 -14
  404. package/pennyfarthing_scripts/workflow/state.py +0 -1
  405. package/pennyfarthing_scripts/workflow/team_lifecycle.py +3 -4
@@ -4,54 +4,54 @@
4
4
 
5
5
  ```bash
6
6
  # List all available themes with tiers
7
- pf theme list
7
+ pf.sh theme list
8
8
 
9
9
  # Show current theme
10
- pf theme show
10
+ pf.sh theme show
11
11
 
12
12
  # Show specific theme
13
- pf theme show blade-runner
13
+ pf.sh theme show blade-runner
14
14
 
15
15
  # Show full details (OCEAN, quirks, catchphrases)
16
- pf theme show blade-runner --full
17
- pf theme show fifth-element --full
16
+ pf.sh theme show blade-runner --full
17
+ pf.sh theme show fifth-element --full
18
18
  ```
19
19
 
20
20
  ## Changing Theme
21
21
 
22
22
  ```bash
23
23
  # Set theme
24
- pf theme set blade-runner
24
+ pf.sh theme set blade-runner
25
25
 
26
26
  # Preview without changing
27
- pf theme set blade-runner --dry-run
27
+ pf.sh theme set blade-runner --dry-run
28
28
 
29
29
  # Refresh agent persona after change
30
- pf agent start "sm"
30
+ pf.sh agent start "sm"
31
31
  ```
32
32
 
33
33
  ## Creating Custom Themes
34
34
 
35
35
  ```bash
36
36
  # Create from current theme
37
- pf theme create my-team
37
+ pf.sh theme create my-team
38
38
 
39
39
  # Create from specific base
40
- pf theme create my-team --base blade-runner
40
+ pf.sh theme create my-team --base blade-runner
41
41
 
42
42
  # Create as user-level (available across projects)
43
- pf theme create my-team --user
43
+ pf.sh theme create my-team --user
44
44
 
45
45
  # Create from specific base as user-level
46
- pf theme create my-team --base fifth-element --user
46
+ pf.sh theme create my-team --base fifth-element --user
47
47
 
48
48
  # Preview
49
- pf theme create my-team --base blade-runner --dry-run
49
+ pf.sh theme create my-team --base blade-runner --dry-run
50
50
  ```
51
51
 
52
52
  After creation:
53
53
  1. Edit the theme file to customize agents
54
- 2. Run `pf theme set my-team` to activate
54
+ 2. Run `pf.sh theme set my-team` to activate
55
55
 
56
56
  ## Theme Maker (Interactive)
57
57
 
@@ -73,7 +73,7 @@ Specify character name, style, and quote for each agent. Skip agents for default
73
73
  ### After Creation
74
74
  ```bash
75
75
  # Activate the new theme
76
- pf theme set my-universe
76
+ pf.sh theme set my-universe
77
77
 
78
78
  # Generate portraits (optional, requires GPU)
79
79
  ./scripts/generate-portraits.sh --theme my-universe
@@ -12,18 +12,18 @@ Manage persona themes for agent characters.
12
12
 
13
13
  | Command | CLI | Purpose |
14
14
  |---------|-----|---------|
15
- | `/theme` | `pf theme show` | Show current theme |
16
- | `/theme list` | `pf theme list` | List all available themes |
17
- | `/theme show [name]` | `pf theme show [name] [--full]` | Show theme details |
18
- | `/theme set <name>` | `pf theme set <name> [--dry-run]` | Set active theme |
19
- | `/theme create <name>` | `pf theme create <name> [--base X] [--user] [--dry-run]` | Create from base theme |
15
+ | `/theme` | `pf.sh theme show` | Show current theme |
16
+ | `/theme list` | `pf.sh theme list` | List all available themes |
17
+ | `/theme show [name]` | `pf.sh theme show [name] [--full]` | Show theme details |
18
+ | `/theme set <name>` | `pf.sh theme set <name> [--dry-run]` | Set active theme |
19
+ | `/theme create <name>` | `pf.sh theme create <name> [--base X] [--user] [--dry-run]` | Create from base theme |
20
20
  | `/theme maker` | *(interactive wizard)* | AI-driven theme creation |
21
21
 
22
22
  ### After Setting a Theme
23
23
 
24
24
  Refresh the current agent persona:
25
25
  ```bash
26
- pf agent start "sm"
26
+ pf.sh agent start "sm"
27
27
  ```
28
28
  Adopt the new character immediately.
29
29
 
@@ -5,7 +5,7 @@
5
5
  ### List Themes
6
6
 
7
7
  ```bash
8
- pf theme list
8
+ pf.sh theme list
9
9
  ```
10
10
 
11
11
  No arguments. Shows all available themes with:
@@ -17,7 +17,7 @@ Copy output into response text — Bash tool output may be collapsed in the UI.
17
17
  ### Show Theme
18
18
 
19
19
  ```bash
20
- pf theme show [NAME] [--full]
20
+ pf.sh theme show [NAME] [--full]
21
21
  ```
22
22
 
23
23
  | Arg/Option | Required | Description |
@@ -30,7 +30,7 @@ Copy output into response text.
30
30
  ### Set Theme
31
31
 
32
32
  ```bash
33
- pf theme set <NAME> [--dry-run]
33
+ pf.sh theme set <NAME> [--dry-run]
34
34
  ```
35
35
 
36
36
  | Arg/Option | Required | Description |
@@ -42,14 +42,14 @@ Updates `.pennyfarthing/config.local.yaml` with theme name and character map.
42
42
 
43
43
  After setting, refresh agent persona:
44
44
  ```bash
45
- pf agent start "sm"
45
+ pf.sh agent start "sm"
46
46
  ```
47
47
  Adopt the new character immediately.
48
48
 
49
49
  ### Create Theme
50
50
 
51
51
  ```bash
52
- pf theme create <NAME> [--base <THEME>] [--user] [--dry-run]
52
+ pf.sh theme create <NAME> [--base <THEME>] [--user] [--dry-run]
53
53
  ```
54
54
 
55
55
  | Arg/Option | Required | Description |
@@ -4,86 +4,86 @@
4
4
 
5
5
  ```bash
6
6
  # List all available workflows
7
- pf workflow list
7
+ pf.sh workflow list
8
8
 
9
9
  # Show TDD workflow details
10
- pf workflow show tdd
10
+ pf.sh workflow show tdd
11
11
 
12
12
  # Show current session's workflow
13
- pf workflow show
13
+ pf.sh workflow show
14
14
 
15
15
  # Show trivial workflow
16
- pf workflow show trivial
16
+ pf.sh workflow show trivial
17
17
  ```
18
18
 
19
19
  ## Checking State
20
20
 
21
21
  ```bash
22
22
  # Check current workflow state
23
- pf workflow check
24
- pf workflow check --json
23
+ pf.sh workflow check
24
+ pf.sh workflow check --json
25
25
 
26
26
  # Who owns the "review" phase in TDD?
27
- pf workflow phase-check tdd review
27
+ pf.sh workflow phase-check tdd review
28
28
  # Returns: reviewer
29
29
 
30
30
  # Who owns the "implement" phase in trivial?
31
- pf workflow phase-check trivial implement
31
+ pf.sh workflow phase-check trivial implement
32
32
  # Returns: dev
33
33
 
34
34
  # Get workflow type
35
- pf workflow type tdd
35
+ pf.sh workflow type tdd
36
36
  # Returns: phased
37
37
 
38
- pf workflow type architecture
38
+ pf.sh workflow type architecture
39
39
  # Returns: stepped
40
40
 
41
41
  # Emit handoff marker for Cyclist
42
- pf workflow handoff reviewer
42
+ pf.sh workflow handoff reviewer
43
43
  ```
44
44
 
45
45
  ## Stepped Workflows (BikeLane)
46
46
 
47
47
  ```bash
48
48
  # Start architecture workflow in create mode (default)
49
- pf workflow start architecture
49
+ pf.sh workflow start architecture
50
50
 
51
51
  # Start in validate mode
52
- pf workflow start architecture --mode validate
52
+ pf.sh workflow start architecture --mode validate
53
53
 
54
54
  # Check progress
55
- pf workflow status
55
+ pf.sh workflow status
56
56
 
57
57
  # Resume after interruption
58
- pf workflow resume
59
- pf workflow resume architecture
58
+ pf.sh workflow resume
59
+ pf.sh workflow resume architecture
60
60
 
61
61
  # Complete current step and advance
62
- pf workflow complete-step
63
- pf workflow complete-step architecture --step 3
62
+ pf.sh workflow complete-step
63
+ pf.sh workflow complete-step architecture --step 3
64
64
  ```
65
65
 
66
66
  ## Phase Repair
67
67
 
68
68
  ```bash
69
69
  # Preview phase fix
70
- pf workflow fix-phase 56-1 review --dry-run
70
+ pf.sh workflow fix-phase 56-1 review --dry-run
71
71
 
72
72
  # Fix phase to review (after Dev completed)
73
- pf workflow fix-phase 56-1 review
73
+ pf.sh workflow fix-phase 56-1 review
74
74
 
75
75
  # Fix phase to approved (after Reviewer approved)
76
- pf workflow fix-phase 56-1 approved
76
+ pf.sh workflow fix-phase 56-1 approved
77
77
 
78
78
  # Using Jira key
79
- pf workflow fix-phase MSSCI-12190 approved
79
+ pf.sh workflow fix-phase MSSCI-12190 approved
80
80
  ```
81
81
 
82
82
  ## Switching Workflow Mid-Session
83
83
 
84
84
  1. Verify the target workflow exists:
85
85
  ```bash
86
- pf workflow show trivial
86
+ pf.sh workflow show trivial
87
87
  ```
88
88
 
89
89
  2. Edit the session file:
@@ -97,16 +97,16 @@ pf workflow fix-phase MSSCI-12190 approved
97
97
  ### Story upgraded from trivial to TDD
98
98
  ```bash
99
99
  # Check current state
100
- pf workflow check --json
100
+ pf.sh workflow check --json
101
101
  # Edit session to change workflow from trivial to tdd
102
102
  # Fix phase to match where you are
103
- pf workflow fix-phase 56-1 red
103
+ pf.sh workflow fix-phase 56-1 red
104
104
  ```
105
105
 
106
106
  ### Agent activated on wrong phase
107
107
  ```bash
108
108
  # Check who owns the current phase
109
- pf workflow phase-check tdd review
109
+ pf.sh workflow phase-check tdd review
110
110
  # Returns: reviewer — hand off if you're not the reviewer
111
- pf workflow handoff reviewer
111
+ pf.sh workflow handoff reviewer
112
112
  ```
@@ -15,18 +15,18 @@ Pennyfarthing uses YAML-defined workflows to control agent sequences. The defaul
15
15
 
16
16
  | Command | CLI | Purpose |
17
17
  |---------|-----|---------|
18
- | `/pf-workflow` or `/pf-workflow list` | `pf workflow list` | List all workflows |
19
- | `/pf-workflow show [name]` | `pf workflow show [name]` | Show workflow details |
18
+ | `/pf-workflow` or `/pf-workflow list` | `pf.sh workflow list` | List all workflows |
19
+ | `/pf-workflow show [name]` | `pf.sh workflow show [name]` | Show workflow details |
20
20
  | `/pf-workflow set <name>` | Edit session file `**Workflow:**` line | Switch workflow mid-session |
21
- | `/pf-workflow start <name>` | `pf workflow start <name> [--mode M]` | Start stepped workflow |
22
- | `/pf-workflow resume [name]` | `pf workflow resume [name]` | Resume interrupted workflow |
23
- | `/pf-workflow status` | `pf workflow status` | Show stepped workflow progress |
24
- | `/pf-workflow fix-phase <id> <phase>` | `pf workflow fix-phase <id> <phase> [--dry-run]` | Repair session phase |
25
- | Check workflow state | `pf workflow check [--json]` | Current story, phase, state |
26
- | Check phase owner | `pf workflow phase-check <workflow> <phase>` | Which agent owns a phase |
27
- | Get workflow type | `pf workflow type <workflow>` | phased/stepped/procedural |
28
- | Emit handoff marker | `pf workflow handoff <next-agent>` | CYCLIST handoff marker |
29
- | Complete step | `pf workflow complete-step [name] [--step N]` | Advance stepped workflow |
21
+ | `/pf-workflow start <name>` | `pf.sh workflow start <name> [--mode M]` | Start stepped workflow |
22
+ | `/pf-workflow resume [name]` | `pf.sh workflow resume [name]` | Resume interrupted workflow |
23
+ | `/pf-workflow status` | `pf.sh workflow status` | Show stepped workflow progress |
24
+ | `/pf-workflow fix-phase <id> <phase>` | `pf.sh workflow fix-phase <id> <phase> [--dry-run]` | Repair session phase |
25
+ | Check workflow state | `pf.sh workflow check [--json]` | Current story, phase, state |
26
+ | Check phase owner | `pf.sh workflow phase-check <workflow> <phase>` | Which agent owns a phase |
27
+ | Get workflow type | `pf.sh workflow type <workflow>` | phased/stepped/procedural |
28
+ | Emit handoff marker | `pf.sh workflow handoff <next-agent>` | CYCLIST handoff marker |
29
+ | Complete step | `pf.sh workflow complete-step [name] [--step N]` | Advance stepped workflow |
30
30
 
31
31
  ### Built-in Workflows
32
32
 
@@ -5,7 +5,7 @@
5
5
  ### List Workflows
6
6
 
7
7
  ```bash
8
- pf workflow list
8
+ pf.sh workflow list
9
9
  ```
10
10
 
11
11
  No arguments. Returns table of workflows with type, phases/steps count, modes, default flag, description.
@@ -13,7 +13,7 @@ No arguments. Returns table of workflows with type, phases/steps count, modes, d
13
13
  ### Show Workflow
14
14
 
15
15
  ```bash
16
- pf workflow show [NAME]
16
+ pf.sh workflow show [NAME]
17
17
  ```
18
18
 
19
19
  | Arg | Required | Description |
@@ -31,7 +31,7 @@ Warning: Only do this when story requirements have fundamentally changed. Switch
31
31
  ### Start Stepped Workflow
32
32
 
33
33
  ```bash
34
- pf workflow start <NAME> [--mode <MODE>]
34
+ pf.sh workflow start <NAME> [--mode <MODE>]
35
35
  ```
36
36
 
37
37
  | Arg/Option | Required | Description |
@@ -44,7 +44,7 @@ Creates a new session and begins at step 1.
44
44
  ### Resume Stepped Workflow
45
45
 
46
46
  ```bash
47
- pf workflow resume [NAME]
47
+ pf.sh workflow resume [NAME]
48
48
  ```
49
49
 
50
50
  | Arg | Required | Description |
@@ -54,7 +54,7 @@ pf workflow resume [NAME]
54
54
  ### Workflow Status
55
55
 
56
56
  ```bash
57
- pf workflow status
57
+ pf.sh workflow status
58
58
  ```
59
59
 
60
60
  No arguments. Shows current step, progress percentage, mode.
@@ -62,7 +62,7 @@ No arguments. Shows current step, progress percentage, mode.
62
62
  ### Fix Session Phase
63
63
 
64
64
  ```bash
65
- pf workflow fix-phase <STORY_ID> <TARGET_PHASE> [--dry-run]
65
+ pf.sh workflow fix-phase <STORY_ID> <TARGET_PHASE> [--dry-run]
66
66
  ```
67
67
 
68
68
  | Arg/Option | Required | Description |
@@ -83,7 +83,7 @@ Updates `**Phase:**` field, `**Phase Started:**` timestamp, and handoff history
83
83
  ### Complete Step
84
84
 
85
85
  ```bash
86
- pf workflow complete-step [NAME] [--step N]
86
+ pf.sh workflow complete-step [NAME] [--step N]
87
87
  ```
88
88
 
89
89
  | Arg/Option | Required | Description |
@@ -100,7 +100,7 @@ Advances session: increments step, updates completed list, recalculates percenta
100
100
  ### Check Workflow State
101
101
 
102
102
  ```bash
103
- pf workflow check [--json]
103
+ pf.sh workflow check [--json]
104
104
  ```
105
105
 
106
106
  | Option | Description |
@@ -112,7 +112,7 @@ Returns current story ID, phase, workflow, and state.
112
112
  ### Check Phase Owner
113
113
 
114
114
  ```bash
115
- pf workflow phase-check <WORKFLOW_NAME> <PHASE>
115
+ pf.sh workflow phase-check <WORKFLOW_NAME> <PHASE>
116
116
  ```
117
117
 
118
118
  | Arg | Required | Description |
@@ -125,7 +125,7 @@ Returns the agent name that owns the phase.
125
125
  ### Get Workflow Type
126
126
 
127
127
  ```bash
128
- pf workflow type <WORKFLOW_NAME>
128
+ pf.sh workflow type <WORKFLOW_NAME>
129
129
  ```
130
130
 
131
131
  | Arg | Required | Description |
@@ -137,7 +137,7 @@ Returns `phased`, `stepped`, or `procedural`.
137
137
  ### Emit Handoff Marker
138
138
 
139
139
  ```bash
140
- pf workflow handoff <NEXT_AGENT>
140
+ pf.sh workflow handoff <NEXT_AGENT>
141
141
  ```
142
142
 
143
143
  | Arg | Required | Description |
@@ -216,6 +216,21 @@ skills:
216
216
  related_skills: []
217
217
  keywords: [grants, scopes, tools, runtime, security]
218
218
 
219
+ pf-settings:
220
+ name: pf-settings
221
+ description: View and manage .pennyfarthing/config.local.yaml settings
222
+ category: tools
223
+ tags: [configuration, settings, config]
224
+ version: "1.0.0"
225
+ command_group: settings
226
+ examples:
227
+ - context: View all settings
228
+ invocation: /pf-settings show
229
+ - context: Get a specific setting
230
+ invocation: /pf-settings get workflow.relay_mode
231
+ related_skills: [pf-theme, pf-bc]
232
+ keywords: [theme, relay, bell, permission, display, config]
233
+
219
234
  pf-persona-benchmark:
220
235
  name: pf-persona-benchmark
221
236
  description: Run benchmarks to compare persona effectiveness
@@ -243,15 +258,15 @@ skills:
243
258
  prerequisites: []
244
259
  examples:
245
260
  - context: Checking sprint status
246
- invocation: /sprint
261
+ invocation: /pf-sprint
247
262
  - context: Finding available stories
248
- invocation: /sprint backlog
263
+ invocation: /pf-sprint backlog
249
264
  - context: Adding a story
250
- invocation: /sprint story add epic-76 "My story" 3
265
+ invocation: /pf-sprint story add epic-76 "My story" 3
251
266
  - context: Sizing guidelines
252
- invocation: /sprint story size
267
+ invocation: /pf-sprint story size
253
268
  - context: Adding an epic
254
- invocation: /sprint epic add epic-85 "New epic"
269
+ invocation: /pf-sprint epic add epic-85 "New epic"
255
270
  anti_patterns:
256
271
  - Don't manually edit sprint YAML - use scripts
257
272
  related_skills: [pf-jira]
@@ -278,7 +293,7 @@ skills:
278
293
 
279
294
  pf-story:
280
295
  name: pf-story
281
- description: "DEPRECATED: Use /sprint story instead. Story commands consolidated under /sprint."
296
+ description: "DEPRECATED: Use /pf-sprint story instead. Story commands consolidated under /pf-sprint."
282
297
  category: project-management
283
298
  tags: [stories, sizing, workflow, deprecated]
284
299
  version: "2.0.0"
@@ -287,12 +302,12 @@ skills:
287
302
  prerequisites: []
288
303
  examples:
289
304
  - context: Creating new stories
290
- invocation: /sprint story add
305
+ invocation: /pf-sprint story add
291
306
  - context: Sizing stories
292
- invocation: /sprint story size
307
+ invocation: /pf-sprint story size
293
308
  anti_patterns:
294
309
  - Don't create stories without acceptance criteria
295
- - Don't use /story directly - use /sprint story instead
310
+ - Don't use /story directly - use /pf-sprint story instead
296
311
  related_skills: [pf-sprint, pf-jira]
297
312
  keywords: [user-stories, estimation, points, acceptance-criteria]
298
313
 
@@ -324,15 +339,15 @@ skills:
324
339
  prerequisites: []
325
340
  examples:
326
341
  - context: Listing available themes
327
- invocation: /theme list
342
+ invocation: /pf-theme list
328
343
  - context: Showing current theme
329
- invocation: /theme show
344
+ invocation: /pf-theme show
330
345
  - context: Setting active theme
331
- invocation: /theme set discworld
346
+ invocation: /pf-theme set discworld
332
347
  - context: Creating a new theme
333
- invocation: /theme create my-theme --base discworld
348
+ invocation: /pf-theme create my-theme --base discworld
334
349
  - context: Interactive AI-driven theme wizard
335
- invocation: /theme maker
350
+ invocation: /pf-theme maker
336
351
  anti_patterns:
337
352
  - Don't edit config.local.yaml directly - use skill
338
353
  - Don't use deprecated /set-theme, /show-theme, /list-themes, /create-theme, /theme-maker
@@ -341,7 +356,7 @@ skills:
341
356
 
342
357
  pf-theme-creation:
343
358
  name: pf-theme-creation
344
- description: "DEPRECATED: Use /theme maker instead"
359
+ description: "DEPRECATED: Use /pf-theme maker instead"
345
360
  category: theming
346
361
  tags: [personas, themes, creation]
347
362
  version: "2.0.0"
@@ -350,7 +365,7 @@ skills:
350
365
  prerequisites: []
351
366
  examples:
352
367
  - context: Interactive theme wizard
353
- invocation: /theme maker
368
+ invocation: /pf-theme maker
354
369
  anti_patterns: []
355
370
  related_skills: [pf-theme]
356
371
  keywords: [personas, custom, generation, wizard]
@@ -365,11 +380,11 @@ skills:
365
380
  prerequisites: []
366
381
  examples:
367
382
  - context: Listing available workflows
368
- invocation: /workflow
383
+ invocation: /pf-workflow
369
384
  - context: Showing current workflow
370
- invocation: /workflow show
385
+ invocation: /pf-workflow show
371
386
  - context: Starting stepped workflow
372
- invocation: /workflow start architecture
387
+ invocation: /pf-workflow start architecture
373
388
  anti_patterns:
374
389
  - Don't switch workflows mid-story unless requirements fundamentally changed
375
390
  related_skills: [pf-sprint]
@@ -0,0 +1,27 @@
1
+ # Auto-generated by pennyfarthing init — provides Python dependencies for hooks.
2
+ # This file enables `uv run --project` to resolve pennyfarthing_scripts.
3
+ # Safe to customize: init/update will not overwrite this file once created.
4
+
5
+ [project]
6
+ name = "pennyfarthing-scripts"
7
+ version = "0.0.0"
8
+ description = "Python utilities for Pennyfarthing agent orchestration"
9
+ requires-python = ">=3.11"
10
+
11
+ dependencies = [
12
+ "pyyaml>=6.0",
13
+ "ruamel.yaml>=0.18",
14
+ "httpx>=0.28",
15
+ "click>=8.0",
16
+ "pydriller>=2.6",
17
+ ]
18
+
19
+ [project.scripts]
20
+ pf = "pennyfarthing_scripts.cli:main"
21
+
22
+ [build-system]
23
+ requires = ["setuptools>=68.0"]
24
+ build-backend = "setuptools.build_meta"
25
+
26
+ [tool.setuptools.packages.find]
27
+ include = ["pennyfarthing_scripts*"]
@@ -40,7 +40,7 @@
40
40
  "hooks": [
41
41
  {
42
42
  "type": "command",
43
- "command": "pf hooks session-start"
43
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks session-start"
44
44
  }
45
45
  ]
46
46
  },
@@ -68,7 +68,7 @@
68
68
  "hooks": [
69
69
  {
70
70
  "type": "command",
71
- "command": "pf hooks reflector-check"
71
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks reflector-check"
72
72
  }
73
73
  ]
74
74
  },
@@ -77,7 +77,7 @@
77
77
  "hooks": [
78
78
  {
79
79
  "type": "command",
80
- "command": "pf hooks session-stop"
80
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks session-stop"
81
81
  }
82
82
  ]
83
83
  }
@@ -88,7 +88,7 @@
88
88
  "hooks": [
89
89
  {
90
90
  "type": "command",
91
- "command": "pf hooks bell-mode"
91
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks bell-mode"
92
92
  }
93
93
  ]
94
94
  },
@@ -97,7 +97,7 @@
97
97
  "hooks": [
98
98
  {
99
99
  "type": "command",
100
- "command": "pf hooks sprint-yaml"
100
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks sprint-yaml"
101
101
  }
102
102
  ]
103
103
  }
@@ -108,7 +108,7 @@
108
108
  "hooks": [
109
109
  {
110
110
  "type": "command",
111
- "command": "pf hooks pre-edit-check"
111
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks pre-edit-check"
112
112
  }
113
113
  ]
114
114
  },
@@ -117,7 +117,7 @@
117
117
  "hooks": [
118
118
  {
119
119
  "type": "command",
120
- "command": "pf hooks schema-validation"
120
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks schema-validation"
121
121
  }
122
122
  ]
123
123
  },
@@ -126,7 +126,7 @@
126
126
  "hooks": [
127
127
  {
128
128
  "type": "command",
129
- "command": "pf hooks context-warning"
129
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks context-warning"
130
130
  }
131
131
  ]
132
132
  },
@@ -135,7 +135,7 @@
135
135
  "hooks": [
136
136
  {
137
137
  "type": "command",
138
- "command": "pf hooks context-breaker"
138
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks context-breaker"
139
139
  }
140
140
  ]
141
141
  },
@@ -143,7 +143,7 @@
143
143
  "hooks": [
144
144
  {
145
145
  "type": "command",
146
- "command": "pf hooks cyclist-pretooluse"
146
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks cyclist-pretooluse"
147
147
  }
148
148
  ]
149
149
  }
@@ -151,6 +151,6 @@
151
151
  },
152
152
  "statusLine": {
153
153
  "type": "command",
154
- "command": "pf hooks statusline"
154
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks statusline"
155
155
  }
156
156
  }
@@ -24,6 +24,10 @@ workflow:
24
24
  - name: setup
25
25
  agent: sm
26
26
  output: [session_file, branches, story_context]
27
+ gate:
28
+ file: gates/sm-setup-exit
29
+ type: sm_setup_exit
30
+ condition: Session file created with workflow, phase, context, and branch
27
31
 
28
32
  - name: design
29
33
  agent: ux-designer
@@ -54,9 +58,9 @@ workflow:
54
58
  input: [failing_tests, design_spec, story_context]
55
59
  output: [implementation, passing_tests]
56
60
  gate:
57
- file: gates/tests-pass
58
- type: tests_pass
59
- condition: All tests passing, UX spec implemented
61
+ file: gates/dev-exit
62
+ type: dev_exit
63
+ condition: Tests green, tree clean, no debug code, correct branch
60
64
  tandem:
61
65
  partner: ux-designer
62
66
  scope: file-watch