@pennyfarthing/core 10.0.5 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (580) hide show
  1. package/README.md +19 -22
  2. package/package.json +17 -11
  3. package/packages/core/dist/cli/commands/doctor-file-layout.test.js.map +1 -1
  4. package/packages/core/dist/cli/commands/doctor-legacy.test.js +24 -0
  5. package/packages/core/dist/cli/commands/doctor-legacy.test.js.map +1 -1
  6. package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
  7. package/packages/core/dist/cli/commands/doctor.js +346 -13
  8. package/packages/core/dist/cli/commands/doctor.js.map +1 -1
  9. package/packages/core/dist/cli/commands/e2e-fresh-install.test.js +1 -1
  10. package/packages/core/dist/cli/commands/e2e-fresh-install.test.js.map +1 -1
  11. package/packages/core/dist/cli/commands/e2e-upgrade.test.js +1 -1
  12. package/packages/core/dist/cli/commands/e2e-upgrade.test.js.map +1 -1
  13. package/packages/core/dist/cli/commands/hooks-consolidation.test.js +2 -2
  14. package/packages/core/dist/cli/commands/hooks-consolidation.test.js.map +1 -1
  15. package/packages/core/dist/cli/commands/init-consolidation.test.js.map +1 -1
  16. package/packages/core/dist/cli/commands/init.d.ts +7 -0
  17. package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
  18. package/packages/core/dist/cli/commands/init.js +41 -8
  19. package/packages/core/dist/cli/commands/init.js.map +1 -1
  20. package/packages/core/dist/cli/commands/uninstall.d.ts.map +1 -1
  21. package/packages/core/dist/cli/commands/uninstall.js +24 -13
  22. package/packages/core/dist/cli/commands/uninstall.js.map +1 -1
  23. package/packages/core/dist/cli/commands/update-consolidation.test.js +0 -10
  24. package/packages/core/dist/cli/commands/update-consolidation.test.js.map +1 -1
  25. package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
  26. package/packages/core/dist/cli/commands/update.js +26 -0
  27. package/packages/core/dist/cli/commands/update.js.map +1 -1
  28. package/packages/core/dist/cli/index.js +1 -1
  29. package/packages/core/dist/cli/index.js.map +1 -1
  30. package/packages/core/dist/cli/ocean-profiles.test.js.map +1 -1
  31. package/packages/core/dist/cli/theme-maker.test.js +64 -115
  32. package/packages/core/dist/cli/theme-maker.test.js.map +1 -1
  33. package/packages/core/dist/cli/utils/python.d.ts +22 -0
  34. package/packages/core/dist/cli/utils/python.d.ts.map +1 -0
  35. package/packages/core/dist/cli/utils/python.js +102 -0
  36. package/packages/core/dist/cli/utils/python.js.map +1 -0
  37. package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
  38. package/packages/core/dist/cli/utils/settings.js +10 -0
  39. package/packages/core/dist/cli/utils/settings.js.map +1 -1
  40. package/packages/core/dist/index.d.ts +1 -1
  41. package/packages/core/dist/index.d.ts.map +1 -1
  42. package/packages/core/dist/index.js +2 -2
  43. package/packages/core/dist/index.js.map +1 -1
  44. package/packages/core/dist/plugins/plugin-discovery.d.ts +116 -0
  45. package/packages/core/dist/plugins/plugin-discovery.d.ts.map +1 -0
  46. package/packages/core/dist/plugins/plugin-discovery.js +165 -0
  47. package/packages/core/dist/plugins/plugin-discovery.js.map +1 -0
  48. package/packages/core/dist/plugins/plugin-discovery.test.d.ts +22 -0
  49. package/packages/core/dist/plugins/plugin-discovery.test.d.ts.map +1 -0
  50. package/packages/core/dist/plugins/plugin-discovery.test.js +498 -0
  51. package/packages/core/dist/plugins/plugin-discovery.test.js.map +1 -0
  52. package/packages/core/dist/scripts/generate-spider-report.js.map +1 -1
  53. package/packages/core/dist/workflow/context-watch.d.ts +80 -0
  54. package/packages/core/dist/workflow/context-watch.d.ts.map +1 -0
  55. package/packages/core/dist/workflow/context-watch.js +235 -0
  56. package/packages/core/dist/workflow/context-watch.js.map +1 -0
  57. package/packages/core/dist/workflow/context-watch.test.d.ts +1 -0
  58. package/packages/core/dist/workflow/context-watch.test.d.ts.map +1 -0
  59. package/packages/core/dist/workflow/context-watch.test.js +746 -0
  60. package/packages/core/dist/workflow/context-watch.test.js.map +1 -0
  61. package/packages/core/dist/workflow/file-watch.d.ts +82 -0
  62. package/packages/core/dist/workflow/file-watch.d.ts.map +1 -0
  63. package/packages/core/dist/workflow/file-watch.js +198 -0
  64. package/packages/core/dist/workflow/file-watch.js.map +1 -0
  65. package/packages/core/dist/workflow/file-watch.test.d.ts +21 -0
  66. package/packages/core/dist/workflow/file-watch.test.d.ts.map +1 -0
  67. package/packages/core/dist/workflow/file-watch.test.js +469 -0
  68. package/packages/core/dist/workflow/file-watch.test.js.map +1 -0
  69. package/packages/core/dist/workflow/observation-writer.d.ts +79 -0
  70. package/packages/core/dist/workflow/observation-writer.d.ts.map +1 -0
  71. package/packages/core/dist/workflow/observation-writer.js +97 -0
  72. package/packages/core/dist/workflow/observation-writer.js.map +1 -0
  73. package/packages/core/dist/workflow/observation-writer.test.d.ts +18 -0
  74. package/packages/core/dist/workflow/observation-writer.test.d.ts.map +1 -0
  75. package/packages/core/dist/workflow/observation-writer.test.js +424 -0
  76. package/packages/core/dist/workflow/observation-writer.test.js.map +1 -0
  77. package/packages/core/dist/workflow/story-workflow-routing.test.js +4 -2
  78. package/packages/core/dist/workflow/story-workflow-routing.test.js.map +1 -1
  79. package/packages/core/dist/workflow/tandem-lifecycle.d.ts +117 -0
  80. package/packages/core/dist/workflow/tandem-lifecycle.d.ts.map +1 -0
  81. package/packages/core/dist/workflow/tandem-lifecycle.js +186 -0
  82. package/packages/core/dist/workflow/tandem-lifecycle.js.map +1 -0
  83. package/packages/core/dist/workflow/tandem-lifecycle.test.d.ts +16 -0
  84. package/packages/core/dist/workflow/tandem-lifecycle.test.d.ts.map +1 -0
  85. package/packages/core/dist/workflow/tandem-lifecycle.test.js +531 -0
  86. package/packages/core/dist/workflow/tandem-lifecycle.test.js.map +1 -0
  87. package/packages/core/dist/workflow/tool-watch.d.ts +68 -0
  88. package/packages/core/dist/workflow/tool-watch.d.ts.map +1 -0
  89. package/packages/core/dist/workflow/tool-watch.js +166 -0
  90. package/packages/core/dist/workflow/tool-watch.js.map +1 -0
  91. package/packages/core/dist/workflow/tool-watch.test.d.ts +18 -0
  92. package/packages/core/dist/workflow/tool-watch.test.d.ts.map +1 -0
  93. package/packages/core/dist/workflow/tool-watch.test.js +718 -0
  94. package/packages/core/dist/workflow/tool-watch.test.js.map +1 -0
  95. package/packages/core/dist/workflow/workflow-migration.test.js +8 -4
  96. package/packages/core/dist/workflow/workflow-migration.test.js.map +1 -1
  97. package/packages/core/dist/workflow/workflow-schema.d.ts +7 -0
  98. package/packages/core/dist/workflow/workflow-schema.d.ts.map +1 -1
  99. package/packages/core/dist/workflow/workflow-schema.js +44 -0
  100. package/packages/core/dist/workflow/workflow-schema.js.map +1 -1
  101. package/packages/core/dist/workflow/workflow-schema.test.d.ts.map +1 -1
  102. package/packages/core/dist/workflow/workflow-schema.test.js +192 -0
  103. package/packages/core/dist/workflow/workflow-schema.test.js.map +1 -1
  104. package/pennyfarthing-dist/agents/README.md +1 -3
  105. package/pennyfarthing-dist/agents/architect.md +0 -6
  106. package/pennyfarthing-dist/agents/devops.md +0 -6
  107. package/pennyfarthing-dist/agents/handoff.md +18 -3
  108. package/pennyfarthing-dist/agents/orchestrator.md +0 -6
  109. package/pennyfarthing-dist/agents/pm.md +0 -6
  110. package/pennyfarthing-dist/agents/sm-finish.md +1 -1
  111. package/pennyfarthing-dist/agents/sm-handoff.md +27 -4
  112. package/pennyfarthing-dist/agents/sm.md +11 -11
  113. package/pennyfarthing-dist/agents/tandem-backseat.md +119 -0
  114. package/pennyfarthing-dist/commands/architect.md +11 -3
  115. package/pennyfarthing-dist/commands/close-epic.md +24 -131
  116. package/pennyfarthing-dist/commands/create-theme.md +14 -24
  117. package/pennyfarthing-dist/commands/dev.md +11 -3
  118. package/pennyfarthing-dist/commands/devops.md +11 -3
  119. package/pennyfarthing-dist/commands/health-check.md +1 -3
  120. package/pennyfarthing-dist/commands/help.md +8 -12
  121. package/pennyfarthing-dist/commands/list-themes.md +14 -16
  122. package/pennyfarthing-dist/commands/orchestrator.md +11 -3
  123. package/pennyfarthing-dist/commands/parallel-work.md +1 -3
  124. package/pennyfarthing-dist/commands/pm.md +11 -3
  125. package/pennyfarthing-dist/commands/prime.md +6 -6
  126. package/pennyfarthing-dist/commands/reviewer.md +11 -3
  127. package/pennyfarthing-dist/commands/run-ci.md +1 -1
  128. package/pennyfarthing-dist/commands/set-theme.md +14 -51
  129. package/pennyfarthing-dist/commands/setup.md +5 -1
  130. package/pennyfarthing-dist/commands/show-theme.md +14 -16
  131. package/pennyfarthing-dist/commands/sm.md +11 -3
  132. package/pennyfarthing-dist/commands/tea.md +11 -3
  133. package/pennyfarthing-dist/commands/tech-writer.md +11 -3
  134. package/pennyfarthing-dist/commands/theme-maker.md +14 -671
  135. package/pennyfarthing-dist/commands/theme.md +95 -0
  136. package/pennyfarthing-dist/commands/ux-designer.md +11 -3
  137. package/pennyfarthing-dist/commands/work.md +3 -5
  138. package/pennyfarthing-dist/guides/agent-behavior.md +62 -6
  139. package/pennyfarthing-dist/guides/agent-coordination.md +11 -13
  140. package/pennyfarthing-dist/guides/agent-template-tactical.md +2 -3
  141. package/pennyfarthing-dist/guides/bikelane.md +3 -2
  142. package/pennyfarthing-dist/guides/command-tag-taxonomy.md +212 -0
  143. package/pennyfarthing-dist/guides/hooks.md +5 -5
  144. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +3 -3
  145. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +9 -59
  146. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +4 -5
  147. package/pennyfarthing-dist/guides/prime.md +2 -2
  148. package/pennyfarthing-dist/guides/scale-levels.md +4 -6
  149. package/pennyfarthing-dist/guides/skill-schema.md +4 -4
  150. package/pennyfarthing-dist/guides/tandem-protocol.md +158 -0
  151. package/pennyfarthing-dist/personas/themes/discworld.yaml +1 -1
  152. package/pennyfarthing-dist/personas/themes/fifth-element.yaml +295 -0
  153. package/pennyfarthing-dist/scripts/README.md +1 -1
  154. package/pennyfarthing-dist/scripts/core/agent-session.sh +6 -2
  155. package/pennyfarthing-dist/scripts/core/check-context.sh +0 -0
  156. package/pennyfarthing-dist/scripts/core/handoff-marker.sh +0 -0
  157. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +0 -0
  158. package/pennyfarthing-dist/scripts/core/prime.sh +8 -10
  159. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +0 -0
  160. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +0 -0
  161. package/pennyfarthing-dist/scripts/git/git-status-all.sh +0 -0
  162. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +8 -6
  163. package/pennyfarthing-dist/scripts/git/release.sh +0 -0
  164. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +0 -0
  165. package/pennyfarthing-dist/scripts/health/drift-detection.sh +0 -0
  166. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +131 -54
  167. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +0 -0
  168. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +0 -0
  169. package/pennyfarthing-dist/scripts/hooks/cyclist-pretooluse-hook.sh +0 -0
  170. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -0
  171. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +32 -15
  172. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +4 -3
  173. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -0
  174. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +11 -5
  175. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +0 -0
  176. package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +0 -0
  177. package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +0 -0
  178. package/pennyfarthing-dist/scripts/hooks/session-start.sh +0 -0
  179. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +0 -0
  180. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +0 -0
  181. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +0 -0
  182. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +0 -0
  183. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +0 -0
  184. package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +0 -0
  185. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +0 -0
  186. package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +0 -0
  187. package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +0 -0
  188. package/pennyfarthing-dist/scripts/lib/background-tasks.sh +0 -0
  189. package/pennyfarthing-dist/scripts/lib/checkpoint.sh +0 -0
  190. package/pennyfarthing-dist/scripts/lib/common.sh +0 -0
  191. package/pennyfarthing-dist/scripts/lib/file-lock.sh +0 -0
  192. package/pennyfarthing-dist/scripts/lib/logging.sh +0 -0
  193. package/pennyfarthing-dist/scripts/lib/retry.sh +0 -0
  194. package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +0 -0
  195. package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +0 -0
  196. package/pennyfarthing-dist/scripts/misc/README.md +1 -1
  197. package/pennyfarthing-dist/scripts/misc/add-short-names.sh +0 -0
  198. package/pennyfarthing-dist/scripts/misc/add_short_names.py +0 -0
  199. package/pennyfarthing-dist/scripts/misc/backlog.sh +0 -0
  200. package/pennyfarthing-dist/scripts/misc/check-status.sh +0 -0
  201. package/pennyfarthing-dist/scripts/misc/find-related-work.sh +0 -0
  202. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +0 -0
  203. package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +0 -0
  204. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +0 -0
  205. package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +0 -0
  206. package/pennyfarthing-dist/scripts/misc/repo-scan.sh +0 -0
  207. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +0 -0
  208. package/pennyfarthing-dist/scripts/misc/run-ci.sh +0 -0
  209. package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +0 -0
  210. package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +0 -0
  211. package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +0 -0
  212. package/pennyfarthing-dist/scripts/misc/statusline.sh +50 -8
  213. package/pennyfarthing-dist/scripts/misc/uninstall.sh +0 -0
  214. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +1 -2
  215. package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +0 -0
  216. package/pennyfarthing-dist/scripts/story/create-story.sh +0 -0
  217. package/pennyfarthing-dist/scripts/story/size-story.sh +0 -0
  218. package/pennyfarthing-dist/scripts/story/story-template.sh +0 -0
  219. package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -0
  220. package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +0 -0
  221. package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +0 -0
  222. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +5 -5
  223. package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +0 -0
  224. package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +0 -0
  225. package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +0 -0
  226. package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +0 -0
  227. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +0 -0
  228. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +3 -79
  229. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +0 -0
  230. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +0 -0
  231. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -0
  232. package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +0 -0
  233. package/pennyfarthing-dist/scripts/theme/README.md +1 -1
  234. package/pennyfarthing-dist/scripts/theme/list-themes.sh +0 -0
  235. package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +0 -1
  236. package/pennyfarthing-dist/scripts/workflow/README.md +2 -2
  237. package/pennyfarthing-dist/scripts/workflow/check.py +0 -0
  238. package/pennyfarthing-dist/scripts/workflow/check.sh +0 -0
  239. package/pennyfarthing-dist/scripts/workflow/complete-step.py +0 -0
  240. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +10 -144
  241. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +0 -0
  242. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +0 -0
  243. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +0 -0
  244. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +0 -0
  245. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +0 -0
  246. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +0 -0
  247. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +0 -0
  248. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +0 -0
  249. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +0 -0
  250. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +2 -2
  251. package/pennyfarthing-dist/skills/skill-registry.schema.json +8 -0
  252. package/pennyfarthing-dist/skills/skill-registry.yaml +21 -17
  253. package/pennyfarthing-dist/skills/sprint/skill.md +25 -2
  254. package/pennyfarthing-dist/skills/story/scripts/create-story.sh +0 -0
  255. package/pennyfarthing-dist/skills/story/scripts/size-story.sh +0 -0
  256. package/pennyfarthing-dist/skills/story/scripts/story-template.sh +0 -0
  257. package/pennyfarthing-dist/skills/theme/skill.md +290 -75
  258. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +23 -166
  259. package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +0 -0
  260. package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +0 -0
  261. package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +0 -0
  262. package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +0 -0
  263. package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +0 -0
  264. package/pennyfarthing-dist/skills/workflow/skill.md +27 -4
  265. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +0 -11
  266. package/pennyfarthing-dist/templates/auto-load-sm.sh.template +14 -0
  267. package/pennyfarthing-dist/templates/settings.local.json.template +9 -0
  268. package/pennyfarthing-dist/workflows/2party-tdd.yaml +399 -0
  269. package/pennyfarthing-dist/workflows/architecture/workflow.yaml +65 -0
  270. package/pennyfarthing-dist/workflows/bdd-tandem.yaml +70 -0
  271. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +41 -24
  272. package/pennyfarthing-dist/workflows/tdd-tandem.yaml +61 -0
  273. package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  274. package/pennyfarthing_scripts/__pycache__/bellmode_hook.cpython-314.pyc +0 -0
  275. package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
  276. package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
  277. package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
  278. package/pennyfarthing_scripts/__pycache__/jira_bidirectional_sync.cpython-314.pyc +0 -0
  279. package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
  280. package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
  281. package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
  282. package/pennyfarthing_scripts/__pycache__/output.cpython-314.pyc +0 -0
  283. package/pennyfarthing_scripts/__pycache__/patch_mode.cpython-314.pyc +0 -0
  284. package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
  285. package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
  286. package/pennyfarthing_scripts/bellmode_hook.py +202 -47
  287. package/pennyfarthing_scripts/brownfield/__init__.py +6 -6
  288. package/pennyfarthing_scripts/brownfield/__main__.py +1 -0
  289. package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
  290. package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
  291. package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
  292. package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
  293. package/pennyfarthing_scripts/brownfield/cli.py +0 -1
  294. package/pennyfarthing_scripts/brownfield/discover.py +1 -2
  295. package/pennyfarthing_scripts/cli.py +23 -3
  296. package/pennyfarthing_scripts/codemarkers/__init__.py +23 -0
  297. package/pennyfarthing_scripts/codemarkers/__main__.py +6 -0
  298. package/pennyfarthing_scripts/codemarkers/__pycache__/__init__.cpython-314.pyc +0 -0
  299. package/pennyfarthing_scripts/codemarkers/__pycache__/__main__.cpython-314.pyc +0 -0
  300. package/pennyfarthing_scripts/codemarkers/__pycache__/analyze.cpython-314.pyc +0 -0
  301. package/pennyfarthing_scripts/codemarkers/__pycache__/cli.cpython-314.pyc +0 -0
  302. package/pennyfarthing_scripts/codemarkers/__pycache__/formatters.cpython-314.pyc +0 -0
  303. package/pennyfarthing_scripts/codemarkers/__pycache__/models.cpython-314.pyc +0 -0
  304. package/pennyfarthing_scripts/codemarkers/analyze.py +501 -0
  305. package/pennyfarthing_scripts/codemarkers/cli.py +179 -0
  306. package/pennyfarthing_scripts/codemarkers/formatters.py +88 -0
  307. package/pennyfarthing_scripts/codemarkers/models.py +60 -0
  308. package/pennyfarthing_scripts/common/__init__.py +8 -9
  309. package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
  310. package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
  311. package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
  312. package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
  313. package/pennyfarthing_scripts/common/config.py +1 -1
  314. package/pennyfarthing_scripts/complexity/__init__.py +15 -0
  315. package/pennyfarthing_scripts/complexity/__main__.py +6 -0
  316. package/pennyfarthing_scripts/complexity/__pycache__/__init__.cpython-314.pyc +0 -0
  317. package/pennyfarthing_scripts/complexity/__pycache__/__main__.cpython-314.pyc +0 -0
  318. package/pennyfarthing_scripts/complexity/__pycache__/analyze.cpython-314.pyc +0 -0
  319. package/pennyfarthing_scripts/complexity/__pycache__/cli.cpython-314.pyc +0 -0
  320. package/pennyfarthing_scripts/complexity/__pycache__/formatters.cpython-314.pyc +0 -0
  321. package/pennyfarthing_scripts/complexity/__pycache__/models.cpython-314.pyc +0 -0
  322. package/pennyfarthing_scripts/complexity/analyze.py +207 -0
  323. package/pennyfarthing_scripts/complexity/cli.py +82 -0
  324. package/pennyfarthing_scripts/complexity/formatters.py +64 -0
  325. package/pennyfarthing_scripts/complexity/models.py +32 -0
  326. package/pennyfarthing_scripts/context.py +14 -15
  327. package/pennyfarthing_scripts/deadcode/__init__.py +6 -0
  328. package/pennyfarthing_scripts/deadcode/__main__.py +6 -0
  329. package/pennyfarthing_scripts/deadcode/__pycache__/__init__.cpython-314.pyc +0 -0
  330. package/pennyfarthing_scripts/deadcode/__pycache__/__main__.cpython-314.pyc +0 -0
  331. package/pennyfarthing_scripts/deadcode/__pycache__/analyze.cpython-314.pyc +0 -0
  332. package/pennyfarthing_scripts/deadcode/__pycache__/cli.cpython-314.pyc +0 -0
  333. package/pennyfarthing_scripts/deadcode/__pycache__/formatters.cpython-314.pyc +0 -0
  334. package/pennyfarthing_scripts/deadcode/__pycache__/models.cpython-314.pyc +0 -0
  335. package/pennyfarthing_scripts/deadcode/analyze.py +322 -0
  336. package/pennyfarthing_scripts/deadcode/cli.py +163 -0
  337. package/pennyfarthing_scripts/deadcode/formatters.py +106 -0
  338. package/pennyfarthing_scripts/deadcode/models.py +54 -0
  339. package/pennyfarthing_scripts/dependencies/__init__.py +20 -0
  340. package/pennyfarthing_scripts/dependencies/__main__.py +5 -0
  341. package/pennyfarthing_scripts/dependencies/__pycache__/__init__.cpython-314.pyc +0 -0
  342. package/pennyfarthing_scripts/dependencies/__pycache__/__main__.cpython-314.pyc +0 -0
  343. package/pennyfarthing_scripts/dependencies/__pycache__/analyze.cpython-314.pyc +0 -0
  344. package/pennyfarthing_scripts/dependencies/__pycache__/cli.cpython-314.pyc +0 -0
  345. package/pennyfarthing_scripts/dependencies/__pycache__/formatters.cpython-314.pyc +0 -0
  346. package/pennyfarthing_scripts/dependencies/__pycache__/models.cpython-314.pyc +0 -0
  347. package/pennyfarthing_scripts/dependencies/analyze.py +155 -0
  348. package/pennyfarthing_scripts/dependencies/cli.py +76 -0
  349. package/pennyfarthing_scripts/dependencies/formatters.py +63 -0
  350. package/pennyfarthing_scripts/dependencies/models.py +39 -0
  351. package/pennyfarthing_scripts/git/__init__.py +5 -5
  352. package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
  353. package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
  354. package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
  355. package/pennyfarthing_scripts/git/create_branches.py +3 -2
  356. package/pennyfarthing_scripts/git/status_all.py +1 -1
  357. package/pennyfarthing_scripts/healthscore/__init__.py +21 -0
  358. package/pennyfarthing_scripts/healthscore/__main__.py +14 -0
  359. package/pennyfarthing_scripts/healthscore/__pycache__/__init__.cpython-314.pyc +0 -0
  360. package/pennyfarthing_scripts/healthscore/__pycache__/__main__.cpython-314.pyc +0 -0
  361. package/pennyfarthing_scripts/healthscore/__pycache__/analyze.cpython-314.pyc +0 -0
  362. package/pennyfarthing_scripts/healthscore/__pycache__/cli.cpython-314.pyc +0 -0
  363. package/pennyfarthing_scripts/healthscore/__pycache__/formatters.cpython-314.pyc +0 -0
  364. package/pennyfarthing_scripts/healthscore/__pycache__/models.cpython-314.pyc +0 -0
  365. package/pennyfarthing_scripts/healthscore/analyze.py +591 -0
  366. package/pennyfarthing_scripts/healthscore/cli.py +80 -0
  367. package/pennyfarthing_scripts/healthscore/formatters.py +46 -0
  368. package/pennyfarthing_scripts/healthscore/models.py +43 -0
  369. package/pennyfarthing_scripts/hooks/cyclist-pretooluse-hook.sh +0 -0
  370. package/pennyfarthing_scripts/hooks.py +8 -11
  371. package/pennyfarthing_scripts/hotspots/__init__.py +6 -6
  372. package/pennyfarthing_scripts/hotspots/__pycache__/__init__.cpython-314.pyc +0 -0
  373. package/pennyfarthing_scripts/hotspots/__pycache__/__main__.cpython-314.pyc +0 -0
  374. package/pennyfarthing_scripts/hotspots/__pycache__/analyze.cpython-314.pyc +0 -0
  375. package/pennyfarthing_scripts/hotspots/__pycache__/cli.cpython-314.pyc +0 -0
  376. package/pennyfarthing_scripts/hotspots/__pycache__/formatters.cpython-314.pyc +0 -0
  377. package/pennyfarthing_scripts/hotspots/__pycache__/models.cpython-314.pyc +0 -0
  378. package/pennyfarthing_scripts/hotspots/analyze.py +155 -14
  379. package/pennyfarthing_scripts/hotspots/cli.py +12 -10
  380. package/pennyfarthing_scripts/hotspots/models.py +0 -1
  381. package/pennyfarthing_scripts/jira/__init__.py +15 -17
  382. package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
  383. package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
  384. package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
  385. package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
  386. package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
  387. package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
  388. package/pennyfarthing_scripts/jira/__pycache__/create.cpython-314.pyc +0 -0
  389. package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
  390. package/pennyfarthing_scripts/jira/__pycache__/operations.cpython-314.pyc +0 -0
  391. package/pennyfarthing_scripts/jira/__pycache__/reconcile.cpython-314.pyc +0 -0
  392. package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
  393. package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
  394. package/pennyfarthing_scripts/jira/bidirectional.py +44 -18
  395. package/pennyfarthing_scripts/jira/claim.py +21 -0
  396. package/pennyfarthing_scripts/jira/cli.py +6 -3
  397. package/pennyfarthing_scripts/jira/client.py +32 -4
  398. package/pennyfarthing_scripts/jira/create.py +45 -1
  399. package/pennyfarthing_scripts/jira/epic.py +3 -2
  400. package/pennyfarthing_scripts/jira/reconcile.py +0 -1
  401. package/pennyfarthing_scripts/jira/story.py +2 -0
  402. package/pennyfarthing_scripts/jira/sync.py +1 -1
  403. package/pennyfarthing_scripts/migration/__pycache__/__init__.cpython-314.pyc +0 -0
  404. package/pennyfarthing_scripts/migration/__pycache__/session.cpython-314.pyc +0 -0
  405. package/pennyfarthing_scripts/migration/__pycache__/skill.cpython-314.pyc +0 -0
  406. package/pennyfarthing_scripts/migration/__pycache__/step.cpython-314.pyc +0 -0
  407. package/pennyfarthing_scripts/migration/__pycache__/validate.cpython-314.pyc +0 -0
  408. package/pennyfarthing_scripts/migration/skill.py +0 -1
  409. package/pennyfarthing_scripts/migration/step.py +0 -1
  410. package/pennyfarthing_scripts/migration/validate.py +8 -5
  411. package/pennyfarthing_scripts/patch_mode.py +2 -2
  412. package/pennyfarthing_scripts/preflight/__init__.py +1 -1
  413. package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
  414. package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
  415. package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
  416. package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
  417. package/pennyfarthing_scripts/preflight/finish.py +0 -1
  418. package/pennyfarthing_scripts/pretooluse_hook.py +6 -7
  419. package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
  420. package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
  421. package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
  422. package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
  423. package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
  424. package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
  425. package/pennyfarthing_scripts/prime/__pycache__/tiers.cpython-314.pyc +0 -0
  426. package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  427. package/pennyfarthing_scripts/prime/cli.py +5 -1
  428. package/pennyfarthing_scripts/prime/loader.py +2 -3
  429. package/pennyfarthing_scripts/prime/persona.py +2 -1
  430. package/pennyfarthing_scripts/prime/tiers.py +4 -4
  431. package/pennyfarthing_scripts/schema_validation_hook.py +2 -3
  432. package/pennyfarthing_scripts/sprint/__init__.py +10 -12
  433. package/pennyfarthing_scripts/sprint/__main__.py +2 -2
  434. package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
  435. package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
  436. package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
  437. package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
  438. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  439. package/pennyfarthing_scripts/sprint/__pycache__/epic_add.cpython-314.pyc +0 -0
  440. package/pennyfarthing_scripts/sprint/__pycache__/import_epic.cpython-314.pyc +0 -0
  441. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  442. package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
  443. package/pennyfarthing_scripts/sprint/__pycache__/story_add.cpython-314.pyc +0 -0
  444. package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
  445. package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
  446. package/pennyfarthing_scripts/sprint/__pycache__/validate_cmd.cpython-314.pyc +0 -0
  447. package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
  448. package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
  449. package/pennyfarthing_scripts/sprint/__pycache__/yaml_io.cpython-314.pyc +0 -0
  450. package/pennyfarthing_scripts/sprint/archive.py +0 -1
  451. package/pennyfarthing_scripts/sprint/archive_epic.py +198 -97
  452. package/pennyfarthing_scripts/sprint/cli.py +62 -46
  453. package/pennyfarthing_scripts/sprint/epic_add.py +8 -1
  454. package/pennyfarthing_scripts/sprint/import_epic.py +42 -18
  455. package/pennyfarthing_scripts/sprint/loader.py +6 -0
  456. package/pennyfarthing_scripts/sprint/status.py +1 -2
  457. package/pennyfarthing_scripts/sprint/story_add.py +202 -27
  458. package/pennyfarthing_scripts/sprint/story_finish.py +209 -0
  459. package/pennyfarthing_scripts/sprint/story_update.py +11 -3
  460. package/pennyfarthing_scripts/sprint/validate_cmd.py +0 -1
  461. package/pennyfarthing_scripts/sprint/validator.py +120 -6
  462. package/pennyfarthing_scripts/sprint/work.py +28 -7
  463. package/pennyfarthing_scripts/sprint/yaml_io.py +10 -2
  464. package/pennyfarthing_scripts/story/__init__.py +14 -16
  465. package/pennyfarthing_scripts/story/__pycache__/__init__.cpython-314.pyc +0 -0
  466. package/pennyfarthing_scripts/story/__pycache__/__main__.cpython-314.pyc +0 -0
  467. package/pennyfarthing_scripts/story/__pycache__/cli.cpython-314.pyc +0 -0
  468. package/pennyfarthing_scripts/story/__pycache__/create.cpython-314.pyc +0 -0
  469. package/pennyfarthing_scripts/story/__pycache__/size.cpython-314.pyc +0 -0
  470. package/pennyfarthing_scripts/story/__pycache__/template.cpython-314.pyc +0 -0
  471. package/pennyfarthing_scripts/story/size.py +0 -1
  472. package/pennyfarthing_scripts/story/template.py +0 -1
  473. package/pennyfarthing_scripts/swebench.py +1 -2
  474. package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
  475. package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
  476. package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
  477. package/pennyfarthing_scripts/tests/__pycache__/test_cli_modules.cpython-314-pytest-9.0.2.pyc +0 -0
  478. package/pennyfarthing_scripts/tests/__pycache__/test_codemarkers.cpython-314-pytest-9.0.2.pyc +0 -0
  479. package/pennyfarthing_scripts/tests/__pycache__/test_common.cpython-314-pytest-9.0.2.pyc +0 -0
  480. package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
  481. package/pennyfarthing_scripts/tests/__pycache__/test_healthscore.cpython-314-pytest-9.0.2.pyc +0 -0
  482. package/pennyfarthing_scripts/tests/__pycache__/test_jira_package.cpython-314-pytest-9.0.2.pyc +0 -0
  483. package/pennyfarthing_scripts/tests/__pycache__/test_package_structure.cpython-314-pytest-9.0.2.pyc +0 -0
  484. package/pennyfarthing_scripts/tests/__pycache__/test_patch_mode.cpython-314-pytest-9.0.2.pyc +0 -0
  485. package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
  486. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
  487. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
  488. package/pennyfarthing_scripts/tests/__pycache__/test_story_add.cpython-314-pytest-9.0.2.pyc +0 -0
  489. package/pennyfarthing_scripts/tests/__pycache__/test_story_package.cpython-314-pytest-9.0.2.pyc +0 -0
  490. package/pennyfarthing_scripts/tests/__pycache__/test_story_update.cpython-314-pytest-9.0.2.pyc +0 -0
  491. package/pennyfarthing_scripts/tests/__pycache__/test_tiers.cpython-314-pytest-9.0.2.pyc +0 -0
  492. package/pennyfarthing_scripts/tests/__pycache__/test_token_counting.cpython-314-pytest-9.0.2.pyc +0 -0
  493. package/pennyfarthing_scripts/tests/__pycache__/test_validate_cmd.cpython-314-pytest-9.0.2.pyc +0 -0
  494. package/pennyfarthing_scripts/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
  495. package/pennyfarthing_scripts/tests/__pycache__/test_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
  496. package/pennyfarthing_scripts/tests/conftest.py +1 -2
  497. package/pennyfarthing_scripts/tests/test_brownfield.py +10 -13
  498. package/pennyfarthing_scripts/tests/test_cli_modules.py +0 -4
  499. package/pennyfarthing_scripts/tests/test_codemarkers.py +687 -0
  500. package/pennyfarthing_scripts/tests/test_common.py +9 -4
  501. package/pennyfarthing_scripts/tests/test_epic_shard_validation.py +699 -0
  502. package/pennyfarthing_scripts/tests/test_git_utils.py +10 -13
  503. package/pennyfarthing_scripts/tests/test_healthscore.py +516 -0
  504. package/pennyfarthing_scripts/tests/test_jira_package.py +0 -3
  505. package/pennyfarthing_scripts/tests/test_package_structure.py +3 -16
  506. package/pennyfarthing_scripts/tests/test_patch_mode.py +7 -11
  507. package/pennyfarthing_scripts/tests/test_prime.py +39 -21
  508. package/pennyfarthing_scripts/tests/test_sprint_package.py +3 -8
  509. package/pennyfarthing_scripts/tests/test_sprint_validator.py +53 -5
  510. package/pennyfarthing_scripts/tests/test_story_add.py +3 -7
  511. package/pennyfarthing_scripts/tests/test_story_package.py +0 -3
  512. package/pennyfarthing_scripts/tests/test_story_update.py +5 -10
  513. package/pennyfarthing_scripts/tests/test_tiers.py +18 -17
  514. package/pennyfarthing_scripts/tests/test_token_counting.py +19 -13
  515. package/pennyfarthing_scripts/tests/test_validate_cmd.py +2 -7
  516. package/pennyfarthing_scripts/tests/test_workflow_check.py +0 -2
  517. package/pennyfarthing_scripts/tests/test_yaml_io.py +0 -3
  518. package/pennyfarthing_scripts/theme/__init__.py +5 -0
  519. package/pennyfarthing_scripts/theme/__main__.py +6 -0
  520. package/pennyfarthing_scripts/theme/__pycache__/__init__.cpython-314.pyc +0 -0
  521. package/pennyfarthing_scripts/theme/__pycache__/cli.cpython-314.pyc +0 -0
  522. package/pennyfarthing_scripts/theme/cli.py +287 -0
  523. package/pennyfarthing_scripts/validate/__init__.py +21 -0
  524. package/pennyfarthing_scripts/validate/__pycache__/__init__.cpython-314.pyc +0 -0
  525. package/pennyfarthing_scripts/validate/__pycache__/cli.cpython-314.pyc +0 -0
  526. package/pennyfarthing_scripts/validate/adapters/__init__.py +0 -0
  527. package/pennyfarthing_scripts/validate/adapters/__pycache__/__init__.cpython-314.pyc +0 -0
  528. package/pennyfarthing_scripts/validate/adapters/__pycache__/agent.cpython-314.pyc +0 -0
  529. package/pennyfarthing_scripts/validate/adapters/__pycache__/schema.cpython-314.pyc +0 -0
  530. package/pennyfarthing_scripts/validate/adapters/__pycache__/skill_command.cpython-314.pyc +0 -0
  531. package/pennyfarthing_scripts/validate/adapters/__pycache__/sprint.cpython-314.pyc +0 -0
  532. package/pennyfarthing_scripts/validate/adapters/__pycache__/workflow.cpython-314.pyc +0 -0
  533. package/pennyfarthing_scripts/validate/adapters/agent.py +239 -0
  534. package/pennyfarthing_scripts/validate/adapters/schema.py +30 -0
  535. package/pennyfarthing_scripts/validate/adapters/skill_command.py +292 -0
  536. package/pennyfarthing_scripts/validate/adapters/sprint.py +69 -0
  537. package/pennyfarthing_scripts/validate/adapters/workflow.py +320 -0
  538. package/pennyfarthing_scripts/validate/cli.py +141 -0
  539. package/pennyfarthing_scripts/welcome_hook.py +2 -3
  540. package/pennyfarthing_scripts/workflow.py +3 -3
  541. package/scripts/README.md +41 -0
  542. package/pennyfarthing-dist/agents/workflow-status-check.md +0 -96
  543. package/pennyfarthing-dist/commands/benchmark-control.md +0 -69
  544. package/pennyfarthing-dist/commands/benchmark.md +0 -485
  545. package/pennyfarthing-dist/commands/job-fair.md +0 -102
  546. package/pennyfarthing-dist/commands/solo.md +0 -447
  547. package/pennyfarthing-dist/guides/benchmarks.md +0 -62
  548. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  549. package/pennyfarthing-dist/scripts/test/ensure-swebench-data.sh +0 -59
  550. package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +0 -220
  551. package/pennyfarthing-dist/scripts/test/swebench-judge.py +0 -374
  552. package/pennyfarthing-dist/scripts/test/test-cache.sh +0 -165
  553. package/pennyfarthing-dist/scripts/test/test-setup.sh +0 -337
  554. package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +0 -13
  555. package/pennyfarthing-dist/scripts/theme/compute_theme_tiers.py +0 -402
  556. package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +0 -97
  557. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +0 -261
  558. package/pennyfarthing-dist/skills/judge/SKILL.md +0 -644
  559. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +0 -187
  560. package/pennyfarthing-dist/workflows/dev-story/checklist.md +0 -80
  561. package/pennyfarthing-dist/workflows/dev-story/instructions.xml +0 -410
  562. package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +0 -50
  563. package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +0 -201
  564. package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +0 -156
  565. package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +0 -140
  566. package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +0 -203
  567. package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +0 -74
  568. package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +0 -27
  569. package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  570. package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
  571. package/pennyfarthing_scripts/__pycache__/pretooluse_hook.cpython-314.pyc +0 -0
  572. package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
  573. package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
  574. package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
  575. package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
  576. package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
  577. package/pennyfarthing_scripts/migration/__pycache__/__main__.cpython-314.pyc +0 -0
  578. package/pennyfarthing_scripts/migration/__pycache__/cli.cpython-314.pyc +0 -0
  579. package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
  580. package/pennyfarthing_scripts/tests/__pycache__/test_workflow_cli.cpython-314-pytest-9.0.2.pyc +0 -0
@@ -0,0 +1,95 @@
1
+ ---
2
+ description: Manage persona themes - list, show, set, create, or interactive wizard
3
+ args: "[list|show|set|create|maker] [options]"
4
+ ---
5
+
6
+ # Theme Management
7
+
8
+ <purpose>
9
+ Manage persona themes: list available themes, view details, switch themes, create custom themes, and run the interactive AI-driven theme wizard.
10
+ </purpose>
11
+
12
+ ## Commands
13
+
14
+ ### `/theme` or `/theme show [name]`
15
+
16
+ Show current theme or specific theme details.
17
+
18
+ ```bash
19
+ pf theme show [name]
20
+
21
+ # Show extended details (OCEAN scores, quirks, catchphrases)
22
+ pf theme show [name] --full
23
+ ```
24
+
25
+ ### `/theme list`
26
+
27
+ List all available themes with current theme highlighted.
28
+
29
+ ```bash
30
+ pf theme list
31
+ ```
32
+
33
+ Output shows current theme marked with `*` and tier brackets: `[S]` elite, `[A]` excellent, `[B]` strong, `[C]` good, `[D]` below average, `[U]` unbenchmarked.
34
+
35
+ ### `/theme set <name>`
36
+
37
+ Set the active persona theme.
38
+
39
+ ```bash
40
+ pf theme set <name>
41
+ ```
42
+
43
+ After setting, refresh the current agent's persona:
44
+ ```bash
45
+ pf agent start "sm"
46
+ ```
47
+
48
+ ### `/theme create <name> [--base <theme>] [--user]`
49
+
50
+ Create a new custom theme by copying from a base.
51
+
52
+ ```bash
53
+ # Create from default base (minimalist)
54
+ pf theme create my-theme
55
+
56
+ # Create from specific base
57
+ pf theme create my-theme --base blade-runner
58
+
59
+ # Create as user-level theme (available across all projects)
60
+ pf theme create my-theme --user
61
+ ```
62
+
63
+ ### `/theme maker`
64
+
65
+ Interactive wizard for AI-driven theme creation. Supports three modes:
66
+
67
+ | Mode | Description |
68
+ |------|-------------|
69
+ | AI-Driven | Describe a concept, AI generates all 10 agent personas |
70
+ | Guided | AI suggests characters per agent, you pick |
71
+ | Manual | You specify character, style, and quote for each agent |
72
+
73
+ ## Quick Reference
74
+
75
+ | Command | Action |
76
+ |---------|--------|
77
+ | `/theme` | Show current theme |
78
+ | `/theme list` | List all themes |
79
+ | `/theme show blade-runner` | Show specific theme |
80
+ | `/theme show blade-runner --full` | Extended details |
81
+ | `/theme set discworld` | Switch to theme |
82
+ | `/theme create my-theme` | Create from base |
83
+ | `/theme maker` | Interactive wizard |
84
+
85
+ ## Related
86
+
87
+ | Skill | Purpose |
88
+ |-------|---------|
89
+ | `/theme` | Full skill with maker wizard details |
90
+
91
+ <reference>
92
+ - **Skill:** `.claude/skills/theme/skill.md`
93
+ - **CLI:** `pf theme [list|show|set|create]`
94
+ - **Config:** `.pennyfarthing/config.local.yaml`
95
+ </reference>
@@ -2,8 +2,16 @@
2
2
  description: UX Designer - User experience design and UI patterns
3
3
  ---
4
4
 
5
+ <agent-activation>
6
+ **FIRST:** Use Bash tool to run:
5
7
  ```bash
6
- d="$PWD"; while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done
7
- export PYTHONPATH="$(dirname "$(dirname "$(cd "$d/.pennyfarthing/scripts" && pwd -P)")"):${PYTHONPATH:-}"
8
- python3 -m pennyfarthing_scripts.cli agent start "ux-designer"
8
+ pf agent start "ux-designer"
9
9
  ```
10
+ This loads your persona and agent context. Adopt the character shown in the output.
11
+ </agent-activation>
12
+
13
+ <instructions>
14
+ You are now the UX Designer agent. Follow your agent instructions from the activation output.
15
+
16
+ The activation output begins with a `# Workflow State` section containing `state`, `story_id`, `phase`, `phase_owner`, and `backlog_count`. Act on this state per your agent definition.
17
+ </instructions>
@@ -7,11 +7,9 @@ description: Resume work or start new - smart entry point that picks up where yo
7
7
  <agent-activation>
8
8
  **FIRST:** Use Bash tool to run:
9
9
  ```bash
10
- d="$PWD"; while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done
11
- export PYTHONPATH="$(dirname "$(dirname "$(cd "$d/.pennyfarthing/scripts" && pwd -P)")"):${PYTHONPATH:-}"
12
- python3 -m pennyfarthing_scripts.cli agent start "sm"
10
+ pf agent start "sm"
13
11
  ```
14
- This loads your persona. Adopt the character shown in the output.
12
+ This loads your persona and agent context. Adopt the character shown in the output.
15
13
  </agent-activation>
16
14
 
17
15
  <purpose>
@@ -21,5 +19,5 @@ Smart entry point for picking up work. Activates SM who handles all work coordin
21
19
  <instructions>
22
20
  You are now the SM agent. Follow your agent instructions from the activation output.
23
21
 
24
- Your first action is ALWAYS to spawn `workflow-status-check` - this is defined in your agent file.
22
+ The activation output begins with a `# Workflow State` section containing `state`, `story_id`, `phase`, `phase_owner`, and `backlog_count`. Act on this state per your agent definition.
25
23
  </instructions>
@@ -13,7 +13,7 @@
13
13
  <critical>
14
14
  **Story completion is MANDATORY.** A story is NOT done until:
15
15
  1. Reviewer approves and merges the PR
16
- 2. SM runs `finish-story.sh` (archive session, update Jira, clean up)
16
+ 2. SM runs `pf sprint story finish` (archive session, update Jira, clean up)
17
17
 
18
18
  **Never** start new work while stories have open PRs. The merge gate blocks `/sprint work` if open PRs exist.
19
19
 
@@ -40,6 +40,61 @@
40
40
 
41
41
  ---
42
42
 
43
+ <tandem-protocol>
44
+ ## Tandem Backseat Observer
45
+
46
+ On activation, check session file for a `**Tandem:**` line (e.g., `**Tandem:** architect (file-watch)`).
47
+
48
+ **If no `**Tandem:**` line in session:** Skip entirely — no-op.
49
+
50
+ **If tandem is configured:**
51
+
52
+ 1. **Resolve backseat persona** from theme:
53
+ ```bash
54
+ THEME=$(yq '.theme' .pennyfarthing/config.local.yaml)
55
+ PARTNER_CHARACTER=$(yq ".agents.{PARTNER}.character" .pennyfarthing/personas/themes/${THEME}.yaml)
56
+ ```
57
+
58
+ 2. **Initialize observation file:**
59
+ Create `.session/{STORY_ID}-tandem-{PARTNER}.md` with header:
60
+ ```markdown
61
+ # Tandem Observations: {STORY_ID}
62
+ **Observer:** {PARTNER} ({PARTNER_CHARACTER})
63
+ **Phase:** {PHASE}
64
+ **Started:** {ISO_TIMESTAMP}
65
+
66
+ ---
67
+ ```
68
+
69
+ 3. **Spawn backseat** (Task tool):
70
+ ```yaml
71
+ subagent_type: "general-purpose"
72
+ model: "haiku"
73
+ run_in_background: true
74
+ prompt: |
75
+ Read .pennyfarthing/agents/tandem-backseat.md for your instructions.
76
+
77
+ PARTNER: "{PARTNER}"
78
+ CHARACTER: "{PARTNER_CHARACTER}"
79
+ STORY_ID: "{STORY_ID}"
80
+ SCOPE: "{SCOPE}"
81
+ OBSERVATION_FILE: ".session/{STORY_ID}-tandem-{PARTNER}.md"
82
+ SESSION_FILE: ".session/{STORY_ID}-session.md"
83
+ ```
84
+
85
+ 4. **During work:** PostToolUse hook automatically detects new observations
86
+ and injects them as `[Tandem] {CHARACTER}: {observation}`.
87
+ When you receive a tandem injection, surface it naturally:
88
+ *"{PARTNER_CHARACTER} suggests we extract this into an adapter."*
89
+
90
+ 5. **Before handoff:** Terminate the backseat background task, then proceed
91
+ with normal handoff sequence.
92
+
93
+ See `.pennyfarthing/guides/tandem-protocol.md` for full protocol details.
94
+ </tandem-protocol>
95
+
96
+ ---
97
+
43
98
  ## Reflector
44
99
 
45
100
  <critical>
@@ -61,16 +116,17 @@
61
116
  ## Exit Protocol
62
117
 
63
118
  1. Write assessment to session
64
- 2. Spawn `handoff` subagent returns `HANDOFF_RESULT: {status, next_agent}`
65
- 3. If blockedreport error, stop
66
- 4. Run `.pennyfarthing/scripts/core/handoff-marker.sh {next_agent}`
67
- 5. Extract marker from YAML output, emit it:
119
+ 2. Terminate tandem backseat (if active)
120
+ 3. Spawn `handoff` subagent returns `HANDOFF_RESULT: {status, next_agent}`
121
+ 4. If blocked → report error, stop
122
+ 5. Run `.pennyfarthing/scripts/core/handoff-marker.sh {next_agent}`
123
+ 6. Extract marker from YAML output, emit it:
68
124
  ```
69
125
  <!-- CYCLIST:HANDOFF:/dev -->
70
126
 
71
127
  Run `/dev` to continue
72
128
  ```
73
- 6. EXIT (nothing after marker)
129
+ 7. EXIT (nothing after marker)
74
130
  </agent-exit-protocol>
75
131
 
76
132
  <wrong-phase-detection>
@@ -22,7 +22,7 @@ Handoffs between agents are managed by Haiku subagents.
22
22
  ### 1. Single Source of Truth
23
23
  - **Agent definitions:** `.pennyfarthing/agents/`
24
24
  - **Subagent prompts:** `.pennyfarthing/agents/`
25
- - **Scope configuration:** `.pennyfarthing/guides/agent-scopes.yaml`
25
+ - **Scope configuration:** `.pennyfarthing/project/docs/agent-scopes.yaml`
26
26
  - **Sprint tracking:** `sprint/current-sprint.yaml`
27
27
  - **Session state:** `.session/{STORY_ID}-session.md`
28
28
 
@@ -55,7 +55,7 @@ Support Agents
55
55
 
56
56
  ```
57
57
  /$CLAUDE_PROJECT_DIR/
58
- ├── .claude/ # Pennyfarthing coordination directory
58
+ ├── .pennyfarthing/ # Pennyfarthing coordination directory (symlinks to node_modules)
59
59
  │ ├── agents/ # Agent definitions (symlinks to pennyfarthing-dist)
60
60
  │ │ ├── orchestrator.md # Master orchestrator
61
61
  │ │ ├── pm.md # Product Manager
@@ -68,17 +68,18 @@ Support Agents
68
68
  │ │ ├── ux-designer.md # UX Designer
69
69
  │ │ └── devops.md # DevOps Engineer
70
70
  │ │
71
- │ ├── commands/ # 42 slash commands (symlinks)
71
+ │ ├── commands/ # Slash commands (symlinks)
72
72
  │ ├── guides/ # Behavior guides (symlinks)
73
- │ ├── skills/ # 18+ knowledge domain skills (symlinks)
73
+ │ ├── skills/ # Knowledge domain skills (symlinks)
74
74
  │ ├── scripts/ # Utility scripts (symlinks)
75
75
  │ │
76
76
  │ ├── project/ # Project-specific overrides
77
77
  │ │ ├── agents/ # Agent sidecars (patterns, gotchas, decisions)
78
78
  │ │ └── commands/ # Custom project commands
79
79
  │ │
80
- │ ├── persona-config.yaml # Project default theme (shared with team)
81
- └── CLAUDE.md # Project instructions
80
+ │ ├── sidecars/ # Agent learning files (local, writable)
81
+ ├── config.local.yaml # Theme, bell_mode, relay_mode, permission_mode
82
+ │ └── persona-config.yaml # Project default theme (shared with team)
82
83
 
83
84
  ├── .session/ # Active work sessions
84
85
  │ └── {story-id}-session.md # Session files (one per story)
@@ -309,9 +310,6 @@ SM → TEA → Dev → Reviewer → SM
309
310
  | `testing-runner.md` | Run tests and report results | haiku |
310
311
  | **Reviewer Subagents** | | |
311
312
  | `reviewer-preflight.md` | Pre-flight checks before review | haiku |
312
- | **Utility Subagents** | | |
313
- | `workflow-status-check.md` | Check workflow status across repos | haiku |
314
-
315
313
  ### SM → TEA (Story Setup)
316
314
  **Trigger:** User selects story via `/new-work`
317
315
  **Subagent:** `sm-setup MODE=setup` then `sm-handoff`
@@ -440,10 +438,10 @@ Dev Agent Example (API story):
440
438
  ### Directory Structure
441
439
  ```
442
440
  .pennyfarthing/agents/ # Agent definitions (symlinked)
443
- .claude/commands/ # 42 slash commands
444
- .claude/skills/ # 18+ knowledge domain skills
445
- .session/ # Session files
446
- sprint/ # Sprint tracking
441
+ .pennyfarthing/commands/ # Slash commands (symlinked)
442
+ .pennyfarthing/skills/ # Knowledge domain skills (symlinked)
443
+ .session/ # Session files
444
+ sprint/ # Sprint tracking
447
445
  ```
448
446
 
449
447
  ### Commands Reference
@@ -62,8 +62,7 @@ From theme config. Model: haiku. Tasks: {What helpers do for this agent}
62
62
  </skills>
63
63
 
64
64
  <context>
65
- **See:** `.pennyfarthing/guides/agent-behavior.md` for shared tactical agent behavior.
66
- **See:** `.pennyfarthing/guides/agent-behavior.md` for project info and git strategy.
65
+ **See:** `.pennyfarthing/guides/agent-behavior.md` for shared tactical agent behavior, project info, and git strategy.
67
66
  </context>
68
67
 
69
68
  <reasoning-mode>
@@ -87,7 +86,7 @@ REFLECT: {what this means}
87
86
  </reasoning-mode>
88
87
 
89
88
  <on-activation>
90
- 1. Run workflow status check (helper: `.pennyfarthing/agents/workflow-status-check.md`)
89
+ 1. Workflow state is provided in prime activation output (`# Workflow State` section)
91
90
  2. Read session file if active work exists
92
91
  3. Verify actual state matches session file
93
92
  4. Check if handed off to me (Phase field)
@@ -11,7 +11,9 @@ Workflow orchestration engine. Coordinates multi-agent development through three
11
11
  | Workflow | Flow |
12
12
  |----------|------|
13
13
  | `tdd` | SM → TEA (RED) → Dev (GREEN) → Reviewer → SM |
14
+ | `tdd-tandem` | SM → TEA+Architect (RED) → Dev+TEA (GREEN) → Reviewer+PM → SM |
14
15
  | `bdd` | SM → UX → TEA → Dev → Reviewer → SM |
16
+ | `bdd-tandem` | SM → UX+Architect → TEA → Dev+UX (GREEN) → Reviewer+PM → SM |
15
17
  | `trivial` | SM → Dev → Reviewer → SM |
16
18
  | `agent-docs` | SM → Orchestrator → Tech Writer → SM |
17
19
 
@@ -27,7 +29,7 @@ One step loaded at a time. User approval at decision points. Supports tri-modal
27
29
  | `sprint-planning` | Sprint planning facilitation |
28
30
  | `epics-and-stories` | Epic and story breakdown |
29
31
  | `release` | Release workflow with verification gates |
30
- | `ux-design`, `quick-dev`, `quick-spec`, `product-brief`, `project-context`, `implementation-readiness` | Other stepped workflows |
32
+ | `ux-design`, `quick-dev`, `product-brief`, `project-context`, `implementation-readiness` | Other stepped workflows |
31
33
 
32
34
  ### Procedural — Flexible agent-guided processes
33
35
 
@@ -37,7 +39,6 @@ No fixed step sequence. Checklist-based, agent discretion on order.
37
39
  |----------|---------|
38
40
  | `brainstorming` | Structured problem-solving (62 techniques) |
39
41
  | `code-review` | Code review checklists |
40
- | `dev-story` | Story development guidance |
41
42
  | `retrospective` | Sprint retrospective |
42
43
 
43
44
  ## State Tracking
@@ -0,0 +1,212 @@
1
+ # Command Tag Taxonomy Reference
2
+
3
+ **Status:** 46 command files audited. Last updated: 2026-02-08
4
+
5
+ ---
6
+
7
+ ## Tag Inventory Table
8
+
9
+ | Tag | Meaning | Usage | Files |
10
+ |-----|---------|-------|-------|
11
+ | `<purpose>` | What the command does and when to use it | Core rationale & quick summary | 23 |
12
+ | `<usage>` | How to invoke the command with syntax & examples | Syntax guide | 13 |
13
+ | `<on-invoke>` | Detailed step-by-step execution logic | Complex workflows (benchmarking, solo, checks) | 7 |
14
+ | `<workflow>` | High-level workflow phases and process flow | Process documentation | 11 |
15
+ | `<when-to-use>` | Situations where command applies | Decision guide | 11 |
16
+ | `<reference>` | Links to related files, scripts, skills | Resource index | 11 |
17
+ | `<instructions>` | Specific setup or execution steps | Agent-specific | 10 |
18
+ | `<agent-activation>` | How to activate agent with CLI | Agent commands | 10 |
19
+ | `<execution>` | Detailed execution with options and examples | Script-based commands | 3 |
20
+ | `<related>` | Related commands to consider | Cross-reference | 6 |
21
+ | `<prerequisites>` | Required setup or conditions | Prerequisite checklist | 2 |
22
+ | `<critical>` | Non-negotiable rules or restrictions | Mandatory rules | 2 |
23
+ | `<output-format>` | Expected output structure | Output specification | 4 |
24
+ | `<critical-integrity-requirements>` | Data integrity constraints (benchmarking) | Specialized validation | 2 |
25
+ | `<when-not-to-use>` | When NOT to use this command | Exclusion guidance | 1 |
26
+ | `<variants>` | Command variants & differences | Variation guide | 1 |
27
+ | `<key-differences>` | How this differs from similar commands | Comparison | 1 |
28
+ | `<error-handling>` | Error cases and messages | Error reference | 1 |
29
+ | `<integration>` | Integration with other systems | System integration | 2 |
30
+ | `<quick-start>` | Quick start for new users | Onboarding | 1 |
31
+ | `<commands>` | Subcommands available | Command reference | 1 |
32
+ | `<themes>` | Theme selection reference | Theme documentation | 1 |
33
+ | `<context-aware>` | Context-aware help based on state | Conditional help | 1 |
34
+ | `<health-checks>` | Health check details and procedures | Diagnostic procedures | 1 |
35
+ | `<auto-fixes>` | Auto-fix capabilities and warnings | Auto-remediation | 1 |
36
+ | `<drift-detection>` | Behavior drift detection | Monitoring | 1 |
37
+ | `<requirements>` | Required tools and installations | Tool requirements | 1 |
38
+ | `<detection-order>` | Detection priority order | Detection logic | 1 |
39
+ | `<agents>` | Agent reference table | Agent directory | 1 |
40
+ | `<command>` | YAML frontmatter directive | Metadata | 1 |
41
+ | `<architecture>` | High-level architecture diagram | System design | 1 |
42
+ | `<parallel-work-flow>` | Parallel work setup flow | Worktree workflow | 1 |
43
+ | `<agent-exit>` | Agent exit behavior | State management | 1 |
44
+ | `<no-checkpoints>` | Handling missing checkpoints | Edge case | 1 |
45
+ | `<checkpoint-labels>` | Checkpoint label patterns | Checkpoint reference | 1 |
46
+ | `<stale-checkpoint-warning>` | Stale checkpoint warnings | Warning handling | 1 |
47
+ | `<skip-check>` | Emergency skip behavior | Override handling | 1 |
48
+ | `<description>` | YAML frontmatter description | Metadata | 1 |
49
+ | `<workflow>` (YAML) | YAML frontmatter workflow reference | Metadata | 1 |
50
+ | `<skills>` | Related skills | Skill reference | 1 |
51
+ | `<commands>` (sub) | Available subcommands | Subcommand reference | 1 |
52
+
53
+ ---
54
+
55
+ ## Recommended Standard
56
+
57
+ ### Mandatory (Expected in all commands)
58
+
59
+ - **`<purpose>`** — Essential for user understanding
60
+ - **`<usage>`** — Essential for activation
61
+
62
+ ### Conditional by Type
63
+
64
+ **Workflow/Agent Commands (e.g., /sm, /dev, /tea)**
65
+ - `<agent-activation>` — Required to show activation
66
+ - `<instructions>` — Required for agent behavior
67
+
68
+ **Script-Based Commands (e.g., /check, /run-ci)**
69
+ - `<execution>` — Required with options
70
+ - `<reference>` — Links to scripts
71
+
72
+ **Complex Multi-Step (e.g., /benchmark, /solo)**
73
+ - `<on-invoke>` — Step-by-step breakdown
74
+ - `<reference>` — Links to judge, finalize-run
75
+
76
+ **Decision-Making Commands (e.g., /patch, /chore)**
77
+ - `<when-to-use>` — When to pick this
78
+ - `<when-not-to-use>` — When NOT to pick this
79
+ - `<related>` — Alternatives to consider
80
+
81
+ **Workflow/Phase Commands (e.g., /sprint, /release)**
82
+ - `<workflow>` — Phase breakdown
83
+ - `<commands>` or subcommand table — Available subcommands
84
+
85
+ ### Optional but Helpful
86
+
87
+ - `<reference>` — Always include links to related files
88
+ - `<related>` — Cross-reference similar commands
89
+ - `<error-handling>` — For commands that can fail
90
+ - `<output-format>` — For structured output commands
91
+
92
+ ---
93
+
94
+ ## Consistency Gaps
95
+
96
+ ### Missing `<purpose>` (Core)
97
+ - (None - all files have purpose or instruction)
98
+
99
+ ### Missing `<usage>` Examples
100
+ Files with no usage examples (mostly pure-markdown or markdown+comment style):
101
+ - brainstorming.md (informal, no examples needed)
102
+ - party-mode.md (informal)
103
+ - create-branches-from-story.md
104
+ - create-theme.md
105
+ - list-themes.md
106
+ - permissions.md
107
+ - repo-status.md
108
+ - retro.md
109
+ - show-theme.md
110
+ - start-epic.md
111
+ - sync-epic-to-jira.md
112
+ - sync-work-with-sprint.md
113
+ - theme-maker.md
114
+ - update-domain-docs.md
115
+ - set-theme.md
116
+
117
+ **ACTION:** Recommend adding `<usage>` with minimal examples to non-markdown commands.
118
+
119
+ ### Missing `<reference>` (Helpful)
120
+ Files without resource links:
121
+ - brainstorming.md
122
+ - create-branches-from-story.md
123
+ - create-theme.md
124
+ - fix-blocker.md
125
+ - git-cleanup.md
126
+ - job-fair.md
127
+ - list-themes.md
128
+ - party-mode.md
129
+ - permissions.md
130
+ - repo-status.md
131
+ - retro.md
132
+ - show-theme.md
133
+ - start-epic.md
134
+ - sync-epic-to-jira.md
135
+ - sync-work-with-sprint.md
136
+ - theme-maker.md
137
+ - update-domain-docs.md
138
+ - set-theme.md
139
+ - architect.md
140
+ - dev.md
141
+ - devops.md
142
+ - orchestrator.md
143
+ - pm.md
144
+ - reviewer.md
145
+ - sm.md
146
+ - tea.md
147
+ - tech-writer.md
148
+ - ux-designer.md
149
+
150
+ **ACTION:** Consider adding `<reference>` section to guide files and agent files linking to relevant skill/agent docs.
151
+
152
+ ### Agent Commands Lack Consistency
153
+ Agent activation commands (architect, dev, devops, orchestrator, pm, reviewer, sm, tea, tech-writer, ux-designer, work):
154
+ - Only have `<agent-activation>` + `<instructions>`
155
+ - Missing: `<purpose>`, `<when-to-use>`, `<reference>`
156
+
157
+ **ACTION:** Add fuller `<purpose>` and `<reference>` to agent commands.
158
+
159
+ ### Missing Tag Patterns by Category
160
+
161
+ | Command Type | Gap |
162
+ |--------------|-----|
163
+ | **Theme Commands** (create, set, show, list, theme-maker) | Inconsistent use of `<usage>`. Only `theme-maker` uses XML tags extensively. |
164
+ | **Sprint Commands** (sprint, start-epic, close-epic) | Some pure markdown, no `<usage>`. |
165
+ | **Git Commands** (chore, patch, git-cleanup, standalone) | Good coverage, no gaps. |
166
+ | **Config/Setup** (setup, health-check, permissions) | Needs `<usage>` examples. |
167
+
168
+ ---
169
+
170
+ ## Patterns & Recommendations
171
+
172
+ ### High-Quality Examples (Model These)
173
+
174
+ **benchmark.md** — Comprehensive tag coverage
175
+ - `<purpose>` + `<critical-integrity-requirements>` + `<usage>` + `<on-invoke>` (11 detailed steps) + `<error-handling>` + `<reference>`
176
+
177
+ **solo.md** — Well-structured complex command
178
+ - `<purpose>` + `<architecture>` + `<usage>` + `<on-invoke>` (10 detailed steps) + `<reference>`
179
+
180
+ **patch.md** — Good decision guidance
181
+ - `<purpose>` + `<when-to-use>` + `<when-not-to-use>` + `<usage>` + `<key-differences>` + `<workflow>` + `<related>`
182
+
183
+ ### Improvement Opportunities
184
+
185
+ **Low-quality (Pure Markdown, No Structure)**
186
+ - brainstorming.md — Use `<purpose>`, `<usage>`, `<workflow>` tags
187
+ - retro.md — Use `<purpose>`, `<workflow>`, `<reference>` tags
188
+ - party-mode.md — Add structure with tags
189
+ - start-epic.md → Already has good content, just needs XML tags
190
+
191
+ **Mixed Quality (Some Tags)**
192
+ - help.md — Good breadth, but inconsistent sections
193
+ - workflow.md — Minimal; needs expansion
194
+ - permissions.md — Good CLI reference, needs `<usage>` tags
195
+
196
+ ---
197
+
198
+ ## Summary
199
+
200
+ **Total Commands:** 46
201
+ **Commands with Purpose Tag:** 23+ (50%+)
202
+ **Commands with Usage Tag:** 13 (28%)
203
+ **Commands with On-Invoke Detail:** 7 (15%)
204
+
205
+ **Consistency Score:** ~60% — Good foundation, room for improvement in usage examples and cross-references.
206
+
207
+ **Key Recommendation:** Standardize on:
208
+ 1. **All files** → `<purpose>` + `<usage>` (minimum viable)
209
+ 2. **Complex workflows** → Add `<on-invoke>` with numbered steps
210
+ 3. **All files** → Add `<reference>` with related file links
211
+ 4. **Decision commands** → Add `<related>` for alternatives
212
+ 5. **Convert pure Markdown** → Wrap sections in XML tags for consistency
@@ -16,7 +16,7 @@ Hooks are shell scripts that Claude Code runs at specific events:
16
16
 
17
17
  ### SessionStart: session-start.sh
18
18
 
19
- **Location:** `.claude/pennyfarthing/scripts/hooks/session-start.sh`
19
+ **Location:** `.pennyfarthing/scripts/hooks/session-start.sh`
20
20
 
21
21
  Initializes the Pennyfarthing environment:
22
22
  - Creates `.session/` directory structure
@@ -25,7 +25,7 @@ Initializes the Pennyfarthing environment:
25
25
 
26
26
  ### SessionStart: setup-env.sh
27
27
 
28
- **Location:** `.claude/project/hooks/setup-env.sh`
28
+ **Location:** `.pennyfarthing/project/hooks/setup-env.sh`
29
29
 
30
30
  Project-specific environment setup. Edit this file to:
31
31
  - Set custom environment variables
@@ -34,12 +34,12 @@ Project-specific environment setup. Edit this file to:
34
34
 
35
35
  ### PreToolUse: pre-edit-check.sh
36
36
 
37
- **Location:** `.claude/pennyfarthing/scripts/hooks/pre-edit-check.sh`
37
+ **Location:** `.pennyfarthing/scripts/hooks/pre-edit-check.sh`
38
38
 
39
39
  Protects sensitive files from accidental edits:
40
40
  - Blocks: `.env`, `.pem`, `.key`, credentials, secrets
41
41
  - Blocks: `.git/`, `node_modules/`, `vendor/`
42
- - Blocks: `.claude/pennyfarthing/*` (managed files)
42
+ - Blocks: `.pennyfarthing/*` (managed files)
43
43
 
44
44
  ## Configuration Schema
45
45
 
@@ -225,6 +225,6 @@ If a hook fails or behaves unexpectedly:
225
225
 
226
226
  | Type | Location | Editable |
227
227
  |------|----------|----------|
228
- | Managed hooks | `.claude/pennyfarthing/scripts/hooks/` | No (use pennyfarthing repo) |
228
+ | Managed hooks | `.pennyfarthing/scripts/hooks/` | No (use pennyfarthing repo) |
229
229
  | Project hooks | `.claude/project/hooks/` | Yes |
230
230
  | Settings | `.claude/settings.local.json` | Yes |
@@ -240,7 +240,7 @@ After collecting results, merge them into a unified structure:
240
240
  ```yaml
241
241
  # Orchestrator spawns parallel status checks
242
242
  Task:
243
- subagent_type: "workflow-status-check"
243
+ subagent_type: "Explore"
244
244
  description: "Check pennyfarthing status"
245
245
  prompt: |
246
246
  REPO: pennyfarthing
@@ -248,7 +248,7 @@ Task:
248
248
  Report git status, branch, and uncommitted changes.
249
249
 
250
250
  Task:
251
- subagent_type: "workflow-status-check"
251
+ subagent_type: "Explore"
252
252
  description: "Check API status"
253
253
  prompt: |
254
254
  REPO: api
@@ -256,7 +256,7 @@ Task:
256
256
  Report git status, branch, and uncommitted changes.
257
257
 
258
258
  Task:
259
- subagent_type: "workflow-status-check"
259
+ subagent_type: "Explore"
260
260
  description: "Check UI status"
261
261
  prompt: |
262
262
  REPO: ui