@pennyfarthing/core 7.0.2 → 7.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. package/LICENSE +14 -0
  2. package/README.md +2 -2
  3. package/package.json +11 -10
  4. package/packages/core/dist/cli/commands/cyclist.d.ts +2 -2
  5. package/packages/core/dist/cli/commands/cyclist.d.ts.map +1 -1
  6. package/packages/core/dist/cli/commands/cyclist.js +8 -9
  7. package/packages/core/dist/cli/commands/cyclist.js.map +1 -1
  8. package/packages/core/dist/cli/commands/cyclist.test.js +6 -4
  9. package/packages/core/dist/cli/commands/cyclist.test.js.map +1 -1
  10. package/packages/core/dist/cli/commands/init.js +4 -3
  11. package/packages/core/dist/cli/commands/init.js.map +1 -1
  12. package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
  13. package/packages/core/dist/cli/commands/update.js +15 -139
  14. package/packages/core/dist/cli/commands/update.js.map +1 -1
  15. package/packages/core/dist/cli/cyclist-migration.test.js +4 -3
  16. package/packages/core/dist/cli/cyclist-migration.test.js.map +1 -1
  17. package/packages/core/dist/cli/utils/constants.d.ts +7 -1
  18. package/packages/core/dist/cli/utils/constants.d.ts.map +1 -1
  19. package/packages/core/dist/cli/utils/constants.js +4 -2
  20. package/packages/core/dist/cli/utils/constants.js.map +1 -1
  21. package/packages/core/dist/cli/utils/node-modules.d.ts.map +1 -1
  22. package/packages/core/dist/cli/utils/node-modules.js +2 -1
  23. package/packages/core/dist/cli/utils/node-modules.js.map +1 -1
  24. package/packages/core/dist/cli/utils/themes.d.ts +1 -4
  25. package/packages/core/dist/cli/utils/themes.d.ts.map +1 -1
  26. package/packages/core/dist/cli/utils/themes.js +2 -22
  27. package/packages/core/dist/cli/utils/themes.js.map +1 -1
  28. package/packages/core/dist/cli/utils/themes.test.d.ts +3 -3
  29. package/packages/core/dist/cli/utils/themes.test.js +16 -13
  30. package/packages/core/dist/cli/utils/themes.test.js.map +1 -1
  31. package/packages/core/dist/cli/workspace.test.js +11 -9
  32. package/packages/core/dist/cli/workspace.test.js.map +1 -1
  33. package/packages/core/dist/index.d.ts +1 -0
  34. package/packages/core/dist/index.d.ts.map +1 -1
  35. package/packages/core/dist/index.js +10 -0
  36. package/packages/core/dist/index.js.map +1 -1
  37. package/packages/core/dist/jira/jira-epic-creation.d.ts +109 -0
  38. package/packages/core/dist/jira/jira-epic-creation.d.ts.map +1 -0
  39. package/packages/core/dist/jira/jira-epic-creation.js +253 -0
  40. package/packages/core/dist/jira/jira-epic-creation.js.map +1 -0
  41. package/packages/core/dist/jira/jira-epic-creation.test.d.ts +16 -0
  42. package/packages/core/dist/jira/jira-epic-creation.test.d.ts.map +1 -0
  43. package/packages/core/dist/jira/jira-epic-creation.test.js +387 -0
  44. package/packages/core/dist/jira/jira-epic-creation.test.js.map +1 -0
  45. package/packages/core/dist/jira/jira-sprint-sync.d.ts +247 -0
  46. package/packages/core/dist/jira/jira-sprint-sync.d.ts.map +1 -0
  47. package/packages/core/dist/jira/jira-sprint-sync.js +670 -0
  48. package/packages/core/dist/jira/jira-sprint-sync.js.map +1 -0
  49. package/packages/core/dist/jira/jira-sprint-sync.test.d.ts +16 -0
  50. package/packages/core/dist/jira/jira-sprint-sync.test.d.ts.map +1 -0
  51. package/packages/core/dist/jira/jira-sprint-sync.test.js +845 -0
  52. package/packages/core/dist/jira/jira-sprint-sync.test.js.map +1 -0
  53. package/packages/core/dist/scripts/generate-spider.d.ts +11 -1
  54. package/packages/core/dist/scripts/generate-spider.d.ts.map +1 -1
  55. package/packages/core/dist/scripts/generate-spider.js +24 -1
  56. package/packages/core/dist/scripts/generate-spider.js.map +1 -1
  57. package/packages/core/dist/scripts/generate-spider.test.js +6 -4
  58. package/packages/core/dist/scripts/generate-spider.test.js.map +1 -1
  59. package/packages/core/dist/workflow/gate-handler.d.ts +94 -0
  60. package/packages/core/dist/workflow/gate-handler.d.ts.map +1 -0
  61. package/packages/core/dist/workflow/gate-handler.js +189 -0
  62. package/packages/core/dist/workflow/gate-handler.js.map +1 -0
  63. package/packages/core/dist/workflow/gate-handler.test.d.ts +14 -0
  64. package/packages/core/dist/workflow/gate-handler.test.d.ts.map +1 -0
  65. package/packages/core/dist/workflow/gate-handler.test.js +543 -0
  66. package/packages/core/dist/workflow/gate-handler.test.js.map +1 -0
  67. package/packages/core/dist/workflow/generic-handoff.d.ts +46 -0
  68. package/packages/core/dist/workflow/generic-handoff.d.ts.map +1 -1
  69. package/packages/core/dist/workflow/generic-handoff.js +53 -0
  70. package/packages/core/dist/workflow/generic-handoff.js.map +1 -1
  71. package/packages/core/dist/workflow/generic-handoff.test.js +2 -2
  72. package/packages/core/dist/workflow/generic-handoff.test.js.map +1 -1
  73. package/packages/core/dist/workflow/handoff.d.ts +281 -0
  74. package/packages/core/dist/workflow/handoff.d.ts.map +1 -0
  75. package/packages/core/dist/workflow/handoff.js +411 -0
  76. package/packages/core/dist/workflow/handoff.js.map +1 -0
  77. package/packages/core/dist/workflow/handoff.test.d.ts +21 -0
  78. package/packages/core/dist/workflow/handoff.test.d.ts.map +1 -0
  79. package/packages/core/dist/workflow/handoff.test.js +499 -0
  80. package/packages/core/dist/workflow/handoff.test.js.map +1 -0
  81. package/packages/core/dist/workflow/index.d.ts +16 -0
  82. package/packages/core/dist/workflow/index.d.ts.map +1 -0
  83. package/packages/core/dist/workflow/index.js +24 -0
  84. package/packages/core/dist/workflow/index.js.map +1 -0
  85. package/packages/core/dist/workflow/session-state.d.ts +92 -0
  86. package/packages/core/dist/workflow/session-state.d.ts.map +1 -0
  87. package/packages/core/dist/workflow/session-state.js +198 -0
  88. package/packages/core/dist/workflow/session-state.js.map +1 -0
  89. package/packages/core/dist/workflow/session-state.test.d.ts +8 -0
  90. package/packages/core/dist/workflow/session-state.test.d.ts.map +1 -0
  91. package/packages/core/dist/workflow/session-state.test.js +551 -0
  92. package/packages/core/dist/workflow/session-state.test.js.map +1 -0
  93. package/packages/core/dist/workflow/sm-subagents.test.d.ts +2 -2
  94. package/packages/core/dist/workflow/sm-subagents.test.js +6 -6
  95. package/packages/core/dist/workflow/sm-subagents.test.js.map +1 -1
  96. package/packages/core/dist/workflow/step-parser.d.ts +45 -0
  97. package/packages/core/dist/workflow/step-parser.d.ts.map +1 -0
  98. package/packages/core/dist/workflow/step-parser.js +147 -0
  99. package/packages/core/dist/workflow/step-parser.js.map +1 -0
  100. package/packages/core/dist/workflow/step-parser.test.d.ts +14 -0
  101. package/packages/core/dist/workflow/step-parser.test.d.ts.map +1 -0
  102. package/packages/core/dist/workflow/step-parser.test.js +470 -0
  103. package/packages/core/dist/workflow/step-parser.test.js.map +1 -0
  104. package/packages/core/dist/workflow/trimodal.d.ts +86 -0
  105. package/packages/core/dist/workflow/trimodal.d.ts.map +1 -0
  106. package/packages/core/dist/workflow/trimodal.js +118 -0
  107. package/packages/core/dist/workflow/trimodal.js.map +1 -0
  108. package/packages/core/dist/workflow/trimodal.test.d.ts +11 -0
  109. package/packages/core/dist/workflow/trimodal.test.d.ts.map +1 -0
  110. package/packages/core/dist/workflow/trimodal.test.js +395 -0
  111. package/packages/core/dist/workflow/trimodal.test.js.map +1 -0
  112. package/packages/core/dist/workflow/variable-resolver.d.ts +67 -0
  113. package/packages/core/dist/workflow/variable-resolver.d.ts.map +1 -0
  114. package/packages/core/dist/workflow/variable-resolver.js +156 -0
  115. package/packages/core/dist/workflow/variable-resolver.js.map +1 -0
  116. package/packages/core/dist/workflow/variable-resolver.test.d.ts +14 -0
  117. package/packages/core/dist/workflow/variable-resolver.test.d.ts.map +1 -0
  118. package/packages/core/dist/workflow/variable-resolver.test.js +400 -0
  119. package/packages/core/dist/workflow/variable-resolver.test.js.map +1 -0
  120. package/packages/core/dist/workflow/workflow-executor.d.ts +163 -0
  121. package/packages/core/dist/workflow/workflow-executor.d.ts.map +1 -0
  122. package/packages/core/dist/workflow/workflow-executor.js +197 -0
  123. package/packages/core/dist/workflow/workflow-executor.js.map +1 -0
  124. package/packages/core/dist/workflow/workflow-executor.test.d.ts +8 -0
  125. package/packages/core/dist/workflow/workflow-executor.test.d.ts.map +1 -0
  126. package/packages/core/dist/workflow/workflow-executor.test.js +444 -0
  127. package/packages/core/dist/workflow/workflow-executor.test.js.map +1 -0
  128. package/packages/core/dist/workflow/workflow-loader.test.js +5 -5
  129. package/packages/core/dist/workflow/workflow-loader.test.js.map +1 -1
  130. package/packages/core/dist/workflow/workflow-migration.test.js +8 -9
  131. package/packages/core/dist/workflow/workflow-migration.test.js.map +1 -1
  132. package/packages/core/dist/workflow/workflow-permissions.d.ts +55 -0
  133. package/packages/core/dist/workflow/workflow-permissions.d.ts.map +1 -0
  134. package/packages/core/dist/workflow/workflow-permissions.js +64 -0
  135. package/packages/core/dist/workflow/workflow-permissions.js.map +1 -0
  136. package/packages/core/dist/workflow/workflow-permissions.test.d.ts +15 -0
  137. package/packages/core/dist/workflow/workflow-permissions.test.d.ts.map +1 -0
  138. package/packages/core/dist/workflow/workflow-permissions.test.js +301 -0
  139. package/packages/core/dist/workflow/workflow-permissions.test.js.map +1 -0
  140. package/packages/core/dist/workflow/workflow-schema.d.ts +61 -2
  141. package/packages/core/dist/workflow/workflow-schema.d.ts.map +1 -1
  142. package/packages/core/dist/workflow/workflow-schema.js +293 -69
  143. package/packages/core/dist/workflow/workflow-schema.js.map +1 -1
  144. package/packages/core/dist/workflow/workflow-schema.test.js +6 -6
  145. package/packages/core/dist/workflow/workflow-schema.test.js.map +1 -1
  146. package/packages/core/dist/workflow/workflow-stepped-schema.test.d.ts +18 -0
  147. package/packages/core/dist/workflow/workflow-stepped-schema.test.d.ts.map +1 -0
  148. package/packages/core/dist/workflow/workflow-stepped-schema.test.js +608 -0
  149. package/packages/core/dist/workflow/workflow-stepped-schema.test.js.map +1 -0
  150. package/pennyfarthing-dist/agents/README.md +63 -134
  151. package/pennyfarthing-dist/agents/architect.md +18 -10
  152. package/pennyfarthing-dist/agents/dev.md +47 -32
  153. package/pennyfarthing-dist/agents/devops.md +18 -9
  154. package/pennyfarthing-dist/agents/handoff.md +289 -0
  155. package/pennyfarthing-dist/agents/orchestrator.md +44 -22
  156. package/pennyfarthing-dist/agents/pm.md +13 -8
  157. package/pennyfarthing-dist/agents/reviewer-preflight.md +42 -128
  158. package/pennyfarthing-dist/agents/reviewer.md +104 -57
  159. package/pennyfarthing-dist/agents/sm-file-summary.md +24 -75
  160. package/pennyfarthing-dist/agents/sm-finish.md +61 -0
  161. package/pennyfarthing-dist/agents/sm-handoff.md +102 -54
  162. package/pennyfarthing-dist/agents/sm-setup.md +174 -0
  163. package/pennyfarthing-dist/agents/sm.md +223 -100
  164. package/pennyfarthing-dist/agents/tea.md +42 -34
  165. package/pennyfarthing-dist/agents/tech-writer.md +74 -6
  166. package/pennyfarthing-dist/agents/testing-runner.md +78 -360
  167. package/pennyfarthing-dist/agents/ux-designer.md +80 -7
  168. package/pennyfarthing-dist/agents/workflow-status-check.md +35 -299
  169. package/pennyfarthing-dist/commands/architect.md +2 -2
  170. package/pennyfarthing-dist/commands/close-epic.md +5 -2
  171. package/pennyfarthing-dist/commands/create-branches-from-story.md +7 -23
  172. package/pennyfarthing-dist/commands/dev.md +2 -2
  173. package/pennyfarthing-dist/commands/devops.md +3 -3
  174. package/pennyfarthing-dist/commands/git-cleanup.md +5 -5
  175. package/pennyfarthing-dist/commands/health-check.md +1 -1
  176. package/pennyfarthing-dist/commands/list-themes.md +7 -3
  177. package/pennyfarthing-dist/commands/orchestrator.md +2 -2
  178. package/pennyfarthing-dist/commands/parallel-work.md +4 -4
  179. package/pennyfarthing-dist/commands/pm.md +2 -2
  180. package/pennyfarthing-dist/commands/prime.md +7 -7
  181. package/pennyfarthing-dist/commands/release.md +1 -1
  182. package/pennyfarthing-dist/commands/repo-status.md +2 -2
  183. package/pennyfarthing-dist/commands/retro.md +2 -2
  184. package/pennyfarthing-dist/commands/reviewer.md +2 -2
  185. package/pennyfarthing-dist/commands/set-theme.md +5 -1
  186. package/pennyfarthing-dist/commands/sm.md +2 -2
  187. package/pennyfarthing-dist/commands/start-epic.md +26 -14
  188. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +8 -8
  189. package/pennyfarthing-dist/commands/sync-work-with-sprint.md +1 -4
  190. package/pennyfarthing-dist/commands/tea.md +2 -2
  191. package/pennyfarthing-dist/commands/tech-writer.md +2 -2
  192. package/pennyfarthing-dist/commands/ux-designer.md +3 -3
  193. package/pennyfarthing-dist/commands/work.md +15 -4
  194. package/pennyfarthing-dist/commands/workflow.md +21 -0
  195. package/pennyfarthing-dist/guides/AGENT-COORDINATION.md +15 -15
  196. package/pennyfarthing-dist/guides/PROMPT-PATTERNS.md +1 -1
  197. package/pennyfarthing-dist/guides/SESSION-ARTIFACTS.md +4 -4
  198. package/pennyfarthing-dist/guides/agent-behavior.md +238 -0
  199. package/pennyfarthing-dist/guides/agent-template-strategic.md +2 -2
  200. package/pennyfarthing-dist/guides/agent-template-tactical.md +4 -4
  201. package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +1 -1
  202. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +17 -17
  203. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +8 -8
  204. package/pennyfarthing-dist/guides/workflow-schema.md +62 -0
  205. package/pennyfarthing-dist/guides/worktree-mode.md +5 -5
  206. package/pennyfarthing-dist/personas/themes/1984.yaml +1 -1
  207. package/pennyfarthing-dist/personas/themes/a-team.yaml +1 -1
  208. package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +1 -1
  209. package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +1 -1
  210. package/pennyfarthing-dist/personas/themes/all-stars.yaml +1 -1
  211. package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +1 -1
  212. package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +1 -1
  213. package/pennyfarthing-dist/personas/themes/arcane.yaml +1 -1
  214. package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +1 -1
  215. package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +1 -1
  216. package/pennyfarthing-dist/personas/themes/babylon-5.yaml +1 -1
  217. package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +1 -1
  218. package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +1 -1
  219. package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +2 -2
  220. package/pennyfarthing-dist/personas/themes/black-sails.yaml +1 -1
  221. package/pennyfarthing-dist/personas/themes/blade-runner.yaml +1 -1
  222. package/pennyfarthing-dist/personas/themes/bobiverse.yaml +1 -1
  223. package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +1 -1
  224. package/pennyfarthing-dist/personas/themes/catch-22.yaml +1 -1
  225. package/pennyfarthing-dist/personas/themes/classical-composers.yaml +1 -1
  226. package/pennyfarthing-dist/personas/themes/control.yaml +1 -1
  227. package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +1 -1
  228. package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +1 -1
  229. package/pennyfarthing-dist/personas/themes/deadwood.yaml +2 -2
  230. package/pennyfarthing-dist/personas/themes/discworld.yaml +2 -2
  231. package/pennyfarthing-dist/personas/themes/doctor-who.yaml +1 -1
  232. package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +1 -1
  233. package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +1 -1
  234. package/pennyfarthing-dist/personas/themes/firefly.yaml +1 -1
  235. package/pennyfarthing-dist/personas/themes/foundation.yaml +1 -1
  236. package/pennyfarthing-dist/personas/themes/futurama.yaml +1 -1
  237. package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +2 -2
  238. package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +1 -1
  239. package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +1 -1
  240. package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +1 -1
  241. package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +1 -1
  242. package/pennyfarthing-dist/personas/themes/harry-potter.yaml +2 -2
  243. package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +1 -1
  244. package/pennyfarthing-dist/personas/themes/historical-figures.yaml +1 -1
  245. package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +1 -1
  246. package/pennyfarthing-dist/personas/themes/house-md.yaml +1 -1
  247. package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +1 -1
  248. package/pennyfarthing-dist/personas/themes/jane-austen.yaml +1 -1
  249. package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +1 -1
  250. package/pennyfarthing-dist/personas/themes/justified.yaml +1 -1
  251. package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +1 -1
  252. package/pennyfarthing-dist/personas/themes/les-miserables.yaml +1 -1
  253. package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +1 -1
  254. package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +1 -1
  255. package/pennyfarthing-dist/personas/themes/mad-men.yaml +1 -1
  256. package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +1 -1
  257. package/pennyfarthing-dist/personas/themes/mash.yaml +69 -66
  258. package/pennyfarthing-dist/personas/themes/mass-effect.yaml +1 -1
  259. package/pennyfarthing-dist/personas/themes/military-commanders.yaml +1 -1
  260. package/pennyfarthing-dist/personas/themes/moby-dick.yaml +1 -1
  261. package/pennyfarthing-dist/personas/themes/monty-python.yaml +1 -1
  262. package/pennyfarthing-dist/personas/themes/neuromancer.yaml +1 -1
  263. package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +1 -1
  264. package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +1 -1
  265. package/pennyfarthing-dist/personas/themes/princess-bride.yaml +1 -1
  266. package/pennyfarthing-dist/personas/themes/rome.yaml +1 -1
  267. package/pennyfarthing-dist/personas/themes/russian-masters.yaml +1 -1
  268. package/pennyfarthing-dist/personas/themes/sandman.yaml +1 -1
  269. package/pennyfarthing-dist/personas/themes/shakespeare.yaml +1 -1
  270. package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +1 -1
  271. package/pennyfarthing-dist/personas/themes/snow-crash.yaml +1 -1
  272. package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +1 -1
  273. package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +1 -1
  274. package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +1 -1
  275. package/pennyfarthing-dist/personas/themes/star-wars.yaml +1 -1
  276. package/pennyfarthing-dist/personas/themes/superfriends.yaml +1 -1
  277. package/pennyfarthing-dist/personas/themes/the-americans.yaml +1 -1
  278. package/pennyfarthing-dist/personas/themes/the-crown.yaml +1 -1
  279. package/pennyfarthing-dist/personas/themes/the-expanse.yaml +1 -1
  280. package/pennyfarthing-dist/personas/themes/the-good-place.yaml +1 -1
  281. package/pennyfarthing-dist/personas/themes/the-office.yaml +1 -1
  282. package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +1 -1
  283. package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +1 -1
  284. package/pennyfarthing-dist/personas/themes/the-wire.yaml +1 -1
  285. package/pennyfarthing-dist/personas/themes/the-witcher.yaml +1 -1
  286. package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +1 -1
  287. package/pennyfarthing-dist/personas/themes/west-wing.yaml +1 -1
  288. package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +1 -1
  289. package/pennyfarthing-dist/scripts/README.md +68 -0
  290. package/pennyfarthing-dist/scripts/core/README.md +26 -0
  291. package/pennyfarthing-dist/scripts/{agent-session.sh → core/agent-session.sh} +34 -23
  292. package/pennyfarthing-dist/scripts/{check-context.sh → core/check-context.sh} +93 -37
  293. package/pennyfarthing-dist/scripts/core/handoff-marker.sh +90 -0
  294. package/pennyfarthing-dist/scripts/core/prime.sh +136 -0
  295. package/pennyfarthing-dist/scripts/core/run.sh +75 -0
  296. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +21 -0
  297. package/pennyfarthing-dist/scripts/git/README.md +25 -0
  298. package/pennyfarthing-dist/scripts/{utils → git}/create-feature-branches.sh +11 -15
  299. package/pennyfarthing-dist/scripts/{utils → git}/git-status-all.sh +1 -1
  300. package/pennyfarthing-dist/scripts/{install-git-hooks.sh → git/install-git-hooks.sh} +0 -0
  301. package/pennyfarthing-dist/scripts/{release.sh → git/release.sh} +0 -0
  302. package/pennyfarthing-dist/scripts/{worktree-manager.sh → git/worktree-manager.sh} +0 -4
  303. package/pennyfarthing-dist/scripts/hooks/README.md +32 -0
  304. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +3 -4
  305. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +1 -2
  306. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -0
  307. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +1 -1
  308. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +0 -0
  309. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -0
  310. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +0 -0
  311. package/pennyfarthing-dist/scripts/hooks/session-start.sh +2 -3
  312. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +2 -3
  313. package/pennyfarthing-dist/scripts/jira/README.md +33 -0
  314. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +101 -0
  315. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +97 -0
  316. package/pennyfarthing-dist/scripts/jira/jira-bidirectional-sync.mjs +327 -0
  317. package/pennyfarthing-dist/scripts/jira/jira-bidirectional-sync.test.mjs +503 -0
  318. package/pennyfarthing-dist/scripts/{utils → jira}/jira-claim-story.sh +8 -6
  319. package/pennyfarthing-dist/scripts/{utils/jira → jira}/jira-lib.mjs +10 -10
  320. package/pennyfarthing-dist/scripts/{utils → jira}/jira-lib.sh +18 -17
  321. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +266 -0
  322. package/pennyfarthing-dist/scripts/{utils/jira → jira}/jira-sync-story.mjs +14 -14
  323. package/pennyfarthing-dist/scripts/{utils → jira}/jira-sync-story.sh +0 -0
  324. package/pennyfarthing-dist/scripts/{utils/jira → jira}/jira-sync.mjs +4 -4
  325. package/pennyfarthing-dist/scripts/{utils → jira}/jira-sync.sh +0 -0
  326. package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +104 -0
  327. package/pennyfarthing-dist/scripts/{utils → jira}/sync-epic-to-jira.sh +1 -1
  328. package/pennyfarthing-dist/scripts/lib/README.md +29 -0
  329. package/pennyfarthing-dist/scripts/{utils → lib}/background-tasks.sh +1 -1
  330. package/pennyfarthing-dist/scripts/{utils → lib}/checkpoint.sh +0 -0
  331. package/pennyfarthing-dist/scripts/{utils → lib}/common.sh +1 -1
  332. package/pennyfarthing-dist/scripts/{utils → lib}/file-lock.sh +0 -0
  333. package/pennyfarthing-dist/scripts/{utils → lib}/find-root.sh +7 -5
  334. package/pennyfarthing-dist/scripts/{utils → lib}/logging.sh +0 -0
  335. package/pennyfarthing-dist/scripts/{utils → lib}/retry.sh +0 -0
  336. package/pennyfarthing-dist/scripts/misc/README.md +44 -0
  337. package/pennyfarthing-dist/scripts/{add-short-names.mjs → misc/add-short-names.mjs} +0 -0
  338. package/pennyfarthing-dist/scripts/misc/backlog.sh +91 -0
  339. package/pennyfarthing-dist/scripts/{utils → misc}/check-status.sh +4 -8
  340. package/pennyfarthing-dist/scripts/{deploy.sh → misc/deploy.sh} +0 -0
  341. package/pennyfarthing-dist/scripts/{doctor-dogfood.sh → misc/doctor-dogfood.sh} +2 -5
  342. package/pennyfarthing-dist/scripts/{utils → misc}/find-related-work.sh +0 -0
  343. package/pennyfarthing-dist/scripts/{utils → misc}/generate-skill-docs.sh +0 -0
  344. package/pennyfarthing-dist/scripts/{utils → misc}/log-skill-usage.sh +0 -0
  345. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.mjs +474 -0
  346. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +9 -0
  347. package/pennyfarthing-dist/scripts/{utils → misc}/repo-scan.sh +0 -0
  348. package/pennyfarthing-dist/scripts/{repo-utils.sh → misc/repo-utils.sh} +2 -2
  349. package/pennyfarthing-dist/scripts/{run-ci.sh → misc/run-ci.sh} +0 -0
  350. package/pennyfarthing-dist/scripts/{utils → misc}/run-timestamp.sh +0 -0
  351. package/pennyfarthing-dist/scripts/{utils → misc}/session-cleanup.sh +0 -0
  352. package/pennyfarthing-dist/scripts/{utils → misc}/skill-usage-report.sh +0 -0
  353. package/pennyfarthing-dist/scripts/{statusline.sh → misc/statusline.sh} +2 -7
  354. package/pennyfarthing-dist/scripts/{uninstall.sh → misc/uninstall.sh} +4 -5
  355. package/pennyfarthing-dist/scripts/{utils → misc}/validate-subagent-frontmatter.sh +3 -3
  356. package/pennyfarthing-dist/scripts/sprint/README.md +29 -0
  357. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +135 -0
  358. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +97 -0
  359. package/pennyfarthing-dist/scripts/sprint/check-story.sh +164 -0
  360. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +58 -0
  361. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +69 -0
  362. package/pennyfarthing-dist/scripts/sprint/list-future.sh +151 -0
  363. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +116 -0
  364. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +164 -0
  365. package/pennyfarthing-dist/scripts/{utils → sprint}/sprint-common.sh +135 -0
  366. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +39 -0
  367. package/pennyfarthing-dist/scripts/{utils → sprint}/sprint-metrics.sh +0 -0
  368. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +134 -0
  369. package/pennyfarthing-dist/scripts/story/README.md +23 -0
  370. package/pennyfarthing-dist/scripts/story/create-story.sh +159 -0
  371. package/pennyfarthing-dist/scripts/story/size-story.sh +198 -0
  372. package/pennyfarthing-dist/scripts/story/story-template.sh +162 -0
  373. package/pennyfarthing-dist/scripts/test/README.md +23 -0
  374. package/pennyfarthing-dist/scripts/{utils → test}/swebench-judge.py +0 -0
  375. package/pennyfarthing-dist/scripts/test/test-cache.sh +165 -0
  376. package/pennyfarthing-dist/scripts/{utils → test}/test-setup.sh +5 -5
  377. package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -0
  378. package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +515 -0
  379. package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +599 -0
  380. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +332 -0
  381. package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +573 -0
  382. package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +859 -0
  383. package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +662 -0
  384. package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +589 -0
  385. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +7 -9
  386. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +18 -18
  387. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +10 -10
  388. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +1 -1
  389. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -0
  390. package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +647 -0
  391. package/pennyfarthing-dist/scripts/theme/README.md +22 -0
  392. package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +203 -0
  393. package/pennyfarthing-dist/scripts/theme/list-themes.sh +73 -0
  394. package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +97 -0
  395. package/pennyfarthing-dist/scripts/workflow/README.md +28 -0
  396. package/pennyfarthing-dist/scripts/{check.sh → workflow/check.sh} +0 -0
  397. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +159 -0
  398. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +228 -0
  399. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +91 -0
  400. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +163 -0
  401. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +138 -0
  402. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +256 -0
  403. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +167 -0
  404. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +6 -0
  405. package/pennyfarthing-dist/skills/changelog/SKILL.md +2 -2
  406. package/pennyfarthing-dist/skills/code-review/SKILL.md +3 -3
  407. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +6 -0
  408. package/pennyfarthing-dist/skills/cyclist/SKILL.md +56 -139
  409. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +21 -5
  410. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +1 -1
  411. package/pennyfarthing-dist/skills/jira/SKILL.md +381 -178
  412. package/pennyfarthing-dist/skills/judge/SKILL.md +76 -21
  413. package/pennyfarthing-dist/skills/just/SKILL.md +345 -102
  414. package/pennyfarthing-dist/skills/otel/skill.md +1 -0
  415. package/pennyfarthing-dist/skills/permissions/skill.md +1 -1
  416. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +5 -0
  417. package/pennyfarthing-dist/skills/skill-registry.schema.json +5 -0
  418. package/pennyfarthing-dist/skills/skill-registry.yaml +22 -0
  419. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +101 -0
  420. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +97 -0
  421. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +164 -0
  422. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +101 -0
  423. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +116 -0
  424. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +164 -0
  425. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +39 -0
  426. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +147 -0
  427. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +104 -0
  428. package/pennyfarthing-dist/skills/sprint/skill.md +465 -0
  429. package/pennyfarthing-dist/skills/story/scripts/create-story.sh +159 -0
  430. package/pennyfarthing-dist/skills/story/scripts/size-story.sh +198 -0
  431. package/pennyfarthing-dist/skills/story/scripts/story-template.sh +162 -0
  432. package/pennyfarthing-dist/skills/story/skill.md +219 -0
  433. package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +390 -0
  434. package/pennyfarthing-dist/skills/theme/skill.md +1 -1
  435. package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +91 -0
  436. package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +163 -0
  437. package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +138 -0
  438. package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +273 -0
  439. package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +167 -0
  440. package/pennyfarthing-dist/skills/workflow/skill.md +337 -0
  441. package/pennyfarthing-dist/templates/settings.local.json.template +1 -1
  442. package/pennyfarthing-dist/workflows/agent-docs.yaml +1 -1
  443. package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +101 -0
  444. package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +93 -0
  445. package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +115 -0
  446. package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +133 -0
  447. package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +138 -0
  448. package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +133 -0
  449. package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +142 -0
  450. package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +160 -0
  451. package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +102 -0
  452. package/pennyfarthing-dist/workflows/architecture.yaml +65 -0
  453. package/pennyfarthing-dist/workflows/bdd.yaml +3 -1
  454. package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +62 -0
  455. package/pennyfarthing-dist/workflows/brainstorming/checklist.md +44 -0
  456. package/pennyfarthing-dist/workflows/brainstorming/instructions.md +736 -0
  457. package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +49 -0
  458. package/pennyfarthing-dist/workflows/code-review/checklist.md +23 -0
  459. package/pennyfarthing-dist/workflows/code-review/instructions.md +234 -0
  460. package/pennyfarthing-dist/workflows/code-review/workflow.yaml +51 -0
  461. package/pennyfarthing-dist/workflows/dev-story/checklist.md +80 -0
  462. package/pennyfarthing-dist/workflows/dev-story/instructions.xml +410 -0
  463. package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +50 -0
  464. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +256 -0
  465. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +233 -0
  466. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +272 -0
  467. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +145 -0
  468. package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +57 -0
  469. package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +27 -0
  470. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +190 -0
  471. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +178 -0
  472. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
  473. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +139 -0
  474. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
  475. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +133 -0
  476. package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +4 -0
  477. package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +40 -0
  478. package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +13 -0
  479. package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +197 -0
  480. package/pennyfarthing-dist/workflows/prd/data/project-types.csv +11 -0
  481. package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +191 -0
  482. package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +153 -0
  483. package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +224 -0
  484. package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +226 -0
  485. package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +213 -0
  486. package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +207 -0
  487. package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +226 -0
  488. package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +237 -0
  489. package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +228 -0
  490. package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +231 -0
  491. package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +242 -0
  492. package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +217 -0
  493. package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +180 -0
  494. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +247 -0
  495. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  496. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +249 -0
  497. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +253 -0
  498. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +168 -0
  499. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +218 -0
  500. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
  501. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
  502. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
  503. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  504. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
  505. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
  506. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  507. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  508. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
  509. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
  510. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  511. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
  512. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +232 -0
  513. package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +10 -0
  514. package/pennyfarthing-dist/workflows/prd/workflow.yaml +42 -0
  515. package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +177 -0
  516. package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +161 -0
  517. package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +199 -0
  518. package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +202 -0
  519. package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +205 -0
  520. package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +219 -0
  521. package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +194 -0
  522. package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +10 -0
  523. package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +31 -0
  524. package/pennyfarthing-dist/workflows/project-context/project-context-template.md +21 -0
  525. package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +184 -0
  526. package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +318 -0
  527. package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +278 -0
  528. package/pennyfarthing-dist/workflows/project-context/workflow.yaml +27 -0
  529. package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +156 -0
  530. package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +120 -0
  531. package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +113 -0
  532. package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +113 -0
  533. package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +106 -0
  534. package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +140 -0
  535. package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +27 -0
  536. package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +189 -0
  537. package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +144 -0
  538. package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +128 -0
  539. package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +191 -0
  540. package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +74 -0
  541. package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +27 -0
  542. package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +137 -0
  543. package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +229 -0
  544. package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +238 -0
  545. package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +206 -0
  546. package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +234 -0
  547. package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +443 -0
  548. package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +182 -0
  549. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +237 -0
  550. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +200 -0
  551. package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +249 -0
  552. package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +259 -0
  553. package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +177 -0
  554. package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +475 -0
  555. package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +137 -0
  556. package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +239 -0
  557. package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +248 -0
  558. package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +202 -0
  559. package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +239 -0
  560. package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +486 -0
  561. package/pennyfarthing-dist/workflows/research/templates/research.template.md +29 -0
  562. package/pennyfarthing-dist/workflows/research/workflow.yaml +45 -0
  563. package/pennyfarthing-dist/workflows/retrospective/checklist.md +31 -0
  564. package/pennyfarthing-dist/workflows/retrospective/instructions.md +1443 -0
  565. package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +50 -0
  566. package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +33 -0
  567. package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +55 -0
  568. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +54 -0
  569. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +44 -0
  570. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +64 -0
  571. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +73 -0
  572. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +56 -0
  573. package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +34 -0
  574. package/pennyfarthing-dist/workflows/trivial.yaml +1 -1
  575. package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +135 -0
  576. package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +127 -0
  577. package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +190 -0
  578. package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +216 -0
  579. package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +219 -0
  580. package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +234 -0
  581. package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +252 -0
  582. package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +254 -0
  583. package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +224 -0
  584. package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +224 -0
  585. package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +241 -0
  586. package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +248 -0
  587. package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +237 -0
  588. package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +264 -0
  589. package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +228 -0
  590. package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +13 -0
  591. package/pennyfarthing-dist/workflows/ux-design/workflow.yaml +41 -0
  592. package/packages/core/dist/scripts/generate-all-faces.d.ts +0 -10
  593. package/packages/core/dist/scripts/generate-all-faces.d.ts.map +0 -1
  594. package/packages/core/dist/scripts/generate-all-faces.js +0 -256
  595. package/packages/core/dist/scripts/generate-all-faces.js.map +0 -1
  596. package/packages/core/dist/scripts/generate-all-faces.test.d.ts +0 -17
  597. package/packages/core/dist/scripts/generate-all-faces.test.d.ts.map +0 -1
  598. package/packages/core/dist/scripts/generate-all-faces.test.js +0 -372
  599. package/packages/core/dist/scripts/generate-all-faces.test.js.map +0 -1
  600. package/packages/core/dist/scripts/generate-ascii-face.d.ts +0 -52
  601. package/packages/core/dist/scripts/generate-ascii-face.d.ts.map +0 -1
  602. package/packages/core/dist/scripts/generate-ascii-face.js +0 -155
  603. package/packages/core/dist/scripts/generate-ascii-face.js.map +0 -1
  604. package/packages/core/dist/scripts/generate-face.d.ts +0 -52
  605. package/packages/core/dist/scripts/generate-face.d.ts.map +0 -1
  606. package/packages/core/dist/scripts/generate-face.js +0 -199
  607. package/packages/core/dist/scripts/generate-face.js.map +0 -1
  608. package/packages/core/dist/scripts/generate-face.test.d.ts +0 -13
  609. package/packages/core/dist/scripts/generate-face.test.d.ts.map +0 -1
  610. package/packages/core/dist/scripts/generate-face.test.js +0 -301
  611. package/packages/core/dist/scripts/generate-face.test.js.map +0 -1
  612. package/pennyfarthing-dist/agents/generic-handoff.md +0 -454
  613. package/pennyfarthing-dist/agents/generic-sm-finish.md +0 -261
  614. package/pennyfarthing-dist/agents/generic-sm-setup.md +0 -214
  615. package/pennyfarthing-dist/commands/new-work.md +0 -127
  616. package/pennyfarthing-dist/guides/AGENT-SCOPES.md +0 -201
  617. package/pennyfarthing-dist/guides/persona-system.md +0 -294
  618. package/pennyfarthing-dist/guides/shared-agent-behavior.md +0 -388
  619. package/pennyfarthing-dist/guides/shared-context.md +0 -147
  620. package/pennyfarthing-dist/guides/strategic-agent-behavior.md +0 -348
  621. package/pennyfarthing-dist/guides/tactical-agent-behavior.md +0 -1041
  622. package/pennyfarthing-dist/scripts/prime.sh +0 -161
  623. package/pennyfarthing-dist/scripts/run.sh +0 -65
  624. package/pennyfarthing-dist/skills/sprint-context/SKILL.md +0 -120
  625. package/pennyfarthing-dist/skills/story-management/SKILL.md +0 -208
  626. package/pennyfarthing-dist/skills/workflow/SKILL.md +0 -160
  627. /package/pennyfarthing-dist/commands/{brainstorm.md → brainstorming.md} +0 -0
  628. /package/pennyfarthing-dist/scripts/{utils → test}/ground-truth-judge.py +0 -0
@@ -6,47 +6,20 @@ This directory contains the **single source of truth** for all Pennyfarthing age
6
6
 
7
7
  **See:** `../ AGENT-COORDINATION.md` for complete architecture documentation.
8
8
 
9
- ## Agent Maturity
10
-
11
- Agents are marked with `<status>` tags indicating their maturity level:
12
-
13
- ### Production Agents
14
- These agents follow the TDD workflow and are battle-tested:
15
- - **SM** - Scrum Master (story coordination, session management)
16
- - **TEA** - Test Engineer/Architect (test writing, TDD guidance)
17
- - **Dev** - Developer (implementation, making tests pass)
18
- - **Reviewer** - Code Reviewer (adversarial review, quality gates)
19
-
20
- ### Experimental Agents
21
- These agents are available but not yet modernized to the same standard:
22
- - **Orchestrator** - Meta operations, process improvement
23
- - **PM** - Product Manager (planning, prioritization)
24
- - **Architect** - System Architect (design decisions)
25
- - **DevOps** - DevOps Engineer (infrastructure, deployment)
26
- - **Tech Writer** - Technical Writer (documentation)
27
- - **UX Designer** - UX Designer (UI design, accessibility)
28
-
29
- > **Tip:** Start with production agents for core development work. Experimental agents may have less consistent behavior or missing features.
30
-
31
- ## Agent Hierarchy
32
-
33
- ### Strategic Agents (Full Scope)
34
- Oversee both repos, make cross-repo decisions, coordinate work.
35
-
36
- - **`orchestrator.md`** - Master orchestrator
37
- - **`pm.md`** - Product Manager (planning, prioritization)
38
- - **`sm.md`** - Scrum Master (story creation, technical specs)
39
- - **`architect.md`** - System Architect (design decisions, patterns)
40
- - **`devops.md`** - DevOps Engineer (infrastructure, deployment)
41
-
42
- ### Tactical Agents (Story-Scoped)
43
- Focus on specific repo(s), implement/test/document features.
44
-
45
- - **`dev.md`** - Developer (feature implementation)
46
- - **`tea.md`** - Test Engineer/Architect (testing, quality)
47
- - **`reviewer.md`** - Code Reviewer (adversarial review, quality gates)
48
- - **`tech-writer.md`** - Technical Writer (documentation)
49
- - **`ux-designer.md`** - UX Designer (UI design, UX)
9
+ ## Main Agents
10
+
11
+ | Agent | Role |
12
+ |-------|------|
13
+ | **SM** | Story coordination, session management |
14
+ | **TEA** | Test writing, TDD guidance |
15
+ | **Dev** | Feature implementation |
16
+ | **Reviewer** | Adversarial code review |
17
+ | **Orchestrator** | Process improvement, meta-ops |
18
+ | **PM** | Planning, prioritization |
19
+ | **Architect** | System design, ADRs |
20
+ | **DevOps** | Infrastructure, deployment |
21
+ | **Tech Writer** | Documentation |
22
+ | **UX Designer** | UI design, accessibility |
50
23
 
51
24
  ### Official Subagents (Haiku-based)
52
25
  Lightweight subagents for mechanical tasks. Invoked via `Task tool` with `subagent_type: "general-purpose"` and `model: "haiku"`.
@@ -56,16 +29,19 @@ Lightweight subagents for mechanical tasks. Invoked via `Task tool` with `subage
56
29
  Task tool:
57
30
  subagent_type: "general-purpose"
58
31
  model: "haiku"
32
+ run_in_background: true # For independent work; omit for sequential workflows
59
33
  prompt: |
60
34
  Read and follow: .pennyfarthing/agents/{subagent-name}.md
61
35
 
62
36
  {PARAMETERS}
63
37
  ```
64
38
 
39
+ **See `agent-behavior.md` → "Interactive Background Task Protocol"** for when to use background vs foreground execution.
40
+
65
41
  - **`workflow-status-check.md`** - Detect workflow state
66
- - **`generic-sm-setup.md`** - Research OR setup mode (Story 31-11)
67
- - **`generic-sm-finish.md`** - Preflight OR execute phase (Story 31-11)
68
- - **`generic-handoff.md`** - Workflow-driven handoff (Stories 31-7, 31-10)
42
+ - **`sm-setup.md`** - Research OR setup mode (Story 31-11)
43
+ - **`sm-finish.md`** - Preflight OR execute phase (Story 31-11)
44
+ - **`handoff.md`** - Workflow-driven handoff (Stories 31-7, 31-10)
69
45
  - **`sm-handoff.md`** - SM→TEA/Dev handoff with Jira/branch verification
70
46
  - **`sm-file-summary.md`** - Summarize file changes
71
47
  - **`reviewer-preflight.md`** - Gather review data
@@ -75,16 +51,16 @@ Task tool:
75
51
  These files have been deleted and replaced by consolidated versions:
76
52
 
77
53
  **SM Subagents (Story 31-12):**
78
- - `sm-work-research.md` → use `generic-sm-setup` with MODE=research
79
- - `sm-story-setup.md` → use `generic-sm-setup` with MODE=setup
80
- - `sm-finish-bookkeeping.md` → use `generic-sm-finish` with PHASE=preflight
81
- - `sm-finish-execution.md` → use `generic-sm-finish` with PHASE=execute
54
+ - `sm-work-research.md` → use `sm-setup` with MODE=research
55
+ - `sm-story-setup.md` → use `sm-setup` with MODE=setup
56
+ - `sm-finish-bookkeeping.md` → use `sm-finish` with PHASE=preflight
57
+ - `sm-finish-execution.md` → use `sm-finish` with PHASE=execute
82
58
 
83
59
  **Handoff Subagents (Story 31-11):**
84
- - `tea-handoff.md` → use `generic-handoff` with CURRENT_PHASE=red
85
- - `dev-handoff.md` → use `generic-handoff` with CURRENT_PHASE=green
86
- - `reviewer-handoff-approve.md` → use `generic-handoff` with VERDICT=approved
87
- - `reviewer-handoff-reject.md` → use `generic-handoff` with VERDICT=rejected
60
+ - `tea-handoff.md` → use `handoff` with CURRENT_PHASE=red
61
+ - `dev-handoff.md` → use `handoff` with CURRENT_PHASE=green
62
+ - `reviewer-handoff-approve.md` → use `handoff` with VERDICT=approved
63
+ - `reviewer-handoff-reject.md` → use `handoff` with VERDICT=rejected
88
64
 
89
65
  ## Context Loading
90
66
 
@@ -149,9 +125,9 @@ Each agent file contains:
149
125
 
150
126
  │ # Official Subagents (8 active)
151
127
  ├── workflow-status-check.md # Detect workflow state
152
- ├── generic-sm-setup.md # Research or setup mode (Story 31-11)
153
- ├── generic-sm-finish.md # Preflight or execute (Story 31-11)
154
- ├── generic-handoff.md # Workflow-driven handoff (Stories 31-7, 31-10)
128
+ ├── sm-setup.md # Research or setup mode (Story 31-11)
129
+ ├── sm-finish.md # Preflight or execute (Story 31-11)
130
+ ├── handoff.md # Workflow-driven handoff (Stories 31-7, 31-10)
155
131
  ├── sm-handoff.md # SM→TEA/Dev handoff with Jira/branch
156
132
  ├── sm-file-summary.md # Summarize files
157
133
  ├── reviewer-preflight.md # Review prep
@@ -177,53 +153,22 @@ Each agent is designed to work within **~500-800 line context budget**:
177
153
  - Target repo context: ~100 lines
178
154
  - **Total:** ~450-600 lines
179
155
 
180
- ## Agent Coordination
181
-
182
- ### TDD Flow Handoffs
156
+ ## Common Handoffs
183
157
 
184
158
  ```
185
- SM → TEA: Story selected, write failing tests
186
- TEA → Dev: Tests written (RED), make them pass
187
- Dev → Reviewer: Implementation done, review PR
188
- Reviewer → SM: Story approved, finish it
189
- Reviewer → Dev: Issues found, fix needed
190
- ```
191
-
192
- ### Strategic → Tactical Handoffs
193
-
194
- ```
195
- PM → SM: Epic needs stories
196
- SM → TEA: Story ready for tests
197
- TEA → Dev: Tests ready for implementation
198
- Dev → Reviewer: PR ready for review
199
- ```
200
-
201
- ### Strategic ↔ Strategic Coordination
202
-
203
- ```
204
- PM ↔ Architect: Need design decisions
205
- PM ↔ SM: Story prioritization
206
- SM ↔ Architect: Technical approach
207
- ```
208
-
209
- ### Tactical → Strategic Feedback
210
-
211
- ```
212
- Dev → SM: Story blocked or needs clarification
213
- TEA → SM: Test coverage gaps identified
214
- Reviewer → SM: Code quality concerns
215
- Tech Writer → SM: Documentation needs
159
+ SM → TEA/Dev: Story setup complete
160
+ TEA → Dev: Tests written
161
+ Dev → Reviewer: Implementation complete
162
+ Reviewer → SM: Story approved
163
+ Reviewer → Dev: Changes requested
216
164
  ```
217
165
 
218
166
  ## Creating New Agents
219
167
 
220
- To add a new agent:
221
-
222
168
  1. Create `.pennyfarthing/agents/[name].md`
223
169
  2. Follow existing agent structure
224
- 3. Add to `../agent-scopes.yaml`
225
- 4. Update this README
226
- 5. Create command in `.claude/commands/[name].md`
170
+ 3. Update this README
171
+ 4. Create command in `.claude/commands/[name].md`
227
172
 
228
173
  ### Agent Template Structure
229
174
 
@@ -272,15 +217,15 @@ To add a new agent:
272
217
 
273
218
  ### Standard Pattern
274
219
  ```bash
275
- # ✅ CORRECT - Use $CLAUDE_PROJECT_DIR
276
- $CLAUDE_PROJECT_DIR/scripts/agent-session.sh start "Agent Name"
220
+ # ✅ CORRECT - Use $CLAUDE_PROJECT_DIR with run.sh
221
+ $CLAUDE_PROJECT_DIR/scripts/run.sh core/agent-session.sh start "Agent Name"
277
222
  $CLAUDE_PROJECT_DIR/.session/{STORY_ID}-session.md
278
223
 
279
224
  # ❌ WRONG - Don't use git rev-parse (unreliable in agent context)
280
- $(git rev-parse --show-toplevel)/scripts/agent-session.sh
225
+ $(git rev-parse --show-toplevel)/scripts/run.sh core/agent-session.sh
281
226
 
282
227
  # ❌ WRONG - Don't hardcode absolute paths
283
- /Users/someone/project/scripts/agent-session.sh
228
+ /Users/someone/project/scripts/run.sh core/agent-session.sh
284
229
  ```
285
230
 
286
231
  ### Why $CLAUDE_PROJECT_DIR?
@@ -296,51 +241,35 @@ All agent commands in `.claude/commands/` have been standardized to use `$CLAUDE
296
241
 
297
242
  ## Background Subagent Execution
298
243
 
299
- Subagents can run in background using Claude Code's `run_in_background` parameter. This allows the main agent to continue working while slow operations complete asynchronously.
300
-
301
- ### When to Use Background Execution
244
+ Subagents can run in background using Claude Code's `run_in_background` parameter. This allows the user to continue interacting while slow operations complete asynchronously.
302
245
 
303
- **Good candidates:**
304
- - Test runs (via `testing-runner`) while writing more code
305
- - Multiple independent file searches
306
- - Long-running git operations (fetch, clone)
307
- - Parallel exploration of code paths
246
+ **IMPORTANT:** See `agent-behavior.md` → "Interactive Background Task Protocol" for the authoritative guidance.
308
247
 
309
- **When NOT to use:**
310
- - Operations where subsequent work depends on the result
311
- - Operations that modify shared state (session file, git working tree)
312
- - Sequential workflows (must complete phase A before phase B)
248
+ ### The Key Insight
313
249
 
314
- ### Spawning Background Subagents
250
+ **Background + immediate blocking is an anti-pattern.** If you spawn with `run_in_background: true` then immediately call `TaskOutput` with `block: true`, you've blocked the conversation - the user can't interact.
315
251
 
316
- ```yaml
317
- Task tool:
318
- subagent_type: "general-purpose"
319
- model: "haiku"
320
- run_in_background: true
321
- prompt: |
322
- Read and follow: .pennyfarthing/agents/testing-runner.md
252
+ ### When to Use Background Execution
323
253
 
324
- REPOS: all
325
- CONTEXT: Background test run while implementing
326
- RUN_ID: bg-test-001
327
- ```
254
+ **Good candidates (truly independent work):**
255
+ - Test runs while writing more code
256
+ - Multiple independent file explorations
257
+ - Long-running builds while discussing next steps
258
+ - Parallel searches where you don't need results immediately
328
259
 
329
- ### Checking Background Task Status
260
+ **When NOT to use (sequential workflow):**
261
+ - Status checks that determine your next action
262
+ - Handoff operations that must complete before continuing
263
+ - Any operation where you need the result to proceed
330
264
 
331
- Use the `TaskOutput` tool to check on background tasks:
265
+ ### Cyclist Integration
332
266
 
333
- ```yaml
334
- TaskOutput tool:
335
- task_id: {task_id from spawn}
336
- block: false # Non-blocking check
337
- timeout: 1000 # Quick timeout for status check
338
- ```
267
+ When running in Cyclist, background tasks are automatically tracked:
268
+ - OTEL spans detect `run_in_background: true` Task calls
269
+ - Completion notifications appear in MessageView
270
+ - User can expand to see full output
339
271
 
340
- **Status values:**
341
- - `running` - Task still executing
342
- - `completed` - Task finished, results available
343
- - `error` - Task failed
272
+ **This means:** Fire the task, tell the user it's running, and keep working. Cyclist handles the notification when it finishes.
344
273
 
345
274
  ### Tracking Background Tasks in Session Files
346
275
 
@@ -6,12 +6,8 @@ Auto-loaded by `agent-session.sh start` from theme config. See output above.
6
6
  **Fallback if not loaded:** Analytical, forward-thinking, focused on system design
7
7
  </persona>
8
8
 
9
- <status>experimental</status>
10
-
11
9
  <role>
12
- **Primary:** Technical design and architecture decisions outside the TDD flow
13
- **Scope:** System design, tech decisions, pattern definition, cross-repo design
14
- **Blessed Path:** The TDD flow (SM -> TEA -> Dev -> Reviewer) handles story implementation
10
+ System design, technical decisions, pattern definition, ADRs
15
11
  </role>
16
12
 
17
13
  <helpers>
@@ -22,13 +18,21 @@ From theme config. Model: haiku. Tasks: Architecture scanning, pattern analysis,
22
18
  - `testing-runner.md` - Verify builds pass after design changes
23
19
  - `sm-file-summary.md` - Summarize files for context gathering
24
20
 
25
- - **Invocation pattern:**
21
+ - **Invocation pattern:** See `agent-behavior.md` → "Interactive Background Task Protocol"
22
+
23
+ **Most Architect tasks are sequential** - design depends on codebase analysis.
24
+ Use **foreground execution** for workflow steps. Use **background** for independent parallel exploration.
25
+
26
26
  ```yaml
27
27
  Task tool:
28
28
  subagent_type: "general-purpose"
29
29
  model: "haiku"
30
30
  prompt: |
31
- Read and follow: .pennyfarthing/agents/{subagent-name}.md
31
+ You are the {subagent-name} subagent.
32
+
33
+ Read .pennyfarthing/agents/{subagent-name}.md for your instructions,
34
+ then EXECUTE all steps described there. Do NOT summarize - actually run
35
+ the bash commands and produce the required output format.
32
36
 
33
37
  {PARAMETERS}
34
38
  ```
@@ -91,7 +95,7 @@ REFLECT: Recommend REST endpoint following existing patterns. Document in ADR.
91
95
  - When choosing patterns: Prefer existing patterns unless clearly inferior
92
96
  - When making trade-offs: Document the decision and alternatives considered
93
97
 
94
- **Turn Efficiency:** See `shared-agent-behavior.md` -> Turn Efficiency Protocol
98
+ **Turn Efficiency:** See `agent-behavior.md` -> Turn Efficiency Protocol
95
99
  </reasoning-mode>
96
100
 
97
101
  <on-activation>
@@ -154,7 +158,11 @@ Task tool:
154
158
  subagent_type: "general-purpose"
155
159
  model: "haiku"
156
160
  prompt: |
157
- Read and follow: .pennyfarthing/agents/testing-runner.md
161
+ You are the testing-runner subagent.
162
+
163
+ Read .pennyfarthing/agents/testing-runner.md for your instructions,
164
+ then EXECUTE all steps described there. Do NOT summarize - actually run
165
+ the bash commands and produce the required output format.
158
166
 
159
167
  REPOS: all
160
168
  CONTEXT: Verifying build after design change
@@ -181,5 +189,5 @@ Task tool:
181
189
  <exit>
182
190
  To exit: "Exit Architect" or switch to another agent.
183
191
 
184
- On exit, run: `./scripts/run.sh agent-session.sh stop`
192
+ On exit, run: `./scripts/run.sh core/agent-session.sh stop`
185
193
  </exit>
@@ -6,12 +6,9 @@ Auto-loaded by `agent-session.sh start` from theme config. See output above.
6
6
  **Fallback if not loaded:** Methodical, quietly competent developer focused on systematic implementation
7
7
  </persona>
8
8
 
9
- <status>production</status>
10
9
 
11
10
  <role>
12
- **Primary:** SM TEA **Dev** → Reviewer (TDD flow via `/new-work`)
13
- **Entry:** Invoked after TEA writes failing tests (RED)
14
- **Exit:** Hand off to Reviewer with passing tests (GREEN) and PR
11
+ Feature implementation, making tests pass, code changes
15
12
  </role>
16
13
 
17
14
  <helpers>
@@ -19,15 +16,23 @@ From theme config. Model: haiku. Tasks: run tests, gather results, update sessio
19
16
 
20
17
  - **Subagents:** (use `subagent_type: "general-purpose"` with `model: "haiku"`)
21
18
  - `testing-runner.md` - Run tests, gather results
22
- - `generic-handoff.md` - Workflow-driven session update for handoff
19
+ - `handoff.md` - Workflow-driven session update for handoff
20
+
21
+ - **Invocation pattern:** See `agent-behavior.md` → "Interactive Background Task Protocol"
22
+
23
+ **Dev workflow tasks are sequential** - handoff depends on test results.
24
+ Use **foreground execution** (omit `run_in_background`) for workflow steps.
23
25
 
24
- - **Invocation pattern:**
25
26
  ```yaml
26
27
  Task tool:
27
28
  subagent_type: "general-purpose"
28
29
  model: "haiku"
29
30
  prompt: |
30
- Read and follow: .pennyfarthing/agents/{subagent-name}.md
31
+ You are the {subagent-name} subagent.
32
+
33
+ Read .pennyfarthing/agents/{subagent-name}.md for your instructions,
34
+ then EXECUTE all steps described there. Do NOT summarize - actually run
35
+ the bash commands and produce the required output format.
31
36
 
32
37
  {PARAMETERS}
33
38
  ```
@@ -78,7 +83,7 @@ REFLECT: Minimal fix: return ErrNotFound when query returns no rows. This matche
78
83
  2. If handed off to Dev, offer:
79
84
  > "Ah, I see. Story X-Y has tests ready. Shall I make them GREEN?"
80
85
 
81
- **Test & Turn Efficiency:** See `shared-agent-behavior.md` → Test Delegation Protocol, Turn Efficiency Protocol
86
+ **Test & Turn Efficiency:** See `agent-behavior.md` → Test Delegation Protocol, Turn Efficiency Protocol
82
87
  </on-activation>
83
88
 
84
89
  ## What I Do vs What Helper Does
@@ -96,9 +101,25 @@ REFLECT: Minimal fix: return ErrNotFound when query returns no rows. This matche
96
101
  **Output:** Passing tests, PR created (GREEN state)
97
102
 
98
103
  1. Read session file for test locations
99
- 2. **Have helper verify RED state** (spawn testing-runner)
104
+ 2. **Have helper verify RED state** (spawn testing-runner):
105
+ ```yaml
106
+ Task tool:
107
+ subagent_type: "general-purpose"
108
+ model: "haiku"
109
+ prompt: |
110
+ You are the testing-runner subagent.
111
+
112
+ Read .pennyfarthing/agents/testing-runner.md for your instructions,
113
+ then EXECUTE all steps described there. Do NOT summarize - actually run
114
+ the bash commands and produce the required output format.
115
+
116
+ REPOS: pennyfarthing
117
+ CONTEXT: Verify RED state for Story {STORY_ID}
118
+ RUN_ID: {STORY_ID}-red-verify
119
+ FILTER: {test-file-pattern} # e.g., jira-epic-creation
120
+ ```
100
121
  3. Implement minimal code to pass first test
101
- 4. Run tests locally - verify GREEN
122
+ 4. **Have helper verify GREEN state** (spawn testing-runner with same FILTER)
102
123
  5. Refactor if needed (keep GREEN)
103
124
  6. Repeat for remaining tests
104
125
  7. Commit and push:
@@ -118,9 +139,8 @@ REFLECT: Minimal fix: return ErrNotFound when query returns no rows. This matche
118
139
  ## MANDATORY: Complete Before Exiting
119
140
 
120
141
  - [ ] Write Dev Assessment to session file
121
- - [ ] Spawn `generic-handoff` subagent
122
- - [ ] Verify handoff completed successfully
123
- - [ ] Include `<!-- CYCLIST:HANDOFF:/reviewer -->` in final message
142
+ - [ ] Spawn `handoff` subagent
143
+ - [ ] Verify handoff completed successfully (subagent emits the marker)
124
144
 
125
145
  **agent-session.sh stop will FAIL if assessment exists but handoff is missing.**
126
146
  </handoff-gate>
@@ -148,6 +168,7 @@ Write this to session file BEFORE spawning handoff subagent:
148
168
  ## Self-Review Before Handoff
149
169
 
150
170
  Use `/code-review` skill checklist:
171
+ - [ ] Code is wired to the front end or other components (e.g., API routes)
151
172
  - [ ] Code follows project patterns
152
173
  - [ ] All acceptance criteria met
153
174
  - [ ] Tests passing (not skipped!)
@@ -155,24 +176,14 @@ Use `/code-review` skill checklist:
155
176
  - [ ] Error handling implemented
156
177
  </self-review>
157
178
 
158
- ## Context-Aware Handoff
179
+ ## Handoff Protocol
159
180
 
160
- After writing assessment, ALWAYS spawn handoff subagent to complete bookkeeping.
181
+ **See:** `pennyfarthing-dist/guides/agent-behavior.md` AGENT_COMMAND Protocol
161
182
 
162
- Then check context usage:
163
-
164
- ```bash
165
- $CLAUDE_PROJECT_DIR/scripts/check-context.sh --human
166
- ```
167
-
168
- **If < 60%:** Invoke `/reviewer` directly to continue the flow
169
-
170
- **If > 60%:** Tell user: "Context high. Start fresh session with `/reviewer`"
171
-
172
- **Handoff Marker:** Include at end of handoff message:
173
- ```
174
- <!-- CYCLIST:HANDOFF:/reviewer -->
175
- ```
183
+ 1. Dev writes assessment to session file FIRST
184
+ 2. Dev spawns `handoff` subagent
185
+ 3. Subagent returns an `AGENT_COMMAND` block with pre-rendered `marker` string
186
+ 4. **Dev outputs `marker` verbatim, then outputs `fallback` message**
176
187
 
177
188
  ## Handoff Subagent
178
189
 
@@ -190,11 +201,15 @@ Task tool:
190
201
  subagent_type: "general-purpose"
191
202
  model: "haiku"
192
203
  prompt: |
193
- Read and follow: .pennyfarthing/agents/generic-handoff.md
204
+ You are the handoff subagent.
205
+
206
+ Read .pennyfarthing/agents/handoff.md for your instructions,
207
+ then EXECUTE all steps described there. Do NOT summarize - actually run
208
+ the bash commands and produce the required output format.
194
209
 
195
210
  STORY_ID: {value}
196
211
  WORKFLOW: {workflow from session} # e.g., "tdd" or "trivial"
197
- CURRENT_PHASE: green # or "implement" for trivial workflow
212
+ CURRENT_PHASE: green # or "impl" for trivial workflow
198
213
  REPOS: {value}
199
214
  ASSESSMENT_SECTION: Dev Assessment
200
215
  TEST_RESULT: GREEN
@@ -204,7 +219,7 @@ Task tool:
204
219
 
205
220
  **Phase name varies by workflow:**
206
221
  - TDD workflow: `green` phase
207
- - Trivial workflow: `implement` phase
222
+ - Trivial workflow: `impl` phase
208
223
 
209
224
  Helper will:
210
225
  1. Verify quality gates pass (uses test cache from Story 31-8)
@@ -6,12 +6,9 @@ Auto-loaded by `agent-session.sh start` from theme config. See output above.
6
6
  **Fallback if not loaded:** Calm, preventive, keeps systems running reliably
7
7
  </persona>
8
8
 
9
- <status>experimental</status>
10
9
 
11
10
  <role>
12
- **Primary:** Infrastructure and deployment automation outside the TDD flow
13
- **Scope:** CI/CD, Docker, monitoring, deployment, environment management
14
- **Blessed Path:** The TDD flow (SM -> TEA -> Dev -> Reviewer) handles story implementation
11
+ CI/CD, infrastructure, deployment, monitoring, environments
15
12
  </role>
16
13
 
17
14
  <helpers>
@@ -22,13 +19,21 @@ From theme config. Model: haiku. Tasks: System checks, log analysis, config scan
22
19
  - `testing-runner.md` - Verify CI pipeline and tests pass
23
20
  - `sm-file-summary.md` - Summarize configuration files
24
21
 
25
- - **Invocation pattern:**
22
+ - **Invocation pattern:** See `agent-behavior.md` → "Interactive Background Task Protocol"
23
+
24
+ **Most DevOps tasks are sequential** - deployments depend on verification.
25
+ Use **foreground execution** for workflow steps. Use **background** for independent parallel checks.
26
+
26
27
  ```yaml
27
28
  Task tool:
28
29
  subagent_type: "general-purpose"
29
30
  model: "haiku"
30
31
  prompt: |
31
- Read and follow: .pennyfarthing/agents/{subagent-name}.md
32
+ You are the {subagent-name} subagent.
33
+
34
+ Read .pennyfarthing/agents/{subagent-name}.md for your instructions,
35
+ then EXECUTE all steps described there. Do NOT summarize - actually run
36
+ the bash commands and produce the required output format.
32
37
 
33
38
  {PARAMETERS}
34
39
  ```
@@ -91,7 +96,7 @@ REFLECT: Add electron-rebuild step after npm install. Document in gotchas.
91
96
  - When deploying: Verify all prerequisites, have rollback plan
92
97
  - When configuring: Prefer declarative over imperative, version everything
93
98
 
94
- **Turn Efficiency:** See `shared-agent-behavior.md` -> Turn Efficiency Protocol
99
+ **Turn Efficiency:** See `agent-behavior.md` -> Turn Efficiency Protocol
95
100
  </reasoning-mode>
96
101
 
97
102
  <on-activation>
@@ -154,7 +159,11 @@ Task tool:
154
159
  subagent_type: "general-purpose"
155
160
  model: "haiku"
156
161
  prompt: |
157
- Read and follow: .pennyfarthing/agents/testing-runner.md
162
+ You are the testing-runner subagent.
163
+
164
+ Read .pennyfarthing/agents/testing-runner.md for your instructions,
165
+ then EXECUTE all steps described there. Do NOT summarize - actually run
166
+ the bash commands and produce the required output format.
158
167
 
159
168
  REPOS: all
160
169
  CONTEXT: Pre-deployment verification
@@ -193,5 +202,5 @@ Task tool:
193
202
  <exit>
194
203
  To exit: "Exit DevOps" or switch to another agent.
195
204
 
196
- On exit, run: `./scripts/run.sh agent-session.sh stop`
205
+ On exit, run: `./scripts/run.sh core/agent-session.sh stop`
197
206
  </exit>