@pennyfarthing/core 10.0.3 → 10.1.0

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 (282) hide show
  1. package/README.md +9 -7
  2. package/package.json +7 -1
  3. package/packages/core/dist/cli/commands/cyclist.d.ts +5 -1
  4. package/packages/core/dist/cli/commands/cyclist.d.ts.map +1 -1
  5. package/packages/core/dist/cli/commands/cyclist.js +4 -4
  6. package/packages/core/dist/cli/commands/cyclist.js.map +1 -1
  7. package/packages/core/dist/cli/commands/cyclist.test.js +2 -2
  8. package/packages/core/dist/cli/commands/cyclist.test.js.map +1 -1
  9. package/packages/core/dist/cli/commands/doctor-legacy.test.js +17 -16
  10. package/packages/core/dist/cli/commands/doctor-legacy.test.js.map +1 -1
  11. package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
  12. package/packages/core/dist/cli/commands/doctor.js +251 -4
  13. package/packages/core/dist/cli/commands/doctor.js.map +1 -1
  14. package/packages/core/dist/cli/commands/init.d.ts +7 -0
  15. package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
  16. package/packages/core/dist/cli/commands/init.js +43 -7
  17. package/packages/core/dist/cli/commands/init.js.map +1 -1
  18. package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
  19. package/packages/core/dist/cli/commands/update.js +26 -0
  20. package/packages/core/dist/cli/commands/update.js.map +1 -1
  21. package/packages/core/dist/cli/index.js +1 -1
  22. package/packages/core/dist/cli/index.js.map +1 -1
  23. package/packages/core/dist/cli/ocean-profiles.test.js +1 -1
  24. package/packages/core/dist/cli/ocean-profiles.test.js.map +1 -1
  25. package/packages/core/dist/cli/utils/files.d.ts +10 -0
  26. package/packages/core/dist/cli/utils/files.d.ts.map +1 -1
  27. package/packages/core/dist/cli/utils/files.js +35 -0
  28. package/packages/core/dist/cli/utils/files.js.map +1 -1
  29. package/packages/core/dist/cli/utils/python.d.ts +22 -0
  30. package/packages/core/dist/cli/utils/python.d.ts.map +1 -0
  31. package/packages/core/dist/cli/utils/python.js +102 -0
  32. package/packages/core/dist/cli/utils/python.js.map +1 -0
  33. package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
  34. package/packages/core/dist/cli/utils/settings.js +10 -0
  35. package/packages/core/dist/cli/utils/settings.js.map +1 -1
  36. package/packages/core/dist/scripts/generate-report.d.ts.map +1 -1
  37. package/packages/core/dist/scripts/generate-report.js +11 -7
  38. package/packages/core/dist/scripts/generate-report.js.map +1 -1
  39. package/packages/core/dist/scripts/generate-spider-report.d.ts.map +1 -1
  40. package/packages/core/dist/scripts/generate-spider-report.js +12 -8
  41. package/packages/core/dist/scripts/generate-spider-report.js.map +1 -1
  42. package/packages/core/dist/scripts/generate-spider.d.ts.map +1 -1
  43. package/packages/core/dist/scripts/generate-spider.js +6 -4
  44. package/packages/core/dist/scripts/generate-spider.js.map +1 -1
  45. package/packages/core/dist/scripts/generate-spider.test.js +2 -2
  46. package/packages/core/dist/scripts/generate-spider.test.js.map +1 -1
  47. package/pennyfarthing-dist/agents/README.md +1 -3
  48. package/pennyfarthing-dist/agents/architect.md +0 -6
  49. package/pennyfarthing-dist/agents/devops.md +0 -6
  50. package/pennyfarthing-dist/agents/orchestrator.md +0 -6
  51. package/pennyfarthing-dist/agents/pm.md +1 -7
  52. package/pennyfarthing-dist/agents/sm-finish.md +1 -1
  53. package/pennyfarthing-dist/agents/sm-setup.md +2 -2
  54. package/pennyfarthing-dist/agents/sm.md +4 -11
  55. package/pennyfarthing-dist/commands/architect.md +11 -3
  56. package/pennyfarthing-dist/commands/close-epic.md +24 -131
  57. package/pennyfarthing-dist/commands/create-theme.md +14 -24
  58. package/pennyfarthing-dist/commands/dev.md +11 -3
  59. package/pennyfarthing-dist/commands/devops.md +11 -3
  60. package/pennyfarthing-dist/commands/health-check.md +1 -3
  61. package/pennyfarthing-dist/commands/help.md +8 -12
  62. package/pennyfarthing-dist/commands/list-themes.md +14 -16
  63. package/pennyfarthing-dist/commands/orchestrator.md +11 -3
  64. package/pennyfarthing-dist/commands/parallel-work.md +1 -3
  65. package/pennyfarthing-dist/commands/pm.md +11 -3
  66. package/pennyfarthing-dist/commands/prime.md +6 -6
  67. package/pennyfarthing-dist/commands/repo-status.md +2 -2
  68. package/pennyfarthing-dist/commands/reviewer.md +11 -3
  69. package/pennyfarthing-dist/commands/run-ci.md +1 -1
  70. package/pennyfarthing-dist/commands/set-theme.md +14 -51
  71. package/pennyfarthing-dist/commands/setup.md +1 -1
  72. package/pennyfarthing-dist/commands/show-theme.md +14 -16
  73. package/pennyfarthing-dist/commands/sm.md +11 -3
  74. package/pennyfarthing-dist/commands/sprint.md +8 -8
  75. package/pennyfarthing-dist/commands/tea.md +11 -3
  76. package/pennyfarthing-dist/commands/tech-writer.md +11 -3
  77. package/pennyfarthing-dist/commands/theme-maker.md +14 -671
  78. package/pennyfarthing-dist/commands/theme.md +95 -0
  79. package/pennyfarthing-dist/commands/ux-designer.md +11 -3
  80. package/pennyfarthing-dist/commands/work.md +3 -5
  81. package/pennyfarthing-dist/guides/agent-coordination.md +11 -13
  82. package/pennyfarthing-dist/guides/agent-template-tactical.md +2 -3
  83. package/pennyfarthing-dist/guides/command-tag-taxonomy.md +212 -0
  84. package/pennyfarthing-dist/guides/hooks.md +5 -5
  85. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +3 -3
  86. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +9 -59
  87. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +4 -5
  88. package/pennyfarthing-dist/guides/prime.md +2 -2
  89. package/pennyfarthing-dist/guides/skill-schema.md +25 -26
  90. package/pennyfarthing-dist/guides/xml-tags.md +2 -2
  91. package/pennyfarthing-dist/scripts/README.md +2 -2
  92. package/pennyfarthing-dist/scripts/core/agent-session.sh +6 -2
  93. package/pennyfarthing-dist/scripts/core/prime.sh +8 -10
  94. package/pennyfarthing-dist/scripts/git/git-status-all.sh +1 -1
  95. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +8 -6
  96. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +3 -3
  97. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +14 -12
  98. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +4 -3
  99. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +11 -5
  100. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +1 -1
  101. package/pennyfarthing-dist/scripts/misc/README.md +1 -1
  102. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +3 -3
  103. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +1 -2
  104. package/pennyfarthing-dist/scripts/sprint/README.md +32 -17
  105. package/pennyfarthing-dist/scripts/story/README.md +1 -1
  106. package/pennyfarthing-dist/scripts/test/test-setup.sh +1 -1
  107. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +5 -5
  108. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +3 -79
  109. package/pennyfarthing-dist/scripts/theme/README.md +1 -1
  110. package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +0 -1
  111. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +62 -17
  112. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +2 -2
  113. package/pennyfarthing-dist/skills/skill-registry.yaml +41 -28
  114. package/pennyfarthing-dist/skills/sprint/skill.md +386 -68
  115. package/pennyfarthing-dist/skills/story/skill.md +14 -206
  116. package/pennyfarthing-dist/skills/theme/skill.md +290 -75
  117. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +23 -166
  118. package/pennyfarthing-dist/skills/workflow/skill.md +4 -4
  119. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +0 -11
  120. package/pennyfarthing-dist/templates/auto-load-sm.sh.template +14 -0
  121. package/pennyfarthing-dist/templates/settings.local.json.template +9 -0
  122. package/pennyfarthing-dist/workflows/2party-tdd.yaml +399 -0
  123. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +42 -25
  124. package/pennyfarthing-dist/workflows/git-cleanup.yaml +1 -1
  125. package/pennyfarthing-dist/workflows/project-setup/steps/step-10-complete.md +1 -1
  126. package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
  127. package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
  128. package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
  129. package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
  130. package/pennyfarthing_scripts/cli.py +15 -0
  131. package/pennyfarthing_scripts/codemarkers/__init__.py +19 -0
  132. package/pennyfarthing_scripts/codemarkers/__main__.py +6 -0
  133. package/pennyfarthing_scripts/codemarkers/__pycache__/__init__.cpython-314.pyc +0 -0
  134. package/pennyfarthing_scripts/codemarkers/__pycache__/__main__.cpython-314.pyc +0 -0
  135. package/pennyfarthing_scripts/codemarkers/__pycache__/analyze.cpython-314.pyc +0 -0
  136. package/pennyfarthing_scripts/codemarkers/__pycache__/cli.cpython-314.pyc +0 -0
  137. package/pennyfarthing_scripts/codemarkers/__pycache__/formatters.cpython-314.pyc +0 -0
  138. package/pennyfarthing_scripts/codemarkers/__pycache__/models.cpython-314.pyc +0 -0
  139. package/pennyfarthing_scripts/codemarkers/analyze.py +326 -0
  140. package/pennyfarthing_scripts/codemarkers/cli.py +129 -0
  141. package/pennyfarthing_scripts/codemarkers/formatters.py +89 -0
  142. package/pennyfarthing_scripts/codemarkers/models.py +45 -0
  143. package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
  144. package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
  145. package/pennyfarthing_scripts/common/config.py +2 -1
  146. package/pennyfarthing_scripts/complexity/__init__.py +15 -0
  147. package/pennyfarthing_scripts/complexity/__main__.py +6 -0
  148. package/pennyfarthing_scripts/complexity/__pycache__/__init__.cpython-314.pyc +0 -0
  149. package/pennyfarthing_scripts/complexity/__pycache__/__main__.cpython-314.pyc +0 -0
  150. package/pennyfarthing_scripts/complexity/__pycache__/analyze.cpython-314.pyc +0 -0
  151. package/pennyfarthing_scripts/complexity/__pycache__/cli.cpython-314.pyc +0 -0
  152. package/pennyfarthing_scripts/complexity/__pycache__/formatters.cpython-314.pyc +0 -0
  153. package/pennyfarthing_scripts/complexity/__pycache__/models.cpython-314.pyc +0 -0
  154. package/pennyfarthing_scripts/complexity/analyze.py +207 -0
  155. package/pennyfarthing_scripts/complexity/cli.py +78 -0
  156. package/pennyfarthing_scripts/complexity/formatters.py +64 -0
  157. package/pennyfarthing_scripts/complexity/models.py +32 -0
  158. package/pennyfarthing_scripts/deadcode/__init__.py +6 -0
  159. package/pennyfarthing_scripts/deadcode/__main__.py +6 -0
  160. package/pennyfarthing_scripts/deadcode/__pycache__/__init__.cpython-314.pyc +0 -0
  161. package/pennyfarthing_scripts/deadcode/__pycache__/__main__.cpython-314.pyc +0 -0
  162. package/pennyfarthing_scripts/deadcode/__pycache__/analyze.cpython-314.pyc +0 -0
  163. package/pennyfarthing_scripts/deadcode/__pycache__/cli.cpython-314.pyc +0 -0
  164. package/pennyfarthing_scripts/deadcode/__pycache__/formatters.cpython-314.pyc +0 -0
  165. package/pennyfarthing_scripts/deadcode/__pycache__/models.cpython-314.pyc +0 -0
  166. package/pennyfarthing_scripts/deadcode/analyze.py +323 -0
  167. package/pennyfarthing_scripts/deadcode/cli.py +163 -0
  168. package/pennyfarthing_scripts/deadcode/formatters.py +106 -0
  169. package/pennyfarthing_scripts/deadcode/models.py +54 -0
  170. package/pennyfarthing_scripts/dependencies/__init__.py +20 -0
  171. package/pennyfarthing_scripts/dependencies/__main__.py +5 -0
  172. package/pennyfarthing_scripts/dependencies/__pycache__/__init__.cpython-314.pyc +0 -0
  173. package/pennyfarthing_scripts/dependencies/__pycache__/__main__.cpython-314.pyc +0 -0
  174. package/pennyfarthing_scripts/dependencies/__pycache__/analyze.cpython-314.pyc +0 -0
  175. package/pennyfarthing_scripts/dependencies/__pycache__/cli.cpython-314.pyc +0 -0
  176. package/pennyfarthing_scripts/dependencies/__pycache__/formatters.cpython-314.pyc +0 -0
  177. package/pennyfarthing_scripts/dependencies/__pycache__/models.cpython-314.pyc +0 -0
  178. package/pennyfarthing_scripts/dependencies/analyze.py +155 -0
  179. package/pennyfarthing_scripts/dependencies/cli.py +72 -0
  180. package/pennyfarthing_scripts/dependencies/formatters.py +63 -0
  181. package/pennyfarthing_scripts/dependencies/models.py +39 -0
  182. package/pennyfarthing_scripts/healthscore/__init__.py +21 -0
  183. package/pennyfarthing_scripts/healthscore/__main__.py +6 -0
  184. package/pennyfarthing_scripts/healthscore/__pycache__/__init__.cpython-314.pyc +0 -0
  185. package/pennyfarthing_scripts/healthscore/__pycache__/__main__.cpython-314.pyc +0 -0
  186. package/pennyfarthing_scripts/healthscore/__pycache__/analyze.cpython-314.pyc +0 -0
  187. package/pennyfarthing_scripts/healthscore/__pycache__/cli.cpython-314.pyc +0 -0
  188. package/pennyfarthing_scripts/healthscore/__pycache__/formatters.cpython-314.pyc +0 -0
  189. package/pennyfarthing_scripts/healthscore/__pycache__/models.cpython-314.pyc +0 -0
  190. package/pennyfarthing_scripts/healthscore/analyze.py +161 -0
  191. package/pennyfarthing_scripts/healthscore/cli.py +76 -0
  192. package/pennyfarthing_scripts/healthscore/formatters.py +46 -0
  193. package/pennyfarthing_scripts/healthscore/models.py +44 -0
  194. package/pennyfarthing_scripts/hotspots/__pycache__/__init__.cpython-314.pyc +0 -0
  195. package/pennyfarthing_scripts/hotspots/__pycache__/__main__.cpython-314.pyc +0 -0
  196. package/pennyfarthing_scripts/hotspots/__pycache__/analyze.cpython-314.pyc +0 -0
  197. package/pennyfarthing_scripts/hotspots/__pycache__/cli.cpython-314.pyc +0 -0
  198. package/pennyfarthing_scripts/hotspots/__pycache__/formatters.cpython-314.pyc +0 -0
  199. package/pennyfarthing_scripts/hotspots/__pycache__/models.cpython-314.pyc +0 -0
  200. package/pennyfarthing_scripts/hotspots/analyze.py +28 -1
  201. package/pennyfarthing_scripts/hotspots/cli.py +11 -9
  202. package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
  203. package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
  204. package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
  205. package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
  206. package/pennyfarthing_scripts/jira/__pycache__/create.cpython-314.pyc +0 -0
  207. package/pennyfarthing_scripts/jira/__pycache__/operations.cpython-314.pyc +0 -0
  208. package/pennyfarthing_scripts/jira/__pycache__/reconcile.cpython-314.pyc +0 -0
  209. package/pennyfarthing_scripts/jira/bidirectional.py +42 -15
  210. package/pennyfarthing_scripts/jira/cli.py +78 -1
  211. package/pennyfarthing_scripts/jira/client.py +28 -0
  212. package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
  213. package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
  214. package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
  215. package/pennyfarthing_scripts/prime/__pycache__/tiers.cpython-314.pyc +0 -0
  216. package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  217. package/pennyfarthing_scripts/prime/workflow.py +5 -3
  218. package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
  219. package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
  220. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  221. package/pennyfarthing_scripts/sprint/__pycache__/epic_add.cpython-314.pyc +0 -0
  222. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  223. package/pennyfarthing_scripts/sprint/__pycache__/story_add.cpython-314.pyc +0 -0
  224. package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
  225. package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
  226. package/pennyfarthing_scripts/sprint/__pycache__/validate_cmd.cpython-314.pyc +0 -0
  227. package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
  228. package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
  229. package/pennyfarthing_scripts/sprint/__pycache__/yaml_io.cpython-314.pyc +0 -0
  230. package/pennyfarthing_scripts/sprint/archive.py +63 -6
  231. package/pennyfarthing_scripts/sprint/archive_epic.py +198 -85
  232. package/pennyfarthing_scripts/sprint/cli.py +1565 -65
  233. package/pennyfarthing_scripts/sprint/epic_add.py +173 -0
  234. package/pennyfarthing_scripts/sprint/loader.py +46 -2
  235. package/pennyfarthing_scripts/sprint/story_add.py +202 -27
  236. package/pennyfarthing_scripts/sprint/story_finish.py +211 -0
  237. package/pennyfarthing_scripts/sprint/validate_cmd.py +44 -5
  238. package/pennyfarthing_scripts/sprint/validator.py +13 -3
  239. package/pennyfarthing_scripts/sprint/work.py +43 -3
  240. package/pennyfarthing_scripts/sprint/yaml_io.py +124 -15
  241. package/pennyfarthing_scripts/tests/__pycache__/test_codemarkers.cpython-314-pytest-9.0.2.pyc +0 -0
  242. package/pennyfarthing_scripts/tests/__pycache__/test_healthscore.cpython-314-pytest-9.0.2.pyc +0 -0
  243. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
  244. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
  245. package/pennyfarthing_scripts/tests/__pycache__/test_story_add.cpython-314-pytest-9.0.2.pyc +0 -0
  246. package/pennyfarthing_scripts/tests/__pycache__/test_story_update.cpython-314-pytest-9.0.2.pyc +0 -0
  247. package/pennyfarthing_scripts/tests/__pycache__/test_validate_cmd.cpython-314-pytest-9.0.2.pyc +0 -0
  248. package/pennyfarthing_scripts/tests/__pycache__/test_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
  249. package/pennyfarthing_scripts/tests/test_codemarkers.py +682 -0
  250. package/pennyfarthing_scripts/tests/test_healthscore.py +524 -0
  251. package/pennyfarthing_scripts/tests/test_sprint_package.py +166 -0
  252. package/pennyfarthing_scripts/tests/test_yaml_io.py +117 -0
  253. package/pennyfarthing_scripts/theme/__init__.py +5 -0
  254. package/pennyfarthing_scripts/theme/__main__.py +6 -0
  255. package/pennyfarthing_scripts/theme/__pycache__/__init__.cpython-314.pyc +0 -0
  256. package/pennyfarthing_scripts/theme/__pycache__/cli.cpython-314.pyc +0 -0
  257. package/pennyfarthing_scripts/theme/cli.py +286 -0
  258. package/scripts/README.md +53 -0
  259. package/scripts/postinstall.cjs +34 -0
  260. package/pennyfarthing-dist/agents/workflow-status-check.md +0 -96
  261. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +0 -133
  262. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +0 -91
  263. package/pennyfarthing-dist/scripts/sprint/check-story.sh +0 -158
  264. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +0 -52
  265. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +0 -63
  266. package/pennyfarthing-dist/scripts/sprint/list-future.sh +0 -145
  267. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +0 -110
  268. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +0 -148
  269. package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +0 -415
  270. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +0 -33
  271. package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +0 -230
  272. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +0 -134
  273. package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +0 -139
  274. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +0 -101
  275. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +0 -97
  276. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +0 -164
  277. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +0 -23
  278. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +0 -116
  279. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +0 -164
  280. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +0 -39
  281. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +0 -147
  282. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +0 -23
@@ -45,7 +45,6 @@ If they are broken, COMPLAIN LOUDLY
45
45
 
46
46
  | Subagent | Purpose |
47
47
  |----------|---------|
48
- | `workflow-status-check` | Detect state: FINISH/NEW_WORK/IN_PROGRESS/EMPTY_BACKLOG |
49
48
  | `sm-setup` | MODE=research (backlog scan) OR MODE=setup (story setup) |
50
49
  | `sm-finish` | PHASE=preflight (checks) OR PHASE=execute (archive) |
51
50
  | `sm-file-summary` | Summarize implementation files for context |
@@ -55,11 +54,6 @@ If they are broken, COMPLAIN LOUDLY
55
54
  <parameters>
56
55
  ## Subagent Parameters
57
56
 
58
- ### workflow-status-check
59
- ```yaml
60
- CALLING_AGENT: "SM"
61
- ```
62
-
63
57
  ### sm-setup (research mode)
64
58
  ```yaml
65
59
  MODE: "research"
@@ -135,7 +129,7 @@ Prime script provides workflow state. Route based on state from activation outpu
135
129
  **Never manually edit sprint YAML.** The finish script handles all YAML updates.
136
130
 
137
131
  <critical>
138
- **Use `/story` skill to create stories.** Never manually edit sprint YAML to add stories.
132
+ **Use `/sprint story add` to create stories.** Never manually edit sprint YAML to add stories.
139
133
  </critical>
140
134
  </finish-flow>
141
135
 
@@ -168,7 +162,7 @@ Present to user:
168
162
 
169
163
  1. **Get workflow type:**
170
164
  ```bash
171
- WORKFLOW=$(.pennyfarthing/scripts/sprint/get-story-field.sh X-Y workflow)
165
+ WORKFLOW=$(pf sprint story field X-Y workflow)
172
166
  WORKFLOW_TYPE=$(.pennyfarthing/scripts/workflow/get-workflow-type.sh "$WORKFLOW")
173
167
  ```
174
168
 
@@ -226,7 +220,7 @@ Before `sm-handoff`, verify ALL of these:
226
220
  > **Triggered when:** `EMPTY_BACKLOG_STATE`
227
221
 
228
222
  1. Report: "Sprint backlog empty. All stories done or cancelled."
229
- 2. Show future work: `.pennyfarthing/scripts/sprint/list-future.sh`
223
+ 2. Show future work: `pf sprint future`
230
224
  3. Offer: "Promote stories from `future.yaml`?" → `/sprint promote {epic-id}`
231
225
 
232
226
  **Never suggest:** Closing sprint early, starting sprint planning. Sprints are fixed two-week periods.
@@ -284,8 +278,7 @@ OWNER=$(.pennyfarthing/scripts/workflow/phase-owner.sh {workflow} {phase})
284
278
  </phase-check>
285
279
 
286
280
  <skills>
287
- - `/sprint` - Sprint management
288
- - `/story` - Story operations
281
+ - `/sprint` - Sprint management (including story and epic operations)
289
282
  - `/jira` - Jira integration
290
283
  </skills>
291
284
 
@@ -2,8 +2,16 @@
2
2
  description: System Architect - Technical design and architecture
3
3
  ---
4
4
 
5
+ <agent-activation>
6
+ **FIRST:** Use Bash tool to run:
5
7
  ```bash
6
- d="$PWD"; while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done
7
- export PYTHONPATH="$(dirname "$(dirname "$(cd "$d/.pennyfarthing/scripts" && pwd -P)")"):${PYTHONPATH:-}"
8
- python3 -m pennyfarthing_scripts.cli agent start "architect"
8
+ pf agent start "architect"
9
9
  ```
10
+ This loads your persona and agent context. Adopt the character shown in the output.
11
+ </agent-activation>
12
+
13
+ <instructions>
14
+ You are now the Architect agent. Follow your agent instructions from the activation output.
15
+
16
+ The activation output begins with a `# Workflow State` section containing `state`, `story_id`, `phase`, `phase_owner`, and `backlog_count`. Act on this state per your agent definition.
17
+ </instructions>
@@ -2,138 +2,31 @@
2
2
  description: Close an epic - verify completion, update status, and archive context
3
3
  ---
4
4
 
5
- # Close Epic Workflow
5
+ # Close Epic
6
6
 
7
- **This command closes an epic by verifying all stories are done, updating status, and optionally archiving context.**
7
+ <purpose>
8
+ Closes an epic after all stories are done. Updates sprint YAML, transitions Jira, archives context.
9
+ Counterpart to `/start-epic`. Idempotent — safe to run multiple times.
10
+ </purpose>
8
11
 
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:
12
+ <usage>
71
13
  ```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
14
+ /close-epic 79 # Close epic 79
15
+ /close-epic epic-79 # Also accepts epic-N format
78
16
  ```
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
17
+ </usage>
18
+
19
+ <workflow>
20
+ 1. Parse epic ID (strip `epic-` prefix if present). Ask if not provided.
21
+ 2. Read epic shard `sprint/epic-{JIRA_KEY}.yaml`, verify all stories `status: done`. Warn if incomplete.
22
+ 3. Update epic: `status: done`, `completed_points: {sum of story points}`
23
+ 4. Recalculate sprint summary totals in `sprint/current-sprint.yaml`
24
+ 5. If epic has `jira:` key → `pf jira move {JIRA_KEY} "Done"`
25
+ 6. If `sprint/context/context-epic-{N}.md` exists move to `sprint/archive/`
26
+ 7. Commit and push sprint changes
27
+ </workflow>
28
+
29
+ <related>
30
+ - `/start-epic` — Start an epic (move to current sprint, generate context)
31
+ - `/sprint status` — View sprint progress
32
+ </related>
@@ -1,29 +1,19 @@
1
1
  ---
2
- description: Create a new custom persona theme
2
+ description: |
3
+ DEPRECATED: Use /theme create or /theme maker instead.
4
+ Theme commands have been consolidated under /theme.
5
+ deprecated: true
6
+ redirect: theme
3
7
  ---
4
8
 
5
- # Create Theme
9
+ # /create-theme - DEPRECATED
6
10
 
7
- Create a new custom theme, optionally based on an existing theme.
11
+ Theme commands have been consolidated into `/theme`. Use:
8
12
 
9
- ## Arguments
10
-
11
- - `<name>` - Name for the new theme (lowercase, hyphens allowed)
12
-
13
- ## Options
14
-
15
- - `--base <theme>` - Base theme to copy from (default: minimalist)
16
- - `--user` - Create as user-level theme (available across all projects)
17
-
18
- ## Instructions
19
-
20
- 1. If no theme name provided, ask the user what they want to call their theme.
21
-
22
- 2. Create the theme:
23
- ```bash
24
- pennyfarthing theme create <name> [--base <theme>] [--user]
25
- ```
26
-
27
- 3. Guide the user on next steps:
28
- - Edit the theme file to customize agents
29
- - Run `/set-theme <name>` to activate
13
+ | Old Command | New Command |
14
+ |-------------|-------------|
15
+ | `/create-theme <name>` | `/theme create <name>` |
16
+ | `/theme-maker` | `/theme maker` |
17
+ | `/list-themes` | `/theme list` |
18
+ | `/show-theme [name]` | `/theme show [name]` |
19
+ | `/set-theme <name>` | `/theme set <name>` |
@@ -2,8 +2,16 @@
2
2
  description: Developer - Feature implementation and coding
3
3
  ---
4
4
 
5
+ <agent-activation>
6
+ **FIRST:** Use Bash tool to run:
5
7
  ```bash
6
- d="$PWD"; while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done
7
- export PYTHONPATH="$(dirname "$(dirname "$(cd "$d/.pennyfarthing/scripts" && pwd -P)")"):${PYTHONPATH:-}"
8
- python3 -m pennyfarthing_scripts.cli agent start "dev"
8
+ pf agent start "dev"
9
9
  ```
10
+ This loads your persona and agent context. Adopt the character shown in the output.
11
+ </agent-activation>
12
+
13
+ <instructions>
14
+ You are now the Dev agent. Follow your agent instructions from the activation output.
15
+
16
+ The activation output begins with a `# Workflow State` section containing `state`, `story_id`, `phase`, `phase_owner`, and `backlog_count`. Act on this state per your agent definition.
17
+ </instructions>
@@ -2,8 +2,16 @@
2
2
  description: DevOps Engineer - Infrastructure and deployment automation
3
3
  ---
4
4
 
5
+ <agent-activation>
6
+ **FIRST:** Use Bash tool to run:
5
7
  ```bash
6
- d="$PWD"; while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done
7
- export PYTHONPATH="$(dirname "$(dirname "$(cd "$d/.pennyfarthing/scripts" && pwd -P)")"):${PYTHONPATH:-}"
8
- python3 -m pennyfarthing_scripts.cli agent start "devops"
8
+ pf agent start "devops"
9
9
  ```
10
+ This loads your persona and agent context. Adopt the character shown in the output.
11
+ </agent-activation>
12
+
13
+ <instructions>
14
+ You are now the DevOps agent. Follow your agent instructions from the activation output.
15
+
16
+ The activation output begins with a `# Workflow State` section containing `state`, `story_id`, `phase`, `phase_owner`, and `backlog_count`. Act on this state per your agent definition.
17
+ </instructions>
@@ -3,9 +3,7 @@ description: Check Pennyfarthing installation health and apply updates
3
3
  ---
4
4
 
5
5
  ```bash
6
- d="$PWD"; while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done
7
- export PYTHONPATH="$(dirname "$(dirname "$(cd "$d/.pennyfarthing/scripts" && pwd -P)")"):${PYTHONPATH:-}"
8
- python3 -m pennyfarthing_scripts.cli agent start "devops"
6
+ pf agent start "devops"
9
7
  ```
10
8
 
11
9
  <agent-activation>
@@ -132,14 +132,10 @@ SM → TEA → Dev → Reviewer → SM (finish)
132
132
  | `/prime` | Load essential project context at agent activation |
133
133
  | `/health-check` | Check Pennyfarthing installation health and apply updates |
134
134
 
135
- ### Theme Management (5)
135
+ ### Theme Management (1)
136
136
  | Command | Description |
137
137
  |---------|-------------|
138
- | `/list-themes` | List all available persona themes |
139
- | `/show-theme` | Show details of a theme including all agent personas |
140
- | `/set-theme` | Set the active persona theme |
141
- | `/create-theme` | Create a new custom persona theme |
142
- | `/theme-maker` | Interactive wizard for creating custom persona themes |
138
+ | `/theme [list\|show\|set\|create\|maker]` | Manage persona themes — list, show, set, create, or interactive wizard |
143
139
 
144
140
  ### Creative & Brainstorm (4)
145
141
  | Command | Description |
@@ -192,17 +188,17 @@ Pennyfarthing agents adopt personas from themed character sets. There are **102
192
188
  | `breaking-bad` | Breaking Bad characters |
193
189
  | `battlestar-galactica` | Battlestar Galactica characters |
194
190
 
195
- Run `/list-themes` to see all 102 available themes.
191
+ Run `/theme list` to see all 102 available themes.
196
192
 
197
193
  ### Theme Commands
198
194
 
199
195
  | Command | Description |
200
196
  |---------|-------------|
201
- | `/list-themes` | See all available themes |
202
- | `/show-theme` | View current theme with character mappings |
203
- | `/set-theme <name>` | Change to a different theme |
204
- | `/create-theme` | Create a custom theme |
205
- | `/theme-maker` | Interactive theme creation wizard |
197
+ | `/theme list` | See all available themes |
198
+ | `/theme show [name]` | View current theme with character mappings |
199
+ | `/theme set <name>` | Change to a different theme |
200
+ | `/theme create <name>` | Create a custom theme |
201
+ | `/theme maker` | Interactive theme creation wizard |
206
202
 
207
203
  ### Current Theme
208
204
 
@@ -1,21 +1,19 @@
1
1
  ---
2
- description: List all available persona themes
2
+ description: |
3
+ DEPRECATED: Use /theme list instead.
4
+ Theme commands have been consolidated under /theme.
5
+ deprecated: true
6
+ redirect: theme
3
7
  ---
4
8
 
5
- # List Themes
9
+ # /list-themes - DEPRECATED
6
10
 
7
- Show all available persona themes with the current theme highlighted.
11
+ Theme commands have been consolidated into `/theme`. Use:
8
12
 
9
- ## Instructions
10
-
11
- Run the list-themes script and display the output directly to the user:
12
-
13
- ```bash
14
- $CLAUDE_PROJECT_DIR/pennyfarthing-dist/scripts/list-themes.sh
15
- ```
16
-
17
- **IMPORTANT:** Copy the script output into your response text so the user sees it in the console. Bash tool output may be collapsed in the UI.
18
-
19
- The output shows:
20
- - Current theme marked with `*`
21
- - Tier in brackets: `[S]` elite, `[A]` excellent, `[B]` strong, `[C]` good, `[D]` below average, `[U]` unbenchmarked
13
+ | Old Command | New Command |
14
+ |-------------|-------------|
15
+ | `/list-themes` | `/theme list` |
16
+ | `/show-theme [name]` | `/theme show [name]` |
17
+ | `/set-theme <name>` | `/theme set <name>` |
18
+ | `/create-theme <name>` | `/theme create <name>` |
19
+ | `/theme-maker` | `/theme maker` |
@@ -2,8 +2,16 @@
2
2
  description: Orchestrator - Coordinator of all agents and meta operations
3
3
  ---
4
4
 
5
+ <agent-activation>
6
+ **FIRST:** Use Bash tool to run:
5
7
  ```bash
6
- d="$PWD"; while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done
7
- export PYTHONPATH="$(dirname "$(dirname "$(cd "$d/.pennyfarthing/scripts" && pwd -P)")"):${PYTHONPATH:-}"
8
- python3 -m pennyfarthing_scripts.cli agent start "orchestrator"
8
+ pf agent start "orchestrator"
9
9
  ```
10
+ This loads your persona and agent context. Adopt the character shown in the output.
11
+ </agent-activation>
12
+
13
+ <instructions>
14
+ You are now the Orchestrator agent. Follow your agent instructions from the activation output.
15
+
16
+ The activation output begins with a `# Workflow State` section containing `state`, `story_id`, `phase`, `phase_owner`, and `backlog_count`. Act on this state per your agent definition.
17
+ </instructions>
@@ -3,9 +3,7 @@ description: Start parallel work in a new worktree
3
3
  ---
4
4
 
5
5
  ```bash
6
- d="$PWD"; while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done
7
- export PYTHONPATH="$(dirname "$(dirname "$(cd "$d/.pennyfarthing/scripts" && pwd -P)")"):${PYTHONPATH:-}"
8
- python3 -m pennyfarthing_scripts.cli agent start "sm"
6
+ pf agent start "sm"
9
7
  ```
10
8
 
11
9
  <parallel-work-flow>
@@ -2,8 +2,16 @@
2
2
  description: Product Manager - Strategic planning and prioritization
3
3
  ---
4
4
 
5
+ <agent-activation>
6
+ **FIRST:** Use Bash tool to run:
5
7
  ```bash
6
- d="$PWD"; while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done
7
- export PYTHONPATH="$(dirname "$(dirname "$(cd "$d/.pennyfarthing/scripts" && pwd -P)")"):${PYTHONPATH:-}"
8
- python3 -m pennyfarthing_scripts.cli agent start "pm"
8
+ pf agent start "pm"
9
9
  ```
10
+ This loads your persona and agent context. Adopt the character shown in the output.
11
+ </agent-activation>
12
+
13
+ <instructions>
14
+ You are now the PM agent. Follow your agent instructions from the activation output.
15
+
16
+ The activation output begins with a `# Workflow State` section containing `state`, `story_id`, `phase`, `phase_owner`, and `backlog_count`. Act on this state per your agent definition.
17
+ </instructions>
@@ -17,23 +17,23 @@ Automatically invoked on agent activation via `pf agent start`.
17
17
 
18
18
  ## Running /prime
19
19
 
20
- Use the Python CLI:
20
+ Use the `pf` CLI:
21
21
 
22
22
  ```bash
23
23
  # Load all essential context (default)
24
- python3 -m pennyfarthing_scripts.cli agent start "sm"
24
+ pf agent start "sm"
25
25
 
26
26
  # Minimal mode - fastest startup
27
- python3 -m pennyfarthing_scripts.cli agent start "sm" --minimal
27
+ pf agent start "sm" --minimal
28
28
 
29
29
  # Full mode - include domain docs
30
- python3 -m pennyfarthing_scripts.cli agent start "sm" --full
30
+ pf agent start "sm" --full
31
31
 
32
32
  # Skip persona loading
33
- python3 -m pennyfarthing_scripts.cli agent start "sm" --no-persona
33
+ pf agent start "sm" --no-persona
34
34
 
35
35
  # JSON output (for Cyclist integration)
36
- python3 -m pennyfarthing_scripts.cli agent start "sm" --json
36
+ pf agent start "sm" --json
37
37
  ```
38
38
 
39
39
  ## Options
@@ -8,7 +8,7 @@ Check the git status of all project repos at once.
8
8
 
9
9
  ## Configuration
10
10
 
11
- Repos are configured in `.claude/project/repos.yaml`. The script automatically reads this configuration.
11
+ Repos are configured in `.pennyfarthing/repos.yaml`. The script automatically reads this configuration.
12
12
 
13
13
  ## Instructions
14
14
 
@@ -34,7 +34,7 @@ For each configured repo:
34
34
 
35
35
  ## Adding More Repos
36
36
 
37
- To add repos, edit `.claude/project/repos.yaml`:
37
+ To add repos, edit `.pennyfarthing/repos.yaml`:
38
38
 
39
39
  ```yaml
40
40
  repos:
@@ -2,8 +2,16 @@
2
2
  description: Code Reviewer - Critical code review and quality enforcement
3
3
  ---
4
4
 
5
+ <agent-activation>
6
+ **FIRST:** Use Bash tool to run:
5
7
  ```bash
6
- d="$PWD"; while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done
7
- export PYTHONPATH="$(dirname "$(dirname "$(cd "$d/.pennyfarthing/scripts" && pwd -P)")"):${PYTHONPATH:-}"
8
- python3 -m pennyfarthing_scripts.cli agent start "reviewer"
8
+ pf agent start "reviewer"
9
9
  ```
10
+ This loads your persona and agent context. Adopt the character shown in the output.
11
+ </agent-activation>
12
+
13
+ <instructions>
14
+ You are now the Reviewer agent. Follow your agent instructions from the activation output.
15
+
16
+ The activation output begins with a `# Workflow State` section containing `state`, `story_id`, `phase`, `phase_owner`, and `backlog_count`. Act on this state per your agent definition.
17
+ </instructions>
@@ -111,6 +111,6 @@ If a required tool is not installed, the script will show a warning.
111
111
  </requirements>
112
112
 
113
113
  <reference>
114
- - **Script:** `.pennyfarthing/scripts/run-ci.sh`
114
+ - **Script:** `.pennyfarthing/scripts/misc/run-ci.sh`
115
115
  - **Story:** 21-4 (Command & Skill Expansion)
116
116
  </reference>
@@ -1,56 +1,19 @@
1
1
  ---
2
- description: Set the active persona theme
2
+ description: |
3
+ DEPRECATED: Use /theme set instead.
4
+ Theme commands have been consolidated under /theme.
5
+ deprecated: true
6
+ redirect: theme
3
7
  ---
4
8
 
5
- # Set Theme
9
+ # /set-theme - DEPRECATED
6
10
 
7
- Change the active persona theme for all agents.
11
+ Theme commands have been consolidated into `/theme`. Use:
8
12
 
9
- ## Arguments
10
-
11
- - `<name>` - Theme name to activate (required)
12
-
13
- ## Instructions
14
-
15
- 1. If no theme name provided, list available themes:
16
- ```bash
17
- ls pennyfarthing-dist/personas/themes/*.yaml | xargs -I{} basename {} .yaml | sort
18
- ```
19
- Then ask the user which theme they want to use.
20
-
21
- 2. Validate theme exists:
22
- ```bash
23
- ls pennyfarthing-dist/personas/themes/<name>.yaml
24
- ```
25
- If not found, show error and list available themes.
26
-
27
- 3. Read the current config file to prepare for editing:
28
- ```bash
29
- cat .pennyfarthing/config.local.yaml 2>/dev/null || echo "FILE_NOT_FOUND"
30
- ```
31
-
32
- 4. Set the theme in `.pennyfarthing/config.local.yaml`:
33
-
34
- **If the file exists and has a `theme:` line:**
35
- - Use the Edit tool to replace `theme: <old>` with `theme: <new>`
36
-
37
- **If the file doesn't exist or lacks the theme line:**
38
- - Use the Write tool to create/overwrite the file:
39
- ```yaml
40
- # Pennyfarthing Local Configuration
41
- # This file is gitignored - your personal preferences
42
-
43
- theme: <name>
44
- ```
45
-
46
- 5. Verify the change was written:
47
- ```bash
48
- cat .pennyfarthing/config.local.yaml
49
- ```
50
- Confirm the theme line shows the new value.
51
-
52
- 6. Refresh the current agent's persona to apply the new theme:
53
- ```bash
54
- python3 -m pennyfarthing_scripts.cli agent start "sm"
55
- ```
56
- This outputs the updated persona. **Adopt the new character immediately** - do not continue using the old persona.
13
+ | Old Command | New Command |
14
+ |-------------|-------------|
15
+ | `/set-theme <name>` | `/theme set <name>` |
16
+ | `/show-theme [name]` | `/theme show [name]` |
17
+ | `/list-themes` | `/theme list` |
18
+ | `/create-theme <name>` | `/theme create <name>` |
19
+ | `/theme-maker` | `/theme maker` |
@@ -59,7 +59,7 @@ cat .pennyfarthing/workflows/project-setup/steps/step-01-discover.md
59
59
 
60
60
  <related>
61
61
  - `/sprint` - Sprint management after setup
62
- - `/theme` - Change themes after setup
62
+ - `/theme set` - Change themes after setup
63
63
  - `/workflow` - View available workflows
64
64
  - `pennyfarthing doctor` - Validate installation
65
65
  </related>