@pennyfarthing/core 10.0.0 → 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 (493) hide show
  1. package/LICENSE +14 -0
  2. package/package.json +22 -12
  3. package/pennyfarthing-dist/agents/README.md +348 -0
  4. package/pennyfarthing-dist/agents/architect.md +180 -0
  5. package/pennyfarthing-dist/agents/dev.md +169 -0
  6. package/pennyfarthing-dist/agents/devops.md +203 -0
  7. package/pennyfarthing-dist/agents/handoff.md +235 -0
  8. package/pennyfarthing-dist/agents/orchestrator.md +182 -0
  9. package/pennyfarthing-dist/agents/pm.md +152 -0
  10. package/pennyfarthing-dist/agents/reviewer-preflight.md +129 -0
  11. package/pennyfarthing-dist/agents/reviewer.md +197 -0
  12. package/pennyfarthing-dist/agents/sm-file-summary.md +79 -0
  13. package/pennyfarthing-dist/agents/sm-finish.md +82 -0
  14. package/pennyfarthing-dist/agents/sm-handoff.md +129 -0
  15. package/pennyfarthing-dist/agents/sm-setup.md +251 -0
  16. package/pennyfarthing-dist/agents/sm.md +298 -0
  17. package/pennyfarthing-dist/agents/tea.md +161 -0
  18. package/pennyfarthing-dist/agents/tech-writer.md +226 -0
  19. package/pennyfarthing-dist/agents/testing-runner.md +184 -0
  20. package/pennyfarthing-dist/agents/ux-designer.md +236 -0
  21. package/pennyfarthing-dist/agents/workflow-status-check.md +96 -0
  22. package/pennyfarthing-dist/commands/architect.md +9 -0
  23. package/pennyfarthing-dist/commands/benchmark-control.md +69 -0
  24. package/pennyfarthing-dist/commands/benchmark.md +485 -0
  25. package/pennyfarthing-dist/commands/brainstorming.md +91 -0
  26. package/pennyfarthing-dist/commands/check.md +156 -0
  27. package/pennyfarthing-dist/commands/chore.md +218 -0
  28. package/pennyfarthing-dist/commands/close-epic.md +139 -0
  29. package/pennyfarthing-dist/commands/continue-session.md +218 -0
  30. package/pennyfarthing-dist/commands/create-branches-from-story.md +358 -0
  31. package/pennyfarthing-dist/commands/create-theme.md +29 -0
  32. package/pennyfarthing-dist/commands/dev.md +9 -0
  33. package/pennyfarthing-dist/commands/devops.md +9 -0
  34. package/pennyfarthing-dist/commands/fix-blocker.md +22 -0
  35. package/pennyfarthing-dist/commands/git-cleanup.md +57 -0
  36. package/pennyfarthing-dist/commands/health-check.md +143 -0
  37. package/pennyfarthing-dist/commands/help.md +264 -0
  38. package/pennyfarthing-dist/commands/job-fair.md +102 -0
  39. package/pennyfarthing-dist/commands/list-themes.md +21 -0
  40. package/pennyfarthing-dist/commands/new-work.md +23 -0
  41. package/pennyfarthing-dist/commands/orchestrator.md +9 -0
  42. package/pennyfarthing-dist/commands/parallel-work.md +73 -0
  43. package/pennyfarthing-dist/commands/party-mode.md +77 -0
  44. package/pennyfarthing-dist/commands/patch.md +210 -0
  45. package/pennyfarthing-dist/commands/permissions.md +193 -0
  46. package/pennyfarthing-dist/commands/pm.md +9 -0
  47. package/pennyfarthing-dist/commands/prime.md +136 -0
  48. package/pennyfarthing-dist/commands/release.md +74 -0
  49. package/pennyfarthing-dist/commands/repo-status.md +49 -0
  50. package/pennyfarthing-dist/commands/retro.md +200 -0
  51. package/pennyfarthing-dist/commands/reviewer.md +9 -0
  52. package/pennyfarthing-dist/commands/run-ci.md +116 -0
  53. package/pennyfarthing-dist/commands/set-theme.md +56 -0
  54. package/pennyfarthing-dist/commands/setup.md +65 -0
  55. package/pennyfarthing-dist/commands/show-theme.md +21 -0
  56. package/pennyfarthing-dist/commands/sm.md +9 -0
  57. package/pennyfarthing-dist/commands/solo.md +447 -0
  58. package/pennyfarthing-dist/commands/sprint-planning.md +109 -0
  59. package/pennyfarthing-dist/commands/sprint.md +142 -0
  60. package/pennyfarthing-dist/commands/standalone.md +194 -0
  61. package/pennyfarthing-dist/commands/start-epic.md +168 -0
  62. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +184 -0
  63. package/pennyfarthing-dist/commands/sync-work-with-sprint.md +373 -0
  64. package/pennyfarthing-dist/commands/tea.md +9 -0
  65. package/pennyfarthing-dist/commands/tech-writer.md +9 -0
  66. package/pennyfarthing-dist/commands/theme-maker.md +676 -0
  67. package/pennyfarthing-dist/commands/update-domain-docs.md +83 -0
  68. package/pennyfarthing-dist/commands/ux-designer.md +9 -0
  69. package/pennyfarthing-dist/commands/work.md +25 -0
  70. package/pennyfarthing-dist/commands/workflow.md +21 -0
  71. package/pennyfarthing-dist/guides/agent-behavior.md +92 -0
  72. package/pennyfarthing-dist/guides/agent-coordination.md +475 -0
  73. package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +432 -0
  74. package/pennyfarthing-dist/guides/agent-template-strategic.md +148 -0
  75. package/pennyfarthing-dist/guides/agent-template-tactical.md +162 -0
  76. package/pennyfarthing-dist/guides/hooks.md +230 -0
  77. package/pennyfarthing-dist/guides/measurement-framework.md +210 -0
  78. package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +766 -0
  79. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +574 -0
  80. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +488 -0
  81. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +402 -0
  82. package/pennyfarthing-dist/guides/permission-protocol.md +188 -0
  83. package/pennyfarthing-dist/guides/persona-loading.md +46 -0
  84. package/pennyfarthing-dist/guides/prompt-patterns.md +338 -0
  85. package/pennyfarthing-dist/guides/scale-levels.md +114 -0
  86. package/pennyfarthing-dist/guides/session-artifacts.md +193 -0
  87. package/pennyfarthing-dist/guides/session-schema.md +346 -0
  88. package/pennyfarthing-dist/guides/skill-schema.md +412 -0
  89. package/pennyfarthing-dist/guides/workflow-schema.md +257 -0
  90. package/pennyfarthing-dist/guides/workflow-step-schema.md +512 -0
  91. package/pennyfarthing-dist/guides/worktree-mode.md +113 -0
  92. package/pennyfarthing-dist/guides/xml-tags.md +627 -0
  93. package/pennyfarthing-dist/output-styles/teaching.md +33 -0
  94. package/pennyfarthing-dist/output-styles/terse.md +20 -0
  95. package/pennyfarthing-dist/output-styles/verbose.md +28 -0
  96. package/pennyfarthing-dist/personas/themes/a-team.yaml +331 -0
  97. package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +324 -0
  98. package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +282 -0
  99. package/pennyfarthing-dist/personas/themes/blade-runner.yaml +289 -0
  100. package/pennyfarthing-dist/personas/themes/catch-22.yaml +304 -0
  101. package/pennyfarthing-dist/personas/themes/control.yaml +201 -0
  102. package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +315 -0
  103. package/pennyfarthing-dist/personas/themes/discworld.yaml +334 -0
  104. package/pennyfarthing-dist/personas/themes/doctor-who.yaml +284 -0
  105. package/pennyfarthing-dist/personas/themes/dune.yaml +301 -0
  106. package/pennyfarthing-dist/personas/themes/firefly.yaml +320 -0
  107. package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +284 -0
  108. package/pennyfarthing-dist/personas/themes/harry-potter.yaml +316 -0
  109. package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +323 -0
  110. package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +326 -0
  111. package/pennyfarthing-dist/personas/themes/mad-max.yaml +349 -0
  112. package/pennyfarthing-dist/personas/themes/mash.yaml +329 -0
  113. package/pennyfarthing-dist/personas/themes/princess-bride.yaml +344 -0
  114. package/pennyfarthing-dist/personas/themes/sandman.yaml +282 -0
  115. package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +358 -0
  116. package/pennyfarthing-dist/personas/themes/star-wars.yaml +297 -0
  117. package/pennyfarthing-dist/personas/themes/the-expanse.yaml +337 -0
  118. package/pennyfarthing-dist/personas/themes/the-matrix.yaml +342 -0
  119. package/pennyfarthing-dist/personas/themes/watchmen.yaml +285 -0
  120. package/pennyfarthing-dist/personas/themes/west-wing.yaml +285 -0
  121. package/pennyfarthing-dist/personas/themes/x-files.yaml +296 -0
  122. package/pennyfarthing-dist/scripts/README.md +87 -0
  123. package/pennyfarthing-dist/scripts/core/README.md +25 -0
  124. package/pennyfarthing-dist/scripts/core/agent-session.sh +390 -0
  125. package/pennyfarthing-dist/scripts/core/check-context.sh +194 -0
  126. package/pennyfarthing-dist/scripts/core/handoff-marker.sh +112 -0
  127. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +90 -0
  128. package/pennyfarthing-dist/scripts/core/prime.sh +30 -0
  129. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +21 -0
  130. package/pennyfarthing-dist/scripts/git/README.md +25 -0
  131. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +267 -0
  132. package/pennyfarthing-dist/scripts/git/git-status-all.sh +152 -0
  133. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +79 -0
  134. package/pennyfarthing-dist/scripts/git/release.sh +246 -0
  135. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +497 -0
  136. package/pennyfarthing-dist/scripts/health/drift-detection.sh +156 -0
  137. package/pennyfarthing-dist/scripts/hooks/README.md +32 -0
  138. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  139. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +106 -0
  140. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +95 -0
  141. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +65 -0
  142. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +35 -0
  143. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +150 -0
  144. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +190 -0
  145. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +71 -0
  146. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +42 -0
  147. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +20 -0
  148. package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +499 -0
  149. package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +30 -0
  150. package/pennyfarthing-dist/scripts/hooks/session-start.sh +97 -0
  151. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +65 -0
  152. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +78 -0
  153. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +94 -0
  154. package/pennyfarthing-dist/scripts/jira/README.md +36 -0
  155. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +95 -0
  156. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +91 -0
  157. package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +22 -0
  158. package/pennyfarthing-dist/scripts/jira/jira-lib.sh +464 -0
  159. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +260 -0
  160. package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +18 -0
  161. package/pennyfarthing-dist/scripts/jira/jira-sync.sh +16 -0
  162. package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +16 -0
  163. package/pennyfarthing-dist/scripts/jira/sync-epic-to-jira.sh +16 -0
  164. package/pennyfarthing-dist/scripts/lib/README.md +29 -0
  165. package/pennyfarthing-dist/scripts/lib/background-tasks.sh +177 -0
  166. package/pennyfarthing-dist/scripts/lib/checkpoint.sh +136 -0
  167. package/pennyfarthing-dist/scripts/lib/common.sh +212 -0
  168. package/pennyfarthing-dist/scripts/lib/file-lock.sh +269 -0
  169. package/pennyfarthing-dist/scripts/lib/find-root.sh +58 -0
  170. package/pennyfarthing-dist/scripts/lib/logging.sh +186 -0
  171. package/pennyfarthing-dist/scripts/lib/retry.sh +76 -0
  172. package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +102 -0
  173. package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +91 -0
  174. package/pennyfarthing-dist/scripts/misc/README.md +44 -0
  175. package/pennyfarthing-dist/scripts/misc/add-short-names.sh +13 -0
  176. package/pennyfarthing-dist/scripts/misc/add_short_names.py +226 -0
  177. package/pennyfarthing-dist/scripts/misc/backlog.sh +77 -0
  178. package/pennyfarthing-dist/scripts/misc/check-status.sh +247 -0
  179. package/pennyfarthing-dist/scripts/misc/find-related-work.sh +231 -0
  180. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +107 -0
  181. package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +74 -0
  182. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +10 -0
  183. package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +319 -0
  184. package/pennyfarthing-dist/scripts/misc/repo-scan.sh +141 -0
  185. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +778 -0
  186. package/pennyfarthing-dist/scripts/misc/run-ci.sh +212 -0
  187. package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +7 -0
  188. package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +319 -0
  189. package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +193 -0
  190. package/pennyfarthing-dist/scripts/misc/statusline.sh +257 -0
  191. package/pennyfarthing-dist/scripts/misc/uninstall.sh +275 -0
  192. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +160 -0
  193. package/pennyfarthing-dist/scripts/portraits/generate-portraits.py +417 -0
  194. package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +54 -0
  195. package/pennyfarthing-dist/scripts/sprint/README.md +29 -0
  196. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +133 -0
  197. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +91 -0
  198. package/pennyfarthing-dist/scripts/sprint/check-story.sh +158 -0
  199. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +52 -0
  200. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +63 -0
  201. package/pennyfarthing-dist/scripts/sprint/list-future.sh +145 -0
  202. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +110 -0
  203. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +148 -0
  204. package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +415 -0
  205. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +33 -0
  206. package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +230 -0
  207. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +134 -0
  208. package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +139 -0
  209. package/pennyfarthing-dist/scripts/story/README.md +23 -0
  210. package/pennyfarthing-dist/scripts/story/create-story.sh +19 -0
  211. package/pennyfarthing-dist/scripts/story/size-story.sh +18 -0
  212. package/pennyfarthing-dist/scripts/story/story-template.sh +18 -0
  213. package/pennyfarthing-dist/scripts/test/README.md +23 -0
  214. package/pennyfarthing-dist/scripts/test/ensure-swebench-data.sh +59 -0
  215. package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +220 -0
  216. package/pennyfarthing-dist/scripts/test/swebench-judge.py +374 -0
  217. package/pennyfarthing-dist/scripts/test/test-cache.sh +165 -0
  218. package/pennyfarthing-dist/scripts/test/test-setup.sh +337 -0
  219. package/pennyfarthing-dist/scripts/tests/check.test.sh +582 -0
  220. package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +515 -0
  221. package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +599 -0
  222. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +332 -0
  223. package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +573 -0
  224. package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +859 -0
  225. package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +662 -0
  226. package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +589 -0
  227. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +106 -0
  228. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +597 -0
  229. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +514 -0
  230. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +517 -0
  231. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +331 -0
  232. package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +647 -0
  233. package/pennyfarthing-dist/scripts/theme/README.md +22 -0
  234. package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +13 -0
  235. package/pennyfarthing-dist/scripts/theme/compute_theme_tiers.py +402 -0
  236. package/pennyfarthing-dist/scripts/theme/list-themes.sh +30 -0
  237. package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +97 -0
  238. package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +576 -0
  239. package/pennyfarthing-dist/scripts/workflow/README.md +28 -0
  240. package/pennyfarthing-dist/scripts/workflow/check.py +502 -0
  241. package/pennyfarthing-dist/scripts/workflow/check.sh +24 -0
  242. package/pennyfarthing-dist/scripts/workflow/complete-step.py +304 -0
  243. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +154 -0
  244. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +222 -0
  245. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +61 -0
  246. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +13 -0
  247. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +124 -0
  248. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +34 -0
  249. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +157 -0
  250. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +132 -0
  251. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +250 -0
  252. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +161 -0
  253. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +246 -0
  254. package/pennyfarthing-dist/skills/changelog/SKILL.md +385 -0
  255. package/pennyfarthing-dist/skills/code-review/SKILL.md +172 -0
  256. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +277 -0
  257. package/pennyfarthing-dist/skills/cyclist/SKILL.md +88 -0
  258. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +461 -0
  259. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +261 -0
  260. package/pennyfarthing-dist/skills/jira/SKILL.md +508 -0
  261. package/pennyfarthing-dist/skills/judge/SKILL.md +644 -0
  262. package/pennyfarthing-dist/skills/just/SKILL.md +414 -0
  263. package/pennyfarthing-dist/skills/mermaid/SKILL.md +256 -0
  264. package/pennyfarthing-dist/skills/otel/skill.md +227 -0
  265. package/pennyfarthing-dist/skills/permissions/skill.md +157 -0
  266. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +187 -0
  267. package/pennyfarthing-dist/skills/skill-registry.schema.json +107 -0
  268. package/pennyfarthing-dist/skills/skill-registry.yaml +393 -0
  269. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +101 -0
  270. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +97 -0
  271. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +164 -0
  272. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +101 -0
  273. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +116 -0
  274. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +164 -0
  275. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +39 -0
  276. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +147 -0
  277. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +93 -0
  278. package/pennyfarthing-dist/skills/sprint/skill.md +465 -0
  279. package/pennyfarthing-dist/skills/story/scripts/create-story.sh +159 -0
  280. package/pennyfarthing-dist/skills/story/scripts/size-story.sh +198 -0
  281. package/pennyfarthing-dist/skills/story/scripts/story-template.sh +162 -0
  282. package/pennyfarthing-dist/skills/story/skill.md +219 -0
  283. package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +446 -0
  284. package/pennyfarthing-dist/skills/testing/SKILL.md +121 -0
  285. package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +124 -0
  286. package/pennyfarthing-dist/skills/theme/skill.md +141 -0
  287. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +178 -0
  288. package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +91 -0
  289. package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +163 -0
  290. package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +138 -0
  291. package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +273 -0
  292. package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +167 -0
  293. package/pennyfarthing-dist/skills/workflow/skill.md +345 -0
  294. package/pennyfarthing-dist/skills/yq/SKILL.md +272 -0
  295. package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +187 -0
  296. package/pennyfarthing-dist/templates/LEADERBOARD.template.md +59 -0
  297. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +276 -0
  298. package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +61 -0
  299. package/pennyfarthing-dist/templates/persona-config.yaml.template +22 -0
  300. package/pennyfarthing-dist/templates/preferences.yaml.template +15 -0
  301. package/pennyfarthing-dist/templates/settings.local.json.template +130 -0
  302. package/pennyfarthing-dist/templates/setup-env.sh.template +18 -0
  303. package/pennyfarthing-dist/templates/shared-context.md.template +70 -0
  304. package/pennyfarthing-dist/templates/sidecar/decisions.md.template +40 -0
  305. package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +37 -0
  306. package/pennyfarthing-dist/templates/sidecar/patterns.md.template +34 -0
  307. package/pennyfarthing-dist/workflows/agent-docs.yaml +70 -0
  308. package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +113 -0
  309. package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +105 -0
  310. package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +127 -0
  311. package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +145 -0
  312. package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +150 -0
  313. package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +145 -0
  314. package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +154 -0
  315. package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +172 -0
  316. package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +102 -0
  317. package/pennyfarthing-dist/workflows/architecture.yaml +65 -0
  318. package/pennyfarthing-dist/workflows/bdd.yaml +60 -0
  319. package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +62 -0
  320. package/pennyfarthing-dist/workflows/brainstorming/checklist.md +44 -0
  321. package/pennyfarthing-dist/workflows/brainstorming/instructions.md +736 -0
  322. package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +49 -0
  323. package/pennyfarthing-dist/workflows/code-review/checklist.md +23 -0
  324. package/pennyfarthing-dist/workflows/code-review/instructions.md +234 -0
  325. package/pennyfarthing-dist/workflows/code-review/workflow.yaml +51 -0
  326. package/pennyfarthing-dist/workflows/dev-story/checklist.md +80 -0
  327. package/pennyfarthing-dist/workflows/dev-story/instructions.xml +410 -0
  328. package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +50 -0
  329. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +281 -0
  330. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +256 -0
  331. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +298 -0
  332. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +177 -0
  333. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +145 -0
  334. package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +57 -0
  335. package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +28 -0
  336. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +103 -0
  337. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-02-categorize.md +147 -0
  338. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-03-execute.md +215 -0
  339. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +97 -0
  340. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +78 -0
  341. package/pennyfarthing-dist/workflows/git-cleanup.yaml +59 -0
  342. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +211 -0
  343. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +199 -0
  344. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +202 -0
  345. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +162 -0
  346. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +280 -0
  347. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +158 -0
  348. package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +4 -0
  349. package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +40 -0
  350. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-01-connect.md +257 -0
  351. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-02-explore.md +107 -0
  352. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-03-fix.md +127 -0
  353. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-04-commit.md +122 -0
  354. package/pennyfarthing-dist/workflows/interactive-debug/workflow.yaml +51 -0
  355. package/pennyfarthing-dist/workflows/patch.yaml +67 -0
  356. package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +13 -0
  357. package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +197 -0
  358. package/pennyfarthing-dist/workflows/prd/data/project-types.csv +11 -0
  359. package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +197 -0
  360. package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +159 -0
  361. package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +230 -0
  362. package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +232 -0
  363. package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +219 -0
  364. package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +213 -0
  365. package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +232 -0
  366. package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +243 -0
  367. package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +234 -0
  368. package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +237 -0
  369. package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +248 -0
  370. package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +223 -0
  371. package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +186 -0
  372. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +253 -0
  373. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +214 -0
  374. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +255 -0
  375. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +259 -0
  376. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +174 -0
  377. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +224 -0
  378. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +197 -0
  379. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +215 -0
  380. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +180 -0
  381. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +220 -0
  382. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +234 -0
  383. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +223 -0
  384. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +211 -0
  385. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +249 -0
  386. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +269 -0
  387. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +215 -0
  388. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +270 -0
  389. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +248 -0
  390. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +238 -0
  391. package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +10 -0
  392. package/pennyfarthing-dist/workflows/prd/workflow.yaml +42 -0
  393. package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +195 -0
  394. package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +180 -0
  395. package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +221 -0
  396. package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +224 -0
  397. package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +228 -0
  398. package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +243 -0
  399. package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +216 -0
  400. package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +10 -0
  401. package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +31 -0
  402. package/pennyfarthing-dist/workflows/project-context/project-context-template.md +21 -0
  403. package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +206 -0
  404. package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +349 -0
  405. package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +306 -0
  406. package/pennyfarthing-dist/workflows/project-context/workflow.yaml +27 -0
  407. package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +157 -0
  408. package/pennyfarthing-dist/workflows/project-setup/steps/step-02-clone-repos.md +217 -0
  409. package/pennyfarthing-dist/workflows/project-setup/steps/step-03-repos-yaml.md +159 -0
  410. package/pennyfarthing-dist/workflows/project-setup/steps/step-04-claude-md.md +186 -0
  411. package/pennyfarthing-dist/workflows/project-setup/steps/step-05-shared-context.md +185 -0
  412. package/pennyfarthing-dist/workflows/project-setup/steps/step-06-task-runner.md +279 -0
  413. package/pennyfarthing-dist/workflows/project-setup/steps/step-07-theme.md +200 -0
  414. package/pennyfarthing-dist/workflows/project-setup/steps/step-08-theme-packs.md +142 -0
  415. package/pennyfarthing-dist/workflows/project-setup/steps/step-09-cyclist.md +245 -0
  416. package/pennyfarthing-dist/workflows/project-setup/steps/step-10-complete.md +204 -0
  417. package/pennyfarthing-dist/workflows/project-setup/workflow.yaml +41 -0
  418. package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +177 -0
  419. package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +143 -0
  420. package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +138 -0
  421. package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +135 -0
  422. package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +129 -0
  423. package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +163 -0
  424. package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +27 -0
  425. package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +201 -0
  426. package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +156 -0
  427. package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +140 -0
  428. package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +203 -0
  429. package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +74 -0
  430. package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +27 -0
  431. package/pennyfarthing-dist/workflows/release/steps/step-01-preflight.md +105 -0
  432. package/pennyfarthing-dist/workflows/release/steps/step-02-bump.md +95 -0
  433. package/pennyfarthing-dist/workflows/release/steps/step-03-changelog.md +125 -0
  434. package/pennyfarthing-dist/workflows/release/steps/step-04-readme.md +101 -0
  435. package/pennyfarthing-dist/workflows/release/steps/step-05-claude-md.md +102 -0
  436. package/pennyfarthing-dist/workflows/release/steps/step-06-retro.md +59 -0
  437. package/pennyfarthing-dist/workflows/release/steps/step-07-commit.md +109 -0
  438. package/pennyfarthing-dist/workflows/release/steps/step-08-merge.md +65 -0
  439. package/pennyfarthing-dist/workflows/release/steps/step-09-push.md +75 -0
  440. package/pennyfarthing-dist/workflows/release/steps/step-10-publish.md +93 -0
  441. package/pennyfarthing-dist/workflows/release/steps/step-11-finalize.md +71 -0
  442. package/pennyfarthing-dist/workflows/release.yaml +62 -0
  443. package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +159 -0
  444. package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +253 -0
  445. package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +263 -0
  446. package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +232 -0
  447. package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +260 -0
  448. package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +477 -0
  449. package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +205 -0
  450. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +262 -0
  451. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +227 -0
  452. package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +275 -0
  453. package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +286 -0
  454. package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +203 -0
  455. package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +510 -0
  456. package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +159 -0
  457. package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +264 -0
  458. package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +274 -0
  459. package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +228 -0
  460. package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +267 -0
  461. package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +522 -0
  462. package/pennyfarthing-dist/workflows/research/templates/research.template.md +29 -0
  463. package/pennyfarthing-dist/workflows/research/workflow.yaml +45 -0
  464. package/pennyfarthing-dist/workflows/retrospective/checklist.md +31 -0
  465. package/pennyfarthing-dist/workflows/retrospective/instructions.md +1443 -0
  466. package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +50 -0
  467. package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +33 -0
  468. package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +55 -0
  469. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +69 -0
  470. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +61 -0
  471. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +80 -0
  472. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +90 -0
  473. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +78 -0
  474. package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +34 -0
  475. package/pennyfarthing-dist/workflows/tdd.yaml +50 -0
  476. package/pennyfarthing-dist/workflows/trivial.yaml +40 -0
  477. package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +141 -0
  478. package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +133 -0
  479. package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +196 -0
  480. package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +222 -0
  481. package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +225 -0
  482. package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +240 -0
  483. package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +258 -0
  484. package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +260 -0
  485. package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +230 -0
  486. package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +230 -0
  487. package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +247 -0
  488. package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +254 -0
  489. package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +243 -0
  490. package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +270 -0
  491. package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +234 -0
  492. package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +13 -0
  493. 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,218 @@
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. Checks **all repos** (orchestrator + subrepos), creates branches, commits, merges to develop, and pushes.
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
+ **CRITICAL: Never use git stash.** The stash/pull/pop pattern can silently revert changes when upstream modifies the same files during the pull.
41
+
42
+ **CRITICAL: Always check ALL repos, not just the orchestrator.** Most changes are in subrepos (e.g., `pennyfarthing/`). Use `git -C {repo_path}` for subrepo operations.
43
+
44
+ 1. Check ALL repos for dirty files (orchestrator + subrepos from `repos.yaml`)
45
+ 2. Abort if all repos are clean
46
+ 3. Determine variant (chore/doc/ux) from first arg
47
+ 4. For EACH dirty repo, independently:
48
+ a. Create branch from current HEAD: `{variant}/{timestamp}`
49
+ b. Stage and commit all changes
50
+ c. Fetch origin and rebase onto latest develop
51
+ d. Switch to develop, merge the branch
52
+ e. Push develop
53
+ f. Delete local branch
54
+ </workflow>
55
+
56
+ ## Execution
57
+
58
+ ### Step 1: Multi-Repo Pre-Flight
59
+
60
+ **ALWAYS check all repos.** Read `repos.yaml` for repo paths.
61
+
62
+ ```bash
63
+ # Check ALL repos for dirty changes
64
+ # Orchestrator root (.)
65
+ git status --short
66
+
67
+ # Subrepos (e.g., pennyfarthing/)
68
+ git -C pennyfarthing status --short 2>/dev/null
69
+
70
+ # Or use the multi-repo status script:
71
+ .pennyfarthing/scripts/git/git-status-all.sh --brief
72
+ ```
73
+
74
+ Collect which repos have changes. If ALL repos are clean, abort with "No changes to commit."
75
+
76
+ **Common case:** Only the subrepo (`pennyfarthing/`) has changes. The orchestrator is clean. This is normal — framework development happens in the subrepo.
77
+
78
+ ### Step 2: Parse Arguments
79
+
80
+ ```bash
81
+ # Defaults
82
+ VARIANT="chore"
83
+ PREFIX="chore"
84
+ BRANCH_TYPE="chore"
85
+ MESSAGE=""
86
+
87
+ # Check first arg
88
+ case "$1" in
89
+ doc|docs)
90
+ VARIANT="docs"
91
+ PREFIX="docs"
92
+ BRANCH_TYPE="docs"
93
+ shift
94
+ ;;
95
+ ux|style)
96
+ VARIANT="ux"
97
+ PREFIX="style"
98
+ BRANCH_TYPE="ux"
99
+ shift
100
+ ;;
101
+ esac
102
+
103
+ # Remaining args are the message
104
+ MESSAGE="$*"
105
+ ```
106
+
107
+ ### Step 3: For Each Dirty Repo — Generate Message, Branch, Commit, Merge, Push
108
+
109
+ Repeat steps 3a–3d for each repo that has dirty changes. Use `git -C {repo_path}` for subrepo operations, or `cd` into the subrepo temporarily.
110
+
111
+ #### Step 3a: Generate Message (if user didn't provide one)
112
+
113
+ Generate a message based on the changed files **in that specific repo**.
114
+
115
+ ```bash
116
+ if [ -z "$MESSAGE" ]; then
117
+ CHANGED_FILES=$(git -C {repo_path} status --porcelain | awk '{print $2}')
118
+
119
+ case "$VARIANT" in
120
+ docs)
121
+ if echo "$CHANGED_FILES" | grep -qi "readme"; then
122
+ MESSAGE="update README"
123
+ elif echo "$CHANGED_FILES" | grep -qi "changelog"; then
124
+ MESSAGE="update changelog"
125
+ else
126
+ MESSAGE="update documentation"
127
+ fi
128
+ ;;
129
+ ux)
130
+ if echo "$CHANGED_FILES" | grep -qE "\.css|\.scss"; then
131
+ MESSAGE="update styles"
132
+ else
133
+ MESSAGE="update styling"
134
+ fi
135
+ ;;
136
+ chore)
137
+ if echo "$CHANGED_FILES" | grep -q "sprint/"; then
138
+ MESSAGE="update sprint tracking"
139
+ elif echo "$CHANGED_FILES" | grep -q "\.claude/"; then
140
+ MESSAGE="update pennyfarthing config"
141
+ elif echo "$CHANGED_FILES" | grep -q "scripts/"; then
142
+ MESSAGE="update scripts"
143
+ else
144
+ FILE_COUNT=$(echo "$CHANGED_FILES" | wc -l | tr -d ' ')
145
+ MESSAGE="minor updates to ${FILE_COUNT} files"
146
+ fi
147
+ ;;
148
+ esac
149
+ fi
150
+ ```
151
+
152
+ **For subrepos:** Also review the diff to generate a meaningful message. Prefer descriptive messages over generic ones (e.g., "migrate TTY panel to WebSocket" over "minor updates to 3 files").
153
+
154
+ #### Step 3b: Branch and Commit
155
+
156
+ **IMPORTANT: Do NOT use git stash.** Stash + pull + pop can silently revert changes when upstream modifies the same files.
157
+
158
+ ```bash
159
+ # For subrepos, cd into the repo first (or use git -C throughout)
160
+ cd {repo_path}
161
+
162
+ # Create branch from current HEAD (preserves dirty changes)
163
+ BRANCH="${BRANCH_TYPE}/$(date +%Y%m%d-%H%M%S)"
164
+ git checkout -b "$BRANCH"
165
+
166
+ # Stage and commit on the branch
167
+ git add .
168
+ git commit -m "${PREFIX}: ${MESSAGE}
169
+
170
+ Co-Authored-By: Claude <noreply@anthropic.com>"
171
+
172
+ # Now fetch and rebase onto latest develop
173
+ git fetch origin develop
174
+ git rebase origin/develop
175
+
176
+ # Switch to develop, fast-forward merge, and push
177
+ git checkout develop
178
+ git pull origin develop
179
+ git merge "$BRANCH"
180
+ git branch -d "$BRANCH"
181
+ git push origin develop
182
+ ```
183
+
184
+ #### Step 3c: Return to orchestrator root
185
+
186
+ ```bash
187
+ cd {orchestrator_root}
188
+ ```
189
+
190
+ ### Step 4: Verify
191
+
192
+ After all repos are processed:
193
+ ```bash
194
+ .pennyfarthing/scripts/git/git-status-all.sh --brief
195
+ ```
196
+
197
+ All repos should show clean.
198
+
199
+ ## Safety
200
+
201
+ - **NEVER commit directly to develop** (use branches)
202
+ - **Never force push**
203
+ - **Never commit secrets** (.env, credentials)
204
+ - **Abort if ALL repos are clean**
205
+ - **ALWAYS use `git -C {repo_path}` for subrepo operations**
206
+
207
+ ## When to Use
208
+
209
+ | Use /chore | Use /git-cleanup |
210
+ |------------|------------------|
211
+ | Single logical change | Multiple unrelated changes |
212
+ | Quick fix or tweak | Need to organize into groups |
213
+ | One type of change | Mixed types requiring separation |
214
+
215
+ <related>
216
+ - `/git-cleanup` - Full ceremony for organizing multiple changes
217
+ - `/repo-status` - Check status across all repos
218
+ </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