@pennyfarthing/core 7.9.1 → 7.9.3

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/package.json +37 -32
  6. package/LICENSE +0 -14
  7. package/README.md +0 -209
  8. package/pennyfarthing-dist/agents/README.md +0 -348
  9. package/pennyfarthing-dist/agents/architect.md +0 -180
  10. package/pennyfarthing-dist/agents/dev.md +0 -169
  11. package/pennyfarthing-dist/agents/devops.md +0 -203
  12. package/pennyfarthing-dist/agents/handoff.md +0 -235
  13. package/pennyfarthing-dist/agents/orchestrator.md +0 -182
  14. package/pennyfarthing-dist/agents/pm.md +0 -152
  15. package/pennyfarthing-dist/agents/reviewer-preflight.md +0 -129
  16. package/pennyfarthing-dist/agents/reviewer.md +0 -180
  17. package/pennyfarthing-dist/agents/sm-file-summary.md +0 -79
  18. package/pennyfarthing-dist/agents/sm-finish.md +0 -82
  19. package/pennyfarthing-dist/agents/sm-handoff.md +0 -129
  20. package/pennyfarthing-dist/agents/sm-setup.md +0 -251
  21. package/pennyfarthing-dist/agents/sm.md +0 -284
  22. package/pennyfarthing-dist/agents/tea.md +0 -161
  23. package/pennyfarthing-dist/agents/tech-writer.md +0 -226
  24. package/pennyfarthing-dist/agents/testing-runner.md +0 -184
  25. package/pennyfarthing-dist/agents/ux-designer.md +0 -236
  26. package/pennyfarthing-dist/agents/workflow-status-check.md +0 -96
  27. package/pennyfarthing-dist/commands/architect.md +0 -7
  28. package/pennyfarthing-dist/commands/benchmark-control.md +0 -69
  29. package/pennyfarthing-dist/commands/benchmark.md +0 -485
  30. package/pennyfarthing-dist/commands/brainstorming.md +0 -91
  31. package/pennyfarthing-dist/commands/check.md +0 -156
  32. package/pennyfarthing-dist/commands/chore.md +0 -178
  33. package/pennyfarthing-dist/commands/close-epic.md +0 -139
  34. package/pennyfarthing-dist/commands/continue-session.md +0 -184
  35. package/pennyfarthing-dist/commands/create-branches-from-story.md +0 -358
  36. package/pennyfarthing-dist/commands/create-theme.md +0 -29
  37. package/pennyfarthing-dist/commands/dev.md +0 -7
  38. package/pennyfarthing-dist/commands/devops.md +0 -7
  39. package/pennyfarthing-dist/commands/git-cleanup.md +0 -51
  40. package/pennyfarthing-dist/commands/health-check.md +0 -141
  41. package/pennyfarthing-dist/commands/help.md +0 -264
  42. package/pennyfarthing-dist/commands/job-fair.md +0 -102
  43. package/pennyfarthing-dist/commands/list-themes.md +0 -21
  44. package/pennyfarthing-dist/commands/orchestrator.md +0 -7
  45. package/pennyfarthing-dist/commands/parallel-work.md +0 -71
  46. package/pennyfarthing-dist/commands/party-mode.md +0 -77
  47. package/pennyfarthing-dist/commands/permissions.md +0 -193
  48. package/pennyfarthing-dist/commands/pm.md +0 -7
  49. package/pennyfarthing-dist/commands/prime.md +0 -140
  50. package/pennyfarthing-dist/commands/release.md +0 -58
  51. package/pennyfarthing-dist/commands/repo-status.md +0 -49
  52. package/pennyfarthing-dist/commands/retro.md +0 -200
  53. package/pennyfarthing-dist/commands/reviewer.md +0 -7
  54. package/pennyfarthing-dist/commands/run-ci.md +0 -116
  55. package/pennyfarthing-dist/commands/set-theme.md +0 -56
  56. package/pennyfarthing-dist/commands/show-theme.md +0 -21
  57. package/pennyfarthing-dist/commands/sm.md +0 -7
  58. package/pennyfarthing-dist/commands/solo.md +0 -447
  59. package/pennyfarthing-dist/commands/sprint-planning.md +0 -109
  60. package/pennyfarthing-dist/commands/sprint.md +0 -133
  61. package/pennyfarthing-dist/commands/standalone.md +0 -194
  62. package/pennyfarthing-dist/commands/start-epic.md +0 -168
  63. package/pennyfarthing-dist/commands/sync-epic-to-jira.md +0 -184
  64. package/pennyfarthing-dist/commands/sync-work-with-sprint.md +0 -373
  65. package/pennyfarthing-dist/commands/tea.md +0 -7
  66. package/pennyfarthing-dist/commands/tech-writer.md +0 -7
  67. package/pennyfarthing-dist/commands/theme-maker.md +0 -676
  68. package/pennyfarthing-dist/commands/update-domain-docs.md +0 -83
  69. package/pennyfarthing-dist/commands/ux-designer.md +0 -7
  70. package/pennyfarthing-dist/commands/work.md +0 -23
  71. package/pennyfarthing-dist/commands/workflow.md +0 -21
  72. package/pennyfarthing-dist/guides/agent-behavior.md +0 -311
  73. package/pennyfarthing-dist/guides/agent-coordination.md +0 -480
  74. package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +0 -432
  75. package/pennyfarthing-dist/guides/agent-template-strategic.md +0 -148
  76. package/pennyfarthing-dist/guides/agent-template-tactical.md +0 -162
  77. package/pennyfarthing-dist/guides/hooks.md +0 -230
  78. package/pennyfarthing-dist/guides/measurement-framework.md +0 -210
  79. package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +0 -766
  80. package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +0 -574
  81. package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +0 -488
  82. package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +0 -402
  83. package/pennyfarthing-dist/guides/permission-protocol.md +0 -188
  84. package/pennyfarthing-dist/guides/persona-loading.md +0 -46
  85. package/pennyfarthing-dist/guides/prompt-patterns.md +0 -338
  86. package/pennyfarthing-dist/guides/scale-levels.md +0 -114
  87. package/pennyfarthing-dist/guides/session-artifacts.md +0 -193
  88. package/pennyfarthing-dist/guides/workflow-schema.md +0 -257
  89. package/pennyfarthing-dist/guides/worktree-mode.md +0 -113
  90. package/pennyfarthing-dist/guides/xml-tags.md +0 -335
  91. package/pennyfarthing-dist/output-styles/teaching.md +0 -33
  92. package/pennyfarthing-dist/output-styles/terse.md +0 -20
  93. package/pennyfarthing-dist/output-styles/verbose.md +0 -28
  94. package/pennyfarthing-dist/personas/themes/1984.yaml +0 -300
  95. package/pennyfarthing-dist/personas/themes/a-team.yaml +0 -327
  96. package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +0 -290
  97. package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +0 -320
  98. package/pennyfarthing-dist/personas/themes/all-stars.yaml +0 -322
  99. package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +0 -308
  100. package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +0 -294
  101. package/pennyfarthing-dist/personas/themes/arcane.yaml +0 -278
  102. package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +0 -318
  103. package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +0 -278
  104. package/pennyfarthing-dist/personas/themes/babylon-5.yaml +0 -278
  105. package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +0 -278
  106. package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +0 -278
  107. package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +0 -290
  108. package/pennyfarthing-dist/personas/themes/black-sails.yaml +0 -290
  109. package/pennyfarthing-dist/personas/themes/blade-runner.yaml +0 -285
  110. package/pennyfarthing-dist/personas/themes/bobiverse.yaml +0 -278
  111. package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +0 -315
  112. package/pennyfarthing-dist/personas/themes/catch-22.yaml +0 -304
  113. package/pennyfarthing-dist/personas/themes/classical-composers.yaml +0 -298
  114. package/pennyfarthing-dist/personas/themes/control.yaml +0 -197
  115. package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +0 -308
  116. package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +0 -311
  117. package/pennyfarthing-dist/personas/themes/deadwood.yaml +0 -290
  118. package/pennyfarthing-dist/personas/themes/dickens.yaml +0 -308
  119. package/pennyfarthing-dist/personas/themes/discworld.yaml +0 -322
  120. package/pennyfarthing-dist/personas/themes/doctor-who.yaml +0 -280
  121. package/pennyfarthing-dist/personas/themes/don-quixote.yaml +0 -308
  122. package/pennyfarthing-dist/personas/themes/dune.yaml +0 -297
  123. package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +0 -308
  124. package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +0 -278
  125. package/pennyfarthing-dist/personas/themes/fargo.yaml +0 -318
  126. package/pennyfarthing-dist/personas/themes/film-auteurs.yaml +0 -300
  127. package/pennyfarthing-dist/personas/themes/firefly.yaml +0 -316
  128. package/pennyfarthing-dist/personas/themes/foundation.yaml +0 -280
  129. package/pennyfarthing-dist/personas/themes/futurama.yaml +0 -309
  130. package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +0 -280
  131. package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +0 -361
  132. package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +0 -296
  133. package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +0 -296
  134. package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +0 -317
  135. package/pennyfarthing-dist/personas/themes/hannibal.yaml +0 -290
  136. package/pennyfarthing-dist/personas/themes/harry-potter.yaml +0 -312
  137. package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +0 -281
  138. package/pennyfarthing-dist/personas/themes/historical-figures.yaml +0 -278
  139. package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +0 -319
  140. package/pennyfarthing-dist/personas/themes/house-md.yaml +0 -309
  141. package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +0 -279
  142. package/pennyfarthing-dist/personas/themes/inspector-morse.yaml +0 -290
  143. package/pennyfarthing-dist/personas/themes/jane-austen.yaml +0 -277
  144. package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +0 -308
  145. package/pennyfarthing-dist/personas/themes/justified.yaml +0 -290
  146. package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +0 -339
  147. package/pennyfarthing-dist/personas/themes/les-miserables.yaml +0 -289
  148. package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +0 -322
  149. package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +0 -321
  150. package/pennyfarthing-dist/personas/themes/mad-max.yaml +0 -345
  151. package/pennyfarthing-dist/personas/themes/mad-men.yaml +0 -279
  152. package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +0 -290
  153. package/pennyfarthing-dist/personas/themes/mash.yaml +0 -325
  154. package/pennyfarthing-dist/personas/themes/mass-effect.yaml +0 -279
  155. package/pennyfarthing-dist/personas/themes/military-commanders.yaml +0 -294
  156. package/pennyfarthing-dist/personas/themes/moby-dick.yaml +0 -308
  157. package/pennyfarthing-dist/personas/themes/monty-python.yaml +0 -293
  158. package/pennyfarthing-dist/personas/themes/neuromancer.yaml +0 -290
  159. package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +0 -317
  160. package/pennyfarthing-dist/personas/themes/parks-and-rec.yaml +0 -360
  161. package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +0 -288
  162. package/pennyfarthing-dist/personas/themes/princess-bride.yaml +0 -340
  163. package/pennyfarthing-dist/personas/themes/renaissance-masters.yaml +0 -308
  164. package/pennyfarthing-dist/personas/themes/rome.yaml +0 -290
  165. package/pennyfarthing-dist/personas/themes/russian-masters.yaml +0 -306
  166. package/pennyfarthing-dist/personas/themes/sandman.yaml +0 -278
  167. package/pennyfarthing-dist/personas/themes/scientific-revolutionaries.yaml +0 -308
  168. package/pennyfarthing-dist/personas/themes/shakespeare.yaml +0 -291
  169. package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +0 -279
  170. package/pennyfarthing-dist/personas/themes/snow-crash.yaml +0 -278
  171. package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +0 -290
  172. package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +0 -355
  173. package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +0 -324
  174. package/pennyfarthing-dist/personas/themes/star-wars.yaml +0 -293
  175. package/pennyfarthing-dist/personas/themes/succession.yaml +0 -290
  176. package/pennyfarthing-dist/personas/themes/superfriends.yaml +0 -328
  177. package/pennyfarthing-dist/personas/themes/ted-lasso.yaml +0 -355
  178. package/pennyfarthing-dist/personas/themes/the-americans.yaml +0 -290
  179. package/pennyfarthing-dist/personas/themes/the-crown.yaml +0 -290
  180. package/pennyfarthing-dist/personas/themes/the-expanse.yaml +0 -333
  181. package/pennyfarthing-dist/personas/themes/the-good-place.yaml +0 -311
  182. package/pennyfarthing-dist/personas/themes/the-matrix.yaml +0 -338
  183. package/pennyfarthing-dist/personas/themes/the-odyssey.yaml +0 -290
  184. package/pennyfarthing-dist/personas/themes/the-office.yaml +0 -319
  185. package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +0 -296
  186. package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +0 -290
  187. package/pennyfarthing-dist/personas/themes/the-wire.yaml +0 -299
  188. package/pennyfarthing-dist/personas/themes/the-witcher.yaml +0 -290
  189. package/pennyfarthing-dist/personas/themes/twin-peaks.yaml +0 -292
  190. package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +0 -290
  191. package/pennyfarthing-dist/personas/themes/watchmen.yaml +0 -281
  192. package/pennyfarthing-dist/personas/themes/west-wing.yaml +0 -281
  193. package/pennyfarthing-dist/personas/themes/world-explorers.yaml +0 -308
  194. package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +0 -295
  195. package/pennyfarthing-dist/personas/themes/x-files.yaml +0 -292
  196. package/pennyfarthing-dist/scripts/README.md +0 -68
  197. package/pennyfarthing-dist/scripts/core/README.md +0 -26
  198. package/pennyfarthing-dist/scripts/core/agent-session.sh +0 -383
  199. package/pennyfarthing-dist/scripts/core/check-context.sh +0 -280
  200. package/pennyfarthing-dist/scripts/core/handoff-marker.sh +0 -101
  201. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +0 -95
  202. package/pennyfarthing-dist/scripts/core/prime.sh +0 -30
  203. package/pennyfarthing-dist/scripts/core/run.sh +0 -84
  204. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +0 -21
  205. package/pennyfarthing-dist/scripts/git/README.md +0 -25
  206. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +0 -267
  207. package/pennyfarthing-dist/scripts/git/git-status-all.sh +0 -152
  208. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +0 -91
  209. package/pennyfarthing-dist/scripts/git/release.sh +0 -199
  210. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +0 -494
  211. package/pennyfarthing-dist/scripts/health/drift-detection.sh +0 -162
  212. package/pennyfarthing-dist/scripts/hooks/README.md +0 -32
  213. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  214. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +0 -106
  215. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +0 -60
  216. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +0 -65
  217. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -35
  218. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +0 -166
  219. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +0 -107
  220. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -71
  221. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +0 -54
  222. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +0 -20
  223. package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +0 -499
  224. package/pennyfarthing-dist/scripts/hooks/session-start.sh +0 -97
  225. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +0 -65
  226. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +0 -94
  227. package/pennyfarthing-dist/scripts/jira/README.md +0 -36
  228. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +0 -101
  229. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +0 -97
  230. package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +0 -22
  231. package/pennyfarthing-dist/scripts/jira/jira-lib.sh +0 -464
  232. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +0 -266
  233. package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +0 -18
  234. package/pennyfarthing-dist/scripts/jira/jira-sync.sh +0 -16
  235. package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +0 -16
  236. package/pennyfarthing-dist/scripts/jira/sync-epic-to-jira.sh +0 -16
  237. package/pennyfarthing-dist/scripts/lib/README.md +0 -29
  238. package/pennyfarthing-dist/scripts/lib/background-tasks.sh +0 -177
  239. package/pennyfarthing-dist/scripts/lib/checkpoint.sh +0 -136
  240. package/pennyfarthing-dist/scripts/lib/common.sh +0 -212
  241. package/pennyfarthing-dist/scripts/lib/file-lock.sh +0 -269
  242. package/pennyfarthing-dist/scripts/lib/find-root.sh +0 -35
  243. package/pennyfarthing-dist/scripts/lib/logging.sh +0 -186
  244. package/pennyfarthing-dist/scripts/lib/retry.sh +0 -76
  245. package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +0 -102
  246. package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +0 -97
  247. package/pennyfarthing-dist/scripts/misc/README.md +0 -44
  248. package/pennyfarthing-dist/scripts/misc/add-short-names.sh +0 -13
  249. package/pennyfarthing-dist/scripts/misc/add_short_names.py +0 -226
  250. package/pennyfarthing-dist/scripts/misc/backlog.sh +0 -91
  251. package/pennyfarthing-dist/scripts/misc/check-status.sh +0 -247
  252. package/pennyfarthing-dist/scripts/misc/deploy.sh +0 -296
  253. package/pennyfarthing-dist/scripts/misc/doctor-dogfood.sh +0 -392
  254. package/pennyfarthing-dist/scripts/misc/find-related-work.sh +0 -231
  255. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +0 -110
  256. package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +0 -74
  257. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +0 -10
  258. package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +0 -319
  259. package/pennyfarthing-dist/scripts/misc/repo-scan.sh +0 -141
  260. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +0 -778
  261. package/pennyfarthing-dist/scripts/misc/run-ci.sh +0 -219
  262. package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +0 -7
  263. package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +0 -319
  264. package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +0 -193
  265. package/pennyfarthing-dist/scripts/misc/statusline.sh +0 -259
  266. package/pennyfarthing-dist/scripts/misc/uninstall.sh +0 -270
  267. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +0 -160
  268. package/pennyfarthing-dist/scripts/sprint/README.md +0 -29
  269. package/pennyfarthing-dist/scripts/sprint/archive-story.sh +0 -139
  270. package/pennyfarthing-dist/scripts/sprint/available-stories.sh +0 -97
  271. package/pennyfarthing-dist/scripts/sprint/check-story.sh +0 -164
  272. package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +0 -58
  273. package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +0 -69
  274. package/pennyfarthing-dist/scripts/sprint/import-epic-to-future.sh +0 -10
  275. package/pennyfarthing-dist/scripts/sprint/import_epic_to_future.py +0 -270
  276. package/pennyfarthing-dist/scripts/sprint/list-future.sh +0 -151
  277. package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +0 -116
  278. package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +0 -164
  279. package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +0 -421
  280. package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +0 -39
  281. package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +0 -241
  282. package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +0 -134
  283. package/pennyfarthing-dist/scripts/story/README.md +0 -23
  284. package/pennyfarthing-dist/scripts/story/create-story.sh +0 -19
  285. package/pennyfarthing-dist/scripts/story/size-story.sh +0 -18
  286. package/pennyfarthing-dist/scripts/story/story-template.sh +0 -18
  287. package/pennyfarthing-dist/scripts/test/README.md +0 -23
  288. package/pennyfarthing-dist/scripts/test/ensure-swebench-data.sh +0 -59
  289. package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +0 -220
  290. package/pennyfarthing-dist/scripts/test/swebench-judge.py +0 -374
  291. package/pennyfarthing-dist/scripts/test/test-cache.sh +0 -165
  292. package/pennyfarthing-dist/scripts/test/test-setup.sh +0 -337
  293. package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -582
  294. package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +0 -515
  295. package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +0 -599
  296. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +0 -332
  297. package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +0 -573
  298. package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +0 -859
  299. package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +0 -662
  300. package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +0 -589
  301. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +0 -105
  302. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +0 -597
  303. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +0 -514
  304. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +0 -517
  305. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -331
  306. package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +0 -647
  307. package/pennyfarthing-dist/scripts/theme/README.md +0 -22
  308. package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +0 -13
  309. package/pennyfarthing-dist/scripts/theme/compute_theme_tiers.py +0 -402
  310. package/pennyfarthing-dist/scripts/theme/list-themes.sh +0 -73
  311. package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +0 -97
  312. package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +0 -576
  313. package/pennyfarthing-dist/scripts/workflow/README.md +0 -28
  314. package/pennyfarthing-dist/scripts/workflow/check.py +0 -502
  315. package/pennyfarthing-dist/scripts/workflow/check.sh +0 -24
  316. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +0 -159
  317. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +0 -228
  318. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +0 -61
  319. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +0 -13
  320. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +0 -130
  321. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +0 -40
  322. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +0 -163
  323. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +0 -138
  324. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +0 -256
  325. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +0 -167
  326. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +0 -242
  327. package/pennyfarthing-dist/skills/changelog/SKILL.md +0 -367
  328. package/pennyfarthing-dist/skills/code-review/SKILL.md +0 -168
  329. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +0 -274
  330. package/pennyfarthing-dist/skills/cyclist/SKILL.md +0 -88
  331. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +0 -437
  332. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +0 -258
  333. package/pennyfarthing-dist/skills/jira/SKILL.md +0 -484
  334. package/pennyfarthing-dist/skills/judge/SKILL.md +0 -636
  335. package/pennyfarthing-dist/skills/just/SKILL.md +0 -403
  336. package/pennyfarthing-dist/skills/mermaid/SKILL.md +0 -240
  337. package/pennyfarthing-dist/skills/otel/skill.md +0 -223
  338. package/pennyfarthing-dist/skills/permissions/skill.md +0 -172
  339. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +0 -178
  340. package/pennyfarthing-dist/skills/skill-registry.schema.json +0 -107
  341. package/pennyfarthing-dist/skills/skill-registry.yaml +0 -393
  342. package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +0 -101
  343. package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +0 -97
  344. package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +0 -164
  345. package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +0 -101
  346. package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +0 -116
  347. package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +0 -164
  348. package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +0 -39
  349. package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +0 -147
  350. package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +0 -86
  351. package/pennyfarthing-dist/skills/sprint/skill.md +0 -465
  352. package/pennyfarthing-dist/skills/story/scripts/create-story.sh +0 -159
  353. package/pennyfarthing-dist/skills/story/scripts/size-story.sh +0 -198
  354. package/pennyfarthing-dist/skills/story/scripts/story-template.sh +0 -162
  355. package/pennyfarthing-dist/skills/story/skill.md +0 -219
  356. package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +0 -390
  357. package/pennyfarthing-dist/skills/testing/SKILL.md +0 -99
  358. package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +0 -124
  359. package/pennyfarthing-dist/skills/theme/skill.md +0 -129
  360. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +0 -174
  361. package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +0 -91
  362. package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +0 -163
  363. package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +0 -138
  364. package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +0 -273
  365. package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +0 -167
  366. package/pennyfarthing-dist/skills/workflow/skill.md +0 -337
  367. package/pennyfarthing-dist/skills/yq/SKILL.md +0 -264
  368. package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +0 -187
  369. package/pennyfarthing-dist/templates/LEADERBOARD.template.md +0 -59
  370. package/pennyfarthing-dist/templates/agent-scopes.yaml.template +0 -276
  371. package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +0 -61
  372. package/pennyfarthing-dist/templates/persona-config.yaml.template +0 -22
  373. package/pennyfarthing-dist/templates/preferences.yaml.template +0 -15
  374. package/pennyfarthing-dist/templates/settings.local.json.template +0 -101
  375. package/pennyfarthing-dist/templates/setup-env.sh.template +0 -18
  376. package/pennyfarthing-dist/templates/shared-context.md.template +0 -70
  377. package/pennyfarthing-dist/templates/sidecar/decisions.md.template +0 -40
  378. package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +0 -37
  379. package/pennyfarthing-dist/templates/sidecar/patterns.md.template +0 -34
  380. package/pennyfarthing-dist/workflows/agent-docs.yaml +0 -70
  381. package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +0 -101
  382. package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +0 -93
  383. package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +0 -115
  384. package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +0 -133
  385. package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +0 -138
  386. package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +0 -133
  387. package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +0 -142
  388. package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +0 -160
  389. package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +0 -102
  390. package/pennyfarthing-dist/workflows/architecture.yaml +0 -65
  391. package/pennyfarthing-dist/workflows/bdd.yaml +0 -60
  392. package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +0 -62
  393. package/pennyfarthing-dist/workflows/brainstorming/checklist.md +0 -44
  394. package/pennyfarthing-dist/workflows/brainstorming/instructions.md +0 -736
  395. package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +0 -49
  396. package/pennyfarthing-dist/workflows/code-review/checklist.md +0 -23
  397. package/pennyfarthing-dist/workflows/code-review/instructions.md +0 -234
  398. package/pennyfarthing-dist/workflows/code-review/workflow.yaml +0 -51
  399. package/pennyfarthing-dist/workflows/dev-story/checklist.md +0 -80
  400. package/pennyfarthing-dist/workflows/dev-story/instructions.xml +0 -410
  401. package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +0 -50
  402. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +0 -256
  403. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +0 -233
  404. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +0 -272
  405. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +0 -153
  406. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +0 -122
  407. package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +0 -57
  408. package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +0 -28
  409. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +0 -101
  410. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-02-categorize.md +0 -116
  411. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-03-execute.md +0 -224
  412. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +0 -88
  413. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +0 -79
  414. package/pennyfarthing-dist/workflows/git-cleanup.yaml +0 -59
  415. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +0 -190
  416. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +0 -178
  417. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -179
  418. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +0 -139
  419. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +0 -252
  420. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +0 -133
  421. package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +0 -4
  422. package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +0 -40
  423. package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +0 -13
  424. package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +0 -197
  425. package/pennyfarthing-dist/workflows/prd/data/project-types.csv +0 -11
  426. package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +0 -191
  427. package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +0 -153
  428. package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +0 -224
  429. package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +0 -226
  430. package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +0 -213
  431. package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +0 -207
  432. package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +0 -226
  433. package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +0 -237
  434. package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +0 -228
  435. package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +0 -231
  436. package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +0 -242
  437. package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +0 -217
  438. package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +0 -180
  439. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +0 -247
  440. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +0 -208
  441. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +0 -249
  442. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +0 -253
  443. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +0 -168
  444. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +0 -218
  445. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +0 -191
  446. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +0 -209
  447. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +0 -174
  448. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +0 -214
  449. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +0 -228
  450. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +0 -217
  451. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -205
  452. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +0 -243
  453. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +0 -263
  454. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +0 -209
  455. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +0 -264
  456. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +0 -242
  457. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +0 -232
  458. package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +0 -10
  459. package/pennyfarthing-dist/workflows/prd/workflow.yaml +0 -42
  460. package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +0 -177
  461. package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +0 -161
  462. package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +0 -199
  463. package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +0 -202
  464. package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +0 -205
  465. package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +0 -219
  466. package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +0 -194
  467. package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +0 -10
  468. package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +0 -31
  469. package/pennyfarthing-dist/workflows/project-context/project-context-template.md +0 -21
  470. package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +0 -184
  471. package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +0 -318
  472. package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +0 -278
  473. package/pennyfarthing-dist/workflows/project-context/workflow.yaml +0 -27
  474. package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +0 -156
  475. package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +0 -120
  476. package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +0 -113
  477. package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +0 -113
  478. package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +0 -106
  479. package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +0 -140
  480. package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +0 -27
  481. package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +0 -189
  482. package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +0 -144
  483. package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +0 -128
  484. package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +0 -191
  485. package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +0 -74
  486. package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +0 -27
  487. package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +0 -137
  488. package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +0 -229
  489. package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +0 -238
  490. package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +0 -206
  491. package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +0 -234
  492. package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +0 -443
  493. package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +0 -182
  494. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +0 -237
  495. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +0 -200
  496. package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +0 -249
  497. package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +0 -259
  498. package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +0 -177
  499. package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +0 -475
  500. package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +0 -137
  501. package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +0 -239
  502. package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +0 -248
  503. package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +0 -202
  504. package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +0 -239
  505. package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +0 -486
  506. package/pennyfarthing-dist/workflows/research/templates/research.template.md +0 -29
  507. package/pennyfarthing-dist/workflows/research/workflow.yaml +0 -45
  508. package/pennyfarthing-dist/workflows/retrospective/checklist.md +0 -31
  509. package/pennyfarthing-dist/workflows/retrospective/instructions.md +0 -1443
  510. package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +0 -50
  511. package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +0 -33
  512. package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +0 -55
  513. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +0 -54
  514. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +0 -44
  515. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +0 -64
  516. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +0 -73
  517. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +0 -56
  518. package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +0 -34
  519. package/pennyfarthing-dist/workflows/tdd.yaml +0 -50
  520. package/pennyfarthing-dist/workflows/trivial.yaml +0 -40
  521. package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +0 -135
  522. package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +0 -127
  523. package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +0 -190
  524. package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +0 -216
  525. package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +0 -219
  526. package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +0 -234
  527. package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +0 -252
  528. package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +0 -254
  529. package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +0 -224
  530. package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +0 -224
  531. package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +0 -241
  532. package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +0 -248
  533. package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +0 -237
  534. package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +0 -264
  535. package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +0 -228
  536. package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +0 -13
  537. package/pennyfarthing-dist/workflows/ux-design/workflow.yaml +0 -41
  538. package/pennyfarthing_scripts/__init__.py +0 -17
  539. package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  540. package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  541. package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
  542. package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
  543. package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
  544. package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
  545. package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
  546. package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
  547. package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
  548. package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
  549. package/pennyfarthing_scripts/bellmode_hook.py +0 -154
  550. package/pennyfarthing_scripts/brownfield/__init__.py +0 -35
  551. package/pennyfarthing_scripts/brownfield/__main__.py +0 -7
  552. package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
  553. package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
  554. package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
  555. package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
  556. package/pennyfarthing_scripts/brownfield/cli.py +0 -131
  557. package/pennyfarthing_scripts/brownfield/discover.py +0 -753
  558. package/pennyfarthing_scripts/common/__init__.py +0 -49
  559. package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
  560. package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
  561. package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
  562. package/pennyfarthing_scripts/common/config.py +0 -65
  563. package/pennyfarthing_scripts/common/output.py +0 -180
  564. package/pennyfarthing_scripts/config.py +0 -21
  565. package/pennyfarthing_scripts/git/__init__.py +0 -29
  566. package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
  567. package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
  568. package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
  569. package/pennyfarthing_scripts/git/create_branches.py +0 -439
  570. package/pennyfarthing_scripts/git/status_all.py +0 -310
  571. package/pennyfarthing_scripts/hooks.py +0 -455
  572. package/pennyfarthing_scripts/jira/__init__.py +0 -93
  573. package/pennyfarthing_scripts/jira/__main__.py +0 -10
  574. package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
  575. package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
  576. package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
  577. package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
  578. package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
  579. package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
  580. package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
  581. package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
  582. package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
  583. package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
  584. package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
  585. package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
  586. package/pennyfarthing_scripts/jira/bidirectional.py +0 -561
  587. package/pennyfarthing_scripts/jira/claim.py +0 -211
  588. package/pennyfarthing_scripts/jira/cli.py +0 -150
  589. package/pennyfarthing_scripts/jira/client.py +0 -613
  590. package/pennyfarthing_scripts/jira/epic.py +0 -176
  591. package/pennyfarthing_scripts/jira/story.py +0 -219
  592. package/pennyfarthing_scripts/jira/sync.py +0 -350
  593. package/pennyfarthing_scripts/jira_bidirectional_sync.py +0 -37
  594. package/pennyfarthing_scripts/jira_epic_creation.py +0 -30
  595. package/pennyfarthing_scripts/jira_sync.py +0 -36
  596. package/pennyfarthing_scripts/jira_sync_story.py +0 -30
  597. package/pennyfarthing_scripts/output.py +0 -37
  598. package/pennyfarthing_scripts/preflight/__init__.py +0 -17
  599. package/pennyfarthing_scripts/preflight/__main__.py +0 -10
  600. package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
  601. package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
  602. package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
  603. package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
  604. package/pennyfarthing_scripts/preflight/cli.py +0 -141
  605. package/pennyfarthing_scripts/preflight/finish.py +0 -382
  606. package/pennyfarthing_scripts/pretooluse_hook.py +0 -142
  607. package/pennyfarthing_scripts/prime/__init__.py +0 -125
  608. package/pennyfarthing_scripts/prime/__main__.py +0 -8
  609. package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
  610. package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
  611. package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
  612. package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
  613. package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
  614. package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
  615. package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
  616. package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  617. package/pennyfarthing_scripts/prime/cli.py +0 -375
  618. package/pennyfarthing_scripts/prime/loader.py +0 -239
  619. package/pennyfarthing_scripts/prime/models.py +0 -169
  620. package/pennyfarthing_scripts/prime/persona.py +0 -288
  621. package/pennyfarthing_scripts/prime/session.py +0 -183
  622. package/pennyfarthing_scripts/prime/workflow.py +0 -275
  623. package/pennyfarthing_scripts/sprint/__init__.py +0 -66
  624. package/pennyfarthing_scripts/sprint/__main__.py +0 -10
  625. package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
  626. package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
  627. package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
  628. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  629. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  630. package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
  631. package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
  632. package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
  633. package/pennyfarthing_scripts/sprint/archive.py +0 -108
  634. package/pennyfarthing_scripts/sprint/cli.py +0 -124
  635. package/pennyfarthing_scripts/sprint/loader.py +0 -193
  636. package/pennyfarthing_scripts/sprint/status.py +0 -122
  637. package/pennyfarthing_scripts/sprint/validator.py +0 -405
  638. package/pennyfarthing_scripts/sprint/work.py +0 -192
  639. package/pennyfarthing_scripts/story/__init__.py +0 -67
  640. package/pennyfarthing_scripts/story/__main__.py +0 -10
  641. package/pennyfarthing_scripts/story/cli.py +0 -105
  642. package/pennyfarthing_scripts/story/create.py +0 -167
  643. package/pennyfarthing_scripts/story/size.py +0 -113
  644. package/pennyfarthing_scripts/story/template.py +0 -151
  645. package/pennyfarthing_scripts/swebench.py +0 -216
  646. package/pennyfarthing_scripts/tests/__init__.py +0 -1
  647. package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
  648. package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
  649. package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
  650. package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
  651. package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
  652. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
  653. package/pennyfarthing_scripts/tests/conftest.py +0 -106
  654. package/pennyfarthing_scripts/tests/test_brownfield.py +0 -842
  655. package/pennyfarthing_scripts/tests/test_cli_modules.py +0 -245
  656. package/pennyfarthing_scripts/tests/test_common.py +0 -180
  657. package/pennyfarthing_scripts/tests/test_git_utils.py +0 -866
  658. package/pennyfarthing_scripts/tests/test_jira_package.py +0 -334
  659. package/pennyfarthing_scripts/tests/test_package_structure.py +0 -372
  660. package/pennyfarthing_scripts/tests/test_prime.py +0 -1050
  661. package/pennyfarthing_scripts/tests/test_sprint_package.py +0 -236
  662. package/pennyfarthing_scripts/tests/test_sprint_validator.py +0 -675
  663. package/pennyfarthing_scripts/tests/test_story_package.py +0 -156
  664. package/pennyfarthing_scripts/welcome_hook.py +0 -157
  665. package/pennyfarthing_scripts/workflow.py +0 -183
  666. /package/{packages/core/bin → bin}/pennyfarthing.js +0 -0
  667. /package/{packages/core/dist → dist}/bmad/context-reader.d.ts +0 -0
  668. /package/{packages/core/dist → dist}/bmad/context-reader.d.ts.map +0 -0
  669. /package/{packages/core/dist → dist}/bmad/context-reader.js +0 -0
  670. /package/{packages/core/dist → dist}/bmad/context-reader.js.map +0 -0
  671. /package/{packages/core/dist → dist}/bmad/context-reader.test.d.ts +0 -0
  672. /package/{packages/core/dist → dist}/bmad/context-reader.test.d.ts.map +0 -0
  673. /package/{packages/core/dist → dist}/bmad/context-reader.test.js +0 -0
  674. /package/{packages/core/dist → dist}/bmad/context-reader.test.js.map +0 -0
  675. /package/{packages/core/dist → dist}/bmad/epics-parser.d.ts +0 -0
  676. /package/{packages/core/dist → dist}/bmad/epics-parser.d.ts.map +0 -0
  677. /package/{packages/core/dist → dist}/bmad/epics-parser.js +0 -0
  678. /package/{packages/core/dist → dist}/bmad/epics-parser.js.map +0 -0
  679. /package/{packages/core/dist → dist}/bmad/epics-parser.test.d.ts +0 -0
  680. /package/{packages/core/dist → dist}/bmad/epics-parser.test.d.ts.map +0 -0
  681. /package/{packages/core/dist → dist}/bmad/epics-parser.test.js +0 -0
  682. /package/{packages/core/dist → dist}/bmad/epics-parser.test.js.map +0 -0
  683. /package/{packages/core/dist → dist}/bmad/index.d.ts +0 -0
  684. /package/{packages/core/dist → dist}/bmad/index.d.ts.map +0 -0
  685. /package/{packages/core/dist → dist}/bmad/index.js +0 -0
  686. /package/{packages/core/dist → dist}/bmad/index.js.map +0 -0
  687. /package/{packages/core/dist → dist}/bmad/status-sync.d.ts +0 -0
  688. /package/{packages/core/dist → dist}/bmad/status-sync.d.ts.map +0 -0
  689. /package/{packages/core/dist → dist}/bmad/status-sync.js +0 -0
  690. /package/{packages/core/dist → dist}/bmad/status-sync.js.map +0 -0
  691. /package/{packages/core/dist → dist}/bmad/status-sync.test.d.ts +0 -0
  692. /package/{packages/core/dist → dist}/bmad/status-sync.test.d.ts.map +0 -0
  693. /package/{packages/core/dist → dist}/bmad/status-sync.test.js +0 -0
  694. /package/{packages/core/dist → dist}/bmad/status-sync.test.js.map +0 -0
  695. /package/{packages/core/dist → dist}/bmad/story-exporter.d.ts +0 -0
  696. /package/{packages/core/dist → dist}/bmad/story-exporter.d.ts.map +0 -0
  697. /package/{packages/core/dist → dist}/bmad/story-exporter.js +0 -0
  698. /package/{packages/core/dist → dist}/bmad/story-exporter.js.map +0 -0
  699. /package/{packages/core/dist → dist}/bmad/story-exporter.test.d.ts +0 -0
  700. /package/{packages/core/dist → dist}/bmad/story-exporter.test.d.ts.map +0 -0
  701. /package/{packages/core/dist → dist}/bmad/story-exporter.test.js +0 -0
  702. /package/{packages/core/dist → dist}/bmad/story-exporter.test.js.map +0 -0
  703. /package/{packages/core/dist → dist}/bmad/story-parser.d.ts +0 -0
  704. /package/{packages/core/dist → dist}/bmad/story-parser.d.ts.map +0 -0
  705. /package/{packages/core/dist → dist}/bmad/story-parser.js +0 -0
  706. /package/{packages/core/dist → dist}/bmad/story-parser.js.map +0 -0
  707. /package/{packages/core/dist → dist}/bmad/story-parser.test.d.ts +0 -0
  708. /package/{packages/core/dist → dist}/bmad/story-parser.test.d.ts.map +0 -0
  709. /package/{packages/core/dist → dist}/bmad/story-parser.test.js +0 -0
  710. /package/{packages/core/dist → dist}/bmad/story-parser.test.js.map +0 -0
  711. /package/{packages/core/dist → dist}/cli/commands/command.d.ts +0 -0
  712. /package/{packages/core/dist → dist}/cli/commands/command.d.ts.map +0 -0
  713. /package/{packages/core/dist → dist}/cli/commands/command.js +0 -0
  714. /package/{packages/core/dist → dist}/cli/commands/command.js.map +0 -0
  715. /package/{packages/core/dist → dist}/cli/commands/cyclist.d.ts +0 -0
  716. /package/{packages/core/dist → dist}/cli/commands/cyclist.d.ts.map +0 -0
  717. /package/{packages/core/dist → dist}/cli/commands/cyclist.js +0 -0
  718. /package/{packages/core/dist → dist}/cli/commands/cyclist.js.map +0 -0
  719. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.d.ts +0 -0
  720. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.d.ts.map +0 -0
  721. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.js +0 -0
  722. /package/{packages/core/dist → dist}/cli/commands/cyclist.test.js.map +0 -0
  723. /package/{packages/core/dist → dist}/cli/commands/doctor-legacy.test.d.ts +0 -0
  724. /package/{packages/core/dist → dist}/cli/commands/doctor-legacy.test.d.ts.map +0 -0
  725. /package/{packages/core/dist → dist}/cli/commands/doctor-legacy.test.js +0 -0
  726. /package/{packages/core/dist → dist}/cli/commands/doctor-legacy.test.js.map +0 -0
  727. /package/{packages/core/dist → dist}/cli/commands/init.d.ts +0 -0
  728. /package/{packages/core/dist → dist}/cli/commands/init.d.ts.map +0 -0
  729. /package/{packages/core/dist → dist}/cli/commands/init.js +0 -0
  730. /package/{packages/core/dist → dist}/cli/commands/init.js.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