@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,250 @@
1
+ #!/bin/bash
2
+ # Start a stepped workflow
3
+ # Usage: .pennyfarthing/scripts/workflow/start-workflow.sh <name> [--mode create|validate|edit]
4
+ #
5
+ # Creates a new workflow session and loads step 1.
6
+ # For tri-modal workflows, --mode selects the step path (default: create)
7
+
8
+ set -euo pipefail
9
+
10
+ # Find project root
11
+ source "$(dirname "${BASH_SOURCE[0]}")/../lib/find-root.sh"
12
+
13
+ WORKFLOWS_DIR="$PROJECT_ROOT/.pennyfarthing/workflows"
14
+ SESSION_DIR="$PROJECT_ROOT/.session"
15
+
16
+ if ! command -v yq &> /dev/null; then
17
+ echo "Error: yq is required but not installed"
18
+ echo "Install with: brew install yq"
19
+ exit 1
20
+ fi
21
+
22
+ # Parse arguments
23
+ WORKFLOW_NAME=""
24
+ MODE=""
25
+ ARGS=("$@")
26
+
27
+ i=0
28
+ while [[ $i -lt ${#ARGS[@]} ]]; do
29
+ arg="${ARGS[$i]}"
30
+ case "$arg" in
31
+ --mode=*)
32
+ MODE="${arg#--mode=}"
33
+ ;;
34
+ --mode|-m)
35
+ if [[ $((i+1)) -lt ${#ARGS[@]} ]]; then
36
+ ((i++))
37
+ MODE="${ARGS[$i]}"
38
+ else
39
+ echo "Error: --mode requires a value (create, validate, or edit)"
40
+ exit 1
41
+ fi
42
+ ;;
43
+ -*)
44
+ echo "Error: Unknown option: $arg"
45
+ echo "Usage: start-workflow.sh <name> [--mode create|validate|edit]"
46
+ exit 1
47
+ ;;
48
+ *)
49
+ if [[ -z "$WORKFLOW_NAME" ]]; then
50
+ WORKFLOW_NAME="$arg"
51
+ else
52
+ echo "Error: Unexpected argument: $arg"
53
+ exit 1
54
+ fi
55
+ ;;
56
+ esac
57
+ ((i++))
58
+ done
59
+
60
+ if [[ -z "$WORKFLOW_NAME" ]]; then
61
+ echo "# Start Stepped Workflow"
62
+ echo ""
63
+ echo "Usage: /workflow start <name> [--mode create|validate|edit]"
64
+ echo ""
65
+ echo "**Available stepped workflows:**"
66
+ echo ""
67
+ for f in "$WORKFLOWS_DIR"/*.yaml "$WORKFLOWS_DIR"/*/workflow.yaml; do
68
+ [[ -f "$f" ]] || continue
69
+ workflow_type=$(yq eval '.workflow.type // "phased"' "$f")
70
+ if [[ "$workflow_type" == "stepped" ]]; then
71
+ name=$(yq eval '.workflow.name' "$f")
72
+ desc=$(yq eval '.workflow.description' "$f" | head -1 | cut -c1-60)
73
+ echo "- **$name** - $desc"
74
+ fi
75
+ done
76
+ exit 1
77
+ fi
78
+
79
+ # Find workflow file (support both flat and directory structure)
80
+ WORKFLOW_FILE=""
81
+ if [[ -f "$WORKFLOWS_DIR/${WORKFLOW_NAME}.yaml" ]]; then
82
+ WORKFLOW_FILE="$WORKFLOWS_DIR/${WORKFLOW_NAME}.yaml"
83
+ elif [[ -f "$WORKFLOWS_DIR/${WORKFLOW_NAME}/workflow.yaml" ]]; then
84
+ WORKFLOW_FILE="$WORKFLOWS_DIR/${WORKFLOW_NAME}/workflow.yaml"
85
+ else
86
+ echo "Error: Workflow '$WORKFLOW_NAME' not found"
87
+ echo ""
88
+ echo "Looked in:"
89
+ echo " $WORKFLOWS_DIR/${WORKFLOW_NAME}.yaml"
90
+ echo " $WORKFLOWS_DIR/${WORKFLOW_NAME}/workflow.yaml"
91
+ exit 1
92
+ fi
93
+
94
+ WORKFLOW_DIR=$(dirname "$WORKFLOW_FILE")
95
+
96
+ # Validate it's a stepped workflow
97
+ WORKFLOW_TYPE=$(yq eval '.workflow.type // "phased"' "$WORKFLOW_FILE")
98
+ if [[ "$WORKFLOW_TYPE" != "stepped" ]]; then
99
+ echo "Error: '$WORKFLOW_NAME' is a phased workflow, not stepped"
100
+ echo "Use TDD workflow commands (/sm, /tea, /dev, /reviewer) for phased workflows"
101
+ exit 1
102
+ fi
103
+
104
+ # Validate mode if provided
105
+ if [[ -n "$MODE" ]]; then
106
+ case "$MODE" in
107
+ create|validate|edit)
108
+ ;;
109
+ *)
110
+ echo "Error: Invalid mode '$MODE'. Must be one of: create, validate, edit"
111
+ exit 1
112
+ ;;
113
+ esac
114
+ fi
115
+
116
+ # Get workflow info
117
+ WORKFLOW_DESC=$(yq eval '.workflow.description' "$WORKFLOW_FILE")
118
+ WORKFLOW_AGENT=$(yq eval '.workflow.agent // "pm"' "$WORKFLOW_FILE")
119
+
120
+ # Resolve steps path based on mode
121
+ if [[ -n "$MODE" ]]; then
122
+ MODE_PATH=$(yq eval ".workflow.modes.$MODE // \"\"" "$WORKFLOW_FILE")
123
+ if [[ -z "$MODE_PATH" || "$MODE_PATH" == "null" ]]; then
124
+ AVAILABLE_MODES=$(yq eval '.workflow.modes | keys | .[]' "$WORKFLOW_FILE" 2>/dev/null | grep -v default | tr '\n' ', ' | sed 's/,$//')
125
+ echo "Error: Mode '$MODE' not available for workflow '$WORKFLOW_NAME'"
126
+ echo "Available modes: $AVAILABLE_MODES"
127
+ exit 1
128
+ fi
129
+ STEPS_PATH="$MODE_PATH"
130
+ else
131
+ # Use default mode or steps.path
132
+ DEFAULT_MODE=$(yq eval '.workflow.modes.default // ""' "$WORKFLOW_FILE")
133
+ if [[ -n "$DEFAULT_MODE" && "$DEFAULT_MODE" != "null" ]]; then
134
+ MODE_PATH=$(yq eval ".workflow.modes.$DEFAULT_MODE // \"\"" "$WORKFLOW_FILE")
135
+ if [[ -n "$MODE_PATH" && "$MODE_PATH" != "null" ]]; then
136
+ STEPS_PATH="$MODE_PATH"
137
+ MODE="$DEFAULT_MODE"
138
+ fi
139
+ fi
140
+
141
+ if [[ -z "${STEPS_PATH:-}" ]]; then
142
+ STEPS_PATH=$(yq eval '.workflow.steps.path' "$WORKFLOW_FILE")
143
+ MODE="${MODE:-create}"
144
+ fi
145
+ fi
146
+
147
+ # Resolve relative path
148
+ if [[ "$STEPS_PATH" == ./* ]]; then
149
+ STEPS_PATH="$WORKFLOW_DIR/${STEPS_PATH#./}"
150
+ elif [[ "$STEPS_PATH" != /* ]]; then
151
+ STEPS_PATH="$PROJECT_ROOT/$STEPS_PATH"
152
+ fi
153
+
154
+ # Count steps
155
+ STEPS_PATTERN=$(yq eval '.workflow.steps.pattern // "step-*.md"' "$WORKFLOW_FILE")
156
+ STEP_COUNT=$(find "$STEPS_PATH" -maxdepth 1 -name "step-0*.md" -o -name "step-1*.md" 2>/dev/null | wc -l | tr -d ' ')
157
+
158
+ if [[ "$STEP_COUNT" -eq 0 ]]; then
159
+ echo "Error: No step files found in $STEPS_PATH"
160
+ exit 1
161
+ fi
162
+
163
+ # Create session directory
164
+ mkdir -p "$SESSION_DIR"
165
+
166
+ # Generate session filename
167
+ SESSION_FILE="$SESSION_DIR/${WORKFLOW_NAME}-workflow-session.md"
168
+
169
+ # Check for existing session
170
+ if [[ -f "$SESSION_FILE" ]]; then
171
+ echo "**Warning:** Existing session found"
172
+ echo ""
173
+ echo "Session: $SESSION_FILE"
174
+ echo ""
175
+ echo "Options:"
176
+ echo "1. Use \`/workflow resume $WORKFLOW_NAME\` to continue"
177
+ echo "2. Delete the session file to start fresh"
178
+ echo ""
179
+ echo "To start fresh, run:"
180
+ echo "\`\`\`bash"
181
+ echo "rm \"$SESSION_FILE\""
182
+ echo "\`\`\`"
183
+ exit 0
184
+ fi
185
+
186
+ # Create initial session file
187
+ NOW=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
188
+ cat > "$SESSION_FILE" << EOF
189
+ # Workflow Session: $WORKFLOW_NAME
190
+
191
+ **Workflow:** $WORKFLOW_NAME
192
+ **Type:** stepped
193
+ **Agent:** $WORKFLOW_AGENT
194
+ **Started:** $NOW
195
+
196
+ ## Workflow State
197
+ - **Workflow Name:** $WORKFLOW_NAME
198
+ - **Type:** stepped
199
+ - **Mode:** $MODE
200
+ - **Started:** $NOW
201
+ - **Last Updated:** $NOW
202
+ - **Current Step:** 1
203
+ - **Steps Completed:** []
204
+ - **Status:** in_progress
205
+ - **Notes:** Session created via /workflow start
206
+
207
+ ## Progress
208
+ - Total Steps: $STEP_COUNT
209
+ - Completion: 0%
210
+
211
+ ---
212
+
213
+ EOF
214
+
215
+ # Find step 1 file (handle various naming patterns)
216
+ STEP_FILE=$(find "$STEPS_PATH" -maxdepth 1 \( -name "step-01*.md" -o -name "step-1-*.md" \) 2>/dev/null | sort | head -1)
217
+
218
+ if [[ -z "$STEP_FILE" ]]; then
219
+ echo "Error: Could not find step 1 file in $STEPS_PATH"
220
+ exit 1
221
+ fi
222
+
223
+ # Output workflow start info
224
+ echo "# Starting Workflow: $WORKFLOW_NAME"
225
+ echo ""
226
+ echo "**Description:** $WORKFLOW_DESC"
227
+ echo "**Mode:** $MODE"
228
+ echo "**Steps:** $STEP_COUNT"
229
+ echo "**Agent:** $WORKFLOW_AGENT"
230
+ echo "**Session:** $SESSION_FILE"
231
+ echo ""
232
+ echo "---"
233
+ echo ""
234
+ echo "## Step 1 of $STEP_COUNT"
235
+ echo ""
236
+
237
+ # Output step content (strip frontmatter if present)
238
+ if head -1 "$STEP_FILE" | grep -q "^---$"; then
239
+ awk '/^---$/{if(++c==2){p=1;next}}p' "$STEP_FILE"
240
+ else
241
+ cat "$STEP_FILE"
242
+ fi
243
+
244
+ echo ""
245
+ echo "---"
246
+ echo ""
247
+ echo "**Controls:**"
248
+ echo "- \`C\` - Continue to next step"
249
+ echo "- \`/workflow status\` - Check progress"
250
+ echo "- \`/workflow resume\` - Resume after break"
@@ -0,0 +1,161 @@
1
+ #!/bin/bash
2
+ # Show current stepped workflow progress
3
+ # Usage: .pennyfarthing/scripts/workflow/workflow-status.sh [name]
4
+ #
5
+ # If no name provided, shows status of active workflow session
6
+
7
+ set -euo pipefail
8
+
9
+ # Find project root
10
+ source "$(dirname "${BASH_SOURCE[0]}")/../lib/find-root.sh"
11
+
12
+ WORKFLOWS_DIR="$PROJECT_ROOT/.pennyfarthing/workflows"
13
+ SESSION_DIR="$PROJECT_ROOT/.session"
14
+
15
+ if ! command -v yq &> /dev/null; then
16
+ echo "Error: yq is required but not installed"
17
+ echo "Install with: brew install yq"
18
+ exit 1
19
+ fi
20
+
21
+ WORKFLOW_NAME="${1:-}"
22
+
23
+ # If no name, try to detect from session
24
+ if [[ -z "$WORKFLOW_NAME" ]]; then
25
+ SESSION_FILE=$(find "$SESSION_DIR" -maxdepth 1 -name "*-workflow-session.md" 2>/dev/null | head -1)
26
+
27
+ if [[ -z "$SESSION_FILE" ]]; then
28
+ echo "# Workflow Status"
29
+ echo ""
30
+ echo "No active workflow session found."
31
+ echo ""
32
+ echo "Use \`/workflow start <name>\` to begin a new workflow."
33
+ exit 0
34
+ fi
35
+
36
+ WORKFLOW_NAME=$(grep -E "^\*\*Workflow:\*\*" "$SESSION_FILE" 2>/dev/null | sed 's/\*\*Workflow:\*\* //' | tr -d ' ')
37
+
38
+ if [[ -z "$WORKFLOW_NAME" ]]; then
39
+ WORKFLOW_NAME=$(basename "$SESSION_FILE" | sed 's/-workflow-session.md//')
40
+ fi
41
+ else
42
+ SESSION_FILE="$SESSION_DIR/${WORKFLOW_NAME}-workflow-session.md"
43
+ fi
44
+
45
+ if [[ ! -f "$SESSION_FILE" ]]; then
46
+ echo "# Workflow Status: $WORKFLOW_NAME"
47
+ echo ""
48
+ echo "No session found for workflow '$WORKFLOW_NAME'"
49
+ echo ""
50
+ echo "Use \`/workflow start $WORKFLOW_NAME\` to begin."
51
+ exit 0
52
+ fi
53
+
54
+ # Find workflow file
55
+ WORKFLOW_FILE=""
56
+ if [[ -f "$WORKFLOWS_DIR/${WORKFLOW_NAME}.yaml" ]]; then
57
+ WORKFLOW_FILE="$WORKFLOWS_DIR/${WORKFLOW_NAME}.yaml"
58
+ elif [[ -f "$WORKFLOWS_DIR/${WORKFLOW_NAME}/workflow.yaml" ]]; then
59
+ WORKFLOW_FILE="$WORKFLOWS_DIR/${WORKFLOW_NAME}/workflow.yaml"
60
+ fi
61
+
62
+ WORKFLOW_DIR=$(dirname "$WORKFLOW_FILE")
63
+
64
+ # Parse session state
65
+ CURRENT_STEP=$(grep -E "^\- \*\*Current Step:\*\*" "$SESSION_FILE" 2>/dev/null | sed 's/.*\*\* //' || echo "1")
66
+ MODE=$(grep -E "^\- \*\*Mode:\*\*" "$SESSION_FILE" 2>/dev/null | sed 's/.*\*\* //' || echo "create")
67
+ STATUS=$(grep -E "^\- \*\*Status:\*\*" "$SESSION_FILE" 2>/dev/null | sed 's/.*\*\* //' || echo "in_progress")
68
+ STARTED=$(grep -E "^\- \*\*Started:\*\*" "$SESSION_FILE" 2>/dev/null | sed 's/.*\*\* //' || echo "-")
69
+ LAST_UPDATED=$(grep -E "^\- \*\*Last Updated:\*\*" "$SESSION_FILE" 2>/dev/null | sed 's/.*\*\* //' || echo "-")
70
+ STEPS_COMPLETED=$(grep -E "^\- \*\*Steps Completed:\*\*" "$SESSION_FILE" 2>/dev/null | sed 's/.*\*\* //' || echo "[]")
71
+ NOTES=$(grep -E "^\- \*\*Notes:\*\*" "$SESSION_FILE" 2>/dev/null | sed 's/.*\*\* //' || echo "-")
72
+
73
+ # Get total steps from workflow
74
+ if [[ -n "$WORKFLOW_FILE" && -f "$WORKFLOW_FILE" ]]; then
75
+ # Resolve steps path based on mode
76
+ MODE_PATH=$(yq eval ".workflow.modes.$MODE // \"\"" "$WORKFLOW_FILE")
77
+ if [[ -n "$MODE_PATH" && "$MODE_PATH" != "null" ]]; then
78
+ STEPS_PATH="$MODE_PATH"
79
+ else
80
+ STEPS_PATH=$(yq eval '.workflow.steps.path' "$WORKFLOW_FILE")
81
+ fi
82
+
83
+ # Resolve relative path
84
+ if [[ "$STEPS_PATH" == ./* ]]; then
85
+ STEPS_PATH="$WORKFLOW_DIR/${STEPS_PATH#./}"
86
+ elif [[ "$STEPS_PATH" != /* ]]; then
87
+ STEPS_PATH="$PROJECT_ROOT/$STEPS_PATH"
88
+ fi
89
+
90
+ STEP_COUNT=$(find "$STEPS_PATH" -maxdepth 1 -name "step-0*.md" -o -name "step-1*.md" 2>/dev/null | wc -l | tr -d ' ')
91
+ WORKFLOW_DESC=$(yq eval '.workflow.description' "$WORKFLOW_FILE" | head -1)
92
+ else
93
+ STEP_COUNT="?"
94
+ WORKFLOW_DESC="-"
95
+ fi
96
+
97
+ # Calculate completion percentage
98
+ COMPLETED_COUNT=$(echo "$STEPS_COMPLETED" | tr -cd ',' | wc -c | tr -d ' ')
99
+ if [[ "$STEPS_COMPLETED" != "[]" && -n "$STEPS_COMPLETED" ]]; then
100
+ COMPLETED_COUNT=$((COMPLETED_COUNT + 1))
101
+ fi
102
+
103
+ if [[ "$STEP_COUNT" != "?" && "$STEP_COUNT" -gt 0 ]]; then
104
+ COMPLETION_PCT=$((COMPLETED_COUNT * 100 / STEP_COUNT))
105
+ else
106
+ COMPLETION_PCT=0
107
+ fi
108
+
109
+ # Build progress bar
110
+ BAR_WIDTH=20
111
+ if [[ "$STEP_COUNT" != "?" && "$STEP_COUNT" -gt 0 ]]; then
112
+ FILLED=$((COMPLETION_PCT * BAR_WIDTH / 100))
113
+ EMPTY=$((BAR_WIDTH - FILLED))
114
+ PROGRESS_BAR=$(printf '%*s' "$FILLED" '' | tr ' ' '#')$(printf '%*s' "$EMPTY" '' | tr ' ' '-')
115
+ else
116
+ PROGRESS_BAR=$(printf '%*s' "$BAR_WIDTH" '' | tr ' ' '?')
117
+ fi
118
+
119
+ # Status indicator
120
+ case "$STATUS" in
121
+ completed)
122
+ STATUS_ICON="[COMPLETE]"
123
+ ;;
124
+ paused)
125
+ STATUS_ICON="[PAUSED]"
126
+ ;;
127
+ *)
128
+ STATUS_ICON="[IN PROGRESS]"
129
+ ;;
130
+ esac
131
+
132
+ # Output status
133
+ echo "# Workflow Status: $WORKFLOW_NAME"
134
+ echo ""
135
+ echo "**Description:** $WORKFLOW_DESC"
136
+ echo ""
137
+ echo "## Progress"
138
+ echo ""
139
+ echo "\`\`\`"
140
+ echo "[$PROGRESS_BAR] $COMPLETION_PCT%"
141
+ echo "\`\`\`"
142
+ echo ""
143
+ echo "| Field | Value |"
144
+ echo "|-------|-------|"
145
+ echo "| Status | $STATUS_ICON |"
146
+ echo "| Mode | $MODE |"
147
+ echo "| Current Step | $CURRENT_STEP of $STEP_COUNT |"
148
+ echo "| Completed | $COMPLETED_COUNT steps |"
149
+ echo "| Steps Done | $STEPS_COMPLETED |"
150
+ echo "| Started | $STARTED |"
151
+ echo "| Last Updated | $LAST_UPDATED |"
152
+ if [[ "$NOTES" != "-" ]]; then
153
+ echo "| Notes | $NOTES |"
154
+ fi
155
+ echo ""
156
+ echo "**Session:** $SESSION_FILE"
157
+ echo ""
158
+
159
+ if [[ "$STATUS" != "completed" ]]; then
160
+ echo "**Next:** Use \`/workflow resume\` to continue from step $CURRENT_STEP"
161
+ fi
@@ -0,0 +1,246 @@
1
+ ---
2
+ name: agentic-patterns
3
+ description: Core reasoning patterns for building effective LLM agents. Use when designing agent behavior, debugging agent failures, improving agent reliability, or understanding ReAct/Plan-and-Execute patterns.
4
+ allowed_tools: [Read, Glob, Grep, Task]
5
+ ---
6
+
7
+ # Agentic Patterns Skill
8
+
9
+ <run>When designing agent behavior, debugging agent failures, improving agent reliability.</run>
10
+
11
+ <output>Core reasoning patterns for building effective LLM agents. Includes ReAct, Plan-and-Execute, Self-Reflection, confidence calibration, error recovery, multi-agent coordination, and context management strategies.</output>
12
+
13
+ **Purpose:** Core reasoning patterns for building effective LLM agents.
14
+
15
+ **Use when:** Designing agent behavior, debugging agent failures, improving agent reliability.
16
+
17
+ ---
18
+
19
+ ## Core Reasoning Patterns
20
+
21
+ ### 1. ReAct (Reasoning and Acting)
22
+
23
+ The foundational agentic loop. Combines chain-of-thought with tool use.
24
+
25
+ ```
26
+ THOUGHT: What am I trying to accomplish? What do I know?
27
+ ACTION: Execute tool/command based on reasoning
28
+ OBSERVATION: What was the result? Did it match expectations?
29
+ THOUGHT: Based on observation, what next?
30
+ ... repeat until goal achieved
31
+ ```
32
+
33
+ **Why it works:** Grounds LLM outputs in real observations. Reduces hallucinations.
34
+
35
+ **When to use:** Most tasks. This is the default pattern.
36
+
37
+ **Example:**
38
+ ```
39
+ THOUGHT: I need to find where authentication is handled
40
+ ACTION: grep -r "authenticate" --include="*.go"
41
+ OBSERVATION: Found 3 files: auth.go, middleware.go, handlers.go
42
+ THOUGHT: middleware.go likely has the auth middleware, let me read it
43
+ ```
44
+
45
+ ### 2. Plan-and-Execute
46
+
47
+ Decompose complex goals into sub-tasks before acting.
48
+
49
+ ```
50
+ 1. PLAN: Break goal into discrete steps
51
+ 2. EXECUTE: Work through each step
52
+ 3. VERIFY: Check each step succeeded before moving on
53
+ 4. ADJUST: Replan if something fails
54
+ ```
55
+
56
+ **Why it works:** Prevents getting lost in complex tasks. Makes progress visible.
57
+
58
+ **When to use:** Multi-step tasks, unfamiliar codebases, architectural changes.
59
+
60
+ **Example:**
61
+ ```
62
+ PLAN for "Add user authentication":
63
+ 1. Check existing auth patterns in codebase
64
+ 2. Design auth middleware
65
+ 3. Implement token validation
66
+ 4. Add protected routes
67
+ 5. Write tests
68
+ 6. Update documentation
69
+
70
+ Now executing step 1...
71
+ ```
72
+
73
+ ### 3. Self-Reflection
74
+
75
+ Evaluate own outputs before presenting them.
76
+
77
+ ```
78
+ 1. GENERATE: Produce initial output
79
+ 2. CRITIQUE: What could be wrong? What did I assume?
80
+ 3. REFINE: Improve based on critique
81
+ 4. PRESENT: Only after reflection
82
+ ```
83
+
84
+ **Why it works:** Catches errors before they propagate. Improves quality.
85
+
86
+ **When to use:** Code generation, architectural decisions, any output that matters.
87
+
88
+ **Example:**
89
+ ```
90
+ GENERATED: Function to validate email
91
+ CRITIQUE: Did I handle edge cases? Empty string? Unicode?
92
+ REFINE: Add null check, use proper regex, handle IDN domains
93
+ PRESENT: Here's the validated function...
94
+ ```
95
+
96
+ ---
97
+
98
+ ## Confidence and Uncertainty
99
+
100
+ ### Confidence Levels
101
+
102
+ | Level | Indicators | Action |
103
+ |-------|-----------|--------|
104
+ | HIGH (proceed) | Matches known patterns, clear requirements, similar past success | Act autonomously |
105
+ | MEDIUM (verify) | Some unknowns, first time for this pattern, could break things | Ask before risky actions |
106
+ | LOW (ask) | Architectural change, security-sensitive, deleting files | Always ask user |
107
+
108
+ ### Expressing Uncertainty
109
+
110
+ When uncertain, SAY SO:
111
+
112
+ ```
113
+ GOOD: "I'm not sure if this is the right approach. Here's my reasoning..."
114
+ GOOD: "I found two possible solutions. Let me explain the tradeoffs..."
115
+ BAD: [silently picks one approach without mentioning alternatives]
116
+ BAD: [confidently states something without verifying]
117
+ ```
118
+
119
+ ### Confidence Calibration
120
+
121
+ Before acting, ask yourself:
122
+ 1. Have I seen this pattern before? (in skills, sidecars, or this session)
123
+ 2. What could go wrong?
124
+ 3. Is this reversible?
125
+ 4. Would a senior engineer want to review this?
126
+
127
+ ---
128
+
129
+ ## Error Recovery
130
+
131
+ ### The Retry Pattern
132
+
133
+ ```
134
+ 1. ATTEMPT: Try the action
135
+ 2. OBSERVE: Did it succeed?
136
+ 3. DIAGNOSE: If failed, why?
137
+ 4. ADJUST: Modify approach based on diagnosis
138
+ 5. RETRY: Max 2 retries with different approaches
139
+ 6. ESCALATE: If still failing, ask user
140
+ ```
141
+
142
+ ### Graceful Degradation
143
+
144
+ When stuck:
145
+ 1. **Never silently fail.** Always report what happened.
146
+ 2. **Provide context.** What were you trying to do? What went wrong?
147
+ 3. **Suggest alternatives.** "I couldn't do X, but I could try Y instead..."
148
+ 4. **Ask for help.** "I'm blocked on Z. Can you help?"
149
+
150
+ ### Common Failure Modes
151
+
152
+ | Failure | Recovery |
153
+ |---------|----------|
154
+ | Tool returned error | Read error message, adjust inputs, retry |
155
+ | Unexpected output | Verify assumptions, try different approach |
156
+ | Stuck in loop | Stop, reflect, try fundamentally different approach |
157
+ | Context exhaustion | Summarize progress, ask user for direction |
158
+
159
+ ---
160
+
161
+ ## Multi-Agent Coordination
162
+
163
+ ### Handoff Patterns
164
+
165
+ When handing off to another agent:
166
+
167
+ 1. **Write before you speak.** Update session file BEFORE saying "ready for X"
168
+ 2. **Summarize, don't dump.** Pass key findings, not full context
169
+ 3. **State expectations.** What should the next agent do?
170
+ 4. **Verify handoff.** Confirm the update was written
171
+
172
+ ### State Synchronization
173
+
174
+ **Session file is source of truth.** Always:
175
+ - Read session file on activation
176
+ - Write your assessment before handoff
177
+ - Verify what you wrote is actually in the file
178
+
179
+ ### Conflict Resolution
180
+
181
+ If agents disagree (e.g., Reviewer rejects Dev's code):
182
+ 1. Reviewer documents specific issues
183
+ 2. Dev addresses each issue
184
+ 3. Reviewer re-reviews
185
+ 4. Repeat until resolved or escalate to user
186
+
187
+ ---
188
+
189
+ ## Context Management
190
+
191
+ ### Just-in-Time Loading
192
+
193
+ **Don't:** Load all potentially relevant files upfront
194
+ **Do:** Store paths/identifiers, load only when needed
195
+
196
+ ```
197
+ WRONG: Read all 50 test files to understand testing patterns
198
+ RIGHT: Read testing skill, then load specific test when implementing
199
+ ```
200
+
201
+ ### Context Efficiency
202
+
203
+ - Keep tool results focused (don't read entire files if you need one function)
204
+ - Summarize findings rather than quoting everything
205
+ - Reference file:line instead of copying code
206
+
207
+ ### When Context Gets Full
208
+
209
+ 1. Summarize progress so far
210
+ 2. Identify what's still needed
211
+ 3. Ask user if you should continue with fresh context
212
+ 4. Or hand off to subagent with focused task
213
+
214
+ ---
215
+
216
+ ## Reasoning Mode (Toggleable)
217
+
218
+ **Default:** Quiet mode - follow patterns internally, show only key decisions
219
+
220
+ **Verbose mode:** User says "verbose mode" to enable explicit reasoning
221
+
222
+ When verbose, show:
223
+ ```
224
+ THOUGHT: [articulate intent]
225
+ ACTION: [describe tool/command]
226
+ OBSERVATION: [verify result]
227
+ REFLECT: [adjust if needed]
228
+ ```
229
+
230
+ When quiet, only show:
231
+ - Key decisions
232
+ - Results
233
+ - Questions/blockers
234
+
235
+ ---
236
+
237
+ ## Key Sources
238
+
239
+ - [Anthropic: Building Effective Agents](https://www.anthropic.com/research/building-effective-agents)
240
+ - [Anthropic: Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices)
241
+ - [LangChain: ReAct Pattern](https://blog.langchain.com/react-agent/)
242
+ - [LangChain: Reflection Agents](https://blog.langchain.com/reflection-agents/)
243
+
244
+ ---
245
+
246
+ **Remember:** The goal is not to follow patterns rigidly, but to THINK before acting, VERIFY results, and ASK when uncertain.