@pennyfarthing/core 10.0.1 → 10.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (492) hide show
  1. package/package.json +13 -3
  2. package/pennyfarthing-dist/agents/README.md +348 -0
  3. package/pennyfarthing-dist/agents/architect.md +180 -0
  4. package/pennyfarthing-dist/agents/dev.md +169 -0
  5. package/pennyfarthing-dist/agents/devops.md +203 -0
  6. package/pennyfarthing-dist/agents/handoff.md +235 -0
  7. package/pennyfarthing-dist/agents/orchestrator.md +182 -0
  8. package/pennyfarthing-dist/agents/pm.md +152 -0
  9. package/pennyfarthing-dist/agents/reviewer-preflight.md +129 -0
  10. package/pennyfarthing-dist/agents/reviewer.md +197 -0
  11. package/pennyfarthing-dist/agents/sm-file-summary.md +79 -0
  12. package/pennyfarthing-dist/agents/sm-finish.md +82 -0
  13. package/pennyfarthing-dist/agents/sm-handoff.md +129 -0
  14. package/pennyfarthing-dist/agents/sm-setup.md +251 -0
  15. package/pennyfarthing-dist/agents/sm.md +298 -0
  16. package/pennyfarthing-dist/agents/tea.md +161 -0
  17. package/pennyfarthing-dist/agents/tech-writer.md +226 -0
  18. package/pennyfarthing-dist/agents/testing-runner.md +184 -0
  19. package/pennyfarthing-dist/agents/ux-designer.md +236 -0
  20. package/pennyfarthing-dist/agents/workflow-status-check.md +96 -0
  21. package/pennyfarthing-dist/commands/architect.md +9 -0
  22. package/pennyfarthing-dist/commands/benchmark-control.md +69 -0
  23. package/pennyfarthing-dist/commands/benchmark.md +485 -0
  24. package/pennyfarthing-dist/commands/brainstorming.md +91 -0
  25. package/pennyfarthing-dist/commands/check.md +156 -0
  26. package/pennyfarthing-dist/commands/chore.md +218 -0
  27. package/pennyfarthing-dist/commands/close-epic.md +139 -0
  28. package/pennyfarthing-dist/commands/continue-session.md +218 -0
  29. package/pennyfarthing-dist/commands/create-branches-from-story.md +358 -0
  30. package/pennyfarthing-dist/commands/create-theme.md +29 -0
  31. package/pennyfarthing-dist/commands/dev.md +9 -0
  32. package/pennyfarthing-dist/commands/devops.md +9 -0
  33. package/pennyfarthing-dist/commands/fix-blocker.md +22 -0
  34. package/pennyfarthing-dist/commands/git-cleanup.md +57 -0
  35. package/pennyfarthing-dist/commands/health-check.md +143 -0
  36. package/pennyfarthing-dist/commands/help.md +264 -0
  37. package/pennyfarthing-dist/commands/job-fair.md +102 -0
  38. package/pennyfarthing-dist/commands/list-themes.md +21 -0
  39. package/pennyfarthing-dist/commands/new-work.md +23 -0
  40. package/pennyfarthing-dist/commands/orchestrator.md +9 -0
  41. package/pennyfarthing-dist/commands/parallel-work.md +73 -0
  42. package/pennyfarthing-dist/commands/party-mode.md +77 -0
  43. package/pennyfarthing-dist/commands/patch.md +210 -0
  44. package/pennyfarthing-dist/commands/permissions.md +193 -0
  45. package/pennyfarthing-dist/commands/pm.md +9 -0
  46. package/pennyfarthing-dist/commands/prime.md +136 -0
  47. package/pennyfarthing-dist/commands/release.md +74 -0
  48. package/pennyfarthing-dist/commands/repo-status.md +49 -0
  49. package/pennyfarthing-dist/commands/retro.md +200 -0
  50. package/pennyfarthing-dist/commands/reviewer.md +9 -0
  51. package/pennyfarthing-dist/commands/run-ci.md +116 -0
  52. package/pennyfarthing-dist/commands/set-theme.md +56 -0
  53. package/pennyfarthing-dist/commands/setup.md +65 -0
  54. package/pennyfarthing-dist/commands/show-theme.md +21 -0
  55. package/pennyfarthing-dist/commands/sm.md +9 -0
  56. package/pennyfarthing-dist/commands/solo.md +447 -0
  57. package/pennyfarthing-dist/commands/sprint-planning.md +109 -0
  58. package/pennyfarthing-dist/commands/sprint.md +142 -0
  59. package/pennyfarthing-dist/commands/standalone.md +194 -0
  60. package/pennyfarthing-dist/commands/start-epic.md +168 -0
  61. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +184 -0
  62. package/pennyfarthing-dist/commands/sync-work-with-sprint.md +373 -0
  63. package/pennyfarthing-dist/commands/tea.md +9 -0
  64. package/pennyfarthing-dist/commands/tech-writer.md +9 -0
  65. package/pennyfarthing-dist/commands/theme-maker.md +676 -0
  66. package/pennyfarthing-dist/commands/update-domain-docs.md +83 -0
  67. package/pennyfarthing-dist/commands/ux-designer.md +9 -0
  68. package/pennyfarthing-dist/commands/work.md +25 -0
  69. package/pennyfarthing-dist/commands/workflow.md +21 -0
  70. package/pennyfarthing-dist/guides/agent-behavior.md +92 -0
  71. package/pennyfarthing-dist/guides/agent-coordination.md +475 -0
  72. package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +432 -0
  73. package/pennyfarthing-dist/guides/agent-template-strategic.md +148 -0
  74. package/pennyfarthing-dist/guides/agent-template-tactical.md +162 -0
  75. package/pennyfarthing-dist/guides/hooks.md +230 -0
  76. package/pennyfarthing-dist/guides/measurement-framework.md +210 -0
  77. package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +766 -0
  78. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +574 -0
  79. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +488 -0
  80. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +402 -0
  81. package/pennyfarthing-dist/guides/permission-protocol.md +188 -0
  82. package/pennyfarthing-dist/guides/persona-loading.md +46 -0
  83. package/pennyfarthing-dist/guides/prompt-patterns.md +338 -0
  84. package/pennyfarthing-dist/guides/scale-levels.md +114 -0
  85. package/pennyfarthing-dist/guides/session-artifacts.md +193 -0
  86. package/pennyfarthing-dist/guides/session-schema.md +346 -0
  87. package/pennyfarthing-dist/guides/skill-schema.md +412 -0
  88. package/pennyfarthing-dist/guides/workflow-schema.md +257 -0
  89. package/pennyfarthing-dist/guides/workflow-step-schema.md +512 -0
  90. package/pennyfarthing-dist/guides/worktree-mode.md +113 -0
  91. package/pennyfarthing-dist/guides/xml-tags.md +627 -0
  92. package/pennyfarthing-dist/output-styles/teaching.md +33 -0
  93. package/pennyfarthing-dist/output-styles/terse.md +20 -0
  94. package/pennyfarthing-dist/output-styles/verbose.md +28 -0
  95. package/pennyfarthing-dist/personas/themes/a-team.yaml +331 -0
  96. package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +324 -0
  97. package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +282 -0
  98. package/pennyfarthing-dist/personas/themes/blade-runner.yaml +289 -0
  99. package/pennyfarthing-dist/personas/themes/catch-22.yaml +304 -0
  100. package/pennyfarthing-dist/personas/themes/control.yaml +201 -0
  101. package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +315 -0
  102. package/pennyfarthing-dist/personas/themes/discworld.yaml +334 -0
  103. package/pennyfarthing-dist/personas/themes/doctor-who.yaml +284 -0
  104. package/pennyfarthing-dist/personas/themes/dune.yaml +301 -0
  105. package/pennyfarthing-dist/personas/themes/firefly.yaml +320 -0
  106. package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +284 -0
  107. package/pennyfarthing-dist/personas/themes/harry-potter.yaml +316 -0
  108. package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +323 -0
  109. package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +326 -0
  110. package/pennyfarthing-dist/personas/themes/mad-max.yaml +349 -0
  111. package/pennyfarthing-dist/personas/themes/mash.yaml +329 -0
  112. package/pennyfarthing-dist/personas/themes/princess-bride.yaml +344 -0
  113. package/pennyfarthing-dist/personas/themes/sandman.yaml +282 -0
  114. package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +358 -0
  115. package/pennyfarthing-dist/personas/themes/star-wars.yaml +297 -0
  116. package/pennyfarthing-dist/personas/themes/the-expanse.yaml +337 -0
  117. package/pennyfarthing-dist/personas/themes/the-matrix.yaml +342 -0
  118. package/pennyfarthing-dist/personas/themes/watchmen.yaml +285 -0
  119. package/pennyfarthing-dist/personas/themes/west-wing.yaml +285 -0
  120. package/pennyfarthing-dist/personas/themes/x-files.yaml +296 -0
  121. package/pennyfarthing-dist/scripts/README.md +87 -0
  122. package/pennyfarthing-dist/scripts/core/README.md +25 -0
  123. package/pennyfarthing-dist/scripts/core/agent-session.sh +390 -0
  124. package/pennyfarthing-dist/scripts/core/check-context.sh +194 -0
  125. package/pennyfarthing-dist/scripts/core/handoff-marker.sh +112 -0
  126. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +90 -0
  127. package/pennyfarthing-dist/scripts/core/prime.sh +30 -0
  128. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +21 -0
  129. package/pennyfarthing-dist/scripts/git/README.md +25 -0
  130. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +267 -0
  131. package/pennyfarthing-dist/scripts/git/git-status-all.sh +152 -0
  132. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +79 -0
  133. package/pennyfarthing-dist/scripts/git/release.sh +246 -0
  134. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +497 -0
  135. package/pennyfarthing-dist/scripts/health/drift-detection.sh +156 -0
  136. package/pennyfarthing-dist/scripts/hooks/README.md +32 -0
  137. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  138. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +106 -0
  139. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +95 -0
  140. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +65 -0
  141. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +35 -0
  142. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +150 -0
  143. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +190 -0
  144. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +71 -0
  145. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +42 -0
  146. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +20 -0
  147. package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +499 -0
  148. package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +30 -0
  149. package/pennyfarthing-dist/scripts/hooks/session-start.sh +97 -0
  150. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +65 -0
  151. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +78 -0
  152. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +94 -0
  153. package/pennyfarthing-dist/scripts/jira/README.md +36 -0
  154. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +95 -0
  155. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +91 -0
  156. package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +22 -0
  157. package/pennyfarthing-dist/scripts/jira/jira-lib.sh +464 -0
  158. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +260 -0
  159. package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +18 -0
  160. package/pennyfarthing-dist/scripts/jira/jira-sync.sh +16 -0
  161. package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +16 -0
  162. package/pennyfarthing-dist/scripts/jira/sync-epic-to-jira.sh +16 -0
  163. package/pennyfarthing-dist/scripts/lib/README.md +29 -0
  164. package/pennyfarthing-dist/scripts/lib/background-tasks.sh +177 -0
  165. package/pennyfarthing-dist/scripts/lib/checkpoint.sh +136 -0
  166. package/pennyfarthing-dist/scripts/lib/common.sh +212 -0
  167. package/pennyfarthing-dist/scripts/lib/file-lock.sh +269 -0
  168. package/pennyfarthing-dist/scripts/lib/find-root.sh +58 -0
  169. package/pennyfarthing-dist/scripts/lib/logging.sh +186 -0
  170. package/pennyfarthing-dist/scripts/lib/retry.sh +76 -0
  171. package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +102 -0
  172. package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +91 -0
  173. package/pennyfarthing-dist/scripts/misc/README.md +44 -0
  174. package/pennyfarthing-dist/scripts/misc/add-short-names.sh +13 -0
  175. package/pennyfarthing-dist/scripts/misc/add_short_names.py +226 -0
  176. package/pennyfarthing-dist/scripts/misc/backlog.sh +77 -0
  177. package/pennyfarthing-dist/scripts/misc/check-status.sh +247 -0
  178. package/pennyfarthing-dist/scripts/misc/find-related-work.sh +231 -0
  179. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +107 -0
  180. package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +74 -0
  181. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +10 -0
  182. package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +319 -0
  183. package/pennyfarthing-dist/scripts/misc/repo-scan.sh +141 -0
  184. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +778 -0
  185. package/pennyfarthing-dist/scripts/misc/run-ci.sh +212 -0
  186. package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +7 -0
  187. package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +319 -0
  188. package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +193 -0
  189. package/pennyfarthing-dist/scripts/misc/statusline.sh +257 -0
  190. package/pennyfarthing-dist/scripts/misc/uninstall.sh +275 -0
  191. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +160 -0
  192. package/pennyfarthing-dist/scripts/portraits/generate-portraits.py +417 -0
  193. package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +54 -0
  194. package/pennyfarthing-dist/scripts/sprint/README.md +29 -0
  195. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +133 -0
  196. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +91 -0
  197. package/pennyfarthing-dist/scripts/sprint/check-story.sh +158 -0
  198. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +52 -0
  199. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +63 -0
  200. package/pennyfarthing-dist/scripts/sprint/list-future.sh +145 -0
  201. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +110 -0
  202. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +148 -0
  203. package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +415 -0
  204. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +33 -0
  205. package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +230 -0
  206. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +134 -0
  207. package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +139 -0
  208. package/pennyfarthing-dist/scripts/story/README.md +23 -0
  209. package/pennyfarthing-dist/scripts/story/create-story.sh +19 -0
  210. package/pennyfarthing-dist/scripts/story/size-story.sh +18 -0
  211. package/pennyfarthing-dist/scripts/story/story-template.sh +18 -0
  212. package/pennyfarthing-dist/scripts/test/README.md +23 -0
  213. package/pennyfarthing-dist/scripts/test/ensure-swebench-data.sh +59 -0
  214. package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +220 -0
  215. package/pennyfarthing-dist/scripts/test/swebench-judge.py +374 -0
  216. package/pennyfarthing-dist/scripts/test/test-cache.sh +165 -0
  217. package/pennyfarthing-dist/scripts/test/test-setup.sh +337 -0
  218. package/pennyfarthing-dist/scripts/tests/check.test.sh +582 -0
  219. package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +515 -0
  220. package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +599 -0
  221. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +332 -0
  222. package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +573 -0
  223. package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +859 -0
  224. package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +662 -0
  225. package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +589 -0
  226. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +106 -0
  227. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +597 -0
  228. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +514 -0
  229. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +517 -0
  230. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +331 -0
  231. package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +647 -0
  232. package/pennyfarthing-dist/scripts/theme/README.md +22 -0
  233. package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +13 -0
  234. package/pennyfarthing-dist/scripts/theme/compute_theme_tiers.py +402 -0
  235. package/pennyfarthing-dist/scripts/theme/list-themes.sh +30 -0
  236. package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +97 -0
  237. package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +576 -0
  238. package/pennyfarthing-dist/scripts/workflow/README.md +28 -0
  239. package/pennyfarthing-dist/scripts/workflow/check.py +502 -0
  240. package/pennyfarthing-dist/scripts/workflow/check.sh +24 -0
  241. package/pennyfarthing-dist/scripts/workflow/complete-step.py +304 -0
  242. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +154 -0
  243. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +222 -0
  244. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +61 -0
  245. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +13 -0
  246. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +124 -0
  247. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +34 -0
  248. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +157 -0
  249. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +132 -0
  250. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +250 -0
  251. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +161 -0
  252. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +246 -0
  253. package/pennyfarthing-dist/skills/changelog/SKILL.md +385 -0
  254. package/pennyfarthing-dist/skills/code-review/SKILL.md +172 -0
  255. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +277 -0
  256. package/pennyfarthing-dist/skills/cyclist/SKILL.md +88 -0
  257. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +461 -0
  258. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +261 -0
  259. package/pennyfarthing-dist/skills/jira/SKILL.md +508 -0
  260. package/pennyfarthing-dist/skills/judge/SKILL.md +644 -0
  261. package/pennyfarthing-dist/skills/just/SKILL.md +414 -0
  262. package/pennyfarthing-dist/skills/mermaid/SKILL.md +256 -0
  263. package/pennyfarthing-dist/skills/otel/skill.md +227 -0
  264. package/pennyfarthing-dist/skills/permissions/skill.md +157 -0
  265. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +187 -0
  266. package/pennyfarthing-dist/skills/skill-registry.schema.json +107 -0
  267. package/pennyfarthing-dist/skills/skill-registry.yaml +393 -0
  268. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +101 -0
  269. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +97 -0
  270. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +164 -0
  271. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +101 -0
  272. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +116 -0
  273. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +164 -0
  274. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +39 -0
  275. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +147 -0
  276. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +93 -0
  277. package/pennyfarthing-dist/skills/sprint/skill.md +465 -0
  278. package/pennyfarthing-dist/skills/story/scripts/create-story.sh +159 -0
  279. package/pennyfarthing-dist/skills/story/scripts/size-story.sh +198 -0
  280. package/pennyfarthing-dist/skills/story/scripts/story-template.sh +162 -0
  281. package/pennyfarthing-dist/skills/story/skill.md +219 -0
  282. package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +446 -0
  283. package/pennyfarthing-dist/skills/testing/SKILL.md +121 -0
  284. package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +124 -0
  285. package/pennyfarthing-dist/skills/theme/skill.md +141 -0
  286. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +178 -0
  287. package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +91 -0
  288. package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +163 -0
  289. package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +138 -0
  290. package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +273 -0
  291. package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +167 -0
  292. package/pennyfarthing-dist/skills/workflow/skill.md +345 -0
  293. package/pennyfarthing-dist/skills/yq/SKILL.md +272 -0
  294. package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +187 -0
  295. package/pennyfarthing-dist/templates/LEADERBOARD.template.md +59 -0
  296. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +276 -0
  297. package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +61 -0
  298. package/pennyfarthing-dist/templates/persona-config.yaml.template +22 -0
  299. package/pennyfarthing-dist/templates/preferences.yaml.template +15 -0
  300. package/pennyfarthing-dist/templates/settings.local.json.template +130 -0
  301. package/pennyfarthing-dist/templates/setup-env.sh.template +18 -0
  302. package/pennyfarthing-dist/templates/shared-context.md.template +70 -0
  303. package/pennyfarthing-dist/templates/sidecar/decisions.md.template +40 -0
  304. package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +37 -0
  305. package/pennyfarthing-dist/templates/sidecar/patterns.md.template +34 -0
  306. package/pennyfarthing-dist/workflows/agent-docs.yaml +70 -0
  307. package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +113 -0
  308. package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +105 -0
  309. package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +127 -0
  310. package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +145 -0
  311. package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +150 -0
  312. package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +145 -0
  313. package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +154 -0
  314. package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +172 -0
  315. package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +102 -0
  316. package/pennyfarthing-dist/workflows/architecture.yaml +65 -0
  317. package/pennyfarthing-dist/workflows/bdd.yaml +60 -0
  318. package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +62 -0
  319. package/pennyfarthing-dist/workflows/brainstorming/checklist.md +44 -0
  320. package/pennyfarthing-dist/workflows/brainstorming/instructions.md +736 -0
  321. package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +49 -0
  322. package/pennyfarthing-dist/workflows/code-review/checklist.md +23 -0
  323. package/pennyfarthing-dist/workflows/code-review/instructions.md +234 -0
  324. package/pennyfarthing-dist/workflows/code-review/workflow.yaml +51 -0
  325. package/pennyfarthing-dist/workflows/dev-story/checklist.md +80 -0
  326. package/pennyfarthing-dist/workflows/dev-story/instructions.xml +410 -0
  327. package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +50 -0
  328. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +281 -0
  329. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +256 -0
  330. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +298 -0
  331. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +177 -0
  332. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +145 -0
  333. package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +57 -0
  334. package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +28 -0
  335. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +103 -0
  336. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-02-categorize.md +147 -0
  337. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-03-execute.md +215 -0
  338. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +97 -0
  339. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +78 -0
  340. package/pennyfarthing-dist/workflows/git-cleanup.yaml +59 -0
  341. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +211 -0
  342. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +199 -0
  343. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +202 -0
  344. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +162 -0
  345. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +280 -0
  346. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +158 -0
  347. package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +4 -0
  348. package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +40 -0
  349. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-01-connect.md +257 -0
  350. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-02-explore.md +107 -0
  351. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-03-fix.md +127 -0
  352. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-04-commit.md +122 -0
  353. package/pennyfarthing-dist/workflows/interactive-debug/workflow.yaml +51 -0
  354. package/pennyfarthing-dist/workflows/patch.yaml +67 -0
  355. package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +13 -0
  356. package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +197 -0
  357. package/pennyfarthing-dist/workflows/prd/data/project-types.csv +11 -0
  358. package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +197 -0
  359. package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +159 -0
  360. package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +230 -0
  361. package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +232 -0
  362. package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +219 -0
  363. package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +213 -0
  364. package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +232 -0
  365. package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +243 -0
  366. package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +234 -0
  367. package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +237 -0
  368. package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +248 -0
  369. package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +223 -0
  370. package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +186 -0
  371. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +253 -0
  372. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +214 -0
  373. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +255 -0
  374. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +259 -0
  375. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +174 -0
  376. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +224 -0
  377. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +197 -0
  378. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +215 -0
  379. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +180 -0
  380. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +220 -0
  381. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +234 -0
  382. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +223 -0
  383. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +211 -0
  384. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +249 -0
  385. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +269 -0
  386. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +215 -0
  387. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +270 -0
  388. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +248 -0
  389. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +238 -0
  390. package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +10 -0
  391. package/pennyfarthing-dist/workflows/prd/workflow.yaml +42 -0
  392. package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +195 -0
  393. package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +180 -0
  394. package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +221 -0
  395. package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +224 -0
  396. package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +228 -0
  397. package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +243 -0
  398. package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +216 -0
  399. package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +10 -0
  400. package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +31 -0
  401. package/pennyfarthing-dist/workflows/project-context/project-context-template.md +21 -0
  402. package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +206 -0
  403. package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +349 -0
  404. package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +306 -0
  405. package/pennyfarthing-dist/workflows/project-context/workflow.yaml +27 -0
  406. package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +157 -0
  407. package/pennyfarthing-dist/workflows/project-setup/steps/step-02-clone-repos.md +217 -0
  408. package/pennyfarthing-dist/workflows/project-setup/steps/step-03-repos-yaml.md +159 -0
  409. package/pennyfarthing-dist/workflows/project-setup/steps/step-04-claude-md.md +186 -0
  410. package/pennyfarthing-dist/workflows/project-setup/steps/step-05-shared-context.md +185 -0
  411. package/pennyfarthing-dist/workflows/project-setup/steps/step-06-task-runner.md +279 -0
  412. package/pennyfarthing-dist/workflows/project-setup/steps/step-07-theme.md +200 -0
  413. package/pennyfarthing-dist/workflows/project-setup/steps/step-08-theme-packs.md +142 -0
  414. package/pennyfarthing-dist/workflows/project-setup/steps/step-09-cyclist.md +245 -0
  415. package/pennyfarthing-dist/workflows/project-setup/steps/step-10-complete.md +204 -0
  416. package/pennyfarthing-dist/workflows/project-setup/workflow.yaml +41 -0
  417. package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +177 -0
  418. package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +143 -0
  419. package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +138 -0
  420. package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +135 -0
  421. package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +129 -0
  422. package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +163 -0
  423. package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +27 -0
  424. package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +201 -0
  425. package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +156 -0
  426. package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +140 -0
  427. package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +203 -0
  428. package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +74 -0
  429. package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +27 -0
  430. package/pennyfarthing-dist/workflows/release/steps/step-01-preflight.md +105 -0
  431. package/pennyfarthing-dist/workflows/release/steps/step-02-bump.md +95 -0
  432. package/pennyfarthing-dist/workflows/release/steps/step-03-changelog.md +125 -0
  433. package/pennyfarthing-dist/workflows/release/steps/step-04-readme.md +101 -0
  434. package/pennyfarthing-dist/workflows/release/steps/step-05-claude-md.md +102 -0
  435. package/pennyfarthing-dist/workflows/release/steps/step-06-retro.md +59 -0
  436. package/pennyfarthing-dist/workflows/release/steps/step-07-commit.md +109 -0
  437. package/pennyfarthing-dist/workflows/release/steps/step-08-merge.md +65 -0
  438. package/pennyfarthing-dist/workflows/release/steps/step-09-push.md +75 -0
  439. package/pennyfarthing-dist/workflows/release/steps/step-10-publish.md +93 -0
  440. package/pennyfarthing-dist/workflows/release/steps/step-11-finalize.md +71 -0
  441. package/pennyfarthing-dist/workflows/release.yaml +62 -0
  442. package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +159 -0
  443. package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +253 -0
  444. package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +263 -0
  445. package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +232 -0
  446. package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +260 -0
  447. package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +477 -0
  448. package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +205 -0
  449. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +262 -0
  450. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +227 -0
  451. package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +275 -0
  452. package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +286 -0
  453. package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +203 -0
  454. package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +510 -0
  455. package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +159 -0
  456. package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +264 -0
  457. package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +274 -0
  458. package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +228 -0
  459. package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +267 -0
  460. package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +522 -0
  461. package/pennyfarthing-dist/workflows/research/templates/research.template.md +29 -0
  462. package/pennyfarthing-dist/workflows/research/workflow.yaml +45 -0
  463. package/pennyfarthing-dist/workflows/retrospective/checklist.md +31 -0
  464. package/pennyfarthing-dist/workflows/retrospective/instructions.md +1443 -0
  465. package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +50 -0
  466. package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +33 -0
  467. package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +55 -0
  468. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +69 -0
  469. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +61 -0
  470. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +80 -0
  471. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +90 -0
  472. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +78 -0
  473. package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +34 -0
  474. package/pennyfarthing-dist/workflows/tdd.yaml +50 -0
  475. package/pennyfarthing-dist/workflows/trivial.yaml +40 -0
  476. package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +141 -0
  477. package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +133 -0
  478. package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +196 -0
  479. package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +222 -0
  480. package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +225 -0
  481. package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +240 -0
  482. package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +258 -0
  483. package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +260 -0
  484. package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +230 -0
  485. package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +230 -0
  486. package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +247 -0
  487. package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +254 -0
  488. package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +243 -0
  489. package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +270 -0
  490. package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +234 -0
  491. package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +13 -0
  492. package/pennyfarthing-dist/workflows/ux-design/workflow.yaml +41 -0
@@ -0,0 +1,162 @@
1
+ # Tactical Agent Template
2
+
3
+ **For:** SM, TEA, Dev, Reviewer (TDD flow agents)
4
+
5
+ This template defines the standard structure for tactical agents. All tactical agents should follow this section order for consistency and easy comparison.
6
+
7
+ ---
8
+
9
+ ## Section Order
10
+
11
+ ```
12
+ 1. # Title
13
+ 2. <persona>
14
+ 3. <role>
15
+ 4. <helpers>
16
+ 5. <responsibilities>
17
+ 6. <skills>
18
+ 7. <context>
19
+ 8. <reasoning-mode>
20
+ 9. <on-activation>
21
+ 10. ## Workflows (markdown sections)
22
+ 11. ## Assessment Template
23
+ 12. ## Handoff
24
+ 13. <exit>
25
+ ```
26
+
27
+ ---
28
+
29
+ ## Template
30
+
31
+ ```markdown
32
+ # {NAME} Agent - {Role Title}
33
+
34
+ <persona>
35
+ Auto-loaded by `agent-session.sh start` from theme config. See output above.
36
+
37
+ **Fallback if not loaded:** {Brief personality description}
38
+ </persona>
39
+
40
+ <role>
41
+ **Primary:** {When this agent is invoked, e.g., "via /tea for TDD test writing"}
42
+ **Position:** {Where in TDD flow, e.g., "SM → **TEA** → Dev → Reviewer"}
43
+ </role>
44
+
45
+ <helpers>
46
+ From theme config. Model: haiku. Tasks: {What helpers do for this agent}
47
+
48
+ **Skills I Use:**
49
+ - `/skill-name` - {description}
50
+ </helpers>
51
+
52
+ <responsibilities>
53
+ - {Duty 1 - what this agent is responsible for}
54
+ - {Duty 2}
55
+ - {Duty 3}
56
+ </responsibilities>
57
+
58
+ <skills>
59
+ **Skills I Use:**
60
+ - `/sprint-context` - Sprint status and backlog
61
+ - `/testing` - Test execution patterns
62
+ </skills>
63
+
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.
67
+ </context>
68
+
69
+ <reasoning-mode>
70
+ **Default:** Quiet mode - follow ReAct pattern internally, show only key decisions
71
+
72
+ **Toggle:** User says "verbose mode" to see explicit reasoning
73
+
74
+ When verbose, show thought process:
75
+ ```
76
+ THOUGHT: {what I'm considering}
77
+ ACTION: {what I'm doing}
78
+ OBSERVATION: {what I found}
79
+ REFLECT: {what this means}
80
+ ```
81
+
82
+ **{Agent}-Specific Reasoning:**
83
+ - {When doing X: reason about Y}
84
+ - {When doing Z: think through W}
85
+
86
+ **REMINDER:** Delegate test runs to testing-runner subagent.
87
+ </reasoning-mode>
88
+
89
+ <on-activation>
90
+ 1. Run workflow status check (helper: `.pennyfarthing/agents/workflow-status-check.md`)
91
+ 2. Read session file if active work exists
92
+ 3. Verify actual state matches session file
93
+ 4. Check if handed off to me (Phase field)
94
+ 5. If handed off: offer to start immediately
95
+ 6. If not: show task menu
96
+ </on-activation>
97
+
98
+ ## Primary Workflow: {Workflow Name}
99
+
100
+ {Agent-specific workflow description}
101
+
102
+ ### Step 1: {Step Name}
103
+ {Description}
104
+
105
+ ### Step 2: {Step Name}
106
+ {Description}
107
+
108
+ ## {Agent} Assessment Template
109
+
110
+ ```markdown
111
+ ## {Agent} Assessment
112
+
113
+ **{Key field 1}:** {value}
114
+ **{Key field 2}:** {value}
115
+
116
+ **Handoff:** To {next agent} for {next task}
117
+ ```
118
+
119
+ ## Handoff (Context-Aware Auto-Invoke)
120
+
121
+ After completing work:
122
+
123
+ 1. Write assessment to session file
124
+ 2. Spawn handoff helper (`.pennyfarthing/agents/{agent}-handoff.md`)
125
+ 3. Check context: `eval $(.pennyfarthing/scripts/core/check-context.sh)`
126
+ 4. If `HANDOFF_MODE=auto`: Use Skill tool to invoke next agent
127
+ 5. If `HANDOFF_MODE=ask`: Tell user to start fresh session
128
+
129
+ <exit>
130
+ To exit: "Exit {Agent}" or "Switch to [other agent]"
131
+
132
+ On exit, run: `.pennyfarthing/scripts/core/agent-session.sh stop`
133
+ </exit>
134
+ ```
135
+
136
+ ---
137
+
138
+ ## Section Descriptions
139
+
140
+ | Section | Purpose | Required |
141
+ |---------|---------|----------|
142
+ | `<persona>` | Character/personality from theme | Yes |
143
+ | `<role>` | When invoked, position in flow | Yes |
144
+ | `<helpers>` | What Haiku helpers do | Yes |
145
+ | `<responsibilities>` | Duties this agent performs | Yes |
146
+ | `<skills>` | /commands this agent uses | Yes |
147
+ | `<context>` | Guide files to reference | Yes |
148
+ | `<reasoning-mode>` | Verbose/quiet toggle | Yes |
149
+ | `<on-activation>` | Startup checklist | Yes |
150
+ | Workflows | Agent-specific procedures | Yes |
151
+ | Assessment | Output format template | Yes |
152
+ | Handoff | Auto-invoke instructions | Yes |
153
+ | `<exit>` | How to leave agent mode | Yes |
154
+
155
+ ---
156
+
157
+ ## Notes
158
+
159
+ - **Preserve existing workflow content** when aligning to this template
160
+ - **Section order matters** for consistency across agents
161
+ - **XML tags** are used for structured sections that benefit from clear boundaries
162
+ - **Markdown headers** are used for longer narrative sections (workflows)
@@ -0,0 +1,230 @@
1
+ # Hooks Configuration Guide
2
+
3
+ Pennyfarthing uses Claude Code hooks to integrate with session lifecycle events and protect files from accidental modification.
4
+
5
+ ## Overview
6
+
7
+ Hooks are shell scripts that Claude Code runs at specific events:
8
+
9
+ | Hook Type | When It Runs | Purpose |
10
+ |-----------|--------------|---------|
11
+ | `SessionStart` | When Claude Code session begins | Initialize environment, set variables |
12
+ | `PreToolUse` | Before a tool call executes | Validate/block operations |
13
+ | `PostToolUse` | After a tool call completes | Log, cleanup, notifications |
14
+
15
+ ## Pennyfarthing Default Hooks
16
+
17
+ ### SessionStart: session-start.sh
18
+
19
+ **Location:** `.claude/pennyfarthing/scripts/hooks/session-start.sh`
20
+
21
+ Initializes the Pennyfarthing environment:
22
+ - Creates `.session/` directory structure
23
+ - Clears stale agent state from previous sessions
24
+ - Sets `PROJECT_ROOT` and `SESSION_ID` environment variables
25
+
26
+ ### SessionStart: setup-env.sh
27
+
28
+ **Location:** `.claude/project/hooks/setup-env.sh`
29
+
30
+ Project-specific environment setup. Edit this file to:
31
+ - Set custom environment variables
32
+ - Configure project-specific paths
33
+ - Initialize project dependencies
34
+
35
+ ### PreToolUse: pre-edit-check.sh
36
+
37
+ **Location:** `.claude/pennyfarthing/scripts/hooks/pre-edit-check.sh`
38
+
39
+ Protects sensitive files from accidental edits:
40
+ - Blocks: `.env`, `.pem`, `.key`, credentials, secrets
41
+ - Blocks: `.git/`, `node_modules/`, `vendor/`
42
+ - Blocks: `.claude/pennyfarthing/*` (managed files)
43
+
44
+ ## Configuration Schema
45
+
46
+ Hooks are configured in `.claude/settings.local.json`:
47
+
48
+ ```json
49
+ {
50
+ "hooks": {
51
+ "SessionStart": [
52
+ {
53
+ "hooks": [
54
+ {
55
+ "type": "command",
56
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/pennyfarthing/scripts/hooks/session-start.sh"
57
+ }
58
+ ]
59
+ }
60
+ ],
61
+ "PreToolUse": [
62
+ {
63
+ "matcher": "Edit|Write",
64
+ "hooks": [
65
+ {
66
+ "type": "command",
67
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/pennyfarthing/scripts/hooks/pre-edit-check.sh"
68
+ }
69
+ ]
70
+ }
71
+ ]
72
+ }
73
+ }
74
+ ```
75
+
76
+ ### Hook Entry Structure
77
+
78
+ ```json
79
+ {
80
+ "matcher": "ToolNameRegex", // Optional: regex to filter by tool name
81
+ "hooks": [
82
+ {
83
+ "type": "command",
84
+ "command": "path/to/script.sh"
85
+ }
86
+ ]
87
+ }
88
+ ```
89
+
90
+ ### Matcher Format
91
+
92
+ The `matcher` field is a regex string that matches tool names:
93
+ - `"Edit|Write"` - Match Edit or Write tools
94
+ - `"Bash"` - Match Bash tool only
95
+ - Omit matcher to run on all tool uses
96
+
97
+ ## Hook Script Contract
98
+
99
+ ### Input
100
+
101
+ Hooks receive JSON via stdin:
102
+
103
+ ```json
104
+ {
105
+ "session_id": "abc123",
106
+ "source": "vscode",
107
+ "tool_name": "Edit",
108
+ "tool_input": {
109
+ "file_path": "/path/to/file.ts",
110
+ "old_string": "...",
111
+ "new_string": "..."
112
+ }
113
+ }
114
+ ```
115
+
116
+ ### Output
117
+
118
+ | Exit Code | Meaning |
119
+ |-----------|---------|
120
+ | `0` | Allow (continue execution) |
121
+ | `2` | Block (stderr shown to Claude as error) |
122
+
123
+ ### Environment Variables
124
+
125
+ Available in hooks:
126
+ - `CLAUDE_PROJECT_DIR` - Project root directory
127
+ - `CLAUDE_ENV_FILE` - Path to write persistent env vars
128
+
129
+ ## Adding Custom Hooks
130
+
131
+ ### 1. Create Hook Script
132
+
133
+ ```bash
134
+ #!/usr/bin/env zsh
135
+ # .claude/project/hooks/my-custom-hook.sh
136
+ set -euo pipefail
137
+
138
+ input=$(cat)
139
+ # Your logic here
140
+
141
+ exit 0 # Allow, or exit 2 to block
142
+ ```
143
+
144
+ ### 2. Make Executable
145
+
146
+ ```bash
147
+ chmod +x .claude/project/hooks/my-custom-hook.sh
148
+ ```
149
+
150
+ ### 3. Configure in settings.local.json
151
+
152
+ ```json
153
+ {
154
+ "hooks": {
155
+ "PreToolUse": [
156
+ {
157
+ "matcher": "Bash",
158
+ "hooks": [
159
+ {
160
+ "type": "command",
161
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/project/hooks/my-custom-hook.sh"
162
+ }
163
+ ]
164
+ }
165
+ ]
166
+ }
167
+ }
168
+ ```
169
+
170
+ ## Examples
171
+
172
+ ### Block Specific File Patterns
173
+
174
+ ```bash
175
+ #!/usr/bin/env zsh
176
+ # Block edits to migration files
177
+ input=$(cat)
178
+ file_path=$(echo "$input" | jq -r '.tool_input.file_path // ""')
179
+
180
+ if [[ "$file_path" == *"/migrations/"* ]]; then
181
+ echo "BLOCKED: Migration files are immutable" >&2
182
+ exit 2
183
+ fi
184
+ exit 0
185
+ ```
186
+
187
+ ### Log All Bash Commands
188
+
189
+ ```bash
190
+ #!/usr/bin/env zsh
191
+ # Log bash commands for audit
192
+ input=$(cat)
193
+ command=$(echo "$input" | jq -r '.tool_input.command // ""')
194
+
195
+ echo "$(date -Iseconds) | $command" >> "$CLAUDE_PROJECT_DIR/.session/bash-log.txt"
196
+ exit 0
197
+ ```
198
+
199
+ ### Environment Setup
200
+
201
+ ```bash
202
+ #!/usr/bin/env zsh
203
+ # .claude/project/hooks/setup-env.sh
204
+ # Set project-specific environment
205
+
206
+ if [ -n "${CLAUDE_ENV_FILE:-}" ]; then
207
+ cat >> "$CLAUDE_ENV_FILE" << EOF
208
+ export API_URL="http://localhost:3000"
209
+ export DATABASE_URL="postgres://localhost/myapp"
210
+ EOF
211
+ fi
212
+ exit 0
213
+ ```
214
+
215
+ ## Debugging Hooks
216
+
217
+ If a hook fails or behaves unexpectedly:
218
+
219
+ 1. **Check permissions:** `chmod +x your-hook.sh`
220
+ 2. **Test manually:** `echo '{}' | ./your-hook.sh`
221
+ 3. **Check stderr:** Hook errors appear in Claude Code output
222
+ 4. **Validate JSON:** Use `jq` to parse input correctly
223
+
224
+ ## File Locations
225
+
226
+ | Type | Location | Editable |
227
+ |------|----------|----------|
228
+ | Managed hooks | `.claude/pennyfarthing/scripts/hooks/` | No (use pennyfarthing repo) |
229
+ | Project hooks | `.claude/project/hooks/` | Yes |
230
+ | Settings | `.claude/settings.local.json` | Yes |
@@ -0,0 +1,210 @@
1
+ # Measurement Framework for AI Evaluation
2
+
3
+ > Based on: Wallach et al. (2025). "Position: Evaluating Generative AI Systems Is a Social Science Measurement Challenge." ICML 2025.
4
+ >
5
+ > Paper: https://arxiv.org/abs/2502.00561
6
+
7
+ ## Overview
8
+
9
+ This guide establishes Pennyfarthing's approach to rigorous AI evaluation, grounded in social science measurement theory. The core insight: **evaluating AI systems is fundamentally a measurement challenge**, not merely a technical benchmarking exercise.
10
+
11
+ Current AI evaluation practices—single-metric benchmarks, leaderboard rankings—fail to capture the complexity of what we're actually trying to measure. Proper evaluation requires the same methodological rigor social scientists apply to measuring abstract constructs like intelligence, fairness, or trust.
12
+
13
+ ## The Four-Level Measurement Framework
14
+
15
+ All Pennyfarthing evaluation should distinguish between these four levels:
16
+
17
+ ```
18
+ Level 1: Background Concept
19
+
20
+ Level 2: Systematized Concept
21
+
22
+ Level 3: Operationalization
23
+
24
+ Level 4: Scores/Indicators
25
+ ```
26
+
27
+ ### Level 1: Background Concept
28
+
29
+ The broad, often contested idea we care about.
30
+
31
+ **Examples in Pennyfarthing:**
32
+ - "Code review quality"
33
+ - "Test effectiveness"
34
+ - "Agent helpfulness"
35
+ - "Persona consistency"
36
+
37
+ **Characteristics:**
38
+ - Often vague or contested
39
+ - Multiple valid interpretations exist
40
+ - May mean different things to different stakeholders
41
+
42
+ ### Level 2: Systematized Concept
43
+
44
+ A more precise definition scoped to the evaluation context.
45
+
46
+ **Example:** "Code review quality" → "The degree to which a code review identifies genuine issues, provides actionable feedback, and avoids false positives, within a TypeScript codebase context."
47
+
48
+ **Requirements:**
49
+ - Explicit scope boundaries
50
+ - Stated assumptions
51
+ - Clear relationship to Level 1 concept
52
+
53
+ ### Level 3: Operationalization
54
+
55
+ The concrete procedure for measurement.
56
+
57
+ **Examples:**
58
+ - A benchmark scenario with known issues
59
+ - A judge prompt with scoring rubric
60
+ - A red-teaming protocol
61
+ - Human annotation guidelines
62
+
63
+ **Key questions:**
64
+ - Does this operationalization actually capture the Level 2 concept?
65
+ - What aspects of the concept does it miss?
66
+ - What confounding factors might it introduce?
67
+
68
+ ### Level 4: Scores/Indicators
69
+
70
+ The numeric outputs from applying the operationalization.
71
+
72
+ **Examples:**
73
+ - Detection score: 85/100
74
+ - Precision: 0.89
75
+ - Recall: 0.80
76
+ - Krippendorff's Alpha: 0.72
77
+
78
+ **Critical insight:** A score is only meaningful in relation to Levels 1-3. Without understanding what construct a benchmark measures, scores are uninterpretable.
79
+
80
+ ## Applying the Framework to Pennyfarthing
81
+
82
+ ### Judge Evaluation
83
+
84
+ | Level | Current State | Target State |
85
+ |-------|---------------|--------------|
86
+ | 1. Background Concept | "Agent quality" (vague) | Explicit decomposition into sub-constructs |
87
+ | 2. Systematized Concept | Implicit in rubric | Documented construct definitions |
88
+ | 3. Operationalization | Checklist rubric | Anchored rubric with behavioral examples |
89
+ | 4. Scores | 0-100 composite | Precision/recall + quality dimensions |
90
+
91
+ ### Benchmark Scenarios
92
+
93
+ | Level | Question to Answer |
94
+ |-------|-------------------|
95
+ | 1 | What broad capability are we trying to measure? |
96
+ | 2 | How do we scope that capability for this scenario type? |
97
+ | 3 | Does our scenario design actually test that capability? |
98
+ | 4 | What do the resulting scores tell us (and not tell us)? |
99
+
100
+ ## Validity Evidence
101
+
102
+ A valid evaluation requires multiple forms of evidence:
103
+
104
+ ### Content Validity
105
+ Does the operationalization cover the construct adequately?
106
+
107
+ **For Pennyfarthing benchmarks:**
108
+ - Do scenarios cover the range of situations the construct applies to?
109
+ - Are there important aspects of the construct not represented?
110
+
111
+ ### Construct Validity
112
+ Does the operationalization measure what it claims to measure?
113
+
114
+ **Tests:**
115
+ - Do scores correlate with other measures of the same construct?
116
+ - Do scores NOT correlate with measures of different constructs?
117
+ - Do known-good agents score higher than known-poor agents?
118
+
119
+ ### Criterion Validity
120
+ Do scores predict real-world outcomes?
121
+
122
+ **For Pennyfarthing:**
123
+ - Do high code-review scores predict fewer bugs in production?
124
+ - Do high test-writing scores predict better test coverage?
125
+
126
+ ### Reliability
127
+ Does the measurement produce consistent results?
128
+
129
+ **Metrics:**
130
+ - Inter-rater reliability (Krippendorff's Alpha for multi-judge)
131
+ - Test-retest reliability (same agent, same scenario, different runs)
132
+ - Internal consistency (do related items correlate?)
133
+
134
+ ## Anti-Patterns to Avoid
135
+
136
+ ### 1. Jumping to Level 4
137
+ **Problem:** Designing a benchmark without defining what it measures.
138
+ **Symptom:** "We have a score, but we're not sure what it means."
139
+ **Fix:** Start with Level 1-2 before designing operationalization.
140
+
141
+ ### 2. Conflating Operationalization with Construct
142
+ **Problem:** Treating the benchmark as the definition of quality.
143
+ **Symptom:** "A good agent is one that scores high on our benchmark."
144
+ **Fix:** Acknowledge benchmarks are imperfect proxies. Use multiple operationalizations.
145
+
146
+ ### 3. Ignoring Annotator Disagreement
147
+ **Problem:** Averaging away disagreement as "noise."
148
+ **Symptom:** Low Krippendorff's Alpha treated as measurement error.
149
+ **Fix:** Disagreement is signal about construct complexity. Investigate, don't suppress.
150
+
151
+ ### 4. Over-indexing on Single Metrics
152
+ **Problem:** Optimizing for one number.
153
+ **Symptom:** Agents that game benchmarks but fail in real use.
154
+ **Fix:** Use multiple metrics, understand what each measures.
155
+
156
+ ## Implementation in Pennyfarthing Benchmarks
157
+
158
+ ### Scenario Design Checklist
159
+
160
+ Before creating a new benchmark scenario:
161
+
162
+ - [ ] **Level 1 defined:** What broad concept does this scenario test?
163
+ - [ ] **Level 2 documented:** How is that concept scoped for this scenario?
164
+ - [ ] **Validity argument:** Why does this scenario test the claimed construct?
165
+ - [ ] **Known limitations:** What aspects of the construct does this NOT test?
166
+ - [ ] **Baseline established:** What is expected performance range?
167
+
168
+ ### Judge Rubric Checklist
169
+
170
+ Before using a scoring rubric:
171
+
172
+ - [ ] **Constructs explicit:** What does each dimension measure?
173
+ - [ ] **Anchors defined:** What behaviors correspond to each score level?
174
+ - [ ] **Reliability tested:** What is the inter-judge agreement?
175
+ - [ ] **Edge cases documented:** How should ambiguous situations be scored?
176
+
177
+ ### Results Interpretation Checklist
178
+
179
+ Before reporting benchmark results:
180
+
181
+ - [ ] **Context provided:** What construct was measured?
182
+ - [ ] **Limitations stated:** What does this score NOT tell us?
183
+ - [ ] **Confidence indicated:** How reliable is this measurement?
184
+ - [ ] **Comparisons valid:** Are we comparing like with like?
185
+
186
+ ## Relation to Benchmark Reliability Epics
187
+
188
+ The Benchmark Reliability initiative (epics 41-46) directly implements this framework:
189
+
190
+ | Epic | Framework Alignment |
191
+ |------|---------------------|
192
+ | 41: Precision/Recall Detection | Level 4 improvement: separate metrics for distinct constructs |
193
+ | 42: Anchored Rubric Criteria | Level 3 improvement: behavioral anchors reduce measurement variance |
194
+ | 43: False Positive Traps | Level 3 improvement: test construct validity with red herrings |
195
+ | 44: Multi-Judge Validation | Reliability evidence: measure inter-rater agreement |
196
+ | 45: Gold Standard References | Level 3 improvement: calibration anchors for consistent scoring |
197
+ | 46: Difficulty Profile | Level 2 improvement: multi-dimensional construct decomposition |
198
+
199
+ ## References
200
+
201
+ - Wallach, H., et al. (2025). Position: Evaluating Generative AI Systems Is a Social Science Measurement Challenge. ICML 2025. https://arxiv.org/abs/2502.00561
202
+ - Adcock, R., & Collier, D. (2001). Measurement validity: A shared standard for qualitative and quantitative research. APSR.
203
+ - Cronbach, L. J., & Meehl, P. E. (1955). Construct validity in psychological tests. Psychological Bulletin.
204
+ - Messick, S. (1995). Validity of psychological assessment. American Psychologist.
205
+ - HELM: Holistic Evaluation of Language Models. Stanford CRFM.
206
+ - ARC-AGI: A benchmark for measuring machine intelligence.
207
+
208
+ ## Changelog
209
+
210
+ - 2026-01-23: Initial version based on Wallach et al. (2025) ICML paper