@pennyfarthing/core 7.9.3 → 7.9.5

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 (538) hide show
  1. package/package.json +1 -1
  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 +180 -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 +284 -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 +7 -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 +178 -0
  27. package/pennyfarthing-dist/commands/close-epic.md +139 -0
  28. package/pennyfarthing-dist/commands/continue-session.md +184 -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 +7 -0
  32. package/pennyfarthing-dist/commands/devops.md +7 -0
  33. package/pennyfarthing-dist/commands/git-cleanup.md +51 -0
  34. package/pennyfarthing-dist/commands/health-check.md +141 -0
  35. package/pennyfarthing-dist/commands/help.md +264 -0
  36. package/pennyfarthing-dist/commands/job-fair.md +102 -0
  37. package/pennyfarthing-dist/commands/list-themes.md +21 -0
  38. package/pennyfarthing-dist/commands/orchestrator.md +7 -0
  39. package/pennyfarthing-dist/commands/parallel-work.md +71 -0
  40. package/pennyfarthing-dist/commands/party-mode.md +77 -0
  41. package/pennyfarthing-dist/commands/permissions.md +193 -0
  42. package/pennyfarthing-dist/commands/pm.md +7 -0
  43. package/pennyfarthing-dist/commands/prime.md +140 -0
  44. package/pennyfarthing-dist/commands/release.md +58 -0
  45. package/pennyfarthing-dist/commands/repo-status.md +49 -0
  46. package/pennyfarthing-dist/commands/retro.md +200 -0
  47. package/pennyfarthing-dist/commands/reviewer.md +7 -0
  48. package/pennyfarthing-dist/commands/run-ci.md +116 -0
  49. package/pennyfarthing-dist/commands/set-theme.md +56 -0
  50. package/pennyfarthing-dist/commands/show-theme.md +21 -0
  51. package/pennyfarthing-dist/commands/sm.md +7 -0
  52. package/pennyfarthing-dist/commands/solo.md +447 -0
  53. package/pennyfarthing-dist/commands/sprint-planning.md +109 -0
  54. package/pennyfarthing-dist/commands/sprint.md +133 -0
  55. package/pennyfarthing-dist/commands/standalone.md +194 -0
  56. package/pennyfarthing-dist/commands/start-epic.md +168 -0
  57. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +184 -0
  58. package/pennyfarthing-dist/commands/sync-work-with-sprint.md +373 -0
  59. package/pennyfarthing-dist/commands/tea.md +7 -0
  60. package/pennyfarthing-dist/commands/tech-writer.md +7 -0
  61. package/pennyfarthing-dist/commands/theme-maker.md +676 -0
  62. package/pennyfarthing-dist/commands/update-domain-docs.md +83 -0
  63. package/pennyfarthing-dist/commands/ux-designer.md +7 -0
  64. package/pennyfarthing-dist/commands/work.md +23 -0
  65. package/pennyfarthing-dist/commands/workflow.md +21 -0
  66. package/pennyfarthing-dist/guides/agent-behavior.md +311 -0
  67. package/pennyfarthing-dist/guides/agent-coordination.md +480 -0
  68. package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +432 -0
  69. package/pennyfarthing-dist/guides/agent-template-strategic.md +148 -0
  70. package/pennyfarthing-dist/guides/agent-template-tactical.md +162 -0
  71. package/pennyfarthing-dist/guides/hooks.md +230 -0
  72. package/pennyfarthing-dist/guides/measurement-framework.md +210 -0
  73. package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +766 -0
  74. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +574 -0
  75. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +488 -0
  76. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +402 -0
  77. package/pennyfarthing-dist/guides/permission-protocol.md +188 -0
  78. package/pennyfarthing-dist/guides/persona-loading.md +46 -0
  79. package/pennyfarthing-dist/guides/prompt-patterns.md +338 -0
  80. package/pennyfarthing-dist/guides/scale-levels.md +114 -0
  81. package/pennyfarthing-dist/guides/session-artifacts.md +193 -0
  82. package/pennyfarthing-dist/guides/workflow-schema.md +257 -0
  83. package/pennyfarthing-dist/guides/worktree-mode.md +113 -0
  84. package/pennyfarthing-dist/guides/xml-tags.md +335 -0
  85. package/pennyfarthing-dist/output-styles/teaching.md +33 -0
  86. package/pennyfarthing-dist/output-styles/terse.md +20 -0
  87. package/pennyfarthing-dist/output-styles/verbose.md +28 -0
  88. package/pennyfarthing-dist/personas/BENCHMARK-METHODOLOGY.md +105 -0
  89. package/pennyfarthing-dist/personas/OCEAN-BENCHMARKING.md +210 -0
  90. package/pennyfarthing-dist/personas/TRAIL-OCEAN-MAPPING.md +168 -0
  91. package/pennyfarthing-dist/personas/ZEITGEIST-ANALYSIS.md +171 -0
  92. package/pennyfarthing-dist/personas/attributes.yaml +69 -0
  93. package/pennyfarthing-dist/personas/scripts/add-zeitgeist-calibrated.py +81 -0
  94. package/pennyfarthing-dist/personas/scripts/add-zeitgeist-scores.sh +56 -0
  95. package/pennyfarthing-dist/personas/themes/1984.yaml +304 -0
  96. package/pennyfarthing-dist/personas/themes/a-team.yaml +331 -0
  97. package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +294 -0
  98. package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +324 -0
  99. package/pennyfarthing-dist/personas/themes/all-stars.yaml +326 -0
  100. package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +312 -0
  101. package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +298 -0
  102. package/pennyfarthing-dist/personas/themes/arcane.yaml +282 -0
  103. package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +327 -0
  104. package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +282 -0
  105. package/pennyfarthing-dist/personas/themes/babylon-5.yaml +282 -0
  106. package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +282 -0
  107. package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +282 -0
  108. package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +294 -0
  109. package/pennyfarthing-dist/personas/themes/black-sails.yaml +294 -0
  110. package/pennyfarthing-dist/personas/themes/blade-runner.yaml +289 -0
  111. package/pennyfarthing-dist/personas/themes/bobiverse.yaml +282 -0
  112. package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +319 -0
  113. package/pennyfarthing-dist/personas/themes/catch-22.yaml +304 -0
  114. package/pennyfarthing-dist/personas/themes/classical-composers.yaml +302 -0
  115. package/pennyfarthing-dist/personas/themes/control.yaml +201 -0
  116. package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +312 -0
  117. package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +315 -0
  118. package/pennyfarthing-dist/personas/themes/deadwood.yaml +294 -0
  119. package/pennyfarthing-dist/personas/themes/dickens.yaml +312 -0
  120. package/pennyfarthing-dist/personas/themes/discworld.yaml +334 -0
  121. package/pennyfarthing-dist/personas/themes/doctor-who.yaml +284 -0
  122. package/pennyfarthing-dist/personas/themes/don-quixote.yaml +312 -0
  123. package/pennyfarthing-dist/personas/themes/dune.yaml +301 -0
  124. package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +312 -0
  125. package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +282 -0
  126. package/pennyfarthing-dist/personas/themes/fargo.yaml +322 -0
  127. package/pennyfarthing-dist/personas/themes/film-auteurs.yaml +304 -0
  128. package/pennyfarthing-dist/personas/themes/firefly.yaml +320 -0
  129. package/pennyfarthing-dist/personas/themes/foundation.yaml +284 -0
  130. package/pennyfarthing-dist/personas/themes/futurama.yaml +313 -0
  131. package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +284 -0
  132. package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +365 -0
  133. package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +300 -0
  134. package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +300 -0
  135. package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +326 -0
  136. package/pennyfarthing-dist/personas/themes/hannibal.yaml +294 -0
  137. package/pennyfarthing-dist/personas/themes/harry-potter.yaml +316 -0
  138. package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +285 -0
  139. package/pennyfarthing-dist/personas/themes/historical-figures.yaml +282 -0
  140. package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +323 -0
  141. package/pennyfarthing-dist/personas/themes/house-md.yaml +313 -0
  142. package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +283 -0
  143. package/pennyfarthing-dist/personas/themes/inspector-morse.yaml +294 -0
  144. package/pennyfarthing-dist/personas/themes/jane-austen.yaml +281 -0
  145. package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +312 -0
  146. package/pennyfarthing-dist/personas/themes/justified.yaml +294 -0
  147. package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +343 -0
  148. package/pennyfarthing-dist/personas/themes/les-miserables.yaml +293 -0
  149. package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +326 -0
  150. package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +325 -0
  151. package/pennyfarthing-dist/personas/themes/mad-max.yaml +349 -0
  152. package/pennyfarthing-dist/personas/themes/mad-men.yaml +283 -0
  153. package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +294 -0
  154. package/pennyfarthing-dist/personas/themes/mash.yaml +329 -0
  155. package/pennyfarthing-dist/personas/themes/mass-effect.yaml +283 -0
  156. package/pennyfarthing-dist/personas/themes/military-commanders.yaml +298 -0
  157. package/pennyfarthing-dist/personas/themes/moby-dick.yaml +312 -0
  158. package/pennyfarthing-dist/personas/themes/monty-python.yaml +297 -0
  159. package/pennyfarthing-dist/personas/themes/neuromancer.yaml +294 -0
  160. package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +321 -0
  161. package/pennyfarthing-dist/personas/themes/parks-and-rec.yaml +364 -0
  162. package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +292 -0
  163. package/pennyfarthing-dist/personas/themes/princess-bride.yaml +344 -0
  164. package/pennyfarthing-dist/personas/themes/renaissance-masters.yaml +312 -0
  165. package/pennyfarthing-dist/personas/themes/rome.yaml +294 -0
  166. package/pennyfarthing-dist/personas/themes/russian-masters.yaml +310 -0
  167. package/pennyfarthing-dist/personas/themes/sandman.yaml +282 -0
  168. package/pennyfarthing-dist/personas/themes/scientific-revolutionaries.yaml +312 -0
  169. package/pennyfarthing-dist/personas/themes/shakespeare.yaml +295 -0
  170. package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +283 -0
  171. package/pennyfarthing-dist/personas/themes/snow-crash.yaml +290 -0
  172. package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +294 -0
  173. package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +358 -0
  174. package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +327 -0
  175. package/pennyfarthing-dist/personas/themes/star-wars.yaml +297 -0
  176. package/pennyfarthing-dist/personas/themes/succession.yaml +294 -0
  177. package/pennyfarthing-dist/personas/themes/superfriends.yaml +332 -0
  178. package/pennyfarthing-dist/personas/themes/ted-lasso.yaml +359 -0
  179. package/pennyfarthing-dist/personas/themes/the-americans.yaml +294 -0
  180. package/pennyfarthing-dist/personas/themes/the-crown.yaml +294 -0
  181. package/pennyfarthing-dist/personas/themes/the-expanse.yaml +337 -0
  182. package/pennyfarthing-dist/personas/themes/the-good-place.yaml +315 -0
  183. package/pennyfarthing-dist/personas/themes/the-matrix.yaml +342 -0
  184. package/pennyfarthing-dist/personas/themes/the-odyssey.yaml +294 -0
  185. package/pennyfarthing-dist/personas/themes/the-office.yaml +323 -0
  186. package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +300 -0
  187. package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +294 -0
  188. package/pennyfarthing-dist/personas/themes/the-wire.yaml +303 -0
  189. package/pennyfarthing-dist/personas/themes/the-witcher.yaml +294 -0
  190. package/pennyfarthing-dist/personas/themes/twin-peaks.yaml +296 -0
  191. package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +294 -0
  192. package/pennyfarthing-dist/personas/themes/watchmen.yaml +285 -0
  193. package/pennyfarthing-dist/personas/themes/west-wing.yaml +285 -0
  194. package/pennyfarthing-dist/personas/themes/world-explorers.yaml +312 -0
  195. package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +299 -0
  196. package/pennyfarthing-dist/personas/themes/x-files.yaml +296 -0
  197. package/pennyfarthing-dist/personas/zeitgeist-scores.yaml +1172 -0
  198. package/pennyfarthing-dist/scripts/README.md +87 -0
  199. package/pennyfarthing-dist/scripts/core/README.md +26 -0
  200. package/pennyfarthing-dist/scripts/core/agent-session.sh +383 -0
  201. package/pennyfarthing-dist/scripts/core/check-context.sh +280 -0
  202. package/pennyfarthing-dist/scripts/core/handoff-marker.sh +101 -0
  203. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +95 -0
  204. package/pennyfarthing-dist/scripts/core/prime.sh +30 -0
  205. package/pennyfarthing-dist/scripts/core/run.sh +92 -0
  206. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +21 -0
  207. package/pennyfarthing-dist/scripts/git/README.md +25 -0
  208. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +267 -0
  209. package/pennyfarthing-dist/scripts/git/git-status-all.sh +152 -0
  210. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +91 -0
  211. package/pennyfarthing-dist/scripts/git/release.sh +215 -0
  212. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +494 -0
  213. package/pennyfarthing-dist/scripts/health/drift-detection.sh +162 -0
  214. package/pennyfarthing-dist/scripts/hooks/README.md +32 -0
  215. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +106 -0
  216. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +60 -0
  217. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +65 -0
  218. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +35 -0
  219. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +166 -0
  220. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +107 -0
  221. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +71 -0
  222. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +54 -0
  223. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +20 -0
  224. package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +499 -0
  225. package/pennyfarthing-dist/scripts/hooks/session-start.sh +97 -0
  226. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +65 -0
  227. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +94 -0
  228. package/pennyfarthing-dist/scripts/jira/README.md +36 -0
  229. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +101 -0
  230. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +97 -0
  231. package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +22 -0
  232. package/pennyfarthing-dist/scripts/jira/jira-lib.sh +464 -0
  233. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +266 -0
  234. package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +18 -0
  235. package/pennyfarthing-dist/scripts/jira/jira-sync.sh +16 -0
  236. package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +16 -0
  237. package/pennyfarthing-dist/scripts/jira/sync-epic-to-jira.sh +16 -0
  238. package/pennyfarthing-dist/scripts/lib/README.md +29 -0
  239. package/pennyfarthing-dist/scripts/lib/background-tasks.sh +177 -0
  240. package/pennyfarthing-dist/scripts/lib/checkpoint.sh +136 -0
  241. package/pennyfarthing-dist/scripts/lib/common.sh +212 -0
  242. package/pennyfarthing-dist/scripts/lib/file-lock.sh +269 -0
  243. package/pennyfarthing-dist/scripts/lib/find-root.sh +35 -0
  244. package/pennyfarthing-dist/scripts/lib/logging.sh +186 -0
  245. package/pennyfarthing-dist/scripts/lib/retry.sh +76 -0
  246. package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +102 -0
  247. package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +97 -0
  248. package/pennyfarthing-dist/scripts/misc/README.md +44 -0
  249. package/pennyfarthing-dist/scripts/misc/add-short-names.sh +13 -0
  250. package/pennyfarthing-dist/scripts/misc/add_short_names.py +226 -0
  251. package/pennyfarthing-dist/scripts/misc/backlog.sh +91 -0
  252. package/pennyfarthing-dist/scripts/misc/check-status.sh +247 -0
  253. package/pennyfarthing-dist/scripts/misc/find-related-work.sh +231 -0
  254. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +122 -0
  255. package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +74 -0
  256. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +10 -0
  257. package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +319 -0
  258. package/pennyfarthing-dist/scripts/misc/repo-scan.sh +141 -0
  259. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +778 -0
  260. package/pennyfarthing-dist/scripts/misc/run-ci.sh +219 -0
  261. package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +7 -0
  262. package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +319 -0
  263. package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +193 -0
  264. package/pennyfarthing-dist/scripts/misc/statusline.sh +259 -0
  265. package/pennyfarthing-dist/scripts/misc/uninstall.sh +270 -0
  266. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +160 -0
  267. package/pennyfarthing-dist/scripts/portraits/generate-portraits.py +400 -0
  268. package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +54 -0
  269. package/pennyfarthing-dist/scripts/sprint/README.md +29 -0
  270. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +139 -0
  271. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +97 -0
  272. package/pennyfarthing-dist/scripts/sprint/check-story.sh +164 -0
  273. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +58 -0
  274. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +69 -0
  275. package/pennyfarthing-dist/scripts/sprint/import-epic-to-future.sh +10 -0
  276. package/pennyfarthing-dist/scripts/sprint/import_epic_to_future.py +270 -0
  277. package/pennyfarthing-dist/scripts/sprint/list-future.sh +151 -0
  278. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +116 -0
  279. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +154 -0
  280. package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +421 -0
  281. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +39 -0
  282. package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +241 -0
  283. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +134 -0
  284. package/pennyfarthing-dist/scripts/story/README.md +23 -0
  285. package/pennyfarthing-dist/scripts/story/create-story.sh +19 -0
  286. package/pennyfarthing-dist/scripts/story/size-story.sh +18 -0
  287. package/pennyfarthing-dist/scripts/story/story-template.sh +18 -0
  288. package/pennyfarthing-dist/scripts/test/README.md +23 -0
  289. package/pennyfarthing-dist/scripts/test/ensure-swebench-data.sh +59 -0
  290. package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +220 -0
  291. package/pennyfarthing-dist/scripts/test/swebench-judge.py +374 -0
  292. package/pennyfarthing-dist/scripts/test/test-cache.sh +165 -0
  293. package/pennyfarthing-dist/scripts/test/test-setup.sh +337 -0
  294. package/pennyfarthing-dist/scripts/tests/check.test.sh +582 -0
  295. package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +515 -0
  296. package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +599 -0
  297. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +332 -0
  298. package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +573 -0
  299. package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +859 -0
  300. package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +662 -0
  301. package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +589 -0
  302. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +105 -0
  303. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +597 -0
  304. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +514 -0
  305. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +517 -0
  306. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +331 -0
  307. package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +647 -0
  308. package/pennyfarthing-dist/scripts/theme/README.md +22 -0
  309. package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +13 -0
  310. package/pennyfarthing-dist/scripts/theme/compute_theme_tiers.py +402 -0
  311. package/pennyfarthing-dist/scripts/theme/list-themes.sh +73 -0
  312. package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +97 -0
  313. package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +576 -0
  314. package/pennyfarthing-dist/scripts/workflow/README.md +28 -0
  315. package/pennyfarthing-dist/scripts/workflow/check.py +502 -0
  316. package/pennyfarthing-dist/scripts/workflow/check.sh +24 -0
  317. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +159 -0
  318. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +228 -0
  319. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +61 -0
  320. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +13 -0
  321. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +130 -0
  322. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +40 -0
  323. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +163 -0
  324. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +138 -0
  325. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +256 -0
  326. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +167 -0
  327. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +242 -0
  328. package/pennyfarthing-dist/skills/changelog/SKILL.md +367 -0
  329. package/pennyfarthing-dist/skills/code-review/SKILL.md +168 -0
  330. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +274 -0
  331. package/pennyfarthing-dist/skills/cyclist/SKILL.md +88 -0
  332. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +437 -0
  333. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +258 -0
  334. package/pennyfarthing-dist/skills/jira/SKILL.md +484 -0
  335. package/pennyfarthing-dist/skills/judge/SKILL.md +636 -0
  336. package/pennyfarthing-dist/skills/just/SKILL.md +403 -0
  337. package/pennyfarthing-dist/skills/mermaid/SKILL.md +240 -0
  338. package/pennyfarthing-dist/skills/otel/skill.md +223 -0
  339. package/pennyfarthing-dist/skills/permissions/skill.md +172 -0
  340. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +178 -0
  341. package/pennyfarthing-dist/skills/skill-registry.schema.json +107 -0
  342. package/pennyfarthing-dist/skills/skill-registry.yaml +393 -0
  343. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +101 -0
  344. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +97 -0
  345. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +164 -0
  346. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +101 -0
  347. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +116 -0
  348. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +164 -0
  349. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +39 -0
  350. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +147 -0
  351. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +86 -0
  352. package/pennyfarthing-dist/skills/sprint/skill.md +465 -0
  353. package/pennyfarthing-dist/skills/story/scripts/create-story.sh +159 -0
  354. package/pennyfarthing-dist/skills/story/scripts/size-story.sh +198 -0
  355. package/pennyfarthing-dist/skills/story/scripts/story-template.sh +162 -0
  356. package/pennyfarthing-dist/skills/story/skill.md +219 -0
  357. package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +390 -0
  358. package/pennyfarthing-dist/skills/testing/SKILL.md +99 -0
  359. package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +124 -0
  360. package/pennyfarthing-dist/skills/theme/skill.md +129 -0
  361. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +174 -0
  362. package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +91 -0
  363. package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +163 -0
  364. package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +138 -0
  365. package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +273 -0
  366. package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +167 -0
  367. package/pennyfarthing-dist/skills/workflow/skill.md +337 -0
  368. package/pennyfarthing-dist/skills/yq/SKILL.md +264 -0
  369. package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +187 -0
  370. package/pennyfarthing-dist/templates/LEADERBOARD.template.md +59 -0
  371. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +276 -0
  372. package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +61 -0
  373. package/pennyfarthing-dist/templates/persona-config.yaml.template +22 -0
  374. package/pennyfarthing-dist/templates/preferences.yaml.template +15 -0
  375. package/pennyfarthing-dist/templates/settings.local.json.template +101 -0
  376. package/pennyfarthing-dist/templates/setup-env.sh.template +18 -0
  377. package/pennyfarthing-dist/templates/shared-context.md.template +70 -0
  378. package/pennyfarthing-dist/templates/sidecar/decisions.md.template +40 -0
  379. package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +37 -0
  380. package/pennyfarthing-dist/templates/sidecar/patterns.md.template +34 -0
  381. package/pennyfarthing-dist/workflows/agent-docs.yaml +70 -0
  382. package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +101 -0
  383. package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +93 -0
  384. package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +115 -0
  385. package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +133 -0
  386. package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +138 -0
  387. package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +133 -0
  388. package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +142 -0
  389. package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +160 -0
  390. package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +102 -0
  391. package/pennyfarthing-dist/workflows/architecture.yaml +65 -0
  392. package/pennyfarthing-dist/workflows/bdd.yaml +60 -0
  393. package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +62 -0
  394. package/pennyfarthing-dist/workflows/brainstorming/checklist.md +44 -0
  395. package/pennyfarthing-dist/workflows/brainstorming/instructions.md +736 -0
  396. package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +49 -0
  397. package/pennyfarthing-dist/workflows/code-review/checklist.md +23 -0
  398. package/pennyfarthing-dist/workflows/code-review/instructions.md +234 -0
  399. package/pennyfarthing-dist/workflows/code-review/workflow.yaml +51 -0
  400. package/pennyfarthing-dist/workflows/dev-story/checklist.md +80 -0
  401. package/pennyfarthing-dist/workflows/dev-story/instructions.xml +410 -0
  402. package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +50 -0
  403. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +256 -0
  404. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +233 -0
  405. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +272 -0
  406. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +153 -0
  407. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +122 -0
  408. package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +57 -0
  409. package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +28 -0
  410. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +101 -0
  411. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-02-categorize.md +116 -0
  412. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-03-execute.md +224 -0
  413. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +88 -0
  414. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +79 -0
  415. package/pennyfarthing-dist/workflows/git-cleanup.yaml +59 -0
  416. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +190 -0
  417. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +178 -0
  418. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
  419. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +139 -0
  420. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
  421. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +133 -0
  422. package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +4 -0
  423. package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +40 -0
  424. package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +13 -0
  425. package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +197 -0
  426. package/pennyfarthing-dist/workflows/prd/data/project-types.csv +11 -0
  427. package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +191 -0
  428. package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +153 -0
  429. package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +224 -0
  430. package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +226 -0
  431. package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +213 -0
  432. package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +207 -0
  433. package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +226 -0
  434. package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +237 -0
  435. package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +228 -0
  436. package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +231 -0
  437. package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +242 -0
  438. package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +217 -0
  439. package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +180 -0
  440. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +247 -0
  441. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  442. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +249 -0
  443. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +253 -0
  444. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +168 -0
  445. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +218 -0
  446. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
  447. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
  448. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
  449. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  450. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
  451. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
  452. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  453. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  454. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
  455. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
  456. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  457. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
  458. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +232 -0
  459. package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +10 -0
  460. package/pennyfarthing-dist/workflows/prd/workflow.yaml +42 -0
  461. package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +177 -0
  462. package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +161 -0
  463. package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +199 -0
  464. package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +202 -0
  465. package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +205 -0
  466. package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +219 -0
  467. package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +194 -0
  468. package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +10 -0
  469. package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +31 -0
  470. package/pennyfarthing-dist/workflows/project-context/project-context-template.md +21 -0
  471. package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +184 -0
  472. package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +318 -0
  473. package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +278 -0
  474. package/pennyfarthing-dist/workflows/project-context/workflow.yaml +27 -0
  475. package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +156 -0
  476. package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +120 -0
  477. package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +113 -0
  478. package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +113 -0
  479. package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +106 -0
  480. package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +140 -0
  481. package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +27 -0
  482. package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +189 -0
  483. package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +144 -0
  484. package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +128 -0
  485. package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +191 -0
  486. package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +74 -0
  487. package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +27 -0
  488. package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +137 -0
  489. package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +229 -0
  490. package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +238 -0
  491. package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +206 -0
  492. package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +234 -0
  493. package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +443 -0
  494. package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +182 -0
  495. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +237 -0
  496. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +200 -0
  497. package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +249 -0
  498. package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +259 -0
  499. package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +177 -0
  500. package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +475 -0
  501. package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +137 -0
  502. package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +239 -0
  503. package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +248 -0
  504. package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +202 -0
  505. package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +239 -0
  506. package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +486 -0
  507. package/pennyfarthing-dist/workflows/research/templates/research.template.md +29 -0
  508. package/pennyfarthing-dist/workflows/research/workflow.yaml +45 -0
  509. package/pennyfarthing-dist/workflows/retrospective/checklist.md +31 -0
  510. package/pennyfarthing-dist/workflows/retrospective/instructions.md +1443 -0
  511. package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +50 -0
  512. package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +33 -0
  513. package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +55 -0
  514. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +54 -0
  515. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +44 -0
  516. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +64 -0
  517. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +73 -0
  518. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +56 -0
  519. package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +34 -0
  520. package/pennyfarthing-dist/workflows/tdd.yaml +50 -0
  521. package/pennyfarthing-dist/workflows/trivial.yaml +40 -0
  522. package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +135 -0
  523. package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +127 -0
  524. package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +190 -0
  525. package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +216 -0
  526. package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +219 -0
  527. package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +234 -0
  528. package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +252 -0
  529. package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +254 -0
  530. package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +224 -0
  531. package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +224 -0
  532. package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +241 -0
  533. package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +248 -0
  534. package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +237 -0
  535. package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +264 -0
  536. package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +228 -0
  537. package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +13 -0
  538. package/pennyfarthing-dist/workflows/ux-design/workflow.yaml +41 -0
@@ -0,0 +1,156 @@
1
+ ---
2
+ description: Run quality gates (lint, type check, tests) before handoff
3
+ ---
4
+
5
+ <purpose>
6
+ Run all quality gates before handing off to Reviewer. Ensures code meets quality standards.
7
+ </purpose>
8
+
9
+ <when-to-use>
10
+ - Before creating a PR
11
+ - Before handoff to Reviewer
12
+ - After implementing a feature
13
+ - To verify codebase health
14
+ </when-to-use>
15
+
16
+ <execution>
17
+
18
+ ## Running Quality Checks
19
+
20
+ Use the check.sh script:
21
+
22
+ ```bash
23
+ # Run all checks (lint, typecheck, tests)
24
+ $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh
25
+
26
+ # Run checks in a specific repo subdirectory
27
+ $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --repo api
28
+ $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --repo ui
29
+
30
+ # Run only tests (skip lint and typecheck)
31
+ $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --tests-only
32
+
33
+ # Run tests with a filter pattern
34
+ $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --filter "TestUserLogin"
35
+
36
+ # Run filtered tests in a specific repo
37
+ $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --repo api --filter "TestUserLogin"
38
+
39
+ # Run only filtered tests (no lint/typecheck)
40
+ $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --tests-only --filter "TestUserLogin"
41
+
42
+ # Skip individual checks
43
+ $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --no-lint
44
+ $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --no-typecheck
45
+
46
+ # Skip all checks (emergencies only)
47
+ $CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --skip-check
48
+ ```
49
+
50
+ ## Options
51
+
52
+ | Option | Description |
53
+ |--------|-------------|
54
+ | `--skip-check` | Skip all checks (emergency bypass) |
55
+ | `--tests-only` | Run only tests, skip lint and typecheck |
56
+ | `--filter PATTERN` | Filter tests by pattern |
57
+ | `--repo REPO` | Run checks in a specific repo subdirectory |
58
+ | `--no-lint` | Skip lint check |
59
+ | `--no-typecheck` | Skip type check |
60
+
61
+ ## What Gets Checked
62
+
63
+ The script automatically detects project type and runs appropriate checks:
64
+
65
+ ### For Node/TypeScript Projects:
66
+ | Check | Command | Condition |
67
+ |-------|---------|-----------|
68
+ | Lint | `just lint` or `npm run lint` | If configured |
69
+ | Type Check | `just typecheck` or `tsc --noEmit` | If tsconfig.json exists |
70
+ | Tests | `just test` or `npm test` | If configured |
71
+
72
+ ### For Go Projects:
73
+ | Check | Command | Condition |
74
+ |-------|---------|-----------|
75
+ | Lint | `just lint` or `golangci-lint run` | If available |
76
+ | Tests | `just test` or `go test ./...` | Always |
77
+
78
+ ### Justfile Preference
79
+ If both justfile and npm scripts exist, justfile recipes take priority.
80
+
81
+ </execution>
82
+
83
+ <output-format>
84
+
85
+ ```
86
+ Quality Gate Check
87
+ ==================
88
+ Project: /path/to/project
89
+
90
+ Lint
91
+ ========================================
92
+ [PASS] Lint (npm run lint)
93
+
94
+ Type Check
95
+ ========================================
96
+ [PASS] Type Check (tsc --noEmit)
97
+
98
+ Tests
99
+ ========================================
100
+ [PASS] Tests (npm test)
101
+
102
+ Summary
103
+ ========================================
104
+
105
+ Checks run: 3
106
+ Checks passed: 3
107
+ Checks failed: 0
108
+
109
+ PASSED - All checks passed
110
+ ```
111
+
112
+ Exit codes:
113
+ - `0` - All checks passed (or --skip-check used)
114
+ - `1` - One or more checks failed
115
+
116
+ </output-format>
117
+
118
+ <skip-check>
119
+
120
+ ## Emergency Skip
121
+
122
+ Use `--skip-check` only in emergencies:
123
+
124
+ ```bash
125
+ ./scripts/check.sh --skip-check
126
+ ```
127
+
128
+ This will:
129
+ - Skip all quality checks
130
+ - Show a warning message
131
+ - Return exit code 0
132
+
133
+ **Use sparingly.** Skipped checks should pass before PR merge.
134
+
135
+ </skip-check>
136
+
137
+ <integration>
138
+
139
+ ## dev-handoff Integration
140
+
141
+ The dev-handoff subagent runs `/check` automatically before handoff to Reviewer:
142
+
143
+ 1. Dev completes implementation
144
+ 2. dev-handoff runs `check.sh`
145
+ 3. If checks fail: handoff is blocked
146
+ 4. If checks pass: proceed to Reviewer
147
+
148
+ To bypass (emergencies): pass `--skip-check` to dev-handoff.
149
+
150
+ </integration>
151
+
152
+ <reference>
153
+ - **Script:** `pennyfarthing-dist/scripts/check.sh`
154
+ - **Called by:** dev-handoff subagent
155
+ - **Blocks:** Handoff to Reviewer on failure
156
+ </reference>
@@ -0,0 +1,178 @@
1
+ ---
2
+ description: Quick commit for small changes without full git-cleanup ceremony
3
+ ---
4
+
5
+ # Quick Chore Commit
6
+
7
+ Quickly commit dirty changes without the full `/git-cleanup` ceremony. Creates a branch, commits, merges to develop, and pushes in one command.
8
+
9
+ <purpose>
10
+ Fast path for committing small changes that don't warrant story tracking.
11
+ </purpose>
12
+
13
+ <usage>
14
+ ```bash
15
+ # Default: chore commit (auto-generate message)
16
+ /chore
17
+
18
+ # Chore with custom message
19
+ /chore "update sprint tracking"
20
+
21
+ # Variants for different commit types
22
+ /chore doc # docs: prefix, docs/* branch
23
+ /chore doc "update README" # docs: with custom message
24
+ /chore ux # style: prefix, ux/* branch
25
+ /chore ux "adjust button spacing"
26
+ ```
27
+ </usage>
28
+
29
+ <variants>
30
+ | Command | Branch | Commit Prefix | Use For |
31
+ |---------|--------|---------------|---------|
32
+ | `/chore` | `chore/*` | `chore:` | Maintenance, config, scripts |
33
+ | `/chore doc` | `docs/*` | `docs:` | Documentation, README, guides |
34
+ | `/chore ux` | `ux/*` | `style:` | UI tweaks, CSS, styling |
35
+ </variants>
36
+
37
+ <workflow>
38
+ **CRITICAL: Never commit directly to develop. Branch protection hooks will reject direct commits.**
39
+
40
+ 1. Verify dirty files exist (abort if clean)
41
+ 2. Determine variant (chore/doc/ux) from first arg
42
+ 3. Create branch from develop: `{variant}/{timestamp}`
43
+ 4. Stage all changes
44
+ 5. Generate or use provided commit message
45
+ 6. Commit with conventional format
46
+ 7. Merge to develop locally
47
+ 8. Push develop
48
+ 9. Delete local branch
49
+ </workflow>
50
+
51
+ ## Execution
52
+
53
+ ### Step 1: Pre-Flight
54
+
55
+ ```bash
56
+ # Abort if clean
57
+ if git diff --quiet && git diff --cached --quiet; then
58
+ echo "ERROR: No changes to commit."
59
+ exit 1
60
+ fi
61
+
62
+ echo "=== Changes to Commit ==="
63
+ git status --short
64
+ ```
65
+
66
+ ### Step 2: Parse Arguments
67
+
68
+ ```bash
69
+ # Defaults
70
+ VARIANT="chore"
71
+ PREFIX="chore"
72
+ BRANCH_TYPE="chore"
73
+ MESSAGE=""
74
+
75
+ # Check first arg
76
+ case "$1" in
77
+ doc|docs)
78
+ VARIANT="docs"
79
+ PREFIX="docs"
80
+ BRANCH_TYPE="docs"
81
+ shift
82
+ ;;
83
+ ux|style)
84
+ VARIANT="ux"
85
+ PREFIX="style"
86
+ BRANCH_TYPE="ux"
87
+ shift
88
+ ;;
89
+ esac
90
+
91
+ # Remaining args are the message
92
+ MESSAGE="$*"
93
+ ```
94
+
95
+ ### Step 3: Generate Message (if needed)
96
+
97
+ ```bash
98
+ if [ -z "$MESSAGE" ]; then
99
+ CHANGED_FILES=$(git status --porcelain | awk '{print $2}')
100
+
101
+ case "$VARIANT" in
102
+ docs)
103
+ if echo "$CHANGED_FILES" | grep -qi "readme"; then
104
+ MESSAGE="update README"
105
+ elif echo "$CHANGED_FILES" | grep -qi "changelog"; then
106
+ MESSAGE="update changelog"
107
+ else
108
+ MESSAGE="update documentation"
109
+ fi
110
+ ;;
111
+ ux)
112
+ if echo "$CHANGED_FILES" | grep -qE "\.css|\.scss"; then
113
+ MESSAGE="update styles"
114
+ else
115
+ MESSAGE="update styling"
116
+ fi
117
+ ;;
118
+ chore)
119
+ if echo "$CHANGED_FILES" | grep -q "sprint/"; then
120
+ MESSAGE="update sprint tracking"
121
+ elif echo "$CHANGED_FILES" | grep -q "\.claude/"; then
122
+ MESSAGE="update pennyfarthing config"
123
+ elif echo "$CHANGED_FILES" | grep -q "scripts/"; then
124
+ MESSAGE="update scripts"
125
+ else
126
+ FILE_COUNT=$(echo "$CHANGED_FILES" | wc -l | tr -d ' ')
127
+ MESSAGE="minor updates to ${FILE_COUNT} files"
128
+ fi
129
+ ;;
130
+ esac
131
+ fi
132
+ ```
133
+
134
+ ### Step 4: Branch and Commit
135
+
136
+ ```bash
137
+ # Stash current changes
138
+ git stash push -m "${BRANCH_TYPE}-wip-$(date +%s)"
139
+
140
+ # Update develop and create branch
141
+ git checkout develop && git pull origin develop
142
+ BRANCH="${BRANCH_TYPE}/$(date +%Y%m%d-%H%M%S)"
143
+ git checkout -b "$BRANCH"
144
+
145
+ # Restore changes
146
+ git stash pop
147
+
148
+ # Stage and commit
149
+ git add .
150
+ git commit -m "${PREFIX}: ${MESSAGE}
151
+
152
+ Co-Authored-By: Claude <noreply@anthropic.com>"
153
+
154
+ # Merge and push
155
+ git checkout develop
156
+ git merge "$BRANCH"
157
+ git branch -d "$BRANCH"
158
+ git push origin develop
159
+ ```
160
+
161
+ ## Safety
162
+
163
+ - **NEVER commit directly to develop**
164
+ - **Never force push**
165
+ - **Never commit secrets** (.env, credentials)
166
+ - **Abort if working directory is clean**
167
+
168
+ ## When to Use
169
+
170
+ | Use /chore | Use /git-cleanup |
171
+ |------------|------------------|
172
+ | Single logical change | Multiple unrelated changes |
173
+ | Quick fix or tweak | Need to organize into groups |
174
+ | One type of change | Mixed types requiring separation |
175
+
176
+ <related>
177
+ - `/git-cleanup` - Full ceremony for organizing multiple changes
178
+ </related>
@@ -0,0 +1,139 @@
1
+ ---
2
+ description: Close an epic - verify completion, update status, and archive context
3
+ ---
4
+
5
+ # Close Epic Workflow
6
+
7
+ **This command closes an epic by verifying all stories are done, updating status, and optionally archiving context.**
8
+
9
+ ## What This Does
10
+
11
+ 1. **Verifies** all stories in the epic are status: done
12
+ 2. **Updates** epic status to `done` and completed_points
13
+ 3. **Updates** sprint summary totals
14
+ 4. **Optionally** transitions Jira epic to Done
15
+ 5. **Optionally** archives the epic context file
16
+
17
+ ## Prerequisites
18
+
19
+ - Epic must exist in current sprint
20
+ - All stories should be done (will warn if not)
21
+
22
+ ## Usage
23
+
24
+ Provide the epic ID when invoking this command:
25
+ - `/close-epic 9` - Close epic 9
26
+ - `/close-epic epic-9` - Also accepts epic-N format
27
+
28
+ ## Workflow Steps
29
+
30
+ ### Step 1: Identify Epic
31
+
32
+ If no epic ID provided, ask:
33
+ > "Which epic would you like to close? (e.g., 9 or epic-9)"
34
+
35
+ Parse the epic ID (strip "epic-" prefix if present).
36
+
37
+ ### Step 2: Verify Epic Exists
38
+
39
+ Read `sprint/current-sprint.yaml` and find the epic block:
40
+ - `id: epic-{N}`
41
+
42
+ If not found, error: "Epic not found in current sprint"
43
+
44
+ ### Step 3: Check Story Completion
45
+
46
+ For each story in the epic:
47
+ 1. Check `status` field
48
+ 2. Count done vs not-done
49
+
50
+ **If all done:** Proceed to close
51
+ **If some not done:** Warn user with list of incomplete stories, ask to confirm
52
+
53
+ ### Step 4: Update Epic Status
54
+
55
+ Update the epic in `sprint/current-sprint.yaml`:
56
+ ```yaml
57
+ status: done
58
+ completed_points: {total of all story points}
59
+ ```
60
+
61
+ ### Step 5: Update Sprint Summary
62
+
63
+ Recalculate and update the summary section:
64
+ - `completed_points`: Sum of all done story points across all epics
65
+ - `remaining_points`: total_points - completed_points
66
+ - Update notes to reflect epic completion
67
+
68
+ ### Step 6: Jira Transition (Optional)
69
+
70
+ If epic has `jira_key`, use `/jira move` skill:
71
+ ```bash
72
+ # Check if Jira CLI available
73
+ if command -v jira &> /dev/null; then
74
+ echo "Transition Jira epic to Done? (y/n)"
75
+ # If yes, use /jira move skill:
76
+ # jira issue move $JIRA_KEY "Done" --project MSSCI
77
+ fi
78
+ ```
79
+
80
+ **Note:** Always use `/jira` skill commands - see `.claude/skills/jira/skill.md` for syntax.
81
+
82
+ ### Step 7: Archive Context (Optional)
83
+
84
+ If `.session/context-epic-{N}.md` exists:
85
+ ```bash
86
+ # Ask user
87
+ echo "Archive epic context file? (y/n)"
88
+ # If yes: mv .session/context-epic-{N}.md sprint/archive/
89
+ ```
90
+
91
+ ### Step 8: Confirm Closure
92
+
93
+ ```
94
+ Epic {N} closed successfully
95
+
96
+ Summary:
97
+ - Stories: {count} done
98
+ - Points: {points} completed
99
+ - Jira: {transitioned/skipped/no-key}
100
+ - Context: {archived/kept/not-found}
101
+
102
+ Sprint progress: {completed}/{total} points ({percentage}%)
103
+ ```
104
+
105
+ ## Example
106
+
107
+ ```bash
108
+ # User invokes: /close-epic 9
109
+
110
+ # Output:
111
+ # Checking epic-9...
112
+ # Found: Skill Discovery & Documentation Hub
113
+ # Stories: 5/5 done (13 points)
114
+ #
115
+ # Updating epic status to done...
116
+ # Updating sprint summary (31/45 points)...
117
+ #
118
+ # Jira key found: MSSCI-11512
119
+ # Transition to Done? (y/n): y
120
+ # Transitioning MSSCI-11512 to Done...
121
+ #
122
+ # Context file found: .session/context-epic-9.md
123
+ # Archive to sprint/archive/? (y/n): n
124
+ # Keeping context file in place.
125
+ #
126
+ # Epic 9 closed successfully!
127
+ # Sprint progress: 31/45 points (69%)
128
+ ```
129
+
130
+ ## Notes
131
+
132
+ - This is the counterpart to `/start-epic`
133
+ - Safe to run multiple times (idempotent)
134
+ - Does NOT delete any data, only updates status
135
+ - Context archival is optional and reversible
136
+
137
+ ---
138
+
139
+ **Flow:** TDD cycle complete all stories `/close-epic` update sprint
@@ -0,0 +1,184 @@
1
+ ---
2
+ description: Resume work from a saved checkpoint after context circuit breaker
3
+ ---
4
+
5
+ # Continue Session
6
+
7
+ <purpose>
8
+ Recovery command for resuming work after the context circuit breaker (85% threshold) halts execution. Loads saved checkpoints and resumes the appropriate agent to continue where you left off.
9
+ </purpose>
10
+
11
+ <when-to-use>
12
+ - After context circuit breaker blocks further work
13
+ - After a session timeout or interruption
14
+ - When returning to work saved with `checkpoint_save`
15
+ - To recover from any context overflow situation
16
+ </when-to-use>
17
+
18
+ <usage>
19
+ ```
20
+ /continue-session [--list] [--story-id ID]
21
+ ```
22
+
23
+ | Option | Description |
24
+ |--------|-------------|
25
+ | (none) | Interactive: show checkpoints, let user choose |
26
+ | `--list` | Just display available checkpoints, don't restore |
27
+ | `--story-id ID` | Resume specific story directly (skip selection) |
28
+ </usage>
29
+
30
+ <on-invoke>
31
+
32
+ ## Step 1: Scan for Checkpoints
33
+
34
+ Run bash to check for saved checkpoints:
35
+
36
+ ```bash
37
+ CHECKPOINT_FILE="${PROJECT_ROOT:-.}/.session/checkpoints.log"
38
+ if [[ -f "$CHECKPOINT_FILE" ]]; then
39
+ echo "=== Recent Checkpoints ==="
40
+ tail -20 "$CHECKPOINT_FILE"
41
+ else
42
+ echo "No checkpoints found."
43
+ fi
44
+ ```
45
+
46
+ ## Step 2: Parse and Present Options
47
+
48
+ If checkpoints exist, parse and present them:
49
+
50
+ ```markdown
51
+ ## Available Checkpoints
52
+
53
+ | # | Timestamp | Label | Data |
54
+ |---|-----------|-------|------|
55
+ | 1 | 2026-01-06T14:30:22Z | phase:3-4 | dev |
56
+ | 2 | 2026-01-06T14:28:15Z | context:3-4 | Working on continue-session command |
57
+
58
+ Which checkpoint would you like to restore? (Enter number or 'all' for most recent of each label)
59
+ ```
60
+
61
+ Output `<!-- CYCLIST:CHOICES:checkpoint -->` marker, then use AskUserQuestion to let user choose.
62
+
63
+ ## Step 3: Restore Checkpoint
64
+
65
+ Source the checkpoint utilities and restore:
66
+
67
+ ```bash
68
+ # Source checkpoint utilities
69
+ source "${PROJECT_ROOT:-.}/.pennyfarthing/scripts/utils/checkpoint.sh"
70
+
71
+ # Restore by label
72
+ PHASE=$(checkpoint_restore "phase:${STORY_ID}")
73
+ CONTEXT=$(checkpoint_restore "context:${STORY_ID}")
74
+ FILES=$(checkpoint_restore "files:${STORY_ID}")
75
+
76
+ echo "Restored checkpoint:"
77
+ echo " Phase: $PHASE"
78
+ echo " Context: $CONTEXT"
79
+ echo " Files: $FILES"
80
+ ```
81
+
82
+ ## Step 4: Find Session File
83
+
84
+ Look for the matching session file:
85
+
86
+ ```bash
87
+ SESSION_FILE=".session/${STORY_ID}-session.md"
88
+ if [[ -f "$SESSION_FILE" ]]; then
89
+ echo "Found session file: $SESSION_FILE"
90
+ head -20 "$SESSION_FILE"
91
+ else
92
+ echo "Warning: No session file found for story $STORY_ID"
93
+ fi
94
+ ```
95
+
96
+ ## Step 5: Resume Appropriate Agent
97
+
98
+ Based on the restored phase, invoke the appropriate agent:
99
+
100
+ | Phase | Agent | Command |
101
+ |-------|-------|---------|
102
+ | `setup` or `sm` | TEA | `/tea` |
103
+ | `tea` or `red` | Dev | `/dev` |
104
+ | `dev` or `green` | Reviewer | `/reviewer` |
105
+ | `review` | Reviewer | `/reviewer` |
106
+ | `approved` | SM | `/sm` (finish flow) |
107
+
108
+ Present to user:
109
+ ```markdown
110
+ ## Session Restored
111
+
112
+ **Story:** {STORY_ID} - {title from session}
113
+ **Phase:** {PHASE}
114
+ **Context:** {CONTEXT}
115
+
116
+ Ready to continue with **{Agent Name}**.
117
+
118
+ The checkpoint shows you were working on: {CONTEXT}
119
+
120
+ [Continue] [Show more details] [Cancel]
121
+ ```
122
+
123
+ </on-invoke>
124
+
125
+ <checkpoint-labels>
126
+ Standard checkpoint labels include the story ID:
127
+
128
+ | Label Pattern | Purpose | Example |
129
+ |---------------|---------|---------|
130
+ | `phase:{story-id}` | Workflow phase | `phase:3-4` → `dev` |
131
+ | `context:{story-id}` | Work summary | `context:3-4` → `Implementing validation` |
132
+ | `files:{story-id}` | Key files | `files:3-4` → `src/api.ts,src/utils.ts` |
133
+ | `branch:{story-id}` | Git branch | `branch:3-4` → `feat/3-4-session` |
134
+ </checkpoint-labels>
135
+
136
+ <no-checkpoints>
137
+ If no checkpoints are found:
138
+
139
+ ```markdown
140
+ ## No Checkpoints Found
141
+
142
+ No saved checkpoints exist in `.session/checkpoints.log`.
143
+
144
+ **Options:**
145
+ 1. `/work` - Check for active session files
146
+ 2. `/new-work` - Start fresh with a new story
147
+ 3. Check git stash: `git stash list`
148
+ ```
149
+ </no-checkpoints>
150
+
151
+ <stale-checkpoint-warning>
152
+ If checkpoint is older than 24 hours:
153
+
154
+ ```markdown
155
+ ## Stale Checkpoint Warning
156
+
157
+ The most recent checkpoint is from **{timestamp}** ({hours} hours ago).
158
+
159
+ The codebase may have changed significantly since then.
160
+
161
+ **Options:**
162
+ 1. [Restore anyway] - Load this checkpoint
163
+ 2. [Check git log] - See what changed since checkpoint
164
+ 3. [Start fresh] - Begin new work with `/new-work`
165
+ ```
166
+ </stale-checkpoint-warning>
167
+
168
+ <integration>
169
+ This command completes the circuit breaker workflow:
170
+
171
+ 1. Agent works normally
172
+ 2. Context reaches 85% → circuit breaker triggers
173
+ 3. Agent saves checkpoint: `checkpoint_save "phase:X-Y" "dev"`
174
+ 4. User starts new Claude session
175
+ 5. User runs `/continue-session`
176
+ 6. Checkpoint restored, agent resumes
177
+ </integration>
178
+
179
+ <reference>
180
+ - **Checkpoint API:** `scripts/utils/checkpoint.sh`
181
+ - **Circuit Breaker:** `scripts/hooks/context-circuit-breaker.sh`
182
+ - **Related:** `/work`, `/new-work`
183
+ - **Session Files:** `.session/{story-id}-session.md`
184
+ </reference>