@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
@@ -0,0 +1,142 @@
1
+ # Step 8: Install Additional Theme Packs (Optional)
2
+
3
+ <purpose>
4
+ Offer the user additional theme packs beyond the 26 base themes that ship with Pennyfarthing. Theme packs are optional npm packages that add themed personas with portraits.
5
+ </purpose>
6
+
7
+ <instructions>
8
+ 1. Explain the theme pack system
9
+ 2. Show available packs with descriptions
10
+ 3. Let user select which packs to install
11
+ 4. Install selected packs
12
+ 5. Verify themes are discovered
13
+ </instructions>
14
+
15
+ <output>
16
+ - User informed about available theme packs
17
+ - Selected packs installed (if any)
18
+ - New themes discoverable via `/theme list`
19
+ </output>
20
+
21
+ ## THEME PACK SYSTEM
22
+
23
+ ```
24
+ 🎭 Additional Theme Packs
25
+ ══════════════════════════
26
+
27
+ Pennyfarthing ships with 26 base themes. Additional themes are available
28
+ as optional packages - install the ones that interest you.
29
+
30
+ Theme packs are discovered automatically once installed. No configuration
31
+ needed beyond `npm install`.
32
+ ```
33
+
34
+ ## AVAILABLE PACKS
35
+
36
+ Present the packs with descriptions and theme counts:
37
+
38
+ ```
39
+ Available theme packs:
40
+
41
+ [1] @pennyfarthing/themes-literary (15 themes)
42
+ Classic literature: Dickens, Shakespeare, Austen, Moby Dick,
43
+ Sherlock Holmes, Les Miserables, Great Gatsby, and more.
44
+ Pre-1950 books and author collections.
45
+
46
+ [2] @pennyfarthing/themes-prestige-tv (17 themes)
47
+ Golden age television: Breaking Bad, The Sopranos, The Wire,
48
+ Mad Men, Deadwood, Succession, Twin Peaks, and more.
49
+
50
+ [3] @pennyfarthing/themes-comedy (9 themes)
51
+ Comedy TV and film: The Office, Parks & Rec, Futurama,
52
+ The Simpsons, Monty Python, Ted Lasso, and more.
53
+
54
+ [4] @pennyfarthing/themes-scifi (8 themes)
55
+ Sci-fi and cyberpunk deep cuts: Foundation, Babylon 5,
56
+ Neuromancer, Snow Crash, Star Trek TOS, and more.
57
+
58
+ [5] @pennyfarthing/themes-realistic (14 themes)
59
+ Historical figures: Renaissance masters, jazz legends,
60
+ scientific revolutionaries, classical composers, and more.
61
+ Realistic portrait style.
62
+
63
+ [6] @pennyfarthing/themes-superheroes (4 themes)
64
+ Superheroes and animated action: Marvel MCU, Legion of Doom,
65
+ Superfriends, Avatar: The Last Airbender.
66
+
67
+ [7] @pennyfarthing/themes-mythology-fantasy (4 themes)
68
+ Mythology and fantasy: Greek mythology, Norse mythology,
69
+ His Dark Materials, The Witcher.
70
+
71
+ [A] Install ALL packs (71 additional themes)
72
+ [S] Skip - base themes are enough for now
73
+ ```
74
+
75
+ ## INSTALLATION
76
+
77
+ Based on user selection, install the chosen packs:
78
+
79
+ ```bash
80
+ # Install selected packs (example: literary + prestige-tv)
81
+ npm install @pennyfarthing/themes-literary @pennyfarthing/themes-prestige-tv
82
+ ```
83
+
84
+ ### Install All
85
+
86
+ ```bash
87
+ npm install \
88
+ @pennyfarthing/themes-literary \
89
+ @pennyfarthing/themes-prestige-tv \
90
+ @pennyfarthing/themes-comedy \
91
+ @pennyfarthing/themes-scifi \
92
+ @pennyfarthing/themes-realistic \
93
+ @pennyfarthing/themes-superheroes \
94
+ @pennyfarthing/themes-mythology-fantasy
95
+ ```
96
+
97
+ ## VERIFICATION
98
+
99
+ After installation, verify themes are discovered:
100
+
101
+ ```bash
102
+ # List all themes - should show base + installed packs
103
+ pennyfarthing theme list
104
+ ```
105
+
106
+ ```
107
+ ✓ Theme packs installed
108
+
109
+ Themes available:
110
+ Base themes: 26
111
+ {pack_name}: {count}
112
+ ...
113
+ ─────────────────────────────
114
+ Total: {total}
115
+
116
+ New themes are ready to use. Switch anytime with:
117
+ /theme set {theme-name}
118
+ ```
119
+
120
+ ## INSTALLING LATER
121
+
122
+ ```
123
+ You can install theme packs anytime:
124
+
125
+ npm install @pennyfarthing/themes-literary
126
+ npm install @pennyfarthing/themes-prestige-tv
127
+ # etc.
128
+
129
+ They're automatically discovered - no config changes needed.
130
+ To see what's available: /theme list
131
+ ```
132
+
133
+ ## SUCCESS CRITERIA
134
+
135
+ - User shown available theme packs
136
+ - Selected packs installed (if any)
137
+ - New themes verified as discoverable
138
+ - User knows how to install more later
139
+
140
+ ## NEXT STEP
141
+
142
+ After theme packs, proceed to `step-09-cyclist.md` to optionally install Cyclist visual terminal.
@@ -0,0 +1,245 @@
1
+ # Step 9: Install Cyclist (Optional)
2
+
3
+ <purpose>
4
+ Optionally install Cyclist, the visual terminal interface for Claude Code. Cyclist provides a graphical interface with panels for sprint tracking, workflow visualization, and enhanced tool display.
5
+ </purpose>
6
+
7
+ <instructions>
8
+ 1. Explain what Cyclist provides
9
+ 2. Check if Cyclist is already installed
10
+ 3. Offer installation options
11
+ 4. Guide through setup if desired
12
+ 5. Verify installation works
13
+ </instructions>
14
+
15
+ <output>
16
+ - User informed about Cyclist features
17
+ - Cyclist installed if user requested
18
+ - Basic verification completed
19
+ - User knows how to launch Cyclist
20
+ </output>
21
+
22
+ ## WHAT IS CYCLIST?
23
+
24
+ ```
25
+ 🚴 Cyclist - Visual Terminal for Claude Code
26
+ ═════════════════════════════════════════════
27
+
28
+ Cyclist provides a graphical interface that enhances Claude Code with:
29
+
30
+ ┌─────────────────────────────────────────────────────────────────────┐
31
+ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
32
+ │ │ Sprint Panel │ │ Workflow │ │ Changed │ │
33
+ │ │ │ │ Panel │ │ Files │ │
34
+ │ │ • Status │ │ │ │ │ │
35
+ │ │ • Stories │ │ • Phase │ │ • Diffs │ │
36
+ │ │ • Progress │ │ • Handoffs │ │ • Staging │ │
37
+ │ └──────────────┘ └──────────────┘ └──────────────┘ │
38
+ │ ┌───────────────────────────────────────────────────────────────┐ │
39
+ │ │ Message Panel │ │
40
+ │ │ │ │
41
+ │ │ Claude: I'll help you implement that feature... │ │
42
+ │ │ │ │
43
+ │ │ [Tool Call] Reading src/components/App.tsx │ │
44
+ │ │ [Tool Call] Writing src/components/Feature.tsx │ │
45
+ │ │ │ │
46
+ │ └───────────────────────────────────────────────────────────────┘ │
47
+ └─────────────────────────────────────────────────────────────────────┘
48
+
49
+ Features:
50
+ • 📊 Sprint panel - Live sprint status and story tracking
51
+ • 🔄 Workflow panel - BikeLane phase visualization
52
+ • 📁 Changed files panel - Git diff integration
53
+ • 🎨 Themed personas - Character portraits and styles
54
+ • 🛠️ Tool visualization - Enhanced tool call display
55
+ • ⌨️ Quick actions - One-click workflow commands
56
+ ```
57
+
58
+ ## INSTALLATION CHECK
59
+
60
+ ```bash
61
+ # Check if Cyclist is installed
62
+ npm list @pennyfarthing/cyclist 2>/dev/null || echo "Not installed"
63
+
64
+ # Check for global installation
65
+ which cyclist 2>/dev/null || echo "No global cyclist"
66
+
67
+ # Check for local installation
68
+ ls -la node_modules/@pennyfarthing/cyclist 2>/dev/null || echo "Not in node_modules"
69
+ ```
70
+
71
+ ## INSTALLATION OPTIONS
72
+
73
+ ```
74
+ 🚴 Cyclist Installation
75
+ ═══════════════════════
76
+
77
+ Cyclist is the visual terminal for Pennyfarthing. Would you like to install it?
78
+
79
+ [1] Install Cyclist (recommended)
80
+ npm install @pennyfarthing/cyclist
81
+ Adds ~160MB to node_modules
82
+
83
+ [2] Install globally
84
+ npm install -g @pennyfarthing/cyclist
85
+ Available system-wide
86
+
87
+ [3] Use standalone app (macOS)
88
+ Download Cyclist.app from releases
89
+ No npm installation needed
90
+
91
+ [4] Skip - I'll use terminal only
92
+ Cyclist is optional, CLI works fine without it
93
+
94
+ [5] Learn more about Cyclist
95
+ Show detailed feature breakdown
96
+ ```
97
+
98
+ ### Installation Flow
99
+
100
+ If user selects [1] or [2]:
101
+
102
+ ```bash
103
+ # Local installation
104
+ npm install @pennyfarthing/cyclist
105
+
106
+ # Or global installation
107
+ npm install -g @pennyfarthing/cyclist
108
+ ```
109
+
110
+ ### Post-Installation Setup
111
+
112
+ ```
113
+ ✓ Cyclist installed successfully
114
+
115
+ Quick setup:
116
+ 1. Add to justfile (if created):
117
+ cyclist:
118
+ npx cyclist
119
+
120
+ 2. Or run directly:
121
+ npx cyclist
122
+
123
+ 3. Or add to package.json scripts:
124
+ "cyclist": "cyclist"
125
+ ```
126
+
127
+ ## VERIFICATION
128
+
129
+ After installation:
130
+
131
+ ```bash
132
+ # Verify installation
133
+ npx cyclist --version
134
+
135
+ # Quick test (opens Cyclist)
136
+ npx cyclist --help
137
+ ```
138
+
139
+ ```
140
+ ✓ Cyclist v9.1.1 installed
141
+
142
+ Launching Cyclist for verification...
143
+
144
+ {Cyclist window opens or web preview starts}
145
+
146
+ Did Cyclist launch correctly?
147
+ [Y] Yes, it works
148
+ [N] No, troubleshoot
149
+ [S] Skip verification
150
+ ```
151
+
152
+ ### Troubleshooting
153
+
154
+ If issues:
155
+
156
+ ```
157
+ 🔧 Cyclist Troubleshooting
158
+ ═══════════════════════════
159
+
160
+ Common issues:
161
+
162
+ 1. "Cannot find module" error
163
+ → Run: npm install @pennyfarthing/cyclist
164
+
165
+ 2. Port already in use
166
+ → Kill existing process: lsof -i :3457 | kill
167
+
168
+ 3. Electron not found
169
+ → Cyclist needs Electron: npm install electron
170
+
171
+ 4. Blank window
172
+ → Check browser console for errors
173
+ → Try: npx cyclist --no-sandbox
174
+
175
+ [R] Retry installation
176
+ [M] More troubleshooting options
177
+ [S] Skip Cyclist for now
178
+ ```
179
+
180
+ ## JUSTFILE INTEGRATION
181
+
182
+ If justfile was created in step 6, offer to add Cyclist recipe:
183
+
184
+ ```
185
+ Add Cyclist recipe to justfile?
186
+
187
+ [Y] Yes, add recipe:
188
+ cyclist:
189
+ npx cyclist
190
+
191
+ [N] No, I'll launch it manually
192
+ ```
193
+
194
+ ## CYCLIST FEATURES DEEP DIVE
195
+
196
+ If user selects "Learn more":
197
+
198
+ ```
199
+ 🚴 Cyclist Features
200
+ ════════════════════
201
+
202
+ PANELS (draggable, resizable):
203
+ ┌────────────────┬─────────────────────────────────────────────┐
204
+ │ Panel │ Features │
205
+ ├────────────────┼─────────────────────────────────────────────┤
206
+ │ Message │ Conversation display, streaming, markdown │
207
+ │ Sprint │ Current sprint, stories, progress bars │
208
+ │ Workflow │ BikeLane phases, handoff detection │
209
+ │ Changed Files │ Git status, staged/unstaged, diffs │
210
+ │ Acceptance │ Story AC checkboxes │
211
+ │ Todos │ Task list tracking │
212
+ │ Background │ Background task monitoring │
213
+ │ Debug │ OTEL spans, performance data │
214
+ │ Git │ Branch info, commit history │
215
+ │ Settings │ Theme, fonts, colors │
216
+ └────────────────┴─────────────────────────────────────────────┘
217
+
218
+ TOOL VISUALIZATION:
219
+ • Collapsible tool calls with intent summaries
220
+ • Stacked consecutive tool calls
221
+ • Color-coded by tool type
222
+ • Execution time display
223
+
224
+ PERSONA INTEGRATION:
225
+ • Character portraits for each agent
226
+ • Theme-specific colors and styles
227
+ • Agent popup with role info
228
+
229
+ QUICK ACTIONS:
230
+ • Detected from CYCLIST markers
231
+ • One-click workflow commands
232
+ • Handoff buttons
233
+ ```
234
+
235
+ ## SUCCESS CRITERIA
236
+
237
+ ✅ User informed about Cyclist features
238
+ ✅ Installation completed (if requested)
239
+ ✅ Verification passed (if installed)
240
+ ✅ Justfile updated (if applicable)
241
+ ✅ User knows how to launch Cyclist
242
+
243
+ ## NEXT STEP
244
+
245
+ After Cyclist setup, proceed to `step-10-complete.md` to finalize project setup and run validation.
@@ -0,0 +1,204 @@
1
+ # Step 10: Complete Setup & Validation
2
+
3
+ <purpose>
4
+ Finalize the project setup, run validation checks, and provide the user with a summary of everything configured. Ensure the project is ready for development.
5
+ </purpose>
6
+
7
+ <instructions>
8
+ 1. Run pennyfarthing doctor to validate installation
9
+ 2. Summarize all configurations created
10
+ 3. Provide quick-start guide
11
+ 4. Offer next steps and resources
12
+ </instructions>
13
+
14
+ <output>
15
+ - All validation checks pass
16
+ - Configuration summary presented
17
+ - Quick-start guide provided
18
+ - User ready to begin development
19
+ </output>
20
+
21
+ ## VALIDATION
22
+
23
+ ### Run Doctor
24
+
25
+ ```bash
26
+ pennyfarthing doctor
27
+ ```
28
+
29
+ Expected output:
30
+ ```
31
+ 🔧 Pennyfarthing Health Check
32
+ ════════════════════════════
33
+
34
+ ✓ .pennyfarthing/ directory exists
35
+ ✓ Manifest found (v9.1.1)
36
+ ✓ Symlinks valid
37
+ ✓ Sprint directory exists
38
+ ✓ Session directory exists
39
+ ✓ Git hooks installed
40
+ ✓ Settings configured
41
+
42
+ All checks passed!
43
+ ```
44
+
45
+ ### Manual Validation Checklist
46
+
47
+ ```
48
+ 📋 Setup Validation
49
+ ════════════════════
50
+
51
+ Configuration files:
52
+ {✓|✗} repos.yaml - Repository configuration
53
+ {✓|✗} CLAUDE.md - Project instructions
54
+ {✓|✗} shared-context.md - Agent shared context
55
+ {✓|✗} justfile - Task runner
56
+ {✓|✗} persona-config.yaml - Theme configuration
57
+
58
+ Directories:
59
+ {✓|✗} .pennyfarthing/ - Framework installation
60
+ {✓|✗} .claude/ - Claude Code config
61
+ {✓|✗} sprint/ - Sprint tracking
62
+ {✓|✗} .session/ - Work sessions
63
+
64
+ Optional:
65
+ {✓|✗} Cyclist installed
66
+ {✓|✗} Subrepos cloned
67
+ ```
68
+
69
+ ## CONFIGURATION SUMMARY
70
+
71
+ ```
72
+ 📊 Project Setup Summary
73
+ ═════════════════════════
74
+
75
+ Project: {project_name}
76
+ Type: {orchestrator|monorepo|single}
77
+ Theme: {selected_theme}
78
+
79
+ Repositories Configured:
80
+ ┌────────────────┬──────────┬────────────────────────┐
81
+ │ Name │ Type │ Path │
82
+ ├────────────────┼──────────┼────────────────────────┤
83
+ │ orchestrator │ orch │ . │
84
+ │ api │ api │ {project}-api/ │
85
+ │ ui │ ui │ {project}-ui/ │
86
+ └────────────────┴──────────┴────────────────────────┘
87
+
88
+ Files Created:
89
+ • repos.yaml - Repository configuration
90
+ • CLAUDE.md - Project instructions for Claude
91
+ • shared-context.md - Shared agent context (updated)
92
+ • justfile - Task runner with recipes
93
+ • persona-config.yaml - Theme: {theme}
94
+
95
+ Commands Available:
96
+ just test-all - Run all tests
97
+ just build-all - Build all repos
98
+ just dev - Start development
99
+ just cyclist - Launch Cyclist (if installed)
100
+ ```
101
+
102
+ ## QUICK-START GUIDE
103
+
104
+ ```
105
+ 🚀 Quick Start Guide
106
+ ════════════════════
107
+
108
+ 1. START DEVELOPMENT
109
+ just dev # Start dev servers
110
+ # OR
111
+ just dev-api # Start just API
112
+ just dev-ui # Start just UI
113
+
114
+ 2. RUN TESTS
115
+ just test-all # Test everything
116
+ just test-api # Test API only
117
+
118
+ 3. USE PENNYFARTHING AGENTS
119
+ /sm # Scrum Master - manage stories
120
+ /sprint status # View sprint
121
+ /sprint work # Start a story
122
+
123
+ 4. WORKFLOW
124
+ Story flow: SM → TEA → Dev → Reviewer → SM
125
+
126
+ 5. LAUNCH CYCLIST (if installed)
127
+ just cyclist # Visual terminal
128
+ # OR
129
+ npx cyclist
130
+
131
+ 6. GET HELP
132
+ /help # Context-aware help
133
+ pennyfarthing doctor # Check installation
134
+ ```
135
+
136
+ ## NEXT STEPS
137
+
138
+ ```
139
+ 📌 Recommended Next Steps
140
+ ═════════════════════════
141
+
142
+ IMMEDIATE:
143
+ □ Review CLAUDE.md and customize for your project
144
+ □ Add project-specific notes to shared-context.md
145
+ □ Create your first sprint in sprint/current-sprint.yaml
146
+
147
+ WHEN READY:
148
+ □ Run /sm to start managing work
149
+ □ Create stories with /story create
150
+ □ Begin TDD workflow with /tea
151
+
152
+ CUSTOMIZATION:
153
+ □ Add custom skills in .claude/project/skills/
154
+ □ Add custom commands in .claude/project/commands/
155
+ □ Configure agent sidecars in .pennyfarthing/sidecars/
156
+
157
+ RESOURCES:
158
+ □ Docs: https://github.com/1898andCo/pennyfarthing
159
+ □ Issues: https://github.com/1898andCo/pennyfarthing/issues
160
+ □ Skill help: /help {skill_name}
161
+ ```
162
+
163
+ ## FINAL MESSAGE
164
+
165
+ ```
166
+ ✨ Setup Complete!
167
+ ══════════════════
168
+
169
+ Your Pennyfarthing project is ready for development.
170
+
171
+ {if theme_selected}
172
+ Your agents now use the '{theme}' theme.
173
+ {agent_character} says: "{theme_greeting}"
174
+ {/if}
175
+
176
+ Quick commands:
177
+ /sm - Start managing work
178
+ /sprint status - View sprint
179
+ /help - Get help
180
+
181
+ {if cyclist_installed}
182
+ Launch Cyclist for the visual experience:
183
+ just cyclist
184
+ {/if}
185
+
186
+ Happy coding! 🚴
187
+ ```
188
+
189
+ ## WORKFLOW COMPLETE
190
+
191
+ This workflow is now complete. The user has:
192
+
193
+ ✅ Discovered and configured repositories
194
+ ✅ Cloned any needed subrepos
195
+ ✅ Generated repos.yaml
196
+ ✅ Created CLAUDE.md
197
+ ✅ Populated shared-context.md
198
+ ✅ Created justfile with recipes
199
+ ✅ Selected a persona theme
200
+ ✅ Optionally installed additional theme packs
201
+ ✅ Optionally installed Cyclist
202
+ ✅ Validated the setup
203
+
204
+ The project is ready for development with Pennyfarthing.
@@ -0,0 +1,41 @@
1
+ # project-setup Workflow - Interactive Project Configuration
2
+ # A BikeLane stepped workflow for configuring Pennyfarthing projects
3
+
4
+ workflow:
5
+ name: project-setup
6
+ description: Interactive workflow for configuring a new Pennyfarthing project. Discovers repos, generates CLAUDE.md, populates shared-context.md, and configures themes.
7
+ version: "1.0.0"
8
+ type: stepped
9
+
10
+ # Step configuration
11
+ steps:
12
+ path: ./steps/
13
+ pattern: step-*.md
14
+
15
+ # Variables available in step files
16
+ variables:
17
+ project_root: .
18
+ claude_dir: .claude
19
+ pennyfarthing_dir: .pennyfarthing
20
+ output_repos: repos.yaml
21
+ output_claude_md: CLAUDE.md
22
+ output_shared_context: .claude/project/docs/shared-context.md
23
+
24
+ # Agent assignment - DevOps handles infrastructure setup
25
+ agent: devops
26
+
27
+ # Triggers - when to suggest this workflow
28
+ triggers:
29
+ types: [project-setup, init, setup]
30
+ tags: [setup, initialization, repos, claude-md]
31
+ conditions:
32
+ - no_repos_yaml: true
33
+ - no_claude_md: true
34
+
35
+ # Post-init hook suggestion
36
+ post_init_message: |
37
+ Run `/setup` to complete project configuration:
38
+ - Detect and configure repos
39
+ - Generate CLAUDE.md
40
+ - Populate shared-context.md
41
+ - Select persona theme