@pennyfarthing/core 7.9.0 → 7.9.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 (1034) hide show
  1. package/{packages/core/dist → dist}/cli/commands/doctor.d.ts +0 -3
  2. package/{packages/core/dist → dist}/cli/commands/doctor.d.ts.map +1 -1
  3. package/{packages/core/dist → dist}/cli/commands/doctor.js +9 -20
  4. package/{packages/core/dist → dist}/cli/commands/doctor.js.map +1 -1
  5. package/{packages/core/dist → dist}/cli/commands/init.js +16 -2
  6. package/{packages/core/dist → dist}/cli/commands/init.js.map +1 -1
  7. package/package.json +37 -32
  8. package/LICENSE +0 -14
  9. package/README.md +0 -209
  10. package/pennyfarthing-dist/agents/README.md +0 -348
  11. package/pennyfarthing-dist/agents/architect.md +0 -180
  12. package/pennyfarthing-dist/agents/dev.md +0 -169
  13. package/pennyfarthing-dist/agents/devops.md +0 -203
  14. package/pennyfarthing-dist/agents/handoff.md +0 -235
  15. package/pennyfarthing-dist/agents/orchestrator.md +0 -182
  16. package/pennyfarthing-dist/agents/pm.md +0 -152
  17. package/pennyfarthing-dist/agents/reviewer-preflight.md +0 -129
  18. package/pennyfarthing-dist/agents/reviewer.md +0 -180
  19. package/pennyfarthing-dist/agents/sm-file-summary.md +0 -79
  20. package/pennyfarthing-dist/agents/sm-finish.md +0 -82
  21. package/pennyfarthing-dist/agents/sm-handoff.md +0 -129
  22. package/pennyfarthing-dist/agents/sm-setup.md +0 -251
  23. package/pennyfarthing-dist/agents/sm.md +0 -284
  24. package/pennyfarthing-dist/agents/tea.md +0 -161
  25. package/pennyfarthing-dist/agents/tech-writer.md +0 -226
  26. package/pennyfarthing-dist/agents/testing-runner.md +0 -184
  27. package/pennyfarthing-dist/agents/ux-designer.md +0 -236
  28. package/pennyfarthing-dist/agents/workflow-status-check.md +0 -96
  29. package/pennyfarthing-dist/commands/architect.md +0 -7
  30. package/pennyfarthing-dist/commands/benchmark-control.md +0 -69
  31. package/pennyfarthing-dist/commands/benchmark.md +0 -485
  32. package/pennyfarthing-dist/commands/brainstorming.md +0 -91
  33. package/pennyfarthing-dist/commands/check.md +0 -156
  34. package/pennyfarthing-dist/commands/chore.md +0 -178
  35. package/pennyfarthing-dist/commands/close-epic.md +0 -139
  36. package/pennyfarthing-dist/commands/continue-session.md +0 -184
  37. package/pennyfarthing-dist/commands/create-branches-from-story.md +0 -358
  38. package/pennyfarthing-dist/commands/create-theme.md +0 -29
  39. package/pennyfarthing-dist/commands/dev.md +0 -7
  40. package/pennyfarthing-dist/commands/devops.md +0 -7
  41. package/pennyfarthing-dist/commands/git-cleanup.md +0 -51
  42. package/pennyfarthing-dist/commands/health-check.md +0 -141
  43. package/pennyfarthing-dist/commands/help.md +0 -264
  44. package/pennyfarthing-dist/commands/job-fair.md +0 -102
  45. package/pennyfarthing-dist/commands/list-themes.md +0 -21
  46. package/pennyfarthing-dist/commands/orchestrator.md +0 -7
  47. package/pennyfarthing-dist/commands/parallel-work.md +0 -71
  48. package/pennyfarthing-dist/commands/party-mode.md +0 -77
  49. package/pennyfarthing-dist/commands/permissions.md +0 -193
  50. package/pennyfarthing-dist/commands/pm.md +0 -7
  51. package/pennyfarthing-dist/commands/prime.md +0 -140
  52. package/pennyfarthing-dist/commands/release.md +0 -58
  53. package/pennyfarthing-dist/commands/repo-status.md +0 -49
  54. package/pennyfarthing-dist/commands/retro.md +0 -200
  55. package/pennyfarthing-dist/commands/reviewer.md +0 -7
  56. package/pennyfarthing-dist/commands/run-ci.md +0 -116
  57. package/pennyfarthing-dist/commands/set-theme.md +0 -56
  58. package/pennyfarthing-dist/commands/show-theme.md +0 -21
  59. package/pennyfarthing-dist/commands/sm.md +0 -7
  60. package/pennyfarthing-dist/commands/solo.md +0 -447
  61. package/pennyfarthing-dist/commands/sprint-planning.md +0 -109
  62. package/pennyfarthing-dist/commands/sprint.md +0 -133
  63. package/pennyfarthing-dist/commands/standalone.md +0 -194
  64. package/pennyfarthing-dist/commands/start-epic.md +0 -168
  65. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +0 -184
  66. package/pennyfarthing-dist/commands/sync-work-with-sprint.md +0 -373
  67. package/pennyfarthing-dist/commands/tea.md +0 -7
  68. package/pennyfarthing-dist/commands/tech-writer.md +0 -7
  69. package/pennyfarthing-dist/commands/theme-maker.md +0 -676
  70. package/pennyfarthing-dist/commands/update-domain-docs.md +0 -83
  71. package/pennyfarthing-dist/commands/ux-designer.md +0 -7
  72. package/pennyfarthing-dist/commands/work.md +0 -23
  73. package/pennyfarthing-dist/commands/workflow.md +0 -21
  74. package/pennyfarthing-dist/guides/agent-behavior.md +0 -311
  75. package/pennyfarthing-dist/guides/agent-coordination.md +0 -480
  76. package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +0 -432
  77. package/pennyfarthing-dist/guides/agent-template-strategic.md +0 -148
  78. package/pennyfarthing-dist/guides/agent-template-tactical.md +0 -162
  79. package/pennyfarthing-dist/guides/hooks.md +0 -230
  80. package/pennyfarthing-dist/guides/measurement-framework.md +0 -210
  81. package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +0 -766
  82. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +0 -574
  83. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +0 -488
  84. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +0 -402
  85. package/pennyfarthing-dist/guides/permission-protocol.md +0 -188
  86. package/pennyfarthing-dist/guides/persona-loading.md +0 -46
  87. package/pennyfarthing-dist/guides/prompt-patterns.md +0 -338
  88. package/pennyfarthing-dist/guides/scale-levels.md +0 -114
  89. package/pennyfarthing-dist/guides/session-artifacts.md +0 -193
  90. package/pennyfarthing-dist/guides/workflow-schema.md +0 -257
  91. package/pennyfarthing-dist/guides/worktree-mode.md +0 -113
  92. package/pennyfarthing-dist/guides/xml-tags.md +0 -335
  93. package/pennyfarthing-dist/output-styles/teaching.md +0 -33
  94. package/pennyfarthing-dist/output-styles/terse.md +0 -20
  95. package/pennyfarthing-dist/output-styles/verbose.md +0 -28
  96. package/pennyfarthing-dist/personas/themes/1984.yaml +0 -300
  97. package/pennyfarthing-dist/personas/themes/a-team.yaml +0 -327
  98. package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +0 -290
  99. package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +0 -320
  100. package/pennyfarthing-dist/personas/themes/all-stars.yaml +0 -322
  101. package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +0 -308
  102. package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +0 -294
  103. package/pennyfarthing-dist/personas/themes/arcane.yaml +0 -278
  104. package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +0 -318
  105. package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +0 -278
  106. package/pennyfarthing-dist/personas/themes/babylon-5.yaml +0 -278
  107. package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +0 -278
  108. package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +0 -278
  109. package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +0 -290
  110. package/pennyfarthing-dist/personas/themes/black-sails.yaml +0 -290
  111. package/pennyfarthing-dist/personas/themes/blade-runner.yaml +0 -285
  112. package/pennyfarthing-dist/personas/themes/bobiverse.yaml +0 -278
  113. package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +0 -315
  114. package/pennyfarthing-dist/personas/themes/catch-22.yaml +0 -304
  115. package/pennyfarthing-dist/personas/themes/classical-composers.yaml +0 -298
  116. package/pennyfarthing-dist/personas/themes/control.yaml +0 -197
  117. package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +0 -308
  118. package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +0 -311
  119. package/pennyfarthing-dist/personas/themes/deadwood.yaml +0 -290
  120. package/pennyfarthing-dist/personas/themes/dickens.yaml +0 -308
  121. package/pennyfarthing-dist/personas/themes/discworld.yaml +0 -322
  122. package/pennyfarthing-dist/personas/themes/doctor-who.yaml +0 -280
  123. package/pennyfarthing-dist/personas/themes/don-quixote.yaml +0 -308
  124. package/pennyfarthing-dist/personas/themes/dune.yaml +0 -297
  125. package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +0 -308
  126. package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +0 -278
  127. package/pennyfarthing-dist/personas/themes/fargo.yaml +0 -318
  128. package/pennyfarthing-dist/personas/themes/film-auteurs.yaml +0 -300
  129. package/pennyfarthing-dist/personas/themes/firefly.yaml +0 -316
  130. package/pennyfarthing-dist/personas/themes/foundation.yaml +0 -280
  131. package/pennyfarthing-dist/personas/themes/futurama.yaml +0 -309
  132. package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +0 -280
  133. package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +0 -361
  134. package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +0 -296
  135. package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +0 -296
  136. package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +0 -317
  137. package/pennyfarthing-dist/personas/themes/hannibal.yaml +0 -290
  138. package/pennyfarthing-dist/personas/themes/harry-potter.yaml +0 -312
  139. package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +0 -281
  140. package/pennyfarthing-dist/personas/themes/historical-figures.yaml +0 -278
  141. package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +0 -319
  142. package/pennyfarthing-dist/personas/themes/house-md.yaml +0 -309
  143. package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +0 -279
  144. package/pennyfarthing-dist/personas/themes/inspector-morse.yaml +0 -290
  145. package/pennyfarthing-dist/personas/themes/jane-austen.yaml +0 -277
  146. package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +0 -308
  147. package/pennyfarthing-dist/personas/themes/justified.yaml +0 -290
  148. package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +0 -339
  149. package/pennyfarthing-dist/personas/themes/les-miserables.yaml +0 -289
  150. package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +0 -322
  151. package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +0 -321
  152. package/pennyfarthing-dist/personas/themes/mad-max.yaml +0 -345
  153. package/pennyfarthing-dist/personas/themes/mad-men.yaml +0 -279
  154. package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +0 -290
  155. package/pennyfarthing-dist/personas/themes/mash.yaml +0 -325
  156. package/pennyfarthing-dist/personas/themes/mass-effect.yaml +0 -279
  157. package/pennyfarthing-dist/personas/themes/military-commanders.yaml +0 -294
  158. package/pennyfarthing-dist/personas/themes/moby-dick.yaml +0 -308
  159. package/pennyfarthing-dist/personas/themes/monty-python.yaml +0 -293
  160. package/pennyfarthing-dist/personas/themes/neuromancer.yaml +0 -290
  161. package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +0 -317
  162. package/pennyfarthing-dist/personas/themes/parks-and-rec.yaml +0 -360
  163. package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +0 -288
  164. package/pennyfarthing-dist/personas/themes/princess-bride.yaml +0 -340
  165. package/pennyfarthing-dist/personas/themes/renaissance-masters.yaml +0 -308
  166. package/pennyfarthing-dist/personas/themes/rome.yaml +0 -290
  167. package/pennyfarthing-dist/personas/themes/russian-masters.yaml +0 -306
  168. package/pennyfarthing-dist/personas/themes/sandman.yaml +0 -278
  169. package/pennyfarthing-dist/personas/themes/scientific-revolutionaries.yaml +0 -308
  170. package/pennyfarthing-dist/personas/themes/shakespeare.yaml +0 -291
  171. package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +0 -279
  172. package/pennyfarthing-dist/personas/themes/snow-crash.yaml +0 -278
  173. package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +0 -290
  174. package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +0 -355
  175. package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +0 -324
  176. package/pennyfarthing-dist/personas/themes/star-wars.yaml +0 -293
  177. package/pennyfarthing-dist/personas/themes/succession.yaml +0 -290
  178. package/pennyfarthing-dist/personas/themes/superfriends.yaml +0 -328
  179. package/pennyfarthing-dist/personas/themes/ted-lasso.yaml +0 -355
  180. package/pennyfarthing-dist/personas/themes/the-americans.yaml +0 -290
  181. package/pennyfarthing-dist/personas/themes/the-crown.yaml +0 -290
  182. package/pennyfarthing-dist/personas/themes/the-expanse.yaml +0 -333
  183. package/pennyfarthing-dist/personas/themes/the-good-place.yaml +0 -311
  184. package/pennyfarthing-dist/personas/themes/the-matrix.yaml +0 -338
  185. package/pennyfarthing-dist/personas/themes/the-odyssey.yaml +0 -290
  186. package/pennyfarthing-dist/personas/themes/the-office.yaml +0 -319
  187. package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +0 -296
  188. package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +0 -290
  189. package/pennyfarthing-dist/personas/themes/the-wire.yaml +0 -299
  190. package/pennyfarthing-dist/personas/themes/the-witcher.yaml +0 -290
  191. package/pennyfarthing-dist/personas/themes/twin-peaks.yaml +0 -292
  192. package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +0 -290
  193. package/pennyfarthing-dist/personas/themes/watchmen.yaml +0 -281
  194. package/pennyfarthing-dist/personas/themes/west-wing.yaml +0 -281
  195. package/pennyfarthing-dist/personas/themes/world-explorers.yaml +0 -308
  196. package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +0 -295
  197. package/pennyfarthing-dist/personas/themes/x-files.yaml +0 -292
  198. package/pennyfarthing-dist/scripts/README.md +0 -68
  199. package/pennyfarthing-dist/scripts/core/README.md +0 -26
  200. package/pennyfarthing-dist/scripts/core/agent-session.sh +0 -383
  201. package/pennyfarthing-dist/scripts/core/check-context.sh +0 -280
  202. package/pennyfarthing-dist/scripts/core/handoff-marker.sh +0 -101
  203. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +0 -95
  204. package/pennyfarthing-dist/scripts/core/prime.sh +0 -30
  205. package/pennyfarthing-dist/scripts/core/run.sh +0 -84
  206. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +0 -21
  207. package/pennyfarthing-dist/scripts/git/README.md +0 -25
  208. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +0 -267
  209. package/pennyfarthing-dist/scripts/git/git-status-all.sh +0 -152
  210. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +0 -91
  211. package/pennyfarthing-dist/scripts/git/release.sh +0 -199
  212. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +0 -494
  213. package/pennyfarthing-dist/scripts/health/drift-detection.sh +0 -162
  214. package/pennyfarthing-dist/scripts/hooks/README.md +0 -32
  215. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  216. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +0 -106
  217. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +0 -60
  218. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +0 -65
  219. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -35
  220. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +0 -166
  221. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +0 -107
  222. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -71
  223. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +0 -54
  224. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +0 -20
  225. package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +0 -499
  226. package/pennyfarthing-dist/scripts/hooks/session-start.sh +0 -97
  227. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +0 -65
  228. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +0 -94
  229. package/pennyfarthing-dist/scripts/jira/README.md +0 -36
  230. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +0 -101
  231. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +0 -97
  232. package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +0 -22
  233. package/pennyfarthing-dist/scripts/jira/jira-lib.sh +0 -464
  234. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +0 -266
  235. package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +0 -18
  236. package/pennyfarthing-dist/scripts/jira/jira-sync.sh +0 -16
  237. package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +0 -16
  238. package/pennyfarthing-dist/scripts/jira/sync-epic-to-jira.sh +0 -16
  239. package/pennyfarthing-dist/scripts/lib/README.md +0 -29
  240. package/pennyfarthing-dist/scripts/lib/background-tasks.sh +0 -177
  241. package/pennyfarthing-dist/scripts/lib/checkpoint.sh +0 -136
  242. package/pennyfarthing-dist/scripts/lib/common.sh +0 -212
  243. package/pennyfarthing-dist/scripts/lib/file-lock.sh +0 -269
  244. package/pennyfarthing-dist/scripts/lib/find-root.sh +0 -35
  245. package/pennyfarthing-dist/scripts/lib/logging.sh +0 -186
  246. package/pennyfarthing-dist/scripts/lib/retry.sh +0 -76
  247. package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +0 -102
  248. package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +0 -97
  249. package/pennyfarthing-dist/scripts/misc/README.md +0 -44
  250. package/pennyfarthing-dist/scripts/misc/add-short-names.sh +0 -13
  251. package/pennyfarthing-dist/scripts/misc/add_short_names.py +0 -226
  252. package/pennyfarthing-dist/scripts/misc/backlog.sh +0 -91
  253. package/pennyfarthing-dist/scripts/misc/check-status.sh +0 -247
  254. package/pennyfarthing-dist/scripts/misc/deploy.sh +0 -296
  255. package/pennyfarthing-dist/scripts/misc/doctor-dogfood.sh +0 -392
  256. package/pennyfarthing-dist/scripts/misc/find-related-work.sh +0 -231
  257. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +0 -110
  258. package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +0 -74
  259. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +0 -10
  260. package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +0 -319
  261. package/pennyfarthing-dist/scripts/misc/repo-scan.sh +0 -141
  262. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +0 -778
  263. package/pennyfarthing-dist/scripts/misc/run-ci.sh +0 -219
  264. package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +0 -7
  265. package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +0 -319
  266. package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +0 -193
  267. package/pennyfarthing-dist/scripts/misc/statusline.sh +0 -257
  268. package/pennyfarthing-dist/scripts/misc/uninstall.sh +0 -270
  269. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +0 -160
  270. package/pennyfarthing-dist/scripts/sprint/README.md +0 -29
  271. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +0 -139
  272. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +0 -97
  273. package/pennyfarthing-dist/scripts/sprint/check-story.sh +0 -164
  274. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +0 -58
  275. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +0 -69
  276. package/pennyfarthing-dist/scripts/sprint/import-epic-to-future.sh +0 -10
  277. package/pennyfarthing-dist/scripts/sprint/import_epic_to_future.py +0 -270
  278. package/pennyfarthing-dist/scripts/sprint/list-future.sh +0 -151
  279. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +0 -116
  280. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +0 -164
  281. package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +0 -421
  282. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +0 -39
  283. package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +0 -241
  284. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +0 -134
  285. package/pennyfarthing-dist/scripts/story/README.md +0 -23
  286. package/pennyfarthing-dist/scripts/story/create-story.sh +0 -19
  287. package/pennyfarthing-dist/scripts/story/size-story.sh +0 -18
  288. package/pennyfarthing-dist/scripts/story/story-template.sh +0 -18
  289. package/pennyfarthing-dist/scripts/test/README.md +0 -23
  290. package/pennyfarthing-dist/scripts/test/ensure-swebench-data.sh +0 -59
  291. package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +0 -220
  292. package/pennyfarthing-dist/scripts/test/swebench-judge.py +0 -374
  293. package/pennyfarthing-dist/scripts/test/test-cache.sh +0 -165
  294. package/pennyfarthing-dist/scripts/test/test-setup.sh +0 -337
  295. package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -582
  296. package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +0 -515
  297. package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +0 -599
  298. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +0 -332
  299. package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +0 -573
  300. package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +0 -859
  301. package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +0 -662
  302. package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +0 -589
  303. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +0 -105
  304. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +0 -597
  305. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +0 -514
  306. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +0 -517
  307. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -331
  308. package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +0 -647
  309. package/pennyfarthing-dist/scripts/theme/README.md +0 -22
  310. package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +0 -13
  311. package/pennyfarthing-dist/scripts/theme/compute_theme_tiers.py +0 -402
  312. package/pennyfarthing-dist/scripts/theme/list-themes.sh +0 -73
  313. package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +0 -97
  314. package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +0 -576
  315. package/pennyfarthing-dist/scripts/workflow/README.md +0 -28
  316. package/pennyfarthing-dist/scripts/workflow/check.py +0 -502
  317. package/pennyfarthing-dist/scripts/workflow/check.sh +0 -24
  318. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +0 -159
  319. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +0 -228
  320. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +0 -61
  321. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +0 -13
  322. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +0 -124
  323. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +0 -40
  324. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +0 -163
  325. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +0 -138
  326. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +0 -256
  327. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +0 -167
  328. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +0 -242
  329. package/pennyfarthing-dist/skills/changelog/SKILL.md +0 -367
  330. package/pennyfarthing-dist/skills/code-review/SKILL.md +0 -168
  331. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +0 -274
  332. package/pennyfarthing-dist/skills/cyclist/SKILL.md +0 -88
  333. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +0 -437
  334. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +0 -258
  335. package/pennyfarthing-dist/skills/jira/SKILL.md +0 -484
  336. package/pennyfarthing-dist/skills/judge/SKILL.md +0 -636
  337. package/pennyfarthing-dist/skills/just/SKILL.md +0 -403
  338. package/pennyfarthing-dist/skills/mermaid/SKILL.md +0 -240
  339. package/pennyfarthing-dist/skills/otel/skill.md +0 -223
  340. package/pennyfarthing-dist/skills/permissions/skill.md +0 -172
  341. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +0 -178
  342. package/pennyfarthing-dist/skills/skill-registry.schema.json +0 -107
  343. package/pennyfarthing-dist/skills/skill-registry.yaml +0 -393
  344. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +0 -101
  345. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +0 -97
  346. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +0 -164
  347. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +0 -101
  348. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +0 -116
  349. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +0 -164
  350. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +0 -39
  351. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +0 -147
  352. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +0 -86
  353. package/pennyfarthing-dist/skills/sprint/skill.md +0 -465
  354. package/pennyfarthing-dist/skills/story/scripts/create-story.sh +0 -159
  355. package/pennyfarthing-dist/skills/story/scripts/size-story.sh +0 -198
  356. package/pennyfarthing-dist/skills/story/scripts/story-template.sh +0 -162
  357. package/pennyfarthing-dist/skills/story/skill.md +0 -219
  358. package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +0 -390
  359. package/pennyfarthing-dist/skills/testing/SKILL.md +0 -99
  360. package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +0 -124
  361. package/pennyfarthing-dist/skills/theme/skill.md +0 -129
  362. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +0 -174
  363. package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +0 -91
  364. package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +0 -163
  365. package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +0 -138
  366. package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +0 -273
  367. package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +0 -167
  368. package/pennyfarthing-dist/skills/workflow/skill.md +0 -337
  369. package/pennyfarthing-dist/skills/yq/SKILL.md +0 -264
  370. package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +0 -187
  371. package/pennyfarthing-dist/templates/LEADERBOARD.template.md +0 -59
  372. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +0 -276
  373. package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +0 -61
  374. package/pennyfarthing-dist/templates/persona-config.yaml.template +0 -22
  375. package/pennyfarthing-dist/templates/preferences.yaml.template +0 -15
  376. package/pennyfarthing-dist/templates/settings.local.json.template +0 -101
  377. package/pennyfarthing-dist/templates/setup-env.sh.template +0 -18
  378. package/pennyfarthing-dist/templates/shared-context.md.template +0 -70
  379. package/pennyfarthing-dist/templates/sidecar/decisions.md.template +0 -40
  380. package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +0 -37
  381. package/pennyfarthing-dist/templates/sidecar/patterns.md.template +0 -34
  382. package/pennyfarthing-dist/workflows/agent-docs.yaml +0 -70
  383. package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +0 -101
  384. package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +0 -93
  385. package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +0 -115
  386. package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +0 -133
  387. package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +0 -138
  388. package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +0 -133
  389. package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +0 -142
  390. package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +0 -160
  391. package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +0 -102
  392. package/pennyfarthing-dist/workflows/architecture.yaml +0 -65
  393. package/pennyfarthing-dist/workflows/bdd.yaml +0 -60
  394. package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +0 -62
  395. package/pennyfarthing-dist/workflows/brainstorming/checklist.md +0 -44
  396. package/pennyfarthing-dist/workflows/brainstorming/instructions.md +0 -736
  397. package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +0 -49
  398. package/pennyfarthing-dist/workflows/code-review/checklist.md +0 -23
  399. package/pennyfarthing-dist/workflows/code-review/instructions.md +0 -234
  400. package/pennyfarthing-dist/workflows/code-review/workflow.yaml +0 -51
  401. package/pennyfarthing-dist/workflows/dev-story/checklist.md +0 -80
  402. package/pennyfarthing-dist/workflows/dev-story/instructions.xml +0 -410
  403. package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +0 -50
  404. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +0 -256
  405. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +0 -233
  406. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +0 -272
  407. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +0 -153
  408. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +0 -122
  409. package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +0 -57
  410. package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +0 -28
  411. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +0 -101
  412. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-02-categorize.md +0 -116
  413. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-03-execute.md +0 -224
  414. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +0 -88
  415. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +0 -79
  416. package/pennyfarthing-dist/workflows/git-cleanup.yaml +0 -59
  417. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +0 -190
  418. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +0 -178
  419. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -179
  420. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +0 -139
  421. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +0 -252
  422. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +0 -133
  423. package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +0 -4
  424. package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +0 -40
  425. package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +0 -13
  426. package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +0 -197
  427. package/pennyfarthing-dist/workflows/prd/data/project-types.csv +0 -11
  428. package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +0 -191
  429. package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +0 -153
  430. package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +0 -224
  431. package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +0 -226
  432. package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +0 -213
  433. package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +0 -207
  434. package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +0 -226
  435. package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +0 -237
  436. package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +0 -228
  437. package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +0 -231
  438. package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +0 -242
  439. package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +0 -217
  440. package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +0 -180
  441. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +0 -247
  442. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +0 -208
  443. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +0 -249
  444. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +0 -253
  445. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +0 -168
  446. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +0 -218
  447. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +0 -191
  448. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +0 -209
  449. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +0 -174
  450. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +0 -214
  451. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +0 -228
  452. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +0 -217
  453. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -205
  454. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +0 -243
  455. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +0 -263
  456. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +0 -209
  457. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +0 -264
  458. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +0 -242
  459. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +0 -232
  460. package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +0 -10
  461. package/pennyfarthing-dist/workflows/prd/workflow.yaml +0 -42
  462. package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +0 -177
  463. package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +0 -161
  464. package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +0 -199
  465. package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +0 -202
  466. package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +0 -205
  467. package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +0 -219
  468. package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +0 -194
  469. package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +0 -10
  470. package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +0 -31
  471. package/pennyfarthing-dist/workflows/project-context/project-context-template.md +0 -21
  472. package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +0 -184
  473. package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +0 -318
  474. package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +0 -278
  475. package/pennyfarthing-dist/workflows/project-context/workflow.yaml +0 -27
  476. package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +0 -156
  477. package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +0 -120
  478. package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +0 -113
  479. package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +0 -113
  480. package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +0 -106
  481. package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +0 -140
  482. package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +0 -27
  483. package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +0 -189
  484. package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +0 -144
  485. package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +0 -128
  486. package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +0 -191
  487. package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +0 -74
  488. package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +0 -27
  489. package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +0 -137
  490. package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +0 -229
  491. package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +0 -238
  492. package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +0 -206
  493. package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +0 -234
  494. package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +0 -443
  495. package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +0 -182
  496. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +0 -237
  497. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +0 -200
  498. package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +0 -249
  499. package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +0 -259
  500. package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +0 -177
  501. package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +0 -475
  502. package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +0 -137
  503. package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +0 -239
  504. package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +0 -248
  505. package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +0 -202
  506. package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +0 -239
  507. package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +0 -486
  508. package/pennyfarthing-dist/workflows/research/templates/research.template.md +0 -29
  509. package/pennyfarthing-dist/workflows/research/workflow.yaml +0 -45
  510. package/pennyfarthing-dist/workflows/retrospective/checklist.md +0 -31
  511. package/pennyfarthing-dist/workflows/retrospective/instructions.md +0 -1443
  512. package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +0 -50
  513. package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +0 -33
  514. package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +0 -55
  515. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +0 -54
  516. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +0 -44
  517. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +0 -64
  518. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +0 -73
  519. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +0 -56
  520. package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +0 -34
  521. package/pennyfarthing-dist/workflows/tdd.yaml +0 -50
  522. package/pennyfarthing-dist/workflows/trivial.yaml +0 -40
  523. package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +0 -135
  524. package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +0 -127
  525. package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +0 -190
  526. package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +0 -216
  527. package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +0 -219
  528. package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +0 -234
  529. package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +0 -252
  530. package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +0 -254
  531. package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +0 -224
  532. package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +0 -224
  533. package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +0 -241
  534. package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +0 -248
  535. package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +0 -237
  536. package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +0 -264
  537. package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +0 -228
  538. package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +0 -13
  539. package/pennyfarthing-dist/workflows/ux-design/workflow.yaml +0 -41
  540. package/pennyfarthing_scripts/__init__.py +0 -17
  541. package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  542. package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  543. package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
  544. package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
  545. package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
  546. package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
  547. package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
  548. package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
  549. package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
  550. package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
  551. package/pennyfarthing_scripts/bellmode_hook.py +0 -154
  552. package/pennyfarthing_scripts/brownfield/__init__.py +0 -35
  553. package/pennyfarthing_scripts/brownfield/__main__.py +0 -7
  554. package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
  555. package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
  556. package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
  557. package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
  558. package/pennyfarthing_scripts/brownfield/cli.py +0 -131
  559. package/pennyfarthing_scripts/brownfield/discover.py +0 -753
  560. package/pennyfarthing_scripts/common/__init__.py +0 -49
  561. package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
  562. package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
  563. package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
  564. package/pennyfarthing_scripts/common/config.py +0 -65
  565. package/pennyfarthing_scripts/common/output.py +0 -180
  566. package/pennyfarthing_scripts/config.py +0 -21
  567. package/pennyfarthing_scripts/git/__init__.py +0 -29
  568. package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
  569. package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
  570. package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
  571. package/pennyfarthing_scripts/git/create_branches.py +0 -439
  572. package/pennyfarthing_scripts/git/status_all.py +0 -310
  573. package/pennyfarthing_scripts/hooks.py +0 -455
  574. package/pennyfarthing_scripts/jira/__init__.py +0 -93
  575. package/pennyfarthing_scripts/jira/__main__.py +0 -10
  576. package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
  577. package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
  578. package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
  579. package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
  580. package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
  581. package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
  582. package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
  583. package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
  584. package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
  585. package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
  586. package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
  587. package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
  588. package/pennyfarthing_scripts/jira/bidirectional.py +0 -561
  589. package/pennyfarthing_scripts/jira/claim.py +0 -211
  590. package/pennyfarthing_scripts/jira/cli.py +0 -150
  591. package/pennyfarthing_scripts/jira/client.py +0 -613
  592. package/pennyfarthing_scripts/jira/epic.py +0 -176
  593. package/pennyfarthing_scripts/jira/story.py +0 -219
  594. package/pennyfarthing_scripts/jira/sync.py +0 -350
  595. package/pennyfarthing_scripts/jira_bidirectional_sync.py +0 -37
  596. package/pennyfarthing_scripts/jira_epic_creation.py +0 -30
  597. package/pennyfarthing_scripts/jira_sync.py +0 -36
  598. package/pennyfarthing_scripts/jira_sync_story.py +0 -30
  599. package/pennyfarthing_scripts/output.py +0 -37
  600. package/pennyfarthing_scripts/preflight/__init__.py +0 -17
  601. package/pennyfarthing_scripts/preflight/__main__.py +0 -10
  602. package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
  603. package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
  604. package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
  605. package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
  606. package/pennyfarthing_scripts/preflight/cli.py +0 -141
  607. package/pennyfarthing_scripts/preflight/finish.py +0 -382
  608. package/pennyfarthing_scripts/pretooluse_hook.py +0 -142
  609. package/pennyfarthing_scripts/prime/__init__.py +0 -125
  610. package/pennyfarthing_scripts/prime/__main__.py +0 -8
  611. package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
  612. package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
  613. package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
  614. package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
  615. package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
  616. package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
  617. package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
  618. package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  619. package/pennyfarthing_scripts/prime/cli.py +0 -375
  620. package/pennyfarthing_scripts/prime/loader.py +0 -239
  621. package/pennyfarthing_scripts/prime/models.py +0 -169
  622. package/pennyfarthing_scripts/prime/persona.py +0 -288
  623. package/pennyfarthing_scripts/prime/session.py +0 -183
  624. package/pennyfarthing_scripts/prime/workflow.py +0 -275
  625. package/pennyfarthing_scripts/sprint/__init__.py +0 -66
  626. package/pennyfarthing_scripts/sprint/__main__.py +0 -10
  627. package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
  628. package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
  629. package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
  630. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  631. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  632. package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
  633. package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
  634. package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
  635. package/pennyfarthing_scripts/sprint/archive.py +0 -108
  636. package/pennyfarthing_scripts/sprint/cli.py +0 -124
  637. package/pennyfarthing_scripts/sprint/loader.py +0 -193
  638. package/pennyfarthing_scripts/sprint/status.py +0 -122
  639. package/pennyfarthing_scripts/sprint/validator.py +0 -405
  640. package/pennyfarthing_scripts/sprint/work.py +0 -192
  641. package/pennyfarthing_scripts/story/__init__.py +0 -67
  642. package/pennyfarthing_scripts/story/__main__.py +0 -10
  643. package/pennyfarthing_scripts/story/cli.py +0 -105
  644. package/pennyfarthing_scripts/story/create.py +0 -167
  645. package/pennyfarthing_scripts/story/size.py +0 -113
  646. package/pennyfarthing_scripts/story/template.py +0 -151
  647. package/pennyfarthing_scripts/swebench.py +0 -216
  648. package/pennyfarthing_scripts/tests/__init__.py +0 -1
  649. package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
  650. package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
  651. package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
  652. package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
  653. package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
  654. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
  655. package/pennyfarthing_scripts/tests/conftest.py +0 -106
  656. package/pennyfarthing_scripts/tests/test_brownfield.py +0 -842
  657. package/pennyfarthing_scripts/tests/test_cli_modules.py +0 -245
  658. package/pennyfarthing_scripts/tests/test_common.py +0 -180
  659. package/pennyfarthing_scripts/tests/test_git_utils.py +0 -866
  660. package/pennyfarthing_scripts/tests/test_jira_package.py +0 -334
  661. package/pennyfarthing_scripts/tests/test_package_structure.py +0 -372
  662. package/pennyfarthing_scripts/tests/test_prime.py +0 -1050
  663. package/pennyfarthing_scripts/tests/test_sprint_package.py +0 -236
  664. package/pennyfarthing_scripts/tests/test_sprint_validator.py +0 -675
  665. package/pennyfarthing_scripts/tests/test_story_package.py +0 -156
  666. package/pennyfarthing_scripts/welcome_hook.py +0 -157
  667. package/pennyfarthing_scripts/workflow.py +0 -183
  668. /package/{packages/core/bin → bin}/pennyfarthing.js +0 -0
  669. /package/{packages/core/dist → dist}/bmad/context-reader.d.ts +0 -0
  670. /package/{packages/core/dist → dist}/bmad/context-reader.d.ts.map +0 -0
  671. /package/{packages/core/dist → dist}/bmad/context-reader.js +0 -0
  672. /package/{packages/core/dist → dist}/bmad/context-reader.js.map +0 -0
  673. /package/{packages/core/dist → dist}/bmad/context-reader.test.d.ts +0 -0
  674. /package/{packages/core/dist → dist}/bmad/context-reader.test.d.ts.map +0 -0
  675. /package/{packages/core/dist → dist}/bmad/context-reader.test.js +0 -0
  676. /package/{packages/core/dist → dist}/bmad/context-reader.test.js.map +0 -0
  677. /package/{packages/core/dist → dist}/bmad/epics-parser.d.ts +0 -0
  678. /package/{packages/core/dist → dist}/bmad/epics-parser.d.ts.map +0 -0
  679. /package/{packages/core/dist → dist}/bmad/epics-parser.js +0 -0
  680. /package/{packages/core/dist → dist}/bmad/epics-parser.js.map +0 -0
  681. /package/{packages/core/dist → dist}/bmad/epics-parser.test.d.ts +0 -0
  682. /package/{packages/core/dist → dist}/bmad/epics-parser.test.d.ts.map +0 -0
  683. /package/{packages/core/dist → dist}/bmad/epics-parser.test.js +0 -0
  684. /package/{packages/core/dist → dist}/bmad/epics-parser.test.js.map +0 -0
  685. /package/{packages/core/dist → dist}/bmad/index.d.ts +0 -0
  686. /package/{packages/core/dist → dist}/bmad/index.d.ts.map +0 -0
  687. /package/{packages/core/dist → dist}/bmad/index.js +0 -0
  688. /package/{packages/core/dist → dist}/bmad/index.js.map +0 -0
  689. /package/{packages/core/dist → dist}/bmad/status-sync.d.ts +0 -0
  690. /package/{packages/core/dist → dist}/bmad/status-sync.d.ts.map +0 -0
  691. /package/{packages/core/dist → dist}/bmad/status-sync.js +0 -0
  692. /package/{packages/core/dist → dist}/bmad/status-sync.js.map +0 -0
  693. /package/{packages/core/dist → dist}/bmad/status-sync.test.d.ts +0 -0
  694. /package/{packages/core/dist → dist}/bmad/status-sync.test.d.ts.map +0 -0
  695. /package/{packages/core/dist → dist}/bmad/status-sync.test.js +0 -0
  696. /package/{packages/core/dist → dist}/bmad/status-sync.test.js.map +0 -0
  697. /package/{packages/core/dist → dist}/bmad/story-exporter.d.ts +0 -0
  698. /package/{packages/core/dist → dist}/bmad/story-exporter.d.ts.map +0 -0
  699. /package/{packages/core/dist → dist}/bmad/story-exporter.js +0 -0
  700. /package/{packages/core/dist → dist}/bmad/story-exporter.js.map +0 -0
  701. /package/{packages/core/dist → dist}/bmad/story-exporter.test.d.ts +0 -0
  702. /package/{packages/core/dist → dist}/bmad/story-exporter.test.d.ts.map +0 -0
  703. /package/{packages/core/dist → dist}/bmad/story-exporter.test.js +0 -0
  704. /package/{packages/core/dist → dist}/bmad/story-exporter.test.js.map +0 -0
  705. /package/{packages/core/dist → dist}/bmad/story-parser.d.ts +0 -0
  706. /package/{packages/core/dist → dist}/bmad/story-parser.d.ts.map +0 -0
  707. /package/{packages/core/dist → dist}/bmad/story-parser.js +0 -0
  708. /package/{packages/core/dist → dist}/bmad/story-parser.js.map +0 -0
  709. /package/{packages/core/dist → dist}/bmad/story-parser.test.d.ts +0 -0
  710. /package/{packages/core/dist → dist}/bmad/story-parser.test.d.ts.map +0 -0
  711. /package/{packages/core/dist → dist}/bmad/story-parser.test.js +0 -0
  712. /package/{packages/core/dist → dist}/bmad/story-parser.test.js.map +0 -0
  713. /package/{packages/core/dist → dist}/cli/commands/command.d.ts +0 -0
  714. /package/{packages/core/dist → dist}/cli/commands/command.d.ts.map +0 -0
  715. /package/{packages/core/dist → dist}/cli/commands/command.js +0 -0
  716. /package/{packages/core/dist → dist}/cli/commands/command.js.map +0 -0
  717. /package/{packages/core/dist → dist}/cli/commands/cyclist.d.ts +0 -0
  718. /package/{packages/core/dist → dist}/cli/commands/cyclist.d.ts.map +0 -0
  719. /package/{packages/core/dist → dist}/cli/commands/cyclist.js +0 -0
  720. /package/{packages/core/dist → dist}/cli/commands/cyclist.js.map +0 -0
  721. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.d.ts +0 -0
  722. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.d.ts.map +0 -0
  723. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.js +0 -0
  724. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.js.map +0 -0
  725. /package/{packages/core/dist → dist}/cli/commands/doctor-legacy.test.d.ts +0 -0
  726. /package/{packages/core/dist → dist}/cli/commands/doctor-legacy.test.d.ts.map +0 -0
  727. /package/{packages/core/dist → dist}/cli/commands/doctor-legacy.test.js +0 -0
  728. /package/{packages/core/dist → dist}/cli/commands/doctor-legacy.test.js.map +0 -0
  729. /package/{packages/core/dist → dist}/cli/commands/init.d.ts +0 -0
  730. /package/{packages/core/dist → dist}/cli/commands/init.d.ts.map +0 -0
  731. /package/{packages/core/dist → dist}/cli/commands/skill.d.ts +0 -0
  732. /package/{packages/core/dist → dist}/cli/commands/skill.d.ts.map +0 -0
  733. /package/{packages/core/dist → dist}/cli/commands/skill.js +0 -0
  734. /package/{packages/core/dist → dist}/cli/commands/skill.js.map +0 -0
  735. /package/{packages/core/dist → dist}/cli/commands/theme.d.ts +0 -0
  736. /package/{packages/core/dist → dist}/cli/commands/theme.d.ts.map +0 -0
  737. /package/{packages/core/dist → dist}/cli/commands/theme.js +0 -0
  738. /package/{packages/core/dist → dist}/cli/commands/theme.js.map +0 -0
  739. /package/{packages/core/dist → dist}/cli/commands/uninstall.d.ts +0 -0
  740. /package/{packages/core/dist → dist}/cli/commands/uninstall.d.ts.map +0 -0
  741. /package/{packages/core/dist → dist}/cli/commands/uninstall.js +0 -0
  742. /package/{packages/core/dist → dist}/cli/commands/uninstall.js.map +0 -0
  743. /package/{packages/core/dist → dist}/cli/commands/update.d.ts +0 -0
  744. /package/{packages/core/dist → dist}/cli/commands/update.d.ts.map +0 -0
  745. /package/{packages/core/dist → dist}/cli/commands/update.js +0 -0
  746. /package/{packages/core/dist → dist}/cli/commands/update.js.map +0 -0
  747. /package/{packages/core/dist → dist}/cli/commands/version.d.ts +0 -0
  748. /package/{packages/core/dist → dist}/cli/commands/version.d.ts.map +0 -0
  749. /package/{packages/core/dist → dist}/cli/commands/version.js +0 -0
  750. /package/{packages/core/dist → dist}/cli/commands/version.js.map +0 -0
  751. /package/{packages/core/dist → dist}/cli/customization.test.d.ts +0 -0
  752. /package/{packages/core/dist → dist}/cli/customization.test.d.ts.map +0 -0
  753. /package/{packages/core/dist → dist}/cli/customization.test.js +0 -0
  754. /package/{packages/core/dist → dist}/cli/customization.test.js.map +0 -0
  755. /package/{packages/core/dist → dist}/cli/cyclist-migration.test.d.ts +0 -0
  756. /package/{packages/core/dist → dist}/cli/cyclist-migration.test.d.ts.map +0 -0
  757. /package/{packages/core/dist → dist}/cli/cyclist-migration.test.js +0 -0
  758. /package/{packages/core/dist → dist}/cli/cyclist-migration.test.js.map +0 -0
  759. /package/{packages/core/dist → dist}/cli/index.d.ts +0 -0
  760. /package/{packages/core/dist → dist}/cli/index.d.ts.map +0 -0
  761. /package/{packages/core/dist → dist}/cli/index.js +0 -0
  762. /package/{packages/core/dist → dist}/cli/index.js.map +0 -0
  763. /package/{packages/core/dist → dist}/cli/ocean-profiles.test.d.ts +0 -0
  764. /package/{packages/core/dist → dist}/cli/ocean-profiles.test.d.ts.map +0 -0
  765. /package/{packages/core/dist → dist}/cli/ocean-profiles.test.js +0 -0
  766. /package/{packages/core/dist → dist}/cli/ocean-profiles.test.js.map +0 -0
  767. /package/{packages/core/dist → dist}/cli/theme-maker.test.d.ts +0 -0
  768. /package/{packages/core/dist → dist}/cli/theme-maker.test.d.ts.map +0 -0
  769. /package/{packages/core/dist → dist}/cli/theme-maker.test.js +0 -0
  770. /package/{packages/core/dist → dist}/cli/theme-maker.test.js.map +0 -0
  771. /package/{packages/core/dist → dist}/cli/utils/constants.d.ts +0 -0
  772. /package/{packages/core/dist → dist}/cli/utils/constants.d.ts.map +0 -0
  773. /package/{packages/core/dist → dist}/cli/utils/constants.js +0 -0
  774. /package/{packages/core/dist → dist}/cli/utils/constants.js.map +0 -0
  775. /package/{packages/core/dist → dist}/cli/utils/files.d.ts +0 -0
  776. /package/{packages/core/dist → dist}/cli/utils/files.d.ts.map +0 -0
  777. /package/{packages/core/dist → dist}/cli/utils/files.js +0 -0
  778. /package/{packages/core/dist → dist}/cli/utils/files.js.map +0 -0
  779. /package/{packages/core/dist → dist}/cli/utils/logger.d.ts +0 -0
  780. /package/{packages/core/dist → dist}/cli/utils/logger.d.ts.map +0 -0
  781. /package/{packages/core/dist → dist}/cli/utils/logger.js +0 -0
  782. /package/{packages/core/dist → dist}/cli/utils/logger.js.map +0 -0
  783. /package/{packages/core/dist → dist}/cli/utils/manifest.d.ts +0 -0
  784. /package/{packages/core/dist → dist}/cli/utils/manifest.d.ts.map +0 -0
  785. /package/{packages/core/dist → dist}/cli/utils/manifest.js +0 -0
  786. /package/{packages/core/dist → dist}/cli/utils/manifest.js.map +0 -0
  787. /package/{packages/core/dist → dist}/cli/utils/node-modules.d.ts +0 -0
  788. /package/{packages/core/dist → dist}/cli/utils/node-modules.d.ts.map +0 -0
  789. /package/{packages/core/dist → dist}/cli/utils/node-modules.js +0 -0
  790. /package/{packages/core/dist → dist}/cli/utils/node-modules.js.map +0 -0
  791. /package/{packages/core/dist → dist}/cli/utils/prompts.d.ts +0 -0
  792. /package/{packages/core/dist → dist}/cli/utils/prompts.d.ts.map +0 -0
  793. /package/{packages/core/dist → dist}/cli/utils/prompts.js +0 -0
  794. /package/{packages/core/dist → dist}/cli/utils/prompts.js.map +0 -0
  795. /package/{packages/core/dist → dist}/cli/utils/symlinks.d.ts +0 -0
  796. /package/{packages/core/dist → dist}/cli/utils/symlinks.d.ts.map +0 -0
  797. /package/{packages/core/dist → dist}/cli/utils/symlinks.js +0 -0
  798. /package/{packages/core/dist → dist}/cli/utils/symlinks.js.map +0 -0
  799. /package/{packages/core/dist → dist}/cli/utils/themes.d.ts +0 -0
  800. /package/{packages/core/dist → dist}/cli/utils/themes.d.ts.map +0 -0
  801. /package/{packages/core/dist → dist}/cli/utils/themes.js +0 -0
  802. /package/{packages/core/dist → dist}/cli/utils/themes.js.map +0 -0
  803. /package/{packages/core/dist → dist}/cli/utils/themes.test.d.ts +0 -0
  804. /package/{packages/core/dist → dist}/cli/utils/themes.test.d.ts.map +0 -0
  805. /package/{packages/core/dist → dist}/cli/utils/themes.test.js +0 -0
  806. /package/{packages/core/dist → dist}/cli/utils/themes.test.js.map +0 -0
  807. /package/{packages/core/dist → dist}/cli/utils/version.d.ts +0 -0
  808. /package/{packages/core/dist → dist}/cli/utils/version.d.ts.map +0 -0
  809. /package/{packages/core/dist → dist}/cli/utils/version.js +0 -0
  810. /package/{packages/core/dist → dist}/cli/utils/version.js.map +0 -0
  811. /package/{packages/core/dist → dist}/cli/workspace.test.d.ts +0 -0
  812. /package/{packages/core/dist → dist}/cli/workspace.test.d.ts.map +0 -0
  813. /package/{packages/core/dist → dist}/cli/workspace.test.js +0 -0
  814. /package/{packages/core/dist → dist}/cli/workspace.test.js.map +0 -0
  815. /package/{packages/core/dist → dist}/index.d.ts +0 -0
  816. /package/{packages/core/dist → dist}/index.d.ts.map +0 -0
  817. /package/{packages/core/dist → dist}/index.js +0 -0
  818. /package/{packages/core/dist → dist}/index.js.map +0 -0
  819. /package/{packages/core/dist → dist}/jira/jira-epic-creation.d.ts +0 -0
  820. /package/{packages/core/dist → dist}/jira/jira-epic-creation.d.ts.map +0 -0
  821. /package/{packages/core/dist → dist}/jira/jira-epic-creation.js +0 -0
  822. /package/{packages/core/dist → dist}/jira/jira-epic-creation.js.map +0 -0
  823. /package/{packages/core/dist → dist}/jira/jira-epic-creation.test.d.ts +0 -0
  824. /package/{packages/core/dist → dist}/jira/jira-epic-creation.test.d.ts.map +0 -0
  825. /package/{packages/core/dist → dist}/jira/jira-epic-creation.test.js +0 -0
  826. /package/{packages/core/dist → dist}/jira/jira-epic-creation.test.js.map +0 -0
  827. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.d.ts +0 -0
  828. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.d.ts.map +0 -0
  829. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.js +0 -0
  830. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.js.map +0 -0
  831. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.test.d.ts +0 -0
  832. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.test.d.ts.map +0 -0
  833. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.test.js +0 -0
  834. /package/{packages/core/dist → dist}/jira/jira-sprint-sync.test.js.map +0 -0
  835. /package/{packages/core/dist → dist}/permissions/index.d.ts +0 -0
  836. /package/{packages/core/dist → dist}/permissions/index.d.ts.map +0 -0
  837. /package/{packages/core/dist → dist}/permissions/index.js +0 -0
  838. /package/{packages/core/dist → dist}/permissions/index.js.map +0 -0
  839. /package/{packages/core/dist → dist}/permissions/permission-schema.d.ts +0 -0
  840. /package/{packages/core/dist → dist}/permissions/permission-schema.d.ts.map +0 -0
  841. /package/{packages/core/dist → dist}/permissions/permission-schema.js +0 -0
  842. /package/{packages/core/dist → dist}/permissions/permission-schema.js.map +0 -0
  843. /package/{packages/core/dist → dist}/permissions/permission-schema.test.d.ts +0 -0
  844. /package/{packages/core/dist → dist}/permissions/permission-schema.test.d.ts.map +0 -0
  845. /package/{packages/core/dist → dist}/permissions/permission-schema.test.js +0 -0
  846. /package/{packages/core/dist → dist}/permissions/permission-schema.test.js.map +0 -0
  847. /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.d.ts +0 -0
  848. /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.d.ts.map +0 -0
  849. /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.js +0 -0
  850. /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.js.map +0 -0
  851. /package/{packages/core/dist → dist}/scripts/benchmark-integration.d.ts +0 -0
  852. /package/{packages/core/dist → dist}/scripts/benchmark-integration.d.ts.map +0 -0
  853. /package/{packages/core/dist → dist}/scripts/benchmark-integration.js +0 -0
  854. /package/{packages/core/dist → dist}/scripts/benchmark-integration.js.map +0 -0
  855. /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.d.ts +0 -0
  856. /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.d.ts.map +0 -0
  857. /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.js +0 -0
  858. /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.js.map +0 -0
  859. /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.d.ts +0 -0
  860. /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.d.ts.map +0 -0
  861. /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.js +0 -0
  862. /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.js.map +0 -0
  863. /package/{packages/core/dist → dist}/scripts/generate-all-spiders.d.ts +0 -0
  864. /package/{packages/core/dist → dist}/scripts/generate-all-spiders.d.ts.map +0 -0
  865. /package/{packages/core/dist → dist}/scripts/generate-all-spiders.js +0 -0
  866. /package/{packages/core/dist → dist}/scripts/generate-all-spiders.js.map +0 -0
  867. /package/{packages/core/dist → dist}/scripts/generate-report.d.ts +0 -0
  868. /package/{packages/core/dist → dist}/scripts/generate-report.d.ts.map +0 -0
  869. /package/{packages/core/dist → dist}/scripts/generate-report.js +0 -0
  870. /package/{packages/core/dist → dist}/scripts/generate-report.js.map +0 -0
  871. /package/{packages/core/dist → dist}/scripts/generate-report.test.d.ts +0 -0
  872. /package/{packages/core/dist → dist}/scripts/generate-report.test.d.ts.map +0 -0
  873. /package/{packages/core/dist → dist}/scripts/generate-report.test.js +0 -0
  874. /package/{packages/core/dist → dist}/scripts/generate-report.test.js.map +0 -0
  875. /package/{packages/core/dist → dist}/scripts/generate-spider-report.d.ts +0 -0
  876. /package/{packages/core/dist → dist}/scripts/generate-spider-report.d.ts.map +0 -0
  877. /package/{packages/core/dist → dist}/scripts/generate-spider-report.js +0 -0
  878. /package/{packages/core/dist → dist}/scripts/generate-spider-report.js.map +0 -0
  879. /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.d.ts +0 -0
  880. /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.d.ts.map +0 -0
  881. /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.js +0 -0
  882. /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.js.map +0 -0
  883. /package/{packages/core/dist → dist}/scripts/generate-spider.d.ts +0 -0
  884. /package/{packages/core/dist → dist}/scripts/generate-spider.d.ts.map +0 -0
  885. /package/{packages/core/dist → dist}/scripts/generate-spider.js +0 -0
  886. /package/{packages/core/dist → dist}/scripts/generate-spider.js.map +0 -0
  887. /package/{packages/core/dist → dist}/scripts/generate-spider.test.d.ts +0 -0
  888. /package/{packages/core/dist → dist}/scripts/generate-spider.test.d.ts.map +0 -0
  889. /package/{packages/core/dist → dist}/scripts/generate-spider.test.js +0 -0
  890. /package/{packages/core/dist → dist}/scripts/generate-spider.test.js.map +0 -0
  891. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.d.ts +0 -0
  892. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.d.ts.map +0 -0
  893. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.js +0 -0
  894. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.js.map +0 -0
  895. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.d.ts +0 -0
  896. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.d.ts.map +0 -0
  897. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.js +0 -0
  898. /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.js.map +0 -0
  899. /package/{packages/core/dist → dist}/scripts/run-ci.test.d.ts +0 -0
  900. /package/{packages/core/dist → dist}/scripts/run-ci.test.d.ts.map +0 -0
  901. /package/{packages/core/dist → dist}/scripts/run-ci.test.js +0 -0
  902. /package/{packages/core/dist → dist}/scripts/run-ci.test.js.map +0 -0
  903. /package/{packages/core/dist → dist}/scripts/theme-detail.test.d.ts +0 -0
  904. /package/{packages/core/dist → dist}/scripts/theme-detail.test.d.ts.map +0 -0
  905. /package/{packages/core/dist → dist}/scripts/theme-detail.test.js +0 -0
  906. /package/{packages/core/dist → dist}/scripts/theme-detail.test.js.map +0 -0
  907. /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.d.ts +0 -0
  908. /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.d.ts.map +0 -0
  909. /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.js +0 -0
  910. /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.js.map +0 -0
  911. /package/{packages/core/dist → dist}/workflow/gate-handler.d.ts +0 -0
  912. /package/{packages/core/dist → dist}/workflow/gate-handler.d.ts.map +0 -0
  913. /package/{packages/core/dist → dist}/workflow/gate-handler.js +0 -0
  914. /package/{packages/core/dist → dist}/workflow/gate-handler.js.map +0 -0
  915. /package/{packages/core/dist → dist}/workflow/gate-handler.test.d.ts +0 -0
  916. /package/{packages/core/dist → dist}/workflow/gate-handler.test.d.ts.map +0 -0
  917. /package/{packages/core/dist → dist}/workflow/gate-handler.test.js +0 -0
  918. /package/{packages/core/dist → dist}/workflow/gate-handler.test.js.map +0 -0
  919. /package/{packages/core/dist → dist}/workflow/generic-sm-finish.d.ts +0 -0
  920. /package/{packages/core/dist → dist}/workflow/generic-sm-finish.d.ts.map +0 -0
  921. /package/{packages/core/dist → dist}/workflow/generic-sm-finish.js +0 -0
  922. /package/{packages/core/dist → dist}/workflow/generic-sm-finish.js.map +0 -0
  923. /package/{packages/core/dist → dist}/workflow/generic-sm-setup.d.ts +0 -0
  924. /package/{packages/core/dist → dist}/workflow/generic-sm-setup.d.ts.map +0 -0
  925. /package/{packages/core/dist → dist}/workflow/generic-sm-setup.js +0 -0
  926. /package/{packages/core/dist → dist}/workflow/generic-sm-setup.js.map +0 -0
  927. /package/{packages/core/dist → dist}/workflow/handoff.d.ts +0 -0
  928. /package/{packages/core/dist → dist}/workflow/handoff.d.ts.map +0 -0
  929. /package/{packages/core/dist → dist}/workflow/handoff.js +0 -0
  930. /package/{packages/core/dist → dist}/workflow/handoff.js.map +0 -0
  931. /package/{packages/core/dist → dist}/workflow/handoff.test.d.ts +0 -0
  932. /package/{packages/core/dist → dist}/workflow/handoff.test.d.ts.map +0 -0
  933. /package/{packages/core/dist → dist}/workflow/handoff.test.js +0 -0
  934. /package/{packages/core/dist → dist}/workflow/handoff.test.js.map +0 -0
  935. /package/{packages/core/dist → dist}/workflow/index.d.ts +0 -0
  936. /package/{packages/core/dist → dist}/workflow/index.d.ts.map +0 -0
  937. /package/{packages/core/dist → dist}/workflow/index.js +0 -0
  938. /package/{packages/core/dist → dist}/workflow/index.js.map +0 -0
  939. /package/{packages/core/dist → dist}/workflow/session-state.d.ts +0 -0
  940. /package/{packages/core/dist → dist}/workflow/session-state.d.ts.map +0 -0
  941. /package/{packages/core/dist → dist}/workflow/session-state.js +0 -0
  942. /package/{packages/core/dist → dist}/workflow/session-state.js.map +0 -0
  943. /package/{packages/core/dist → dist}/workflow/session-state.test.d.ts +0 -0
  944. /package/{packages/core/dist → dist}/workflow/session-state.test.d.ts.map +0 -0
  945. /package/{packages/core/dist → dist}/workflow/session-state.test.js +0 -0
  946. /package/{packages/core/dist → dist}/workflow/session-state.test.js.map +0 -0
  947. /package/{packages/core/dist → dist}/workflow/sm-subagents.test.d.ts +0 -0
  948. /package/{packages/core/dist → dist}/workflow/sm-subagents.test.d.ts.map +0 -0
  949. /package/{packages/core/dist → dist}/workflow/sm-subagents.test.js +0 -0
  950. /package/{packages/core/dist → dist}/workflow/sm-subagents.test.js.map +0 -0
  951. /package/{packages/core/dist → dist}/workflow/step-parser.d.ts +0 -0
  952. /package/{packages/core/dist → dist}/workflow/step-parser.d.ts.map +0 -0
  953. /package/{packages/core/dist → dist}/workflow/step-parser.js +0 -0
  954. /package/{packages/core/dist → dist}/workflow/step-parser.js.map +0 -0
  955. /package/{packages/core/dist → dist}/workflow/step-parser.test.d.ts +0 -0
  956. /package/{packages/core/dist → dist}/workflow/step-parser.test.d.ts.map +0 -0
  957. /package/{packages/core/dist → dist}/workflow/step-parser.test.js +0 -0
  958. /package/{packages/core/dist → dist}/workflow/step-parser.test.js.map +0 -0
  959. /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.d.ts +0 -0
  960. /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.d.ts.map +0 -0
  961. /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.js +0 -0
  962. /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.js.map +0 -0
  963. /package/{packages/core/dist → dist}/workflow/test-cache.d.ts +0 -0
  964. /package/{packages/core/dist → dist}/workflow/test-cache.d.ts.map +0 -0
  965. /package/{packages/core/dist → dist}/workflow/test-cache.js +0 -0
  966. /package/{packages/core/dist → dist}/workflow/test-cache.js.map +0 -0
  967. /package/{packages/core/dist → dist}/workflow/test-cache.test.d.ts +0 -0
  968. /package/{packages/core/dist → dist}/workflow/test-cache.test.d.ts.map +0 -0
  969. /package/{packages/core/dist → dist}/workflow/test-cache.test.js +0 -0
  970. /package/{packages/core/dist → dist}/workflow/test-cache.test.js.map +0 -0
  971. /package/{packages/core/dist → dist}/workflow/trimodal.d.ts +0 -0
  972. /package/{packages/core/dist → dist}/workflow/trimodal.d.ts.map +0 -0
  973. /package/{packages/core/dist → dist}/workflow/trimodal.js +0 -0
  974. /package/{packages/core/dist → dist}/workflow/trimodal.js.map +0 -0
  975. /package/{packages/core/dist → dist}/workflow/trimodal.test.d.ts +0 -0
  976. /package/{packages/core/dist → dist}/workflow/trimodal.test.d.ts.map +0 -0
  977. /package/{packages/core/dist → dist}/workflow/trimodal.test.js +0 -0
  978. /package/{packages/core/dist → dist}/workflow/trimodal.test.js.map +0 -0
  979. /package/{packages/core/dist → dist}/workflow/variable-resolver.d.ts +0 -0
  980. /package/{packages/core/dist → dist}/workflow/variable-resolver.d.ts.map +0 -0
  981. /package/{packages/core/dist → dist}/workflow/variable-resolver.js +0 -0
  982. /package/{packages/core/dist → dist}/workflow/variable-resolver.js.map +0 -0
  983. /package/{packages/core/dist → dist}/workflow/variable-resolver.test.d.ts +0 -0
  984. /package/{packages/core/dist → dist}/workflow/variable-resolver.test.d.ts.map +0 -0
  985. /package/{packages/core/dist → dist}/workflow/variable-resolver.test.js +0 -0
  986. /package/{packages/core/dist → dist}/workflow/variable-resolver.test.js.map +0 -0
  987. /package/{packages/core/dist → dist}/workflow/workflow-executor.d.ts +0 -0
  988. /package/{packages/core/dist → dist}/workflow/workflow-executor.d.ts.map +0 -0
  989. /package/{packages/core/dist → dist}/workflow/workflow-executor.js +0 -0
  990. /package/{packages/core/dist → dist}/workflow/workflow-executor.js.map +0 -0
  991. /package/{packages/core/dist → dist}/workflow/workflow-executor.test.d.ts +0 -0
  992. /package/{packages/core/dist → dist}/workflow/workflow-executor.test.d.ts.map +0 -0
  993. /package/{packages/core/dist → dist}/workflow/workflow-executor.test.js +0 -0
  994. /package/{packages/core/dist → dist}/workflow/workflow-executor.test.js.map +0 -0
  995. /package/{packages/core/dist → dist}/workflow/workflow-loader.d.ts +0 -0
  996. /package/{packages/core/dist → dist}/workflow/workflow-loader.d.ts.map +0 -0
  997. /package/{packages/core/dist → dist}/workflow/workflow-loader.js +0 -0
  998. /package/{packages/core/dist → dist}/workflow/workflow-loader.js.map +0 -0
  999. /package/{packages/core/dist → dist}/workflow/workflow-loader.test.d.ts +0 -0
  1000. /package/{packages/core/dist → dist}/workflow/workflow-loader.test.d.ts.map +0 -0
  1001. /package/{packages/core/dist → dist}/workflow/workflow-loader.test.js +0 -0
  1002. /package/{packages/core/dist → dist}/workflow/workflow-loader.test.js.map +0 -0
  1003. /package/{packages/core/dist → dist}/workflow/workflow-migration.test.d.ts +0 -0
  1004. /package/{packages/core/dist → dist}/workflow/workflow-migration.test.d.ts.map +0 -0
  1005. /package/{packages/core/dist → dist}/workflow/workflow-migration.test.js +0 -0
  1006. /package/{packages/core/dist → dist}/workflow/workflow-migration.test.js.map +0 -0
  1007. /package/{packages/core/dist → dist}/workflow/workflow-permissions.d.ts +0 -0
  1008. /package/{packages/core/dist → dist}/workflow/workflow-permissions.d.ts.map +0 -0
  1009. /package/{packages/core/dist → dist}/workflow/workflow-permissions.js +0 -0
  1010. /package/{packages/core/dist → dist}/workflow/workflow-permissions.js.map +0 -0
  1011. /package/{packages/core/dist → dist}/workflow/workflow-permissions.test.d.ts +0 -0
  1012. /package/{packages/core/dist → dist}/workflow/workflow-permissions.test.d.ts.map +0 -0
  1013. /package/{packages/core/dist → dist}/workflow/workflow-permissions.test.js +0 -0
  1014. /package/{packages/core/dist → dist}/workflow/workflow-permissions.test.js.map +0 -0
  1015. /package/{packages/core/dist → dist}/workflow/workflow-router.d.ts +0 -0
  1016. /package/{packages/core/dist → dist}/workflow/workflow-router.d.ts.map +0 -0
  1017. /package/{packages/core/dist → dist}/workflow/workflow-router.js +0 -0
  1018. /package/{packages/core/dist → dist}/workflow/workflow-router.js.map +0 -0
  1019. /package/{packages/core/dist → dist}/workflow/workflow-router.test.d.ts +0 -0
  1020. /package/{packages/core/dist → dist}/workflow/workflow-router.test.d.ts.map +0 -0
  1021. /package/{packages/core/dist → dist}/workflow/workflow-router.test.js +0 -0
  1022. /package/{packages/core/dist → dist}/workflow/workflow-router.test.js.map +0 -0
  1023. /package/{packages/core/dist → dist}/workflow/workflow-schema.d.ts +0 -0
  1024. /package/{packages/core/dist → dist}/workflow/workflow-schema.d.ts.map +0 -0
  1025. /package/{packages/core/dist → dist}/workflow/workflow-schema.js +0 -0
  1026. /package/{packages/core/dist → dist}/workflow/workflow-schema.js.map +0 -0
  1027. /package/{packages/core/dist → dist}/workflow/workflow-schema.test.d.ts +0 -0
  1028. /package/{packages/core/dist → dist}/workflow/workflow-schema.test.d.ts.map +0 -0
  1029. /package/{packages/core/dist → dist}/workflow/workflow-schema.test.js +0 -0
  1030. /package/{packages/core/dist → dist}/workflow/workflow-schema.test.js.map +0 -0
  1031. /package/{packages/core/dist → dist}/workflow/workflow-stepped-schema.test.d.ts +0 -0
  1032. /package/{packages/core/dist → dist}/workflow/workflow-stepped-schema.test.d.ts.map +0 -0
  1033. /package/{packages/core/dist → dist}/workflow/workflow-stepped-schema.test.js +0 -0
  1034. /package/{packages/core/dist → dist}/workflow/workflow-stepped-schema.test.js.map +0 -0
@@ -1,494 +0,0 @@
1
- #!/usr/bin/env zsh
2
- # Worktree management utilities for parallel development work
3
- # Usage: worktree-manager.sh {create|remove|list|status|ports|cd} [args]
4
- #
5
- # Configuration (choose one):
6
- # 1. repos.yaml: Define repos in .claude/project/repos.yaml (recommended)
7
- # 2. Legacy env vars: Set API_REPO and UI_REPO in .claude/project/hooks/setup-env.sh
8
-
9
- set -e
10
-
11
- # Load environment
12
- if [ -f "$PROJECT_ROOT/.env" ]; then
13
- set -a; source "$PROJECT_ROOT/.env"; set +a
14
- fi
15
-
16
- # Source project hooks if available
17
- if [ -f "$PROJECT_ROOT/.claude/project/hooks/setup-env.sh" ]; then
18
- source "$PROJECT_ROOT/.claude/project/hooks/setup-env.sh"
19
- fi
20
-
21
- # Source repo utilities (handles repos.yaml or legacy env vars)
22
- REPO_UTILS_LAZY=1 # Don't auto-load, we'll do it after validation
23
- source "$PROJECT_ROOT/scripts/repo-utils.sh"
24
-
25
- WORKTREE_ROOT="${WORKTREE_ROOT:-$PROJECT_ROOT/worktrees}"
26
- WORKTREE_PORT_OFFSET="${WORKTREE_PORT_OFFSET:-100}"
27
-
28
- # ============================================================================
29
- # Services Configuration
30
- # ============================================================================
31
-
32
- # Load services configuration from pennyfarthing-settings.yaml
33
- # Sets: _SERVICES_JSON, _PORT_OFFSET
34
- # Returns 1 if no services configured
35
- load_services_config() {
36
- local config_file="${PROJECT_ROOT}/.claude/project/pennyfarthing-settings.yaml"
37
-
38
- if [[ ! -f "$config_file" ]]; then
39
- _SERVICES_JSON=""
40
- _PORT_OFFSET=$WORKTREE_PORT_OFFSET
41
- return 1
42
- fi
43
-
44
- # Parse services config using yq (preferred) or Python fallback
45
- local config
46
- if command -v yq &>/dev/null; then
47
- # Check if services section exists
48
- local has_services
49
- has_services=$(yq '.services.definitions' "$config_file" 2>/dev/null)
50
- if [[ -z "$has_services" || "$has_services" == "null" ]]; then
51
- _SERVICES_JSON=""
52
- _PORT_OFFSET=$WORKTREE_PORT_OFFSET
53
- return 1
54
- fi
55
-
56
- local port_offset
57
- port_offset=$(yq '.services.port_offset // 100' "$config_file" 2>/dev/null)
58
- local definitions_json
59
- definitions_json=$(yq -o=json '.services.definitions' "$config_file" 2>/dev/null)
60
-
61
- _PORT_OFFSET=$port_offset
62
- _SERVICES_JSON="$definitions_json"
63
- return 0
64
- elif command -v python3 &>/dev/null; then
65
- config=$(python3 -c "
66
- import yaml
67
- import json
68
- import sys
69
-
70
- try:
71
- with open('$config_file', 'r') as f:
72
- settings = yaml.safe_load(f)
73
-
74
- if not settings or 'services' not in settings or 'definitions' not in settings['services']:
75
- sys.exit(1)
76
-
77
- svc = settings['services']
78
- port_offset = svc.get('port_offset', ${WORKTREE_PORT_OFFSET})
79
- definitions = svc['definitions']
80
-
81
- # Ensure env_var is set for each service
82
- for d in definitions:
83
- if 'env_var' not in d:
84
- d['env_var'] = d['name'].upper().replace(' ', '_').replace('-', '_') + '_PORT'
85
-
86
- print(f'_PORT_OFFSET={port_offset}')
87
- print(f\"_SERVICES_JSON='{json.dumps(definitions)}'\")
88
- except Exception:
89
- sys.exit(1)
90
- " 2>/dev/null)
91
-
92
- if [[ $? -eq 0 && -n "$config" ]]; then
93
- eval "$config"
94
- return 0
95
- fi
96
- fi
97
-
98
- _SERVICES_JSON=""
99
- _PORT_OFFSET=$WORKTREE_PORT_OFFSET
100
- return 1
101
- }
102
-
103
- # Load and validate repo configuration
104
- load_repos_config
105
-
106
- if [ "$(get_repo_count)" -eq 0 ]; then
107
- echo "❌ Error: No repositories configured"
108
- echo ""
109
- echo "Option 1: Create .claude/project/repos.yaml (recommended for multi-repo projects)"
110
- echo "Option 2: Set API_REPO and UI_REPO in .claude/project/hooks/setup-env.sh"
111
- exit 1
112
- fi
113
-
114
- # Ensure worktree root exists
115
- mkdir -p "$WORKTREE_ROOT"
116
-
117
- show_help() {
118
- cat << EOF
119
- Worktree Manager - Parallel Development Tool
120
-
121
- Usage: worktree-manager.sh <command> [options]
122
-
123
- Commands:
124
- create <name> <branch> [repos] Create worktree(s) for parallel work
125
- remove <name> Remove worktree and clean up
126
- list List all active worktrees
127
- status Show detailed worktree status
128
- ports <name> Get port configuration for worktree
129
- cd <name> Print path to worktree (use with: cd \$(./scripts/worktree-manager.sh cd <name>))
130
- config Show current repo configuration
131
-
132
- Examples:
133
- # Create worktree for all repos
134
- ./scripts/worktree-manager.sh create 5-1a feat/5-1a-file-upload
135
-
136
- # Create worktree for specific repo type
137
- ./scripts/worktree-manager.sh create bug-123 fix/bug-123-validation api
138
-
139
- # Create worktree for specific repos (comma-separated)
140
- ./scripts/worktree-manager.sh create feat-x feat/x-feature adapter-a,adapter-b
141
-
142
- # Get ports for running dev servers
143
- eval \$(./scripts/worktree-manager.sh ports 5-1a)
144
- echo "API: \$API_PORT, UI: \$UI_PORT"
145
-
146
- # Remove worktree after merge
147
- ./scripts/worktree-manager.sh remove 5-1a
148
-
149
- # Show repo configuration
150
- ./scripts/worktree-manager.sh config
151
-
152
- Repos Filter (third argument):
153
- all - All configured repos (default)
154
- api - Only repos of type 'api'
155
- ui - Only repos of type 'ui'
156
- adapter - Only repos of type 'adapter'
157
- service - Only repos of type 'service'
158
- repo1,repo2 - Comma-separated list of specific repo names
159
-
160
- Configuration:
161
- Option 1 (recommended): Create .claude/project/repos.yaml
162
- Option 2 (legacy): Set API_REPO and UI_REPO environment variables
163
-
164
- Session Files:
165
- Session files are named after story IDs: .session/{story-id}-session.md
166
- Example: .session/5-1a-session.md (with worktree field inside)
167
- Session files are managed by SM agent, not worktree-manager.
168
-
169
- Environment Variables:
170
- PROJECT_ROOT - Project root directory
171
- WORKTREE_ROOT - Where worktrees are created (default: \$PROJECT_ROOT/worktrees)
172
- WORKTREE_PORT_OFFSET - Port offset between worktrees (default: 100)
173
-
174
- EOF
175
- }
176
-
177
- create_worktree() {
178
- local WT_NAME="$1"
179
- local BRANCH="$2"
180
- local REPOS_FILTER="${3:-all}" # all, api, ui, adapter, service, or comma-separated names
181
-
182
- if [ -z "$WT_NAME" ] || [ -z "$BRANCH" ]; then
183
- echo "❌ Usage: worktree-manager.sh create <name> <branch> [repos-filter]"
184
- echo " repos-filter: all, api, ui, adapter, service, or comma-separated names"
185
- exit 1
186
- fi
187
-
188
- local WT_PATH="$WORKTREE_ROOT/$WT_NAME"
189
-
190
- # Check if worktree already exists
191
- if [ -d "$WT_PATH" ]; then
192
- echo "❌ Worktree '$WT_NAME' already exists at $WT_PATH"
193
- exit 1
194
- fi
195
-
196
- mkdir -p "$WT_PATH"
197
-
198
- echo "🔧 Creating worktree: $WT_NAME"
199
- echo " Branch: $BRANCH"
200
- echo " Path: $WT_PATH"
201
- echo " Repos: $REPOS_FILTER"
202
- echo ""
203
-
204
- # Get repos to create worktrees for (handle legacy 'both' as 'all')
205
- local repos_filter="$REPOS_FILTER"
206
- [ "$repos_filter" = "both" ] && repos_filter="all"
207
-
208
- local repos_to_create
209
- repos_to_create=$(filter_repos "$repos_filter")
210
-
211
- local created_repos=()
212
-
213
- while IFS= read -r repo; do
214
- [ -z "$repo" ] && continue
215
-
216
- local repo_path
217
- repo_path=$(get_repo_path "$repo")
218
- local full_path="$PROJECT_ROOT/$repo_path"
219
- local repo_type
220
- repo_type=$(get_repo_type "$repo")
221
-
222
- if [ -d "$full_path" ]; then
223
- echo "📦 Creating worktree for $repo ($repo_type)..."
224
- cd "$full_path"
225
-
226
- # Check if branch exists locally, remotely, or needs to be created
227
- if git show-ref --verify --quiet "refs/heads/$BRANCH" 2>/dev/null; then
228
- git worktree add "$WT_PATH/$repo" "$BRANCH"
229
- elif git show-ref --verify --quiet "refs/remotes/origin/$BRANCH" 2>/dev/null; then
230
- git worktree add "$WT_PATH/$repo" "$BRANCH"
231
- else
232
- # Create new branch from develop (or main if develop doesn't exist)
233
- local base_branch="develop"
234
- if ! git show-ref --verify --quiet "refs/heads/develop" 2>/dev/null; then
235
- base_branch="main"
236
- fi
237
- git worktree add -b "$BRANCH" "$WT_PATH/$repo" "$base_branch"
238
- fi
239
- echo " ✅ $repo worktree created"
240
- created_repos+=("$repo")
241
- else
242
- echo " ⚠️ Repo not found: $full_path"
243
- fi
244
- done <<< "$repos_to_create"
245
-
246
- echo ""
247
- echo "✅ Worktree '$WT_NAME' created successfully!"
248
- echo ""
249
- echo "📝 Session file: Use /sm to create .session/{story-id}-session.md"
250
- echo ""
251
- echo "Next steps:"
252
- for repo in "${created_repos[@]}"; do
253
- echo " cd $WT_PATH/$repo"
254
- done
255
- echo ""
256
- echo "Start dev servers with custom ports:"
257
- echo " eval \$(./scripts/worktree-manager.sh ports $WT_NAME)"
258
- }
259
-
260
- remove_worktree() {
261
- local WT_NAME="$1"
262
-
263
- if [ -z "$WT_NAME" ]; then
264
- echo "❌ Usage: worktree-manager.sh remove <name>"
265
- exit 1
266
- fi
267
-
268
- local WT_PATH="$WORKTREE_ROOT/$WT_NAME"
269
-
270
- if [ ! -d "$WT_PATH" ]; then
271
- echo "❌ Worktree '$WT_NAME' not found at $WT_PATH"
272
- exit 1
273
- fi
274
-
275
- echo "🗑️ Removing worktree: $WT_NAME"
276
-
277
- # Remove worktrees for all configured repos
278
- for repo in $(get_repos); do
279
- local repo_path
280
- repo_path=$(get_repo_path "$repo")
281
-
282
- if [ -d "$WT_PATH/$repo" ]; then
283
- echo " Removing $repo worktree..."
284
- cd "$PROJECT_ROOT/$repo_path"
285
- git worktree remove "$WT_PATH/$repo" --force 2>/dev/null || true
286
- fi
287
- done
288
-
289
- # Clean up directory
290
- rm -rf "$WT_PATH"
291
-
292
- # Note: Session files are managed by SM agent
293
- # Use /sm to finish work and archive the session file
294
- echo ""
295
- echo " Note: Session file (if any) should be archived via /sm finish"
296
-
297
- # Prune worktree references for all repos
298
- for repo in $(get_repos); do
299
- local repo_path
300
- repo_path=$(get_repo_path "$repo")
301
- if [ -d "$PROJECT_ROOT/$repo_path" ]; then
302
- cd "$PROJECT_ROOT/$repo_path" && git worktree prune 2>/dev/null || true
303
- fi
304
- done
305
-
306
- echo ""
307
- echo "✅ Worktree '$WT_NAME' removed successfully!"
308
- }
309
-
310
- list_worktrees() {
311
- echo "=== Active Worktrees ==="
312
- echo ""
313
-
314
- for repo in $(get_repos); do
315
- local repo_path
316
- repo_path=$(get_repo_path "$repo")
317
- local repo_type
318
- repo_type=$(get_repo_type "$repo")
319
-
320
- if [ -d "$PROJECT_ROOT/$repo_path" ]; then
321
- echo "📦 $repo ($repo_type):"
322
- cd "$PROJECT_ROOT/$repo_path" && git worktree list
323
- echo ""
324
- fi
325
- done
326
-
327
- echo "📁 Worktree Directory:"
328
- if [ -d "$WORKTREE_ROOT" ] && [ "$(ls -A "$WORKTREE_ROOT" 2>/dev/null)" ]; then
329
- ls -la "$WORKTREE_ROOT"
330
- else
331
- echo " (empty)"
332
- fi
333
- }
334
-
335
- show_status() {
336
- echo "=== Worktree Status ==="
337
- echo ""
338
-
339
- if [ ! -d "$WORKTREE_ROOT" ] || [ -z "$(ls -A "$WORKTREE_ROOT" 2>/dev/null)" ]; then
340
- echo "No active worktrees."
341
- echo ""
342
- echo "Create one with:"
343
- echo " ./scripts/worktree-manager.sh create <name> <branch>"
344
- return
345
- fi
346
-
347
- for wt in "$WORKTREE_ROOT"/*/; do
348
- if [ -d "$wt" ]; then
349
- local WT_NAME=$(basename "$wt")
350
- echo "📁 $WT_NAME"
351
- echo " Path: $wt"
352
-
353
- # Show status for each configured repo
354
- for repo in $(get_repos); do
355
- if [ -d "$wt/$repo" ]; then
356
- local repo_type
357
- repo_type=$(get_repo_type "$repo")
358
- local branch=$(cd "$wt/$repo" && git branch --show-current 2>/dev/null || echo "unknown")
359
- local status_count=$(cd "$wt/$repo" && git status --short 2>/dev/null | wc -l | tr -d ' ')
360
- echo " $repo ($repo_type): $branch ($status_count uncommitted)"
361
- fi
362
- done
363
-
364
- # Check for session files that reference this worktree
365
- local found_session=""
366
- for sf in "$PROJECT_ROOT"/.session/*-session.md; do
367
- if [ -f "$sf" ] && grep -q "worktree: $WT_NAME" "$sf" 2>/dev/null; then
368
- found_session=$(basename "$sf")
369
- break
370
- fi
371
- done
372
- if [ -n "$found_session" ]; then
373
- echo " Session: ✅ .session/$found_session"
374
- else
375
- echo " Session: ❌ (no session file references this worktree)"
376
- fi
377
-
378
- # Show ports (from services config)
379
- local WT_INDEX=$(ls -1 "$WORKTREE_ROOT" 2>/dev/null | grep -n "^$WT_NAME$" | cut -d: -f1)
380
- WT_INDEX=${WT_INDEX:-1}
381
- if load_services_config; then
382
- local OFFSET=$((_PORT_OFFSET * WT_INDEX))
383
- local ports_display
384
- ports_display=$(python3 -c "
385
- import json
386
- services = $_SERVICES_JSON
387
- offset = $OFFSET
388
- parts = []
389
- for svc in services:
390
- name = svc['name']
391
- port = svc['base_port'] + offset
392
- parts.append(f'{name}={port}')
393
- print(', '.join(parts))
394
- " 2>/dev/null)
395
- echo " Ports: $ports_display"
396
- else
397
- echo " Ports: (no services configured)"
398
- fi
399
- echo ""
400
- fi
401
- done
402
- }
403
-
404
- get_ports() {
405
- local WT_NAME="$1"
406
-
407
- if [ -z "$WT_NAME" ]; then
408
- echo "# Usage: worktree-manager.sh ports <name>" >&2
409
- echo "# Outputs shell variables for service ports" >&2
410
- exit 1
411
- fi
412
-
413
- # Load services configuration
414
- if ! load_services_config; then
415
- echo "# No services configured in .claude/project/pennyfarthing-settings.yaml" >&2
416
- echo "# Add a 'services' section with 'definitions' array" >&2
417
- exit 1
418
- fi
419
-
420
- # Calculate port offset based on worktree index
421
- local WT_INDEX=$(ls -1 "$WORKTREE_ROOT" 2>/dev/null | grep -n "^$WT_NAME$" | cut -d: -f1)
422
- WT_INDEX=${WT_INDEX:-1}
423
- local OFFSET=$((_PORT_OFFSET * WT_INDEX))
424
-
425
- # Output worktree info
426
- echo "export WORKTREE_PATH=$WORKTREE_ROOT/$WT_NAME"
427
- echo "export WORKTREE_INDEX=$WT_INDEX"
428
- echo "export WORKTREE_PORT_OFFSET=$OFFSET"
429
-
430
- # Generate exports for each configured service
431
- python3 -c "
432
- import json
433
-
434
- services = $_SERVICES_JSON
435
- offset = $OFFSET
436
-
437
- for svc in services:
438
- env_var = svc.get('env_var', svc['name'].upper().replace(' ', '_').replace('-', '_') + '_PORT')
439
- port = svc['base_port'] + offset
440
- print(f'export {env_var}={port}')
441
- " 2>/dev/null
442
- }
443
-
444
- get_path() {
445
- local WT_NAME="$1"
446
-
447
- if [ -z "$WT_NAME" ]; then
448
- echo "❌ Usage: worktree-manager.sh cd <name>"
449
- exit 1
450
- fi
451
-
452
- local WT_PATH="$WORKTREE_ROOT/$WT_NAME"
453
-
454
- if [ ! -d "$WT_PATH" ]; then
455
- echo "❌ Worktree '$WT_NAME' not found" >&2
456
- exit 1
457
- fi
458
-
459
- echo "$WT_PATH"
460
- }
461
-
462
- # Main command dispatch
463
- case "${1:-help}" in
464
- create)
465
- create_worktree "$2" "$3" "$4"
466
- ;;
467
- remove|rm|delete)
468
- remove_worktree "$2"
469
- ;;
470
- list|ls)
471
- list_worktrees
472
- ;;
473
- status|st)
474
- show_status
475
- ;;
476
- ports)
477
- get_ports "$2"
478
- ;;
479
- cd|path)
480
- get_path "$2"
481
- ;;
482
- config)
483
- show_config
484
- ;;
485
- help|--help|-h)
486
- show_help
487
- ;;
488
- *)
489
- echo "❌ Unknown command: $1"
490
- echo ""
491
- show_help
492
- exit 1
493
- ;;
494
- esac
@@ -1,162 +0,0 @@
1
- #!/bin/bash
2
- # Drift Detection - Analyze archived sessions for agent behavior drift
3
- # Usage: .pennyfarthing/scripts/core/run.sh health/drift-detection.sh [--verbose] [--path /additional/path]
4
- #
5
- # Checks:
6
- # 1. Reviewer: Substantive comments present (not just "LGTM")
7
- # 2. Dev: Tests run before GREEN declaration
8
- # 3. SM: Handoff markers present
9
- # 4. TEA: Tests written before handoff to Dev
10
-
11
- set -euo pipefail
12
-
13
- VERBOSE=false
14
- EXTRA_PATHS=()
15
-
16
- while [[ $# -gt 0 ]]; do
17
- case "$1" in
18
- --verbose|-v) VERBOSE=true; shift ;;
19
- --path) EXTRA_PATHS+=("$2"); shift 2 ;;
20
- *) shift ;;
21
- esac
22
- done
23
-
24
- # Find project root
25
- if [[ -z "${PROJECT_ROOT:-}" ]]; then
26
- d="$PWD"
27
- while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do
28
- d="$(dirname "$d")"
29
- done
30
- PROJECT_ROOT="$d"
31
- fi
32
-
33
- ARCHIVE_DIR="$PROJECT_ROOT/sprint/archive"
34
- SESSION_DIR="$PROJECT_ROOT/.session/archive"
35
-
36
- # Build list of directories to search
37
- SEARCH_DIRS=("$ARCHIVE_DIR" "$SESSION_DIR")
38
- for extra in "${EXTRA_PATHS[@]}"; do
39
- if [[ -d "$extra/sprint/archive" ]]; then
40
- SEARCH_DIRS+=("$extra/sprint/archive")
41
- fi
42
- if [[ -d "$extra/.session/archive" ]]; then
43
- SEARCH_DIRS+=("$extra/.session/archive")
44
- fi
45
- if [[ -d "$extra" ]] && [[ ! -d "$extra/sprint" ]]; then
46
- # Direct path to archive directory
47
- SEARCH_DIRS+=("$extra")
48
- fi
49
- done
50
-
51
- echo "# Agent Behavior Drift Detection Report"
52
- echo ""
53
- echo "Generated: $(date '+%Y-%m-%d %H:%M')"
54
- echo ""
55
-
56
- # Counters
57
- TOTAL_SESSIONS=0
58
- REVIEWER_ISSUES=0
59
- DEV_ISSUES=0
60
- SM_ISSUES=0
61
- TEA_ISSUES=0
62
-
63
- # Collect session files from all locations
64
- SESSION_FILES=$(find "${SEARCH_DIRS[@]}" -name "*-session.md" -type f 2>/dev/null | sort -u | head -100)
65
-
66
- if [[ -z "$SESSION_FILES" ]]; then
67
- echo "No session files found for analysis."
68
- exit 0
69
- fi
70
-
71
- echo "## Analysis Summary"
72
- echo ""
73
-
74
- # Analyze each session
75
- while IFS= read -r session_file; do
76
- ((TOTAL_SESSIONS++))
77
- filename=$(basename "$session_file")
78
-
79
- # Check for Reviewer drift: approvals without substantive comments
80
- if grep -qi "reviewer" "$session_file" 2>/dev/null; then
81
- if grep -qi "approved" "$session_file" 2>/dev/null; then
82
- # Look for substantive review content (more than just approval)
83
- review_lines=$(grep -c -iE "(issue|concern|suggest|fix|change|improve|refactor|test|bug)" "$session_file" 2>/dev/null || echo "0")
84
- if [[ "$review_lines" -lt 2 ]]; then
85
- ((REVIEWER_ISSUES++))
86
- if [[ "$VERBOSE" == "true" ]]; then
87
- echo "⚠️ Reviewer drift: $filename - approval without substantive feedback"
88
- fi
89
- fi
90
- fi
91
- fi
92
-
93
- # Check for Dev drift: GREEN without test evidence
94
- if grep -qi "GREEN\|green phase\|tests pass" "$session_file" 2>/dev/null; then
95
- if ! grep -qiE "(test.*pass|tests.*ran|npm test|vitest|jest|\d+ passed)" "$session_file" 2>/dev/null; then
96
- ((DEV_ISSUES++))
97
- if [[ "$VERBOSE" == "true" ]]; then
98
- echo "⚠️ Dev drift: $filename - GREEN declared without test evidence"
99
- fi
100
- fi
101
- fi
102
-
103
- # Check for SM drift: handoff sections without proper structure
104
- # Note: CYCLIST:HANDOFF markers are optional - we check for structured handoff content
105
- if grep -qi "## Handoff\|Handoff to" "$session_file" 2>/dev/null; then
106
- # Good handoff should mention target agent AND have some context
107
- if ! grep -qiE "handoff.*(TEA|Dev|Reviewer)|→.*(TEA|Dev|Reviewer)" "$session_file" 2>/dev/null; then
108
- ((SM_ISSUES++))
109
- if [[ "$VERBOSE" == "true" ]]; then
110
- echo "⚠️ SM drift: $filename - handoff section without target agent"
111
- fi
112
- fi
113
- fi
114
-
115
- # Check for TEA drift: handoff to Dev without test files mentioned
116
- if grep -qi "TEA.*handoff\|handoff.*Dev" "$session_file" 2>/dev/null; then
117
- if ! grep -qiE "\.test\.(ts|js|tsx)|spec\.(ts|js)|_test\.go|Test\.java" "$session_file" 2>/dev/null; then
118
- ((TEA_ISSUES++))
119
- if [[ "$VERBOSE" == "true" ]]; then
120
- echo "⚠️ TEA drift: $filename - no test files referenced before Dev handoff"
121
- fi
122
- fi
123
- fi
124
-
125
- done <<< "$SESSION_FILES"
126
-
127
- echo "| Agent | Issues | Total | Rate |"
128
- echo "|-------|--------|-------|------|"
129
- REVIEWER_PCT=$((REVIEWER_ISSUES * 100 / TOTAL_SESSIONS))
130
- DEV_PCT=$((DEV_ISSUES * 100 / TOTAL_SESSIONS))
131
- SM_PCT=$((SM_ISSUES * 100 / TOTAL_SESSIONS))
132
- TEA_PCT=$((TEA_ISSUES * 100 / TOTAL_SESSIONS))
133
- echo "| Reviewer | $REVIEWER_ISSUES | $TOTAL_SESSIONS | ${REVIEWER_PCT}% |"
134
- echo "| Dev | $DEV_ISSUES | $TOTAL_SESSIONS | ${DEV_PCT}% |"
135
- echo "| SM | $SM_ISSUES | $TOTAL_SESSIONS | ${SM_PCT}% |"
136
- echo "| TEA | $TEA_ISSUES | $TOTAL_SESSIONS | ${TEA_PCT}% |"
137
- echo ""
138
-
139
- TOTAL_ISSUES=$((REVIEWER_ISSUES + DEV_ISSUES + SM_ISSUES + TEA_ISSUES))
140
-
141
- if [[ "$TOTAL_ISSUES" -eq 0 ]]; then
142
- echo "✅ **No drift detected.** All agents following expected behaviors."
143
- else
144
- echo "⚠️ **$TOTAL_ISSUES potential drift signals detected.**"
145
- echo ""
146
- echo "### Recommendations"
147
- if [[ "$REVIEWER_ISSUES" -gt 0 ]]; then
148
- echo "- **Reviewer:** Ensure substantive feedback on all reviews (not just LGTM)"
149
- fi
150
- if [[ "$DEV_ISSUES" -gt 0 ]]; then
151
- echo "- **Dev:** Always include test run output when declaring GREEN"
152
- fi
153
- if [[ "$SM_ISSUES" -gt 0 ]]; then
154
- echo "- **SM:** Use handoff markers (CYCLIST:HANDOFF) for Cyclist integration"
155
- fi
156
- if [[ "$TEA_ISSUES" -gt 0 ]]; then
157
- echo "- **TEA:** Reference specific test files when handing off to Dev"
158
- fi
159
- fi
160
-
161
- echo ""
162
- echo "Run with --verbose to see individual file details."
@@ -1,32 +0,0 @@
1
- # Hooks
2
-
3
- Git hooks and Claude Code hooks.
4
-
5
- ## Scripts
6
-
7
- | Script | Purpose |
8
- |--------|---------|
9
- | `context-circuit-breaker.sh` | Claude hook: halt at context limit |
10
- | `context-warning.sh` | Claude hook: warn on high context |
11
- | `otel-auto-config.sh` | Claude hook: configure OTEL |
12
- | `post-merge.sh` | Git hook: post-merge actions |
13
- | `pre-commit.sh` | Git hook: pre-commit validation |
14
- | `pre-edit-check.sh` | Claude hook: validate before edit |
15
- | `pre-push.sh` | Git hook: pre-push validation |
16
- | `session-start.sh` | Claude hook: session start |
17
- | `session-stop.sh` | Claude hook: session stop |
18
-
19
- ## Installation
20
-
21
- Git hooks are installed via:
22
-
23
- ```bash
24
- .pennyfarthing/scripts/core/run.sh git/install-git-hooks.sh
25
- ```
26
-
27
- Claude hooks are configured in `.claude/settings.json`.
28
-
29
- ## Ownership
30
-
31
- - **Primary users:** Git, Claude Code
32
- - **Maintained by:** Core Pennyfarthing team