@pennyfarthing/core 10.0.1 → 10.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (492) hide show
  1. package/package.json +13 -3
  2. package/pennyfarthing-dist/agents/README.md +348 -0
  3. package/pennyfarthing-dist/agents/architect.md +180 -0
  4. package/pennyfarthing-dist/agents/dev.md +169 -0
  5. package/pennyfarthing-dist/agents/devops.md +203 -0
  6. package/pennyfarthing-dist/agents/handoff.md +235 -0
  7. package/pennyfarthing-dist/agents/orchestrator.md +182 -0
  8. package/pennyfarthing-dist/agents/pm.md +152 -0
  9. package/pennyfarthing-dist/agents/reviewer-preflight.md +129 -0
  10. package/pennyfarthing-dist/agents/reviewer.md +197 -0
  11. package/pennyfarthing-dist/agents/sm-file-summary.md +79 -0
  12. package/pennyfarthing-dist/agents/sm-finish.md +82 -0
  13. package/pennyfarthing-dist/agents/sm-handoff.md +129 -0
  14. package/pennyfarthing-dist/agents/sm-setup.md +251 -0
  15. package/pennyfarthing-dist/agents/sm.md +298 -0
  16. package/pennyfarthing-dist/agents/tea.md +161 -0
  17. package/pennyfarthing-dist/agents/tech-writer.md +226 -0
  18. package/pennyfarthing-dist/agents/testing-runner.md +184 -0
  19. package/pennyfarthing-dist/agents/ux-designer.md +236 -0
  20. package/pennyfarthing-dist/agents/workflow-status-check.md +96 -0
  21. package/pennyfarthing-dist/commands/architect.md +9 -0
  22. package/pennyfarthing-dist/commands/benchmark-control.md +69 -0
  23. package/pennyfarthing-dist/commands/benchmark.md +485 -0
  24. package/pennyfarthing-dist/commands/brainstorming.md +91 -0
  25. package/pennyfarthing-dist/commands/check.md +156 -0
  26. package/pennyfarthing-dist/commands/chore.md +218 -0
  27. package/pennyfarthing-dist/commands/close-epic.md +139 -0
  28. package/pennyfarthing-dist/commands/continue-session.md +218 -0
  29. package/pennyfarthing-dist/commands/create-branches-from-story.md +358 -0
  30. package/pennyfarthing-dist/commands/create-theme.md +29 -0
  31. package/pennyfarthing-dist/commands/dev.md +9 -0
  32. package/pennyfarthing-dist/commands/devops.md +9 -0
  33. package/pennyfarthing-dist/commands/fix-blocker.md +22 -0
  34. package/pennyfarthing-dist/commands/git-cleanup.md +57 -0
  35. package/pennyfarthing-dist/commands/health-check.md +143 -0
  36. package/pennyfarthing-dist/commands/help.md +264 -0
  37. package/pennyfarthing-dist/commands/job-fair.md +102 -0
  38. package/pennyfarthing-dist/commands/list-themes.md +21 -0
  39. package/pennyfarthing-dist/commands/new-work.md +23 -0
  40. package/pennyfarthing-dist/commands/orchestrator.md +9 -0
  41. package/pennyfarthing-dist/commands/parallel-work.md +73 -0
  42. package/pennyfarthing-dist/commands/party-mode.md +77 -0
  43. package/pennyfarthing-dist/commands/patch.md +210 -0
  44. package/pennyfarthing-dist/commands/permissions.md +193 -0
  45. package/pennyfarthing-dist/commands/pm.md +9 -0
  46. package/pennyfarthing-dist/commands/prime.md +136 -0
  47. package/pennyfarthing-dist/commands/release.md +74 -0
  48. package/pennyfarthing-dist/commands/repo-status.md +49 -0
  49. package/pennyfarthing-dist/commands/retro.md +200 -0
  50. package/pennyfarthing-dist/commands/reviewer.md +9 -0
  51. package/pennyfarthing-dist/commands/run-ci.md +116 -0
  52. package/pennyfarthing-dist/commands/set-theme.md +56 -0
  53. package/pennyfarthing-dist/commands/setup.md +65 -0
  54. package/pennyfarthing-dist/commands/show-theme.md +21 -0
  55. package/pennyfarthing-dist/commands/sm.md +9 -0
  56. package/pennyfarthing-dist/commands/solo.md +447 -0
  57. package/pennyfarthing-dist/commands/sprint-planning.md +109 -0
  58. package/pennyfarthing-dist/commands/sprint.md +142 -0
  59. package/pennyfarthing-dist/commands/standalone.md +194 -0
  60. package/pennyfarthing-dist/commands/start-epic.md +168 -0
  61. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +184 -0
  62. package/pennyfarthing-dist/commands/sync-work-with-sprint.md +373 -0
  63. package/pennyfarthing-dist/commands/tea.md +9 -0
  64. package/pennyfarthing-dist/commands/tech-writer.md +9 -0
  65. package/pennyfarthing-dist/commands/theme-maker.md +676 -0
  66. package/pennyfarthing-dist/commands/update-domain-docs.md +83 -0
  67. package/pennyfarthing-dist/commands/ux-designer.md +9 -0
  68. package/pennyfarthing-dist/commands/work.md +25 -0
  69. package/pennyfarthing-dist/commands/workflow.md +21 -0
  70. package/pennyfarthing-dist/guides/agent-behavior.md +92 -0
  71. package/pennyfarthing-dist/guides/agent-coordination.md +475 -0
  72. package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +432 -0
  73. package/pennyfarthing-dist/guides/agent-template-strategic.md +148 -0
  74. package/pennyfarthing-dist/guides/agent-template-tactical.md +162 -0
  75. package/pennyfarthing-dist/guides/hooks.md +230 -0
  76. package/pennyfarthing-dist/guides/measurement-framework.md +210 -0
  77. package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +766 -0
  78. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +574 -0
  79. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +488 -0
  80. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +402 -0
  81. package/pennyfarthing-dist/guides/permission-protocol.md +188 -0
  82. package/pennyfarthing-dist/guides/persona-loading.md +46 -0
  83. package/pennyfarthing-dist/guides/prompt-patterns.md +338 -0
  84. package/pennyfarthing-dist/guides/scale-levels.md +114 -0
  85. package/pennyfarthing-dist/guides/session-artifacts.md +193 -0
  86. package/pennyfarthing-dist/guides/session-schema.md +346 -0
  87. package/pennyfarthing-dist/guides/skill-schema.md +412 -0
  88. package/pennyfarthing-dist/guides/workflow-schema.md +257 -0
  89. package/pennyfarthing-dist/guides/workflow-step-schema.md +512 -0
  90. package/pennyfarthing-dist/guides/worktree-mode.md +113 -0
  91. package/pennyfarthing-dist/guides/xml-tags.md +627 -0
  92. package/pennyfarthing-dist/output-styles/teaching.md +33 -0
  93. package/pennyfarthing-dist/output-styles/terse.md +20 -0
  94. package/pennyfarthing-dist/output-styles/verbose.md +28 -0
  95. package/pennyfarthing-dist/personas/themes/a-team.yaml +331 -0
  96. package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +324 -0
  97. package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +282 -0
  98. package/pennyfarthing-dist/personas/themes/blade-runner.yaml +289 -0
  99. package/pennyfarthing-dist/personas/themes/catch-22.yaml +304 -0
  100. package/pennyfarthing-dist/personas/themes/control.yaml +201 -0
  101. package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +315 -0
  102. package/pennyfarthing-dist/personas/themes/discworld.yaml +334 -0
  103. package/pennyfarthing-dist/personas/themes/doctor-who.yaml +284 -0
  104. package/pennyfarthing-dist/personas/themes/dune.yaml +301 -0
  105. package/pennyfarthing-dist/personas/themes/firefly.yaml +320 -0
  106. package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +284 -0
  107. package/pennyfarthing-dist/personas/themes/harry-potter.yaml +316 -0
  108. package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +323 -0
  109. package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +326 -0
  110. package/pennyfarthing-dist/personas/themes/mad-max.yaml +349 -0
  111. package/pennyfarthing-dist/personas/themes/mash.yaml +329 -0
  112. package/pennyfarthing-dist/personas/themes/princess-bride.yaml +344 -0
  113. package/pennyfarthing-dist/personas/themes/sandman.yaml +282 -0
  114. package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +358 -0
  115. package/pennyfarthing-dist/personas/themes/star-wars.yaml +297 -0
  116. package/pennyfarthing-dist/personas/themes/the-expanse.yaml +337 -0
  117. package/pennyfarthing-dist/personas/themes/the-matrix.yaml +342 -0
  118. package/pennyfarthing-dist/personas/themes/watchmen.yaml +285 -0
  119. package/pennyfarthing-dist/personas/themes/west-wing.yaml +285 -0
  120. package/pennyfarthing-dist/personas/themes/x-files.yaml +296 -0
  121. package/pennyfarthing-dist/scripts/README.md +87 -0
  122. package/pennyfarthing-dist/scripts/core/README.md +25 -0
  123. package/pennyfarthing-dist/scripts/core/agent-session.sh +390 -0
  124. package/pennyfarthing-dist/scripts/core/check-context.sh +194 -0
  125. package/pennyfarthing-dist/scripts/core/handoff-marker.sh +112 -0
  126. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +90 -0
  127. package/pennyfarthing-dist/scripts/core/prime.sh +30 -0
  128. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +21 -0
  129. package/pennyfarthing-dist/scripts/git/README.md +25 -0
  130. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +267 -0
  131. package/pennyfarthing-dist/scripts/git/git-status-all.sh +152 -0
  132. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +79 -0
  133. package/pennyfarthing-dist/scripts/git/release.sh +246 -0
  134. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +497 -0
  135. package/pennyfarthing-dist/scripts/health/drift-detection.sh +156 -0
  136. package/pennyfarthing-dist/scripts/hooks/README.md +32 -0
  137. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  138. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +106 -0
  139. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +95 -0
  140. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +65 -0
  141. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +35 -0
  142. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +150 -0
  143. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +190 -0
  144. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +71 -0
  145. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +42 -0
  146. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +20 -0
  147. package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +499 -0
  148. package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +30 -0
  149. package/pennyfarthing-dist/scripts/hooks/session-start.sh +97 -0
  150. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +65 -0
  151. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +78 -0
  152. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +94 -0
  153. package/pennyfarthing-dist/scripts/jira/README.md +36 -0
  154. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +95 -0
  155. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +91 -0
  156. package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +22 -0
  157. package/pennyfarthing-dist/scripts/jira/jira-lib.sh +464 -0
  158. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +260 -0
  159. package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +18 -0
  160. package/pennyfarthing-dist/scripts/jira/jira-sync.sh +16 -0
  161. package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +16 -0
  162. package/pennyfarthing-dist/scripts/jira/sync-epic-to-jira.sh +16 -0
  163. package/pennyfarthing-dist/scripts/lib/README.md +29 -0
  164. package/pennyfarthing-dist/scripts/lib/background-tasks.sh +177 -0
  165. package/pennyfarthing-dist/scripts/lib/checkpoint.sh +136 -0
  166. package/pennyfarthing-dist/scripts/lib/common.sh +212 -0
  167. package/pennyfarthing-dist/scripts/lib/file-lock.sh +269 -0
  168. package/pennyfarthing-dist/scripts/lib/find-root.sh +58 -0
  169. package/pennyfarthing-dist/scripts/lib/logging.sh +186 -0
  170. package/pennyfarthing-dist/scripts/lib/retry.sh +76 -0
  171. package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +102 -0
  172. package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +91 -0
  173. package/pennyfarthing-dist/scripts/misc/README.md +44 -0
  174. package/pennyfarthing-dist/scripts/misc/add-short-names.sh +13 -0
  175. package/pennyfarthing-dist/scripts/misc/add_short_names.py +226 -0
  176. package/pennyfarthing-dist/scripts/misc/backlog.sh +77 -0
  177. package/pennyfarthing-dist/scripts/misc/check-status.sh +247 -0
  178. package/pennyfarthing-dist/scripts/misc/find-related-work.sh +231 -0
  179. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +107 -0
  180. package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +74 -0
  181. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +10 -0
  182. package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +319 -0
  183. package/pennyfarthing-dist/scripts/misc/repo-scan.sh +141 -0
  184. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +778 -0
  185. package/pennyfarthing-dist/scripts/misc/run-ci.sh +212 -0
  186. package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +7 -0
  187. package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +319 -0
  188. package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +193 -0
  189. package/pennyfarthing-dist/scripts/misc/statusline.sh +257 -0
  190. package/pennyfarthing-dist/scripts/misc/uninstall.sh +275 -0
  191. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +160 -0
  192. package/pennyfarthing-dist/scripts/portraits/generate-portraits.py +417 -0
  193. package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +54 -0
  194. package/pennyfarthing-dist/scripts/sprint/README.md +29 -0
  195. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +133 -0
  196. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +91 -0
  197. package/pennyfarthing-dist/scripts/sprint/check-story.sh +158 -0
  198. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +52 -0
  199. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +63 -0
  200. package/pennyfarthing-dist/scripts/sprint/list-future.sh +145 -0
  201. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +110 -0
  202. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +148 -0
  203. package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +415 -0
  204. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +33 -0
  205. package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +230 -0
  206. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +134 -0
  207. package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +139 -0
  208. package/pennyfarthing-dist/scripts/story/README.md +23 -0
  209. package/pennyfarthing-dist/scripts/story/create-story.sh +19 -0
  210. package/pennyfarthing-dist/scripts/story/size-story.sh +18 -0
  211. package/pennyfarthing-dist/scripts/story/story-template.sh +18 -0
  212. package/pennyfarthing-dist/scripts/test/README.md +23 -0
  213. package/pennyfarthing-dist/scripts/test/ensure-swebench-data.sh +59 -0
  214. package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +220 -0
  215. package/pennyfarthing-dist/scripts/test/swebench-judge.py +374 -0
  216. package/pennyfarthing-dist/scripts/test/test-cache.sh +165 -0
  217. package/pennyfarthing-dist/scripts/test/test-setup.sh +337 -0
  218. package/pennyfarthing-dist/scripts/tests/check.test.sh +582 -0
  219. package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +515 -0
  220. package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +599 -0
  221. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +332 -0
  222. package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +573 -0
  223. package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +859 -0
  224. package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +662 -0
  225. package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +589 -0
  226. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +106 -0
  227. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +597 -0
  228. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +514 -0
  229. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +517 -0
  230. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +331 -0
  231. package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +647 -0
  232. package/pennyfarthing-dist/scripts/theme/README.md +22 -0
  233. package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +13 -0
  234. package/pennyfarthing-dist/scripts/theme/compute_theme_tiers.py +402 -0
  235. package/pennyfarthing-dist/scripts/theme/list-themes.sh +30 -0
  236. package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +97 -0
  237. package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +576 -0
  238. package/pennyfarthing-dist/scripts/workflow/README.md +28 -0
  239. package/pennyfarthing-dist/scripts/workflow/check.py +502 -0
  240. package/pennyfarthing-dist/scripts/workflow/check.sh +24 -0
  241. package/pennyfarthing-dist/scripts/workflow/complete-step.py +304 -0
  242. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +154 -0
  243. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +222 -0
  244. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +61 -0
  245. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +13 -0
  246. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +124 -0
  247. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +34 -0
  248. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +157 -0
  249. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +132 -0
  250. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +250 -0
  251. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +161 -0
  252. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +246 -0
  253. package/pennyfarthing-dist/skills/changelog/SKILL.md +385 -0
  254. package/pennyfarthing-dist/skills/code-review/SKILL.md +172 -0
  255. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +277 -0
  256. package/pennyfarthing-dist/skills/cyclist/SKILL.md +88 -0
  257. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +461 -0
  258. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +261 -0
  259. package/pennyfarthing-dist/skills/jira/SKILL.md +508 -0
  260. package/pennyfarthing-dist/skills/judge/SKILL.md +644 -0
  261. package/pennyfarthing-dist/skills/just/SKILL.md +414 -0
  262. package/pennyfarthing-dist/skills/mermaid/SKILL.md +256 -0
  263. package/pennyfarthing-dist/skills/otel/skill.md +227 -0
  264. package/pennyfarthing-dist/skills/permissions/skill.md +157 -0
  265. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +187 -0
  266. package/pennyfarthing-dist/skills/skill-registry.schema.json +107 -0
  267. package/pennyfarthing-dist/skills/skill-registry.yaml +393 -0
  268. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +101 -0
  269. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +97 -0
  270. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +164 -0
  271. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +101 -0
  272. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +116 -0
  273. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +164 -0
  274. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +39 -0
  275. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +147 -0
  276. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +93 -0
  277. package/pennyfarthing-dist/skills/sprint/skill.md +465 -0
  278. package/pennyfarthing-dist/skills/story/scripts/create-story.sh +159 -0
  279. package/pennyfarthing-dist/skills/story/scripts/size-story.sh +198 -0
  280. package/pennyfarthing-dist/skills/story/scripts/story-template.sh +162 -0
  281. package/pennyfarthing-dist/skills/story/skill.md +219 -0
  282. package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +446 -0
  283. package/pennyfarthing-dist/skills/testing/SKILL.md +121 -0
  284. package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +124 -0
  285. package/pennyfarthing-dist/skills/theme/skill.md +141 -0
  286. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +178 -0
  287. package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +91 -0
  288. package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +163 -0
  289. package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +138 -0
  290. package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +273 -0
  291. package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +167 -0
  292. package/pennyfarthing-dist/skills/workflow/skill.md +345 -0
  293. package/pennyfarthing-dist/skills/yq/SKILL.md +272 -0
  294. package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +187 -0
  295. package/pennyfarthing-dist/templates/LEADERBOARD.template.md +59 -0
  296. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +276 -0
  297. package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +61 -0
  298. package/pennyfarthing-dist/templates/persona-config.yaml.template +22 -0
  299. package/pennyfarthing-dist/templates/preferences.yaml.template +15 -0
  300. package/pennyfarthing-dist/templates/settings.local.json.template +130 -0
  301. package/pennyfarthing-dist/templates/setup-env.sh.template +18 -0
  302. package/pennyfarthing-dist/templates/shared-context.md.template +70 -0
  303. package/pennyfarthing-dist/templates/sidecar/decisions.md.template +40 -0
  304. package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +37 -0
  305. package/pennyfarthing-dist/templates/sidecar/patterns.md.template +34 -0
  306. package/pennyfarthing-dist/workflows/agent-docs.yaml +70 -0
  307. package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +113 -0
  308. package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +105 -0
  309. package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +127 -0
  310. package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +145 -0
  311. package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +150 -0
  312. package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +145 -0
  313. package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +154 -0
  314. package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +172 -0
  315. package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +102 -0
  316. package/pennyfarthing-dist/workflows/architecture.yaml +65 -0
  317. package/pennyfarthing-dist/workflows/bdd.yaml +60 -0
  318. package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +62 -0
  319. package/pennyfarthing-dist/workflows/brainstorming/checklist.md +44 -0
  320. package/pennyfarthing-dist/workflows/brainstorming/instructions.md +736 -0
  321. package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +49 -0
  322. package/pennyfarthing-dist/workflows/code-review/checklist.md +23 -0
  323. package/pennyfarthing-dist/workflows/code-review/instructions.md +234 -0
  324. package/pennyfarthing-dist/workflows/code-review/workflow.yaml +51 -0
  325. package/pennyfarthing-dist/workflows/dev-story/checklist.md +80 -0
  326. package/pennyfarthing-dist/workflows/dev-story/instructions.xml +410 -0
  327. package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +50 -0
  328. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +281 -0
  329. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +256 -0
  330. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +298 -0
  331. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +177 -0
  332. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +145 -0
  333. package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +57 -0
  334. package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +28 -0
  335. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +103 -0
  336. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-02-categorize.md +147 -0
  337. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-03-execute.md +215 -0
  338. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +97 -0
  339. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +78 -0
  340. package/pennyfarthing-dist/workflows/git-cleanup.yaml +59 -0
  341. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +211 -0
  342. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +199 -0
  343. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +202 -0
  344. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +162 -0
  345. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +280 -0
  346. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +158 -0
  347. package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +4 -0
  348. package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +40 -0
  349. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-01-connect.md +257 -0
  350. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-02-explore.md +107 -0
  351. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-03-fix.md +127 -0
  352. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-04-commit.md +122 -0
  353. package/pennyfarthing-dist/workflows/interactive-debug/workflow.yaml +51 -0
  354. package/pennyfarthing-dist/workflows/patch.yaml +67 -0
  355. package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +13 -0
  356. package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +197 -0
  357. package/pennyfarthing-dist/workflows/prd/data/project-types.csv +11 -0
  358. package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +197 -0
  359. package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +159 -0
  360. package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +230 -0
  361. package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +232 -0
  362. package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +219 -0
  363. package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +213 -0
  364. package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +232 -0
  365. package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +243 -0
  366. package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +234 -0
  367. package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +237 -0
  368. package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +248 -0
  369. package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +223 -0
  370. package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +186 -0
  371. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +253 -0
  372. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +214 -0
  373. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +255 -0
  374. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +259 -0
  375. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +174 -0
  376. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +224 -0
  377. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +197 -0
  378. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +215 -0
  379. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +180 -0
  380. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +220 -0
  381. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +234 -0
  382. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +223 -0
  383. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +211 -0
  384. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +249 -0
  385. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +269 -0
  386. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +215 -0
  387. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +270 -0
  388. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +248 -0
  389. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +238 -0
  390. package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +10 -0
  391. package/pennyfarthing-dist/workflows/prd/workflow.yaml +42 -0
  392. package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +195 -0
  393. package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +180 -0
  394. package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +221 -0
  395. package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +224 -0
  396. package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +228 -0
  397. package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +243 -0
  398. package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +216 -0
  399. package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +10 -0
  400. package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +31 -0
  401. package/pennyfarthing-dist/workflows/project-context/project-context-template.md +21 -0
  402. package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +206 -0
  403. package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +349 -0
  404. package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +306 -0
  405. package/pennyfarthing-dist/workflows/project-context/workflow.yaml +27 -0
  406. package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +157 -0
  407. package/pennyfarthing-dist/workflows/project-setup/steps/step-02-clone-repos.md +217 -0
  408. package/pennyfarthing-dist/workflows/project-setup/steps/step-03-repos-yaml.md +159 -0
  409. package/pennyfarthing-dist/workflows/project-setup/steps/step-04-claude-md.md +186 -0
  410. package/pennyfarthing-dist/workflows/project-setup/steps/step-05-shared-context.md +185 -0
  411. package/pennyfarthing-dist/workflows/project-setup/steps/step-06-task-runner.md +279 -0
  412. package/pennyfarthing-dist/workflows/project-setup/steps/step-07-theme.md +200 -0
  413. package/pennyfarthing-dist/workflows/project-setup/steps/step-08-theme-packs.md +142 -0
  414. package/pennyfarthing-dist/workflows/project-setup/steps/step-09-cyclist.md +245 -0
  415. package/pennyfarthing-dist/workflows/project-setup/steps/step-10-complete.md +204 -0
  416. package/pennyfarthing-dist/workflows/project-setup/workflow.yaml +41 -0
  417. package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +177 -0
  418. package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +143 -0
  419. package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +138 -0
  420. package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +135 -0
  421. package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +129 -0
  422. package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +163 -0
  423. package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +27 -0
  424. package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +201 -0
  425. package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +156 -0
  426. package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +140 -0
  427. package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +203 -0
  428. package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +74 -0
  429. package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +27 -0
  430. package/pennyfarthing-dist/workflows/release/steps/step-01-preflight.md +105 -0
  431. package/pennyfarthing-dist/workflows/release/steps/step-02-bump.md +95 -0
  432. package/pennyfarthing-dist/workflows/release/steps/step-03-changelog.md +125 -0
  433. package/pennyfarthing-dist/workflows/release/steps/step-04-readme.md +101 -0
  434. package/pennyfarthing-dist/workflows/release/steps/step-05-claude-md.md +102 -0
  435. package/pennyfarthing-dist/workflows/release/steps/step-06-retro.md +59 -0
  436. package/pennyfarthing-dist/workflows/release/steps/step-07-commit.md +109 -0
  437. package/pennyfarthing-dist/workflows/release/steps/step-08-merge.md +65 -0
  438. package/pennyfarthing-dist/workflows/release/steps/step-09-push.md +75 -0
  439. package/pennyfarthing-dist/workflows/release/steps/step-10-publish.md +93 -0
  440. package/pennyfarthing-dist/workflows/release/steps/step-11-finalize.md +71 -0
  441. package/pennyfarthing-dist/workflows/release.yaml +62 -0
  442. package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +159 -0
  443. package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +253 -0
  444. package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +263 -0
  445. package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +232 -0
  446. package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +260 -0
  447. package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +477 -0
  448. package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +205 -0
  449. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +262 -0
  450. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +227 -0
  451. package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +275 -0
  452. package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +286 -0
  453. package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +203 -0
  454. package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +510 -0
  455. package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +159 -0
  456. package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +264 -0
  457. package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +274 -0
  458. package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +228 -0
  459. package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +267 -0
  460. package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +522 -0
  461. package/pennyfarthing-dist/workflows/research/templates/research.template.md +29 -0
  462. package/pennyfarthing-dist/workflows/research/workflow.yaml +45 -0
  463. package/pennyfarthing-dist/workflows/retrospective/checklist.md +31 -0
  464. package/pennyfarthing-dist/workflows/retrospective/instructions.md +1443 -0
  465. package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +50 -0
  466. package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +33 -0
  467. package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +55 -0
  468. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +69 -0
  469. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +61 -0
  470. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +80 -0
  471. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +90 -0
  472. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +78 -0
  473. package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +34 -0
  474. package/pennyfarthing-dist/workflows/tdd.yaml +50 -0
  475. package/pennyfarthing-dist/workflows/trivial.yaml +40 -0
  476. package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +141 -0
  477. package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +133 -0
  478. package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +196 -0
  479. package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +222 -0
  480. package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +225 -0
  481. package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +240 -0
  482. package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +258 -0
  483. package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +260 -0
  484. package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +230 -0
  485. package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +230 -0
  486. package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +247 -0
  487. package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +254 -0
  488. package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +243 -0
  489. package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +270 -0
  490. package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +234 -0
  491. package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +13 -0
  492. package/pennyfarthing-dist/workflows/ux-design/workflow.yaml +41 -0
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: testing
3
+ description: Test commands and patterns for TDD workflow. This skill should be used when running tests, debugging test failures, setting up test infrastructure, or writing new tests. Provides framework-agnostic patterns that projects customize.
4
+ ---
5
+
6
+ # Testing Skill
7
+
8
+ <run>
9
+ Main test commands for running the test suite:
10
+
11
+ ```bash
12
+ just test # If using just
13
+ npm test # If using npm
14
+ go test ./... # If using Go directly
15
+ ```
16
+
17
+ These commands execute the full test suite and are the primary entry point for validating code changes.
18
+ </run>
19
+
20
+ <output>
21
+ Test output varies by framework:
22
+
23
+ - **Go tests:** Display pass/fail status for each test, summary of tests run, coverage reports (if enabled), and PASS/FAIL result code
24
+ - **Node/npm tests (Vitest/Jest):** Shows test file results, individual test names, execution time, coverage percentages (if enabled), and pass/fail summary
25
+ - **Just:** Delegates to underlying test runner, output depends on what test command is configured
26
+
27
+ Output includes execution time and a final summary line indicating total tests passed/failed.
28
+ </output>
29
+
30
+ ## When to Use This Skill
31
+
32
+ - Running tests (backend, frontend, or all)
33
+ - Debugging test failures
34
+ - Setting up test containers/infrastructure
35
+ - Writing new tests
36
+ - Pre-commit verification
37
+ - Understanding TDD workflow
38
+
39
+ ## TDD Workflow (RED → GREEN → REFACTOR)
40
+
41
+ ```
42
+ 1. TEA writes failing tests (RED)
43
+ 2. Dev implements code to pass tests (GREEN)
44
+ 3. Dev refactors while keeping tests GREEN
45
+ 4. Reviewer validates quality
46
+ ```
47
+
48
+ ## Quick Reference
49
+
50
+ ```bash
51
+ # Setup test infrastructure (run once per session)
52
+ # Project-specific: check your justfile or package.json
53
+
54
+ # Run all tests
55
+ just test # If using just
56
+ npm test # If using npm
57
+ go test ./... # If using Go directly
58
+
59
+ # Run specific test patterns
60
+ just test-api -run "TestName" # Go pattern
61
+ npm test -- -t "test name" # Jest/Vitest pattern
62
+ ```
63
+
64
+ ## Test Command Patterns
65
+
66
+ ### Go (Backend)
67
+
68
+ ```bash
69
+ # Run all tests
70
+ go test ./...
71
+
72
+ # Run tests in specific package
73
+ go test ./internal/handlers
74
+
75
+ # Run tests matching pattern
76
+ go test -run "TestCreate" ./...
77
+
78
+ # Verbose output
79
+ go test -v ./internal/handlers
80
+
81
+ # With coverage
82
+ go test -cover ./...
83
+ ```
84
+
85
+ ### Node/React (Frontend)
86
+
87
+ ```bash
88
+ # Run all tests (Vitest)
89
+ npm test
90
+
91
+ # Run tests matching pattern
92
+ npm test -- -t "button"
93
+
94
+ # Watch mode
95
+ npm test -- --watch
96
+
97
+ # Coverage
98
+ npm test -- --coverage
99
+ ```
100
+
101
+ ## Test File Naming Conventions
102
+
103
+ | Type | Go Pattern | TypeScript Pattern |
104
+ |------|------------|-------------------|
105
+ | Unit test | `*_test.go` | `*.test.ts`, `*.test.tsx` |
106
+ | Integration | `*_integration_test.go` | `*.integration.test.ts` |
107
+ | E2E | N/A | `*.e2e.test.ts` |
108
+
109
+ ## Reference Documentation
110
+
111
+ - **Troubleshooting:** See `references/troubleshooting.md`
112
+ - **TDD Policy:** See `references/tdd-policy.md` (project-specific)
113
+ - **Backend Patterns:** See `references/backend-patterns.md` (project-specific)
114
+ - **Frontend Patterns:** See `references/frontend-patterns.md` (project-specific)
115
+
116
+ ## Project Customization
117
+
118
+ Projects should create their own testing skill in `.claude/project/skills/testing/` with:
119
+ - Project-specific test commands
120
+ - Custom patterns and conventions
121
+ - Infrastructure setup instructions
@@ -0,0 +1,124 @@
1
+ # Test Troubleshooting Guide
2
+
3
+ ## Tests Timing Out
4
+
5
+ ```bash
6
+ # Ensure test infrastructure is running
7
+ just test-setup # Or project-specific setup command
8
+
9
+ # Check container status
10
+ docker ps
11
+
12
+ # Increase timeout if needed
13
+ go test -timeout 60s ./...
14
+ ```
15
+
16
+ ## "No Tests to Run" Message
17
+
18
+ ### Go Tests
19
+
20
+ The `-run` flag filters by **test function name**, not by file or domain:
21
+ - `-run "User"` matches `TestUserCreate` but NOT `TestCreateAccount`
22
+ - The pattern is a regex, case-sensitive
23
+
24
+ ```bash
25
+ # Run ALL tests in a package (no name filter)
26
+ go test ./internal/handlers/...
27
+
28
+ # Run tests with "Create" in name in specific package
29
+ go test -run "Create" ./internal/handlers
30
+ ```
31
+
32
+ ### JavaScript/TypeScript Tests
33
+
34
+ The `-t` flag filters by test description:
35
+
36
+ ```bash
37
+ # Run tests matching description
38
+ npm test -- -t "should create user"
39
+
40
+ # Run all tests in a file
41
+ npm test -- path/to/file.test.ts
42
+ ```
43
+
44
+ ## Case Sensitivity
45
+
46
+ ### Go
47
+ - `-run "User"` - Correct (matches TestUser...)
48
+ - `-run "user"` - Won't match (Go regex is case-sensitive)
49
+
50
+ ### Jest/Vitest
51
+ - `-t "user"` - Case-insensitive by default
52
+
53
+ ## Package/Path Format
54
+
55
+ ### Go
56
+ ```bash
57
+ ./internal/handlers # Correct - relative with ./
58
+ internal/handlers # May not work without ./
59
+ ./internal/handlers/... # Include subpackages
60
+ ```
61
+
62
+ ### Node
63
+ ```bash
64
+ src/components # Relative path
65
+ ./src/components # Also works
66
+ ```
67
+
68
+ ## Tests Passing Locally but Failing in CI
69
+
70
+ 1. **Environment differences** - Check env vars
71
+ 2. **Race conditions** - Run tests multiple times locally
72
+ 3. **Database state** - Ensure clean state between tests
73
+
74
+ ```bash
75
+ # Run full test suite to catch integration issues
76
+ just test
77
+
78
+ # Run tests with race detection (Go)
79
+ go test -race ./...
80
+ ```
81
+
82
+ ## Container Issues
83
+
84
+ ```bash
85
+ # Restart test containers
86
+ docker-compose -f docker-compose.test.yml down
87
+ docker-compose -f docker-compose.test.yml up -d
88
+
89
+ # Check container logs
90
+ docker logs <container-name>
91
+
92
+ # Verify connectivity
93
+ docker exec <container-name> pg_isready # Postgres
94
+ docker exec <container-name> redis-cli ping # Redis
95
+ ```
96
+
97
+ ## Database Connection Errors
98
+
99
+ ```bash
100
+ # Check environment variables
101
+ echo $TEST_DATABASE_URL
102
+
103
+ # Verify database is accepting connections
104
+ psql $TEST_DATABASE_URL -c "SELECT 1"
105
+ ```
106
+
107
+ ## Common Patterns
108
+
109
+ ### Flaky Tests
110
+
111
+ 1. Check for timing dependencies
112
+ 2. Look for shared state between tests
113
+ 3. Ensure proper cleanup in teardown
114
+ 4. Consider using test isolation
115
+
116
+ ### Memory Issues
117
+
118
+ ```bash
119
+ # Run with memory limit (Go)
120
+ go test -memprofile mem.out ./...
121
+
122
+ # Check for goroutine leaks
123
+ go test -race ./...
124
+ ```
@@ -0,0 +1,141 @@
1
+ ---
2
+ name: theme
3
+ description: Manage persona themes - list available themes, show current/specific theme details, and set active theme. Use when switching persona themes, viewing available characters, or checking which theme is currently active.
4
+ ---
5
+
6
+ # Theme Management Skill
7
+
8
+ <run>
9
+ To manage persona themes, use the following commands:
10
+ - `/list-themes` - List all available themes
11
+ - `/show-theme` - Show current theme or specific theme details
12
+ - `/set-theme <name>` - Set the active theme
13
+ - `/theme-maker` - Create a new custom theme interactively
14
+ </run>
15
+
16
+ <output>
17
+ Theme commands return theme names, descriptions, agent mappings, and confirmation of theme changes. Current theme is stored in `.pennyfarthing/config.local.yaml`.
18
+ </output>
19
+
20
+ ## Overview
21
+
22
+ Pennyfarthing uses themed personas to give each agent a unique character. This skill provides commands to list, view, and change themes.
23
+
24
+ ## Quick Reference
25
+
26
+ | Action | Command |
27
+ |--------|---------|
28
+ | List all themes | `/list-themes` or see below |
29
+ | Show current theme | `/show-theme` |
30
+ | Show specific theme | `/show-theme <name>` |
31
+ | Set active theme | `/set-theme <name>` |
32
+ | Create new theme | `/theme-maker` (interactive) |
33
+
34
+ ## List Available Themes
35
+
36
+ To see all available themes:
37
+
38
+ ```bash
39
+ ls pennyfarthing-dist/personas/themes/*.yaml | xargs -I{} basename {} .yaml | sort
40
+ ```
41
+
42
+ To show the current theme:
43
+
44
+ ```bash
45
+ cat .pennyfarthing/config.local.yaml 2>/dev/null || echo "No theme configured"
46
+ ```
47
+
48
+ ## Show Theme Details
49
+
50
+ To display a theme's agent mappings:
51
+
52
+ ```bash
53
+ # Show current theme
54
+ THEME=$(cat .pennyfarthing/config.local.yaml 2>/dev/null | grep "^theme:" | cut -d'"' -f2)
55
+ cat pennyfarthing-dist/personas/themes/${THEME}.yaml
56
+ ```
57
+
58
+ Or for a specific theme:
59
+
60
+ ```bash
61
+ cat pennyfarthing-dist/personas/themes/<theme-name>.yaml
62
+ ```
63
+
64
+ ## Set Active Theme
65
+
66
+ To change the active theme:
67
+
68
+ 1. Verify theme exists:
69
+ ```bash
70
+ ls pennyfarthing-dist/personas/themes/<name>.yaml
71
+ ```
72
+
73
+ 2. Read current config:
74
+ ```bash
75
+ cat .pennyfarthing/config.local.yaml 2>/dev/null || echo "FILE_NOT_FOUND"
76
+ ```
77
+
78
+ 3. Update `.pennyfarthing/config.local.yaml`:
79
+ - If file exists with `theme:` line: Use Edit tool to replace `theme: <old>` with `theme: <new>`
80
+ - If file missing or no theme line: Use Write tool to create:
81
+ ```yaml
82
+ # Pennyfarthing Local Configuration
83
+ theme: <name>
84
+ ```
85
+
86
+ 4. Verify the write succeeded:
87
+ ```bash
88
+ cat .pennyfarthing/config.local.yaml
89
+ ```
90
+
91
+ 5. Start a new agent session to use the new theme
92
+
93
+ ## Theme File Locations
94
+
95
+ | Location | Purpose |
96
+ |----------|---------|
97
+ | `pennyfarthing-dist/personas/themes/` | Built-in themes (96+) |
98
+ | `.claude/pennyfarthing/themes/` | User-created custom themes |
99
+ | `.pennyfarthing/config.local.yaml` | Theme selection (agent-writable, gitignored) |
100
+
101
+ ## Theme Structure
102
+
103
+ Each theme YAML defines agents with:
104
+
105
+ ```yaml
106
+ theme:
107
+ name: theme-name
108
+ description: Brief description
109
+
110
+ agents:
111
+ sm:
112
+ character: Character Name
113
+ style: Communication style description
114
+ quote: Signature quote
115
+ trait: Key personality trait
116
+ helper: Helper/assistant description
117
+ tea:
118
+ # ...same structure...
119
+ dev:
120
+ # ...
121
+ ```
122
+
123
+ ## Creating Custom Themes
124
+
125
+ For creating new themes, use `/theme-maker` which provides:
126
+ - **AI-Driven Mode**: Describe a concept, AI generates all personas
127
+ - **Guided Mode**: Pick from AI-suggested characters
128
+ - **Manual Mode**: Specify every detail yourself
129
+
130
+ See the `theme-creation` skill for full documentation.
131
+
132
+ ## Common Theme Categories
133
+
134
+ Themes are available across many categories:
135
+ - **TV/Film**: star-trek-tos, star-trek-tng, breaking-bad, the-wire, firefly, etc.
136
+ - **Literature**: shakespeare, jane-austen, dickens, discworld, dune, etc.
137
+ - **Historical**: ancient-philosophers, military-commanders, renaissance-masters, etc.
138
+ - **Mythology**: greek-mythology, norse-mythology, arthurian-mythos, etc.
139
+ - **Animated**: futurama, the-simpsons, avatar-the-last-airbender, etc.
140
+
141
+ Run the list command to see all 96+ available themes.
@@ -0,0 +1,178 @@
1
+ ---
2
+ name: theme-creation
3
+ description: Create custom persona themes for Pennyfarthing. Use when users want to create, generate, or customize agent personas/themes, especially with AI-driven generation.
4
+ ---
5
+
6
+ # Theme Creation Skill
7
+
8
+ <run>/theme-maker</run>
9
+
10
+ <output>Interactive wizard that guides users through AI-driven, Guided, or Manual theme creation modes to build custom persona themes for Pennyfarthing agents</output>
11
+
12
+ ## Overview
13
+
14
+ This skill covers creating custom persona themes for Pennyfarthing agents. Themes define how each agent (SM, TEA, Dev, Reviewer, etc.) presents themselves with character names, styles, quotes, and personality traits.
15
+
16
+ ## When to Use This Skill
17
+
18
+ **Invoke `/theme-maker` when the user:**
19
+ - Asks to "create a theme" or "make a theme"
20
+ - Wants "AI-driven theme generation"
21
+ - Says "generate personas" or "generate characters"
22
+ - Mentions a fictional universe and wants agents based on it
23
+ - Asks for "custom personas" or "themed agents"
24
+ - Wants to "customize agent characters"
25
+ - Mentions any fictional universe + "theme" (e.g., "Star Wars theme", "pirates theme")
26
+
27
+ **Trigger phrases:**
28
+ - "create a [X] theme"
29
+ - "make a theme based on [X]"
30
+ - "generate [X] personas"
31
+ - "I want [X] themed agents"
32
+ - "AI-driven theme generation"
33
+ - "custom theme for [universe]"
34
+
35
+ ## Available Commands
36
+
37
+ | Command | Purpose |
38
+ |---------|---------|
39
+ | `/theme-maker` | Interactive wizard with AI-driven, Guided, or Manual modes |
40
+ | `/create-theme <name>` | Quick CLI-based theme creation (copies from base) |
41
+ | `/set-theme <name>` | Activate an existing theme |
42
+ | `/list-themes` | Show available themes |
43
+ | `/show-theme <name>` | Display theme details |
44
+
45
+ ## Theme Creation Modes
46
+
47
+ ### AI-Driven Mode (Recommended)
48
+
49
+ Best for: Users who describe a concept and want the AI to generate everything.
50
+
51
+ **Flow:**
52
+ 1. User provides universe/concept (e.g., "Gilligan's Island, humorous")
53
+ 2. AI generates all 10 agent personas automatically
54
+ 3. User previews and confirms or regenerates
55
+ 4. Theme file written to `.claude/pennyfarthing/themes/`
56
+
57
+ **What gets generated:**
58
+ - Character names fitting the universe
59
+ - OCEAN personality profiles (O/C/E/A/N scores 1-5)
60
+ - Communication styles
61
+ - Signature quotes
62
+ - Emojis and visual descriptions
63
+ - Helper assistants for each agent
64
+
65
+ ### Guided Mode
66
+
67
+ Best for: Users who want to pick characters from suggestions.
68
+
69
+ **Flow:**
70
+ 1. User provides universe/concept
71
+ 2. AI suggests 3-4 character options per agent
72
+ 3. User picks (or enters custom) for each
73
+ 4. AI fills in remaining details (style, quote, OCEAN)
74
+
75
+ ### Manual Mode
76
+
77
+ Best for: Users who know exactly what they want.
78
+
79
+ **Flow:**
80
+ 1. User provides theme description
81
+ 2. User enters character, style, quote for each agent
82
+ 3. Optional: Specify OCEAN scores or let AI generate
83
+ 4. Theme file created with user's exact specifications
84
+
85
+ ## Agent Roles Reference
86
+
87
+ When generating or suggesting characters, match to these roles:
88
+
89
+ | Agent | Role | Character Should Be |
90
+ |-------|------|---------------------|
91
+ | orchestrator | Meta-coordinator | Pattern-seer, guide, overseer |
92
+ | sm | Scrum Master | Leader, coordinator, keeps team together |
93
+ | tea | Test Engineer | Analyst, detail-oriented, finds flaws |
94
+ | dev | Developer | Builder, practical, gets things done |
95
+ | reviewer | Code Reviewer | Critical, honest, high standards |
96
+ | architect | System Architect | Big-picture thinker, systems designer |
97
+ | pm | Product Manager | Strategic, stakeholder manager |
98
+ | tech-writer | Documentation | Clear communicator, precise |
99
+ | ux-designer | UX Design | User advocate, feels the experience |
100
+ | devops | Infrastructure | Reliable, keeps systems running |
101
+
102
+ ## Theme File Location
103
+
104
+ - **User themes:** `.claude/pennyfarthing/themes/{name}.yaml`
105
+ - **Built-in themes:** `pennyfarthing-dist/personas/themes/`
106
+
107
+ ## OCEAN Personality Profiles
108
+
109
+ Each agent gets an OCEAN profile (Big Five personality traits):
110
+
111
+ | Dimension | Low (1-2) | High (4-5) |
112
+ |-----------|-----------|------------|
113
+ | **O**penness | Traditional, practical | Creative, curious |
114
+ | **C**onscientiousness | Flexible, spontaneous | Organized, disciplined |
115
+ | **E**xtraversion | Reserved, reflective | Outgoing, energetic |
116
+ | **A**greeableness | Competitive, skeptical | Cooperative, trusting |
117
+ | **N**euroticism | Calm, stable | Emotional, reactive |
118
+
119
+ ## Examples
120
+
121
+ ### Example 1: AI-Driven Theme Creation
122
+
123
+ **User:** "Create a Gilligan's Island theme, make it humorous"
124
+
125
+ **Action:** Invoke `/theme-maker`, select AI-Driven mode, generate 10 agents based on the show's characters.
126
+
127
+ ### Example 2: Quick Theme from Base
128
+
129
+ **User:** "Create a theme called my-team based on discworld"
130
+
131
+ **Action:** Run `/create-theme my-team --base discworld`
132
+
133
+ ### Example 3: List and Switch Themes
134
+
135
+ **User:** "What themes are available? Switch to star-trek."
136
+
137
+ **Action:** Run `/list-themes`, then `/set-theme star-trek`
138
+
139
+ ## Validation Rules for Theme Names
140
+
141
+ - Lowercase letters only
142
+ - Must start with a letter
143
+ - Hyphens allowed (no underscores or spaces)
144
+ - No conflicts with existing themes
145
+
146
+ ## Portrait Generation
147
+
148
+ Each agent can have a `visual` field that describes their appearance for portrait generation.
149
+
150
+ **Generate all portraits for a theme:**
151
+ ```bash
152
+ ./scripts/generate-portraits.sh --theme {name}
153
+ ```
154
+
155
+ **Generate a single agent's portrait:**
156
+ ```bash
157
+ ./scripts/generate-portraits.sh --theme {name} --role {role}
158
+ ```
159
+
160
+ **Dry run (preview):**
161
+ ```bash
162
+ ./scripts/generate-portraits.sh --theme {name} --dry-run
163
+ ```
164
+
165
+ **Requirements:**
166
+ - Python 3 venv at `.venv/` with: `pip install diffusers transformers accelerate torch pillow pyyaml tqdm`
167
+ - Apple Silicon Mac (MPS) or NVIDIA GPU (CUDA)
168
+ - ~6.5GB model download on first run
169
+
170
+ **Output:** `pennyfarthing-dist/personas/portraits/{theme}/{shortName}-{OCEAN}.png`
171
+
172
+ ## Post-Creation Steps
173
+
174
+ After creating a theme:
175
+ 1. Theme file at `.claude/pennyfarthing/themes/{name}.yaml`
176
+ 2. Activate with `/set-theme {name}`
177
+ 3. Generate portraits with `./scripts/generate-portraits.sh --theme {name}`
178
+ 4. Edit YAML directly for fine-tuning
@@ -0,0 +1,91 @@
1
+ #!/bin/bash
2
+ # List all available workflows with type indicators
3
+ # Usage: .pennyfarthing/scripts/workflow/list-workflows.sh
4
+ # or: Invoked with PROJECT_ROOT already set
5
+ #
6
+ # MSSCI-12083: Added type, steps, and modes columns
7
+
8
+ set -euo pipefail
9
+
10
+ # PROJECT_ROOT should be set by find-root.sh, but find it if not
11
+ if [[ -z "${PROJECT_ROOT:-}" ]]; then
12
+ d="$PWD"
13
+ while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do
14
+ d="$(dirname "$d")"
15
+ done
16
+ PROJECT_ROOT="$d"
17
+ fi
18
+
19
+ WORKFLOWS_DIR="$PROJECT_ROOT/.pennyfarthing/workflows"
20
+
21
+ if [[ ! -d "$WORKFLOWS_DIR" ]]; then
22
+ echo "Error: Workflows directory not found at $WORKFLOWS_DIR"
23
+ exit 1
24
+ fi
25
+
26
+ if ! command -v yq &> /dev/null; then
27
+ echo "Error: yq is required but not installed"
28
+ echo "Install with: brew install yq"
29
+ exit 1
30
+ fi
31
+
32
+ echo "# Available Workflows"
33
+ echo ""
34
+ echo "| Workflow | Type | Default | Steps/Phases | Modes | Description |"
35
+ echo "|----------|------|---------|--------------|-------|-------------|"
36
+
37
+ for f in "$WORKFLOWS_DIR"/*.yaml; do
38
+ [[ -f "$f" ]] || continue
39
+
40
+ name=$(yq eval '.workflow.name' "$f")
41
+ desc=$(yq eval '.workflow.description' "$f" | head -1)
42
+ is_default=$(yq eval '.workflow.triggers.default // false' "$f")
43
+
44
+ # Detect workflow type (stepped vs phased)
45
+ # Stepped workflows have .workflow.type == "stepped" or .workflow.steps
46
+ workflow_type=$(yq eval '.workflow.type // "phased"' "$f")
47
+ has_steps=$(yq eval '.workflow.steps != null' "$f")
48
+
49
+ if [[ "$has_steps" == "true" ]] || [[ "$workflow_type" == "stepped" ]]; then
50
+ type_col="stepped"
51
+ # Count step files if steps.path is defined
52
+ steps_path=$(yq eval '.workflow.steps.path // ""' "$f")
53
+ steps_pattern=$(yq eval '.workflow.steps.pattern // "step-*.md"' "$f")
54
+ if [[ -n "$steps_path" ]] && [[ -d "$PROJECT_ROOT/$steps_path" ]]; then
55
+ step_count=$(find "$PROJECT_ROOT/$steps_path" -name "$steps_pattern" 2>/dev/null | wc -l | tr -d ' ')
56
+ steps_col="${step_count} steps"
57
+ else
58
+ steps_col="-"
59
+ fi
60
+ else
61
+ type_col="phased"
62
+ # Count phases for phased workflows
63
+ phase_count=$(yq eval '.workflow.phases | length' "$f")
64
+ steps_col="${phase_count} phases"
65
+ fi
66
+
67
+ # Default column
68
+ if [[ "$is_default" == "true" ]]; then
69
+ default_col="yes"
70
+ else
71
+ default_col="no"
72
+ fi
73
+
74
+ # Modes column (for tri-modal workflows)
75
+ modes=$(yq eval '.workflow.modes.available // []' "$f")
76
+ if [[ "$modes" != "[]" ]] && [[ "$modes" != "null" ]]; then
77
+ # Format as comma-separated list
78
+ modes_col=$(yq eval '.workflow.modes.available | join(",")' "$f")
79
+ else
80
+ modes_col="-"
81
+ fi
82
+
83
+ echo "| $name | $type_col | $default_col | $steps_col | $modes_col | $desc |"
84
+ done
85
+
86
+ echo ""
87
+ echo "**Legend:**"
88
+ echo "- **phased**: Agent-driven workflow (SM → TEA → Dev → Reviewer)"
89
+ echo "- **stepped**: Step-by-step guided workflow with progressive disclosure"
90
+ echo ""
91
+ echo "Use \`/workflow show <name>\` for workflow details."