@pennyfarthing/core 9.0.3 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
  4. package/packages/core/dist/cli/commands/doctor.js +103 -1
  5. package/packages/core/dist/cli/commands/doctor.js.map +1 -1
  6. package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
  7. package/packages/core/dist/cli/commands/init.js +9 -3
  8. package/packages/core/dist/cli/commands/init.js.map +1 -1
  9. package/packages/core/dist/cli/ocean-profiles.test.js +9 -12
  10. package/packages/core/dist/cli/ocean-profiles.test.js.map +1 -1
  11. package/packages/core/dist/cli/utils/themes.d.ts +6 -3
  12. package/packages/core/dist/cli/utils/themes.d.ts.map +1 -1
  13. package/packages/core/dist/cli/utils/themes.js +21 -56
  14. package/packages/core/dist/cli/utils/themes.js.map +1 -1
  15. package/pennyfarthing-dist/commands/chore.md +61 -22
  16. package/pennyfarthing-dist/commands/setup.md +65 -0
  17. package/pennyfarthing-dist/scripts/git/release.sh +31 -0
  18. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  19. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +78 -0
  20. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +13 -2
  21. package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +139 -0
  22. package/pennyfarthing-dist/scripts/theme/list-themes.sh +17 -60
  23. package/pennyfarthing-dist/workflows/patch.yaml +2 -3
  24. package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +157 -0
  25. package/pennyfarthing-dist/workflows/project-setup/steps/step-02-clone-repos.md +217 -0
  26. package/pennyfarthing-dist/workflows/project-setup/steps/step-03-repos-yaml.md +159 -0
  27. package/pennyfarthing-dist/workflows/project-setup/steps/step-04-claude-md.md +186 -0
  28. package/pennyfarthing-dist/workflows/project-setup/steps/step-05-shared-context.md +185 -0
  29. package/pennyfarthing-dist/workflows/project-setup/steps/step-06-task-runner.md +279 -0
  30. package/pennyfarthing-dist/workflows/project-setup/steps/step-07-theme.md +200 -0
  31. package/pennyfarthing-dist/workflows/project-setup/steps/step-08-theme-packs.md +142 -0
  32. package/pennyfarthing-dist/workflows/project-setup/steps/step-09-cyclist.md +245 -0
  33. package/pennyfarthing-dist/workflows/project-setup/steps/step-10-complete.md +204 -0
  34. package/pennyfarthing-dist/workflows/project-setup/workflow.yaml +41 -0
  35. package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  36. package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  37. package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
  38. package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
  39. package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
  40. package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
  41. package/pennyfarthing_scripts/__pycache__/jira_bidirectional_sync.cpython-314.pyc +0 -0
  42. package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
  43. package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
  44. package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
  45. package/pennyfarthing_scripts/__pycache__/output.cpython-314.pyc +0 -0
  46. package/pennyfarthing_scripts/__pycache__/patch_mode.cpython-314.pyc +0 -0
  47. package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
  48. package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
  49. package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
  50. package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
  51. package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
  52. package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
  53. package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
  54. package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
  55. package/pennyfarthing_scripts/cli.py +6 -0
  56. package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
  57. package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
  58. package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
  59. package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
  60. package/pennyfarthing_scripts/common/themes.py +253 -0
  61. package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
  62. package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
  63. package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
  64. package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
  65. package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
  66. package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
  67. package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
  68. package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
  69. package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
  70. package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
  71. package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
  72. package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
  73. package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
  74. package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
  75. package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
  76. package/pennyfarthing_scripts/migration/__pycache__/__init__.cpython-314.pyc +0 -0
  77. package/pennyfarthing_scripts/migration/__pycache__/__main__.cpython-314.pyc +0 -0
  78. package/pennyfarthing_scripts/migration/__pycache__/cli.cpython-314.pyc +0 -0
  79. package/pennyfarthing_scripts/migration/__pycache__/session.cpython-314.pyc +0 -0
  80. package/pennyfarthing_scripts/migration/__pycache__/skill.cpython-314.pyc +0 -0
  81. package/pennyfarthing_scripts/migration/__pycache__/step.cpython-314.pyc +0 -0
  82. package/pennyfarthing_scripts/migration/__pycache__/validate.cpython-314.pyc +0 -0
  83. package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
  84. package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
  85. package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
  86. package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
  87. package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
  88. package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
  89. package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
  90. package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
  91. package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
  92. package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
  93. package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
  94. package/pennyfarthing_scripts/prime/__pycache__/tiers.cpython-314.pyc +0 -0
  95. package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  96. package/pennyfarthing_scripts/prime/cli.py +88 -26
  97. package/pennyfarthing_scripts/prime/models.py +28 -0
  98. package/pennyfarthing_scripts/prime/persona.py +9 -30
  99. package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
  100. package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
  101. package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
  102. package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
  103. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  104. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  105. package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
  106. package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
  107. package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
  108. package/pennyfarthing_scripts/sprint/archive_epic.py +2 -2
  109. package/pennyfarthing_scripts/story/__pycache__/__init__.cpython-314.pyc +0 -0
  110. package/pennyfarthing_scripts/story/__pycache__/__main__.cpython-314.pyc +0 -0
  111. package/pennyfarthing_scripts/story/__pycache__/cli.cpython-314.pyc +0 -0
  112. package/pennyfarthing_scripts/story/__pycache__/create.cpython-314.pyc +0 -0
  113. package/pennyfarthing_scripts/story/__pycache__/size.cpython-314.pyc +0 -0
  114. package/pennyfarthing_scripts/story/__pycache__/template.cpython-314.pyc +0 -0
  115. package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
  116. package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
  117. package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
  118. package/pennyfarthing_scripts/tests/__pycache__/test_cli_modules.cpython-314-pytest-9.0.2.pyc +0 -0
  119. package/pennyfarthing_scripts/tests/__pycache__/test_common.cpython-314-pytest-9.0.2.pyc +0 -0
  120. package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
  121. package/pennyfarthing_scripts/tests/__pycache__/test_jira_package.cpython-314-pytest-9.0.2.pyc +0 -0
  122. package/pennyfarthing_scripts/tests/__pycache__/test_package_structure.cpython-314-pytest-9.0.2.pyc +0 -0
  123. package/pennyfarthing_scripts/tests/__pycache__/test_patch_mode.cpython-314-pytest-9.0.2.pyc +0 -0
  124. package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
  125. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
  126. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
  127. package/pennyfarthing_scripts/tests/__pycache__/test_story_package.cpython-314-pytest-9.0.2.pyc +0 -0
  128. package/pennyfarthing_scripts/tests/__pycache__/test_tiers.cpython-314-pytest-9.0.2.pyc +0 -0
  129. package/pennyfarthing_scripts/tests/__pycache__/test_token_counting.cpython-314-pytest-9.0.2.pyc +0 -0
  130. package/pennyfarthing_scripts/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
  131. package/pennyfarthing_scripts/tests/__pycache__/test_workflow_cli.cpython-314-pytest-9.0.2.pyc +0 -0
  132. package/pennyfarthing-dist/personas/themes/1984.yaml +0 -304
  133. package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +0 -294
  134. package/pennyfarthing-dist/personas/themes/all-stars.yaml +0 -326
  135. package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +0 -312
  136. package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +0 -298
  137. package/pennyfarthing-dist/personas/themes/arcane.yaml +0 -282
  138. package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +0 -327
  139. package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +0 -282
  140. package/pennyfarthing-dist/personas/themes/babylon-5.yaml +0 -282
  141. package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +0 -282
  142. package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +0 -294
  143. package/pennyfarthing-dist/personas/themes/black-sails.yaml +0 -294
  144. package/pennyfarthing-dist/personas/themes/bobiverse.yaml +0 -282
  145. package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +0 -319
  146. package/pennyfarthing-dist/personas/themes/classical-composers.yaml +0 -302
  147. package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +0 -312
  148. package/pennyfarthing-dist/personas/themes/deadwood.yaml +0 -294
  149. package/pennyfarthing-dist/personas/themes/dickens.yaml +0 -312
  150. package/pennyfarthing-dist/personas/themes/don-quixote.yaml +0 -312
  151. package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +0 -312
  152. package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +0 -282
  153. package/pennyfarthing-dist/personas/themes/fargo.yaml +0 -322
  154. package/pennyfarthing-dist/personas/themes/film-auteurs.yaml +0 -304
  155. package/pennyfarthing-dist/personas/themes/foundation.yaml +0 -284
  156. package/pennyfarthing-dist/personas/themes/futurama.yaml +0 -313
  157. package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +0 -365
  158. package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +0 -300
  159. package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +0 -300
  160. package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +0 -326
  161. package/pennyfarthing-dist/personas/themes/hannibal.yaml +0 -294
  162. package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +0 -285
  163. package/pennyfarthing-dist/personas/themes/historical-figures.yaml +0 -282
  164. package/pennyfarthing-dist/personas/themes/house-md.yaml +0 -313
  165. package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +0 -283
  166. package/pennyfarthing-dist/personas/themes/inspector-morse.yaml +0 -294
  167. package/pennyfarthing-dist/personas/themes/jane-austen.yaml +0 -281
  168. package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +0 -312
  169. package/pennyfarthing-dist/personas/themes/justified.yaml +0 -294
  170. package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +0 -343
  171. package/pennyfarthing-dist/personas/themes/les-miserables.yaml +0 -293
  172. package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +0 -325
  173. package/pennyfarthing-dist/personas/themes/mad-men.yaml +0 -283
  174. package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +0 -294
  175. package/pennyfarthing-dist/personas/themes/mass-effect.yaml +0 -283
  176. package/pennyfarthing-dist/personas/themes/military-commanders.yaml +0 -298
  177. package/pennyfarthing-dist/personas/themes/moby-dick.yaml +0 -312
  178. package/pennyfarthing-dist/personas/themes/monty-python.yaml +0 -297
  179. package/pennyfarthing-dist/personas/themes/neuromancer.yaml +0 -294
  180. package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +0 -321
  181. package/pennyfarthing-dist/personas/themes/parks-and-rec.yaml +0 -364
  182. package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +0 -292
  183. package/pennyfarthing-dist/personas/themes/renaissance-masters.yaml +0 -312
  184. package/pennyfarthing-dist/personas/themes/rome.yaml +0 -294
  185. package/pennyfarthing-dist/personas/themes/russian-masters.yaml +0 -310
  186. package/pennyfarthing-dist/personas/themes/scientific-revolutionaries.yaml +0 -312
  187. package/pennyfarthing-dist/personas/themes/shakespeare.yaml +0 -295
  188. package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +0 -283
  189. package/pennyfarthing-dist/personas/themes/snow-crash.yaml +0 -290
  190. package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +0 -294
  191. package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +0 -327
  192. package/pennyfarthing-dist/personas/themes/succession.yaml +0 -294
  193. package/pennyfarthing-dist/personas/themes/superfriends.yaml +0 -332
  194. package/pennyfarthing-dist/personas/themes/ted-lasso.yaml +0 -359
  195. package/pennyfarthing-dist/personas/themes/the-americans.yaml +0 -294
  196. package/pennyfarthing-dist/personas/themes/the-crown.yaml +0 -294
  197. package/pennyfarthing-dist/personas/themes/the-good-place.yaml +0 -315
  198. package/pennyfarthing-dist/personas/themes/the-odyssey.yaml +0 -294
  199. package/pennyfarthing-dist/personas/themes/the-office.yaml +0 -323
  200. package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +0 -300
  201. package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +0 -294
  202. package/pennyfarthing-dist/personas/themes/the-wire.yaml +0 -303
  203. package/pennyfarthing-dist/personas/themes/the-witcher.yaml +0 -294
  204. package/pennyfarthing-dist/personas/themes/twin-peaks.yaml +0 -296
  205. package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +0 -294
  206. package/pennyfarthing-dist/personas/themes/world-explorers.yaml +0 -312
  207. package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +0 -299
@@ -1 +1 @@
1
- {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../src/cli/utils/themes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../src/cli/utils/themes.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ description: Quick commit for small changes without full git-cleanup ceremony
4
4
 
5
5
  # Quick Chore Commit
6
6
 
7
- Quickly commit dirty changes without the full `/git-cleanup` ceremony. Creates a branch, commits, merges to develop, and pushes in one command.
7
+ Quickly commit dirty changes without the full `/git-cleanup` ceremony. Checks **all repos** (orchestrator + subrepos), creates branches, commits, merges to develop, and pushes.
8
8
 
9
9
  <purpose>
10
10
  Fast path for committing small changes that don't warrant story tracking.
@@ -39,31 +39,42 @@ Fast path for committing small changes that don't warrant story tracking.
39
39
 
40
40
  **CRITICAL: Never use git stash.** The stash/pull/pop pattern can silently revert changes when upstream modifies the same files during the pull.
41
41
 
42
- 1. Verify dirty files exist (abort if clean)
43
- 2. Determine variant (chore/doc/ux) from first arg
44
- 3. Create branch from current HEAD (keeps dirty changes): `{variant}/{timestamp}`
45
- 4. Stage and commit all changes
46
- 5. Fetch origin and rebase onto latest develop
47
- 6. Switch to develop, merge the branch
48
- 7. Push develop
49
- 8. Delete local branch
42
+ **CRITICAL: Always check ALL repos, not just the orchestrator.** Most changes are in subrepos (e.g., `pennyfarthing/`). Use `git -C {repo_path}` for subrepo operations.
43
+
44
+ 1. Check ALL repos for dirty files (orchestrator + subrepos from `repos.yaml`)
45
+ 2. Abort if all repos are clean
46
+ 3. Determine variant (chore/doc/ux) from first arg
47
+ 4. For EACH dirty repo, independently:
48
+ a. Create branch from current HEAD: `{variant}/{timestamp}`
49
+ b. Stage and commit all changes
50
+ c. Fetch origin and rebase onto latest develop
51
+ d. Switch to develop, merge the branch
52
+ e. Push develop
53
+ f. Delete local branch
50
54
  </workflow>
51
55
 
52
56
  ## Execution
53
57
 
54
- ### Step 1: Pre-Flight
58
+ ### Step 1: Multi-Repo Pre-Flight
55
59
 
56
- ```bash
57
- # Abort if clean
58
- if git diff --quiet && git diff --cached --quiet; then
59
- echo "ERROR: No changes to commit."
60
- exit 1
61
- fi
60
+ **ALWAYS check all repos.** Read `repos.yaml` for repo paths.
62
61
 
63
- echo "=== Changes to Commit ==="
62
+ ```bash
63
+ # Check ALL repos for dirty changes
64
+ # Orchestrator root (.)
64
65
  git status --short
66
+
67
+ # Subrepos (e.g., pennyfarthing/)
68
+ git -C pennyfarthing status --short 2>/dev/null
69
+
70
+ # Or use the multi-repo status script:
71
+ .pennyfarthing/scripts/git/git-status-all.sh --brief
65
72
  ```
66
73
 
74
+ Collect which repos have changes. If ALL repos are clean, abort with "No changes to commit."
75
+
76
+ **Common case:** Only the subrepo (`pennyfarthing/`) has changes. The orchestrator is clean. This is normal — framework development happens in the subrepo.
77
+
67
78
  ### Step 2: Parse Arguments
68
79
 
69
80
  ```bash
@@ -93,11 +104,17 @@ esac
93
104
  MESSAGE="$*"
94
105
  ```
95
106
 
96
- ### Step 3: Generate Message (if needed)
107
+ ### Step 3: For Each Dirty Repo — Generate Message, Branch, Commit, Merge, Push
108
+
109
+ Repeat steps 3a–3d for each repo that has dirty changes. Use `git -C {repo_path}` for subrepo operations, or `cd` into the subrepo temporarily.
110
+
111
+ #### Step 3a: Generate Message (if user didn't provide one)
112
+
113
+ Generate a message based on the changed files **in that specific repo**.
97
114
 
98
115
  ```bash
99
116
  if [ -z "$MESSAGE" ]; then
100
- CHANGED_FILES=$(git status --porcelain | awk '{print $2}')
117
+ CHANGED_FILES=$(git -C {repo_path} status --porcelain | awk '{print $2}')
101
118
 
102
119
  case "$VARIANT" in
103
120
  docs)
@@ -132,11 +149,16 @@ if [ -z "$MESSAGE" ]; then
132
149
  fi
133
150
  ```
134
151
 
135
- ### Step 4: Branch and Commit
152
+ **For subrepos:** Also review the diff to generate a meaningful message. Prefer descriptive messages over generic ones (e.g., "migrate TTY panel to WebSocket" over "minor updates to 3 files").
153
+
154
+ #### Step 3b: Branch and Commit
136
155
 
137
156
  **IMPORTANT: Do NOT use git stash.** Stash + pull + pop can silently revert changes when upstream modifies the same files.
138
157
 
139
158
  ```bash
159
+ # For subrepos, cd into the repo first (or use git -C throughout)
160
+ cd {repo_path}
161
+
140
162
  # Create branch from current HEAD (preserves dirty changes)
141
163
  BRANCH="${BRANCH_TYPE}/$(date +%Y%m%d-%H%M%S)"
142
164
  git checkout -b "$BRANCH"
@@ -159,12 +181,28 @@ git branch -d "$BRANCH"
159
181
  git push origin develop
160
182
  ```
161
183
 
184
+ #### Step 3c: Return to orchestrator root
185
+
186
+ ```bash
187
+ cd {orchestrator_root}
188
+ ```
189
+
190
+ ### Step 4: Verify
191
+
192
+ After all repos are processed:
193
+ ```bash
194
+ .pennyfarthing/scripts/git/git-status-all.sh --brief
195
+ ```
196
+
197
+ All repos should show clean.
198
+
162
199
  ## Safety
163
200
 
164
- - **NEVER commit directly to develop**
201
+ - **NEVER commit directly to develop** (use branches)
165
202
  - **Never force push**
166
203
  - **Never commit secrets** (.env, credentials)
167
- - **Abort if working directory is clean**
204
+ - **Abort if ALL repos are clean**
205
+ - **ALWAYS use `git -C {repo_path}` for subrepo operations**
168
206
 
169
207
  ## When to Use
170
208
 
@@ -176,4 +214,5 @@ git push origin develop
176
214
 
177
215
  <related>
178
216
  - `/git-cleanup` - Full ceremony for organizing multiple changes
217
+ - `/repo-status` - Check status across all repos
179
218
  </related>
@@ -0,0 +1,65 @@
1
+ # /setup - Interactive Project Setup
2
+
3
+ <command>setup</command>
4
+
5
+ <purpose>
6
+ Launch the interactive project-setup workflow to configure a Pennyfarthing project. This workflow guides you through discovering repos, generating CLAUDE.md, configuring themes, and more.
7
+ </purpose>
8
+
9
+ <usage>
10
+ ```bash
11
+ # Run after pennyfarthing init
12
+ /setup
13
+
14
+ # Skip certain steps
15
+ /setup --skip-theme
16
+ /setup --skip-cyclist
17
+ ```
18
+ </usage>
19
+
20
+ <workflow>
21
+ The setup workflow guides you through:
22
+
23
+ 1. **Discovery** - Detect project structure and tech stack
24
+ 2. **Clone Repos** - Optionally clone subrepos for orchestrator pattern
25
+ 3. **repos.yaml** - Generate repository configuration
26
+ 4. **CLAUDE.md** - Create project instruction file
27
+ 5. **shared-context.md** - Populate with real project info
28
+ 6. **Task Runner** - Create justfile/Makefile
29
+ 7. **Theme** - Select persona theme
30
+ 8. **Cyclist** - Optionally install visual terminal
31
+ 9. **Validation** - Run doctor and confirm setup
32
+ </workflow>
33
+
34
+ <when-to-use>
35
+ - After running `pennyfarthing init` for the first time
36
+ - When setting up a new orchestrator with subrepos
37
+ - When repos.yaml or CLAUDE.md don't exist
38
+ - When converting an existing project to use Pennyfarthing
39
+ </when-to-use>
40
+
41
+ <prerequisites>
42
+ - Pennyfarthing must be initialized (`pennyfarthing init`)
43
+ - Should be in project root directory
44
+ </prerequisites>
45
+
46
+ <execution>
47
+ This skill launches the `project-setup` stepped workflow.
48
+
49
+ Load the workflow definition:
50
+ ```bash
51
+ cat .pennyfarthing/workflows/project-setup/workflow.yaml
52
+ ```
53
+
54
+ Then follow the stepped workflow, starting with:
55
+ ```bash
56
+ cat .pennyfarthing/workflows/project-setup/steps/step-01-discover.md
57
+ ```
58
+ </execution>
59
+
60
+ <related>
61
+ - `/sprint` - Sprint management after setup
62
+ - `/theme` - Change themes after setup
63
+ - `/workflow` - View available workflows
64
+ - `pennyfarthing doctor` - Validate installation
65
+ </related>
@@ -135,6 +135,37 @@ if ! git diff-index --quiet HEAD -- 2>/dev/null; then
135
135
  error "Uncommitted changes detected. Commit or stash before releasing."
136
136
  fi
137
137
 
138
+ # Check workspace dependency version parity
139
+ # Catches stale pnpm links where node_modules points to old store version
140
+ if [[ -f "pnpm-workspace.yaml" ]] && [[ -d "packages" ]]; then
141
+ STALE_DEPS=()
142
+ for pkg_dir in packages/*/; do
143
+ [[ -f "$pkg_dir/package.json" ]] || continue
144
+ pkg_name=$(node -e "console.log(JSON.parse(require('fs').readFileSync('$pkg_dir/package.json','utf8')).name)" 2>/dev/null) || continue
145
+ source_version=$(node -e "console.log(JSON.parse(require('fs').readFileSync('$pkg_dir/package.json','utf8')).version)" 2>/dev/null) || continue
146
+
147
+ # Check all other packages that depend on this one
148
+ for consumer_dir in packages/*/; do
149
+ [[ "$consumer_dir" == "$pkg_dir" ]] && continue
150
+ resolved="$consumer_dir/node_modules/$pkg_name/package.json"
151
+ [[ -f "$resolved" ]] || continue
152
+ resolved_version=$(node -e "console.log(JSON.parse(require('fs').readFileSync('$resolved','utf8')).version)" 2>/dev/null) || continue
153
+ if [[ "$resolved_version" != "$source_version" ]]; then
154
+ consumer_name=$(basename "$consumer_dir")
155
+ STALE_DEPS+=("$consumer_name → $pkg_name: resolved $resolved_version, workspace has $source_version")
156
+ fi
157
+ done
158
+ done
159
+ if [[ ${#STALE_DEPS[@]} -gt 0 ]]; then
160
+ echo -e "${RED}[ERROR]${NC} Stale workspace dependencies detected:"
161
+ for dep in "${STALE_DEPS[@]}"; do
162
+ echo -e " ${RED}✗${NC} $dep"
163
+ done
164
+ error "Run 'pnpm install' from monorepo root to fix workspace links"
165
+ fi
166
+ info "Workspace dependency versions match"
167
+ fi
168
+
138
169
  # Get current branch
139
170
  CURRENT_BRANCH=$(git branch --show-current)
140
171
  info "Current branch: $CURRENT_BRANCH"
@@ -0,0 +1,78 @@
1
+ #!/bin/bash
2
+ #
3
+ # Sprint YAML Validation Hook (PostToolUse)
4
+ #
5
+ # Validates sprint YAML files after Edit/Write operations to ensure
6
+ # compatibility with the yaml npm package used by Cyclist's SprintPanel.
7
+ #
8
+ # The yaml npm package follows YAML 1.2 strictly and rejects:
9
+ # - Single-quoted strings with blank lines
10
+ # - Invalid multiline string formats
11
+ #
12
+ # When validation fails, returns additionalContext with an error message
13
+ # prompting the agent to fix the YAML format.
14
+ #
15
+ # Input: JSON via stdin with tool_name, tool_input
16
+ # Output: JSON with additionalContext on validation failure
17
+ #
18
+ # See also: .pennyfarthing/scripts/validation/validate-sprint-yaml.sh
19
+
20
+ set -euo pipefail
21
+
22
+ # Read hook input from stdin
23
+ INPUT=$(cat)
24
+
25
+ # Extract tool name and file path from input
26
+ TOOL_NAME=$(echo "$INPUT" | grep -o '"tool_name"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*"tool_name"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/' || echo "")
27
+ FILE_PATH=$(echo "$INPUT" | grep -o '"file_path"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*"file_path"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/' || echo "")
28
+
29
+ # Only process Edit and Write operations on sprint YAML files
30
+ if [[ "$TOOL_NAME" != "Edit" && "$TOOL_NAME" != "Write" ]]; then
31
+ exit 0
32
+ fi
33
+
34
+ # Check if it's a sprint YAML file
35
+ if [[ ! "$FILE_PATH" =~ sprint/.*\.(yaml|yml)$ ]]; then
36
+ exit 0
37
+ fi
38
+
39
+ # Check if the file exists
40
+ if [[ ! -f "$FILE_PATH" ]]; then
41
+ exit 0
42
+ fi
43
+
44
+ # Validate using Node.js yaml package (same parser Cyclist uses)
45
+ VALIDATION_ERROR=$(node --input-type=module -e "
46
+ import { parse } from 'yaml';
47
+ import { readFileSync } from 'fs';
48
+
49
+ try {
50
+ const content = readFileSync('$FILE_PATH', 'utf-8');
51
+ parse(content);
52
+ process.exit(0);
53
+ } catch (e) {
54
+ console.error(e.message);
55
+ process.exit(1);
56
+ }
57
+ " 2>&1) && VALID=true || VALID=false
58
+
59
+ if [[ "$VALID" == "true" ]]; then
60
+ # Valid YAML - exit silently
61
+ exit 0
62
+ fi
63
+
64
+ # Validation failed - return error context to agent
65
+ # Escape special characters for JSON
66
+ ESCAPED_ERROR=$(echo "$VALIDATION_ERROR" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | tr '\n' ' ')
67
+ ESCAPED_PATH=$(echo "$FILE_PATH" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g')
68
+
69
+ cat << EOF
70
+ {
71
+ "hookSpecificOutput": {
72
+ "hookEventName": "PostToolUse",
73
+ "additionalContext": "⚠️ SPRINT YAML VALIDATION FAILED\n\nFile: $ESCAPED_PATH\nError: $ESCAPED_ERROR\n\nThe sprint YAML file has invalid syntax that will break the Cyclist SprintPanel.\n\nCommon fix: Single-quoted strings cannot contain blank lines in YAML 1.2.\nUse literal block scalars (|) for multiline strings instead.\n\nTo auto-fix, run: yq eval -o=json '$ESCAPED_PATH' > /tmp/sprint.json && yq eval -P /tmp/sprint.json > '$ESCAPED_PATH'"
74
+ }
75
+ }
76
+ EOF
77
+
78
+ exit 0
@@ -19,8 +19,19 @@ set -euo pipefail
19
19
 
20
20
  # Self-locate: derive PROJECT_ROOT from this script's position
21
21
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
22
- source "$SCRIPT_DIR/../lib/find-root.sh"
23
- # PROJECT_ROOT is now set
22
+
23
+ # Detect if we're in framework development or a consumer project
24
+ # In framework dev: scripts/misc/generate-skill-docs.sh is in pennyfarthing/pennyfarthing-dist/scripts/misc/
25
+ # In consumer: this is symlinked from .pennyfarthing/scripts/misc/
26
+ if [[ "$SCRIPT_DIR" == */pennyfarthing/pennyfarthing-dist/scripts/* ]]; then
27
+ # Framework development context - derive from script location
28
+ PROJECT_ROOT="${SCRIPT_DIR%/pennyfarthing-dist/scripts/*}"
29
+ export PROJECT_ROOT
30
+ else
31
+ # Consumer project context - use find-root.sh
32
+ source "$SCRIPT_DIR/../lib/find-root.sh"
33
+ # PROJECT_ROOT is now set
34
+ fi
24
35
 
25
36
  # Default paths
26
37
  REGISTRY_PATH="${PROJECT_ROOT}/pennyfarthing-dist/skills/skill-registry.yaml"
@@ -0,0 +1,139 @@
1
+ #!/usr/bin/env zsh
2
+ # validate-sprint-yaml.sh - Validate sprint YAML files for common issues
3
+ #
4
+ # Story MSSCI-14192 - Sprint panel YAML parsing fix
5
+ #
6
+ # Usage:
7
+ # validate-sprint-yaml.sh [path/to/sprint/current-sprint.yaml]
8
+ #
9
+ # If no path provided, looks for sprint/current-sprint.yaml in current directory.
10
+ #
11
+ # Common issues detected:
12
+ # - YAML syntax errors (including single-quoted strings with blank lines)
13
+ # - Missing required fields
14
+
15
+ set -euo pipefail
16
+
17
+ # Colors for output
18
+ RED='\033[0;31m'
19
+ GREEN='\033[0;32m'
20
+ YELLOW='\033[0;33m'
21
+ NC='\033[0m' # No Color
22
+
23
+ # Find sprint YAML file
24
+ SPRINT_FILE="${1:-sprint/current-sprint.yaml}"
25
+
26
+ if [[ ! -f "$SPRINT_FILE" ]]; then
27
+ echo -e "${RED}ERROR:${NC} Sprint file not found: $SPRINT_FILE"
28
+ exit 1
29
+ fi
30
+
31
+ echo "Validating: $SPRINT_FILE"
32
+ echo ""
33
+
34
+ # Track errors
35
+ ERRORS=0
36
+
37
+ # Main validation using node
38
+ validate_yaml() {
39
+ local file="$1"
40
+
41
+ if ! command -v node &> /dev/null; then
42
+ echo -e "${YELLOW}WARNING:${NC} node not available for YAML validation"
43
+ return 0
44
+ fi
45
+
46
+ local result
47
+ result=$(node -e "
48
+ const { readFileSync } = require('fs');
49
+ const { parse } = require('yaml');
50
+
51
+ const file = '$file';
52
+
53
+ try {
54
+ const content = readFileSync(file, 'utf-8');
55
+ const data = parse(content);
56
+
57
+ // Check for sprint section
58
+ if (!data.sprint) {
59
+ console.log('WARN:Missing sprint section');
60
+ }
61
+
62
+ // Check for epics array
63
+ if (!Array.isArray(data.epics)) {
64
+ console.log('ERROR:epics is not an array or missing');
65
+ } else if (data.epics.length === 0) {
66
+ console.log('WARN:No epics found in sprint');
67
+ } else {
68
+ // Count epics and stories
69
+ let storyCount = 0;
70
+ data.epics.forEach((epic, i) => {
71
+ if (!epic.id) console.log('WARN:Epic ' + i + ' missing id');
72
+ if (!epic.title) console.log('WARN:Epic ' + i + ' missing title');
73
+ if (Array.isArray(epic.stories)) {
74
+ storyCount += epic.stories.length;
75
+ }
76
+ });
77
+ console.log('INFO:Found ' + data.epics.length + ' epic(s) with ' + storyCount + ' total stories');
78
+ }
79
+
80
+ console.log('SUCCESS');
81
+ } catch (err) {
82
+ const line = err.linePos?.[0]?.line || '?';
83
+ console.log('PARSE_ERROR:' + line + ':' + err.message);
84
+
85
+ // Provide hint for common single-quote issue
86
+ if (err.message && err.message.includes('quote')) {
87
+ console.log('HINT:Single-quoted YAML strings cannot contain blank lines. Use literal block scalar (|) instead.');
88
+ }
89
+ }
90
+ " 2>&1)
91
+
92
+ # Process output
93
+ local success=false
94
+ echo "$result" | while IFS= read -r line; do
95
+ case "$line" in
96
+ SUCCESS)
97
+ success=true
98
+ ;;
99
+ PARSE_ERROR:*)
100
+ local info="${line#PARSE_ERROR:}"
101
+ local line_num="${info%%:*}"
102
+ local message="${info#*:}"
103
+ echo -e "${RED}ERROR:${NC} YAML syntax error at line $line_num"
104
+ echo " $message"
105
+ ERRORS=$((ERRORS + 1))
106
+ ;;
107
+ HINT:*)
108
+ echo -e "${YELLOW}TIP:${NC} ${line#HINT:}"
109
+ ;;
110
+ ERROR:*)
111
+ echo -e "${RED}ERROR:${NC} ${line#ERROR:}"
112
+ ERRORS=$((ERRORS + 1))
113
+ ;;
114
+ WARN:*)
115
+ echo -e "${YELLOW}WARNING:${NC} ${line#WARN:}"
116
+ ;;
117
+ INFO:*)
118
+ echo -e "${GREEN}✓${NC} ${line#INFO:}"
119
+ ;;
120
+ esac
121
+ done
122
+
123
+ # Check exit status from subshell
124
+ if echo "$result" | grep -q "^PARSE_ERROR:" || echo "$result" | grep -q "^ERROR:"; then
125
+ return 1
126
+ fi
127
+ return 0
128
+ }
129
+
130
+ # Run validation
131
+ if validate_yaml "$SPRINT_FILE"; then
132
+ echo ""
133
+ echo -e "${GREEN}✓ Sprint YAML is valid${NC}"
134
+ exit 0
135
+ else
136
+ echo ""
137
+ echo -e "${RED}✗ Validation failed${NC}"
138
+ exit 1
139
+ fi
@@ -1,73 +1,30 @@
1
1
  #!/usr/bin/env bash
2
2
  # list-themes.sh - List all available persona themes
3
3
  #
4
- # Usage: list-themes.sh [--current-only]
4
+ # Thin wrapper: discovery logic lives in pennyfarthing_scripts.common.themes
5
5
  #
6
- # Options:
7
- # --current-only Only show the current theme name
6
+ # Usage: list-themes.sh [--current-only]
8
7
 
9
8
  set -euo pipefail
10
9
 
11
10
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
12
11
  PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
13
12
 
14
- THEMES_DIR="$PROJECT_ROOT/pennyfarthing-dist/personas/themes"
15
- CONFIG_FILE="$PROJECT_ROOT/.pennyfarthing/config.local.yaml"
16
-
17
- # Get current theme from config
18
- get_current_theme() {
19
- if [[ -f "$CONFIG_FILE" ]]; then
20
- grep -E "^theme:" "$CONFIG_FILE" 2>/dev/null | sed 's/theme:[[:space:]]*//' || echo ""
21
- else
22
- echo ""
23
- fi
24
- }
13
+ export PROJECT_ROOT
25
14
 
26
- CURRENT_THEME=$(get_current_theme)
27
-
28
- # Handle --current-only flag
29
15
  if [[ "${1:-}" == "--current-only" ]]; then
30
- if [[ -n "$CURRENT_THEME" ]]; then
31
- echo "$CURRENT_THEME"
32
- else
33
- echo "No theme set"
34
- exit 1
35
- fi
36
- exit 0
16
+ python3 -c "
17
+ from pennyfarthing_scripts.common.themes import get_current_theme
18
+ t = get_current_theme()
19
+ if t:
20
+ print(t)
21
+ else:
22
+ print('No theme set')
23
+ exit(1)
24
+ "
25
+ else
26
+ python3 -c "
27
+ from pennyfarthing_scripts.common.themes import format_theme_list
28
+ print(format_theme_list())
29
+ "
37
30
  fi
38
-
39
- # Extract all theme data in one grep + format with awk (fast path)
40
- # Single grep call across all files, awk handles formatting
41
- grep -H "^ tier:" "$THEMES_DIR"/*.yaml 2>/dev/null | \
42
- sed 's|.*/||; s|\.yaml:.*tier:[[:space:]]*| |' | \
43
- sort | \
44
- awk -v current="$CURRENT_THEME" '
45
- {
46
- theme = $1
47
- tier = $2 ? $2 : "U"
48
- if (theme == current) {
49
- themes[NR] = "*" theme " [" tier "]"
50
- } else {
51
- themes[NR] = theme " [" tier "]"
52
- }
53
- count++
54
- }
55
- END {
56
- # Print header
57
- print "**" count " themes available.** Current: **" (current ? current : "none") "**"
58
- print ""
59
-
60
- # Print in 3 columns
61
- col_width = 28
62
- col = 0
63
- for (i = 1; i <= count; i++) {
64
- printf "%-" col_width "s", themes[i]
65
- col++
66
- if (col == 3) {
67
- print ""
68
- col = 0
69
- }
70
- }
71
- if (col > 0) print ""
72
- }
73
- '
@@ -18,9 +18,8 @@ workflow:
18
18
  description: Interrupt-driven bug fix during active story work
19
19
  version: "1.0.0"
20
20
 
21
- # Patch mode is NOT a full workflow - it's an interrupt
22
- # It doesn't have phases in the traditional sense
23
- type: interrupt
21
+ # Patch mode is a simple single-phase workflow for interrupts
22
+ type: phased
24
23
 
25
24
  phases:
26
25
  - name: fix