@pennyfarthing/core 9.0.0 → 9.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/README.md +16 -7
  2. package/package.json +1 -1
  3. package/packages/core/dist/cli/commands/doctor.d.ts +5 -2
  4. package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
  5. package/packages/core/dist/cli/commands/doctor.js +327 -17
  6. package/packages/core/dist/cli/commands/doctor.js.map +1 -1
  7. package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
  8. package/packages/core/dist/cli/commands/init.js +3 -246
  9. package/packages/core/dist/cli/commands/init.js.map +1 -1
  10. package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
  11. package/packages/core/dist/cli/commands/update.js +4 -140
  12. package/packages/core/dist/cli/commands/update.js.map +1 -1
  13. package/packages/core/dist/cli/utils/constants.d.ts +7 -1
  14. package/packages/core/dist/cli/utils/constants.d.ts.map +1 -1
  15. package/packages/core/dist/cli/utils/constants.js +2 -0
  16. package/packages/core/dist/cli/utils/constants.js.map +1 -1
  17. package/packages/core/dist/cli/utils/settings.d.ts +22 -0
  18. package/packages/core/dist/cli/utils/settings.d.ts.map +1 -0
  19. package/packages/core/dist/cli/utils/settings.js +300 -0
  20. package/packages/core/dist/cli/utils/settings.js.map +1 -0
  21. package/pennyfarthing-dist/commands/chore.md +18 -17
  22. package/pennyfarthing-dist/commands/continue-session.md +41 -7
  23. package/pennyfarthing-dist/commands/fix-blocker.md +22 -0
  24. package/pennyfarthing-dist/commands/git-cleanup.md +25 -19
  25. package/pennyfarthing-dist/commands/patch.md +210 -0
  26. package/pennyfarthing-dist/commands/setup.md +65 -0
  27. package/pennyfarthing-dist/guides/session-schema.md +346 -0
  28. package/pennyfarthing-dist/guides/skill-schema.md +412 -0
  29. package/pennyfarthing-dist/guides/workflow-step-schema.md +512 -0
  30. package/pennyfarthing-dist/guides/xml-tags.md +292 -0
  31. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  32. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +43 -8
  33. package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +30 -0
  34. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +78 -0
  35. package/pennyfarthing-dist/scripts/lib/find-root.sh +32 -7
  36. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +13 -2
  37. package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +139 -0
  38. package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +4 -0
  39. package/pennyfarthing-dist/skills/changelog/SKILL.md +18 -0
  40. package/pennyfarthing-dist/skills/code-review/SKILL.md +5 -1
  41. package/pennyfarthing-dist/skills/context-engineering/SKILL.md +3 -0
  42. package/pennyfarthing-dist/skills/cyclist/SKILL.md +2 -2
  43. package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +24 -0
  44. package/pennyfarthing-dist/skills/finalize-run/SKILL.md +3 -0
  45. package/pennyfarthing-dist/skills/judge/SKILL.md +8 -0
  46. package/pennyfarthing-dist/skills/just/SKILL.md +11 -0
  47. package/pennyfarthing-dist/skills/mermaid/SKILL.md +16 -0
  48. package/pennyfarthing-dist/skills/otel/skill.md +4 -0
  49. package/pennyfarthing-dist/skills/permissions/skill.md +3 -0
  50. package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +9 -0
  51. package/pennyfarthing-dist/skills/story/skill.md +16 -16
  52. package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +56 -0
  53. package/pennyfarthing-dist/skills/testing/SKILL.md +22 -0
  54. package/pennyfarthing-dist/skills/theme/skill.md +12 -0
  55. package/pennyfarthing-dist/skills/theme-creation/SKILL.md +4 -0
  56. package/pennyfarthing-dist/skills/workflow/skill.md +22 -14
  57. package/pennyfarthing-dist/skills/yq/SKILL.md +8 -0
  58. package/pennyfarthing-dist/templates/settings.local.json.template +9 -0
  59. package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +12 -0
  60. package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +12 -0
  61. package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +12 -0
  62. package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +12 -0
  63. package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +12 -0
  64. package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +12 -0
  65. package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +12 -0
  66. package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +12 -0
  67. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +25 -0
  68. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +23 -0
  69. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +26 -0
  70. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +24 -0
  71. package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +23 -0
  72. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +43 -41
  73. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-02-categorize.md +50 -19
  74. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-03-execute.md +102 -111
  75. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +48 -39
  76. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +30 -31
  77. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +21 -0
  78. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +21 -0
  79. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +23 -0
  80. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +23 -0
  81. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +28 -0
  82. package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +25 -0
  83. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-01-connect.md +257 -0
  84. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-02-explore.md +107 -0
  85. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-03-fix.md +127 -0
  86. package/pennyfarthing-dist/workflows/interactive-debug/steps/step-04-commit.md +122 -0
  87. package/pennyfarthing-dist/workflows/interactive-debug/workflow.yaml +51 -0
  88. package/pennyfarthing-dist/workflows/patch.yaml +2 -3
  89. package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +6 -0
  90. package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +6 -0
  91. package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +6 -0
  92. package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +6 -0
  93. package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +6 -0
  94. package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +6 -0
  95. package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +6 -0
  96. package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +6 -0
  97. package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +6 -0
  98. package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +6 -0
  99. package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +6 -0
  100. package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +6 -0
  101. package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +6 -0
  102. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +6 -0
  103. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +6 -0
  104. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +6 -0
  105. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +6 -0
  106. package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +6 -0
  107. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +6 -0
  108. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +6 -0
  109. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +6 -0
  110. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +6 -0
  111. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +6 -0
  112. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +6 -0
  113. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +6 -0
  114. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +6 -0
  115. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +6 -0
  116. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +6 -0
  117. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +6 -0
  118. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +6 -0
  119. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +6 -0
  120. package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +6 -0
  121. package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +18 -0
  122. package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +19 -0
  123. package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +22 -0
  124. package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +22 -0
  125. package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +23 -0
  126. package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +24 -0
  127. package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +22 -0
  128. package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +22 -0
  129. package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +31 -0
  130. package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +28 -0
  131. package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +157 -0
  132. package/pennyfarthing-dist/workflows/project-setup/steps/step-02-clone-repos.md +217 -0
  133. package/pennyfarthing-dist/workflows/project-setup/steps/step-03-repos-yaml.md +159 -0
  134. package/pennyfarthing-dist/workflows/project-setup/steps/step-04-claude-md.md +186 -0
  135. package/pennyfarthing-dist/workflows/project-setup/steps/step-05-shared-context.md +185 -0
  136. package/pennyfarthing-dist/workflows/project-setup/steps/step-06-task-runner.md +279 -0
  137. package/pennyfarthing-dist/workflows/project-setup/steps/step-07-theme.md +200 -0
  138. package/pennyfarthing-dist/workflows/project-setup/steps/step-08-cyclist.md +245 -0
  139. package/pennyfarthing-dist/workflows/project-setup/steps/step-09-complete.md +203 -0
  140. package/pennyfarthing-dist/workflows/project-setup/workflow.yaml +41 -0
  141. package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +21 -0
  142. package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +23 -0
  143. package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +25 -0
  144. package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +22 -0
  145. package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +23 -0
  146. package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +23 -0
  147. package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +12 -0
  148. package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +12 -0
  149. package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +12 -0
  150. package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +12 -0
  151. package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +22 -0
  152. package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +24 -0
  153. package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +25 -0
  154. package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +26 -0
  155. package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +26 -0
  156. package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +34 -0
  157. package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +23 -0
  158. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +25 -0
  159. package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +27 -0
  160. package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +26 -0
  161. package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +27 -0
  162. package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +26 -0
  163. package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +35 -0
  164. package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +22 -0
  165. package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +25 -0
  166. package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +26 -0
  167. package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +26 -0
  168. package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +29 -1
  169. package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +37 -1
  170. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +15 -0
  171. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +17 -0
  172. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +16 -0
  173. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +17 -0
  174. package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +22 -0
  175. package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +6 -0
  176. package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +6 -0
  177. package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +6 -0
  178. package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +6 -0
  179. package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +6 -0
  180. package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +6 -0
  181. package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +6 -0
  182. package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +6 -0
  183. package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +6 -0
  184. package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +6 -0
  185. package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +6 -0
  186. package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +6 -0
  187. package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +6 -0
  188. package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +6 -0
  189. package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +6 -0
  190. package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  191. package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  192. package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
  193. package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
  194. package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
  195. package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
  196. package/pennyfarthing_scripts/__pycache__/jira_bidirectional_sync.cpython-314.pyc +0 -0
  197. package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
  198. package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
  199. package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
  200. package/pennyfarthing_scripts/__pycache__/output.cpython-314.pyc +0 -0
  201. package/pennyfarthing_scripts/__pycache__/patch_mode.cpython-314.pyc +0 -0
  202. package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
  203. package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
  204. package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
  205. package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
  206. package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
  207. package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
  208. package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
  209. package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
  210. package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
  211. package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
  212. package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
  213. package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
  214. package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
  215. package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
  216. package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
  217. package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
  218. package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
  219. package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
  220. package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
  221. package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
  222. package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
  223. package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
  224. package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
  225. package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
  226. package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
  227. package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
  228. package/pennyfarthing_scripts/migration/__init__.py +39 -0
  229. package/pennyfarthing_scripts/migration/__main__.py +10 -0
  230. package/pennyfarthing_scripts/migration/__pycache__/__init__.cpython-314.pyc +0 -0
  231. package/pennyfarthing_scripts/migration/__pycache__/__main__.cpython-314.pyc +0 -0
  232. package/pennyfarthing_scripts/migration/__pycache__/cli.cpython-314.pyc +0 -0
  233. package/pennyfarthing_scripts/migration/__pycache__/session.cpython-314.pyc +0 -0
  234. package/pennyfarthing_scripts/migration/__pycache__/skill.cpython-314.pyc +0 -0
  235. package/pennyfarthing_scripts/migration/__pycache__/step.cpython-314.pyc +0 -0
  236. package/pennyfarthing_scripts/migration/__pycache__/validate.cpython-314.pyc +0 -0
  237. package/pennyfarthing_scripts/migration/cli.py +304 -0
  238. package/pennyfarthing_scripts/migration/session.py +384 -0
  239. package/pennyfarthing_scripts/migration/skill.py +188 -0
  240. package/pennyfarthing_scripts/migration/step.py +229 -0
  241. package/pennyfarthing_scripts/migration/validate.py +282 -0
  242. package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
  243. package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
  244. package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
  245. package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
  246. package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
  247. package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
  248. package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
  249. package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
  250. package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
  251. package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
  252. package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
  253. package/pennyfarthing_scripts/prime/__pycache__/tiers.cpython-314.pyc +0 -0
  254. package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  255. package/pennyfarthing_scripts/schema_validation_hook.py +306 -0
  256. package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
  257. package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
  258. package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
  259. package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
  260. package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  261. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  262. package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
  263. package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
  264. package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
  265. package/pennyfarthing_scripts/sprint/archive_epic.py +399 -0
  266. package/pennyfarthing_scripts/sprint/cli.py +100 -0
  267. package/pennyfarthing_scripts/sprint/import_epic.py +431 -0
  268. package/pennyfarthing_scripts/story/__pycache__/__init__.cpython-314.pyc +0 -0
  269. package/pennyfarthing_scripts/story/__pycache__/__main__.cpython-314.pyc +0 -0
  270. package/pennyfarthing_scripts/story/__pycache__/cli.cpython-314.pyc +0 -0
  271. package/pennyfarthing_scripts/story/__pycache__/create.cpython-314.pyc +0 -0
  272. package/pennyfarthing_scripts/story/__pycache__/size.cpython-314.pyc +0 -0
  273. package/pennyfarthing_scripts/story/__pycache__/template.cpython-314.pyc +0 -0
  274. package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
  275. package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
  276. package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
  277. package/pennyfarthing_scripts/tests/__pycache__/test_cli_modules.cpython-314-pytest-9.0.2.pyc +0 -0
  278. package/pennyfarthing_scripts/tests/__pycache__/test_common.cpython-314-pytest-9.0.2.pyc +0 -0
  279. package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
  280. package/pennyfarthing_scripts/tests/__pycache__/test_jira_package.cpython-314-pytest-9.0.2.pyc +0 -0
  281. package/pennyfarthing_scripts/tests/__pycache__/test_package_structure.cpython-314-pytest-9.0.2.pyc +0 -0
  282. package/pennyfarthing_scripts/tests/__pycache__/test_patch_mode.cpython-314-pytest-9.0.2.pyc +0 -0
  283. package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
  284. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
  285. package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
  286. package/pennyfarthing_scripts/tests/__pycache__/test_story_package.cpython-314-pytest-9.0.2.pyc +0 -0
  287. package/pennyfarthing_scripts/tests/__pycache__/test_tiers.cpython-314-pytest-9.0.2.pyc +0 -0
  288. package/pennyfarthing_scripts/tests/__pycache__/test_token_counting.cpython-314-pytest-9.0.2.pyc +0 -0
  289. package/pennyfarthing_scripts/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
  290. package/pennyfarthing_scripts/tests/__pycache__/test_workflow_cli.cpython-314-pytest-9.0.2.pyc +0 -0
  291. package/pennyfarthing-dist/scripts/sprint/import-epic-to-future.sh +0 -10
  292. package/pennyfarthing-dist/scripts/sprint/import_epic_to_future.py +0 -270
@@ -9,6 +9,12 @@ prdFile: '{prd_file_path}'
9
9
 
10
10
  # Step 13: Validation Report Complete
11
11
 
12
+ <purpose>Finalize validation report, summarize all findings from validation steps, present summary to user conversationally, and offer actionable next steps including editing or publication.</purpose>
13
+
14
+ <instructions>Aggregate all validation step findings into comprehensive report; create executive summary with key metrics and recommendations; prepare conversational presentation for user; identify critical issues, major issues, and minor issues; recommend prioritized remediation path; offer next steps including editing workflow or publication options.</instructions>
15
+
16
+ <output>Complete validation report with executive summary, aggregated findings from all validation checks, severity classification of issues, prioritized remediation recommendations, and options for next workflow steps.</output>
17
+
12
18
  ## STEP GOAL:
13
19
 
14
20
  Finalize validation report, summarize all findings from steps 1-12, present summary to user conversationally, and offer actionable next steps.
@@ -10,6 +10,24 @@ outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
10
10
  productBriefTemplate: '../product-brief.template.md'
11
11
  ---
12
12
 
13
+ <purpose>
14
+ Initialize the product brief workflow by detecting continuation state and setting up the document structure for collaborative product discovery.
15
+ </purpose>
16
+
17
+ <instructions>
18
+ 1. Check for existing workflow state by looking for the output document
19
+ 2. If document exists with stepsCompleted, hand off to step-01b for continuation
20
+ 3. If fresh workflow, discover input documents and create initial document from template
21
+ 4. Update frontmatter with discovered documents
22
+ 5. Present results to user and proceed to next step
23
+ </instructions>
24
+
25
+ <output>
26
+ - Initialized product brief document at {outputFile}
27
+ - Frontmatter updated with stepsCompleted: [1] and inputDocuments array
28
+ - User confirmation of document setup and discovered input documents
29
+ </output>
30
+
13
31
  # Step 1: Product Brief Initialization
14
32
 
15
33
  ## STEP GOAL:
@@ -6,6 +6,25 @@ description: 'Resume the product brief workflow from where it was left off, ensu
6
6
  outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
7
7
  ---
8
8
 
9
+ <purpose>
10
+ Resume the product brief workflow from where it was left off, ensuring smooth continuation with full context restoration.
11
+ </purpose>
12
+
13
+ <instructions>
14
+ 1. Analyze current workflow state from document frontmatter
15
+ 2. Reload all previously loaded input documents for context
16
+ 3. Present progress report and determine next step based on lastStep value
17
+ 4. If workflow complete, suggest next workflow options
18
+ 5. If workflow incomplete, load appropriate next step file
19
+ </instructions>
20
+
21
+ <output>
22
+ - Current workflow state analyzed and presented to user
23
+ - All input documents reloaded for context continuity
24
+ - Next step identified and ready to load
25
+ - User confirmation before proceeding to next step
26
+ </output>
27
+
9
28
  # Step 1B: Product Brief Continuation
10
29
 
11
30
  ## STEP GOAL:
@@ -11,6 +11,28 @@ advancedElicitationTask: '{project_root}/_bmad/core/workflows/advanced-elicitati
11
11
  partyModeWorkflow: '{project_root}/_bmad/core/workflows/party-mode/workflow.md'
12
12
  ---
13
13
 
14
+ <purpose>
15
+ Conduct comprehensive product vision discovery to define the core problem, solution, and unique value proposition through collaborative analysis.
16
+ </purpose>
17
+
18
+ <instructions>
19
+ 1. Begin vision discovery conversation exploring the core problem
20
+ 2. Explore problem understanding from multiple angles
21
+ 3. Analyze existing solutions and gaps
22
+ 4. Collaborate on solution vision and differentiators
23
+ 5. Generate Executive Summary and Core Vision content
24
+ 6. Present A/P/C menu for optional advanced elicitation or party mode
25
+ 7. Save content to document when user selects C
26
+ </instructions>
27
+
28
+ <output>
29
+ - Executive Summary capturing product essence
30
+ - Core Vision section with problem statement and solution
31
+ - Unique Differentiators section highlighting competitive advantage
32
+ - Document updated at {outputFile} with stepsCompleted: [1, 2]
33
+ - User ready to proceed to target user discovery
34
+ </output>
35
+
14
36
  # Step 2: Product Vision Discovery
15
37
 
16
38
  ## STEP GOAL:
@@ -11,6 +11,28 @@ advancedElicitationTask: '{project_root}/_bmad/core/workflows/advanced-elicitati
11
11
  partyModeWorkflow: '{project_root}/_bmad/core/workflows/party-mode/workflow.md'
12
12
  ---
13
13
 
14
+ <purpose>
15
+ Define target users with rich personas and map their key interactions with the product through collaborative user research and journey mapping.
16
+ </purpose>
17
+
18
+ <instructions>
19
+ 1. Begin user discovery conversation identifying who experiences the problem
20
+ 2. Develop rich personas for primary user segments
21
+ 3. Explore secondary user segments and their roles
22
+ 4. Map user journeys through discovery, onboarding, core usage, and success moments
23
+ 5. Generate Target Users content with personas and journey maps
24
+ 6. Present A/P/C menu for optional advanced elicitation or party mode
25
+ 7. Save content to document when user selects C
26
+ </instructions>
27
+
28
+ <output>
29
+ - Target Users section with Primary and Secondary user personas
30
+ - User Journey section mapping key interaction points
31
+ - Rich persona descriptions with motivations and goals
32
+ - Document updated at {outputFile} with stepsCompleted: [1, 2, 3]
33
+ - User ready to proceed to success metrics definition
34
+ </output>
35
+
14
36
  # Step 3: Target Users Discovery
15
37
 
16
38
  ## STEP GOAL:
@@ -11,6 +11,29 @@ advancedElicitationTask: '{project_root}/_bmad/core/workflows/advanced-elicitati
11
11
  partyModeWorkflow: '{project_root}/_bmad/core/workflows/party-mode/workflow.md'
12
12
  ---
13
13
 
14
+ <purpose>
15
+ Define comprehensive success metrics that include user success, business objectives, and key performance indicators through collaborative metric definition aligned with product vision and user value.
16
+ </purpose>
17
+
18
+ <instructions>
19
+ 1. Begin success metrics discovery from user perspective
20
+ 2. Define measurable user success metrics and outcomes
21
+ 3. Explore business objectives and success criteria
22
+ 4. Develop specific, measurable KPIs with targets and timeframes
23
+ 5. Ensure metrics align with product vision and drive decisions
24
+ 6. Generate Success Metrics content with user, business, and KPI sections
25
+ 7. Present A/P/C menu for optional advanced elicitation or party mode
26
+ 8. Save content to document when user selects C
27
+ </instructions>
28
+
29
+ <output>
30
+ - Success Metrics section defining user success outcomes
31
+ - Business Objectives section with strategic goals
32
+ - Key Performance Indicators section with measurable targets
33
+ - Document updated at {outputFile} with stepsCompleted: [1, 2, 3, 4]
34
+ - User ready to proceed to MVP scope definition
35
+ </output>
36
+
14
37
  # Step 4: Success Metrics Definition
15
38
 
16
39
  ## STEP GOAL:
@@ -11,6 +11,30 @@ advancedElicitationTask: '{project_root}/_bmad/core/workflows/advanced-elicitati
11
11
  partyModeWorkflow: '{project_root}/_bmad/core/workflows/party-mode/workflow.md'
12
12
  ---
13
13
 
14
+ <purpose>
15
+ Define MVP scope with clear boundaries and outline future vision through collaborative scope negotiation that balances ambition with realism.
16
+ </purpose>
17
+
18
+ <instructions>
19
+ 1. Begin scope definition conversation focused on MVP mindset
20
+ 2. Define core features essential for solving the problem
21
+ 3. Establish out-of-scope boundaries and deferred features
22
+ 4. Define MVP success criteria and validation gates
23
+ 5. Explore future vision and long-term capabilities
24
+ 6. Generate MVP Scope content with core features and future vision
25
+ 7. Present A/P/C menu for optional advanced elicitation or party mode
26
+ 8. Save content to document when user selects C
27
+ </instructions>
28
+
29
+ <output>
30
+ - MVP Scope section with Core Features defined
31
+ - Out of Scope for MVP section with clear boundaries
32
+ - MVP Success Criteria section with validation gates
33
+ - Future Vision section with long-term capabilities
34
+ - Document updated at {outputFile} with stepsCompleted: [1, 2, 3, 4, 5]
35
+ - User ready to proceed to workflow completion
36
+ </output>
37
+
14
38
  # Step 5: MVP Scope Definition
15
39
 
16
40
  ## STEP GOAL:
@@ -6,6 +6,28 @@ description: 'Complete the product brief workflow, update status files, and sugg
6
6
  outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
7
7
  ---
8
8
 
9
+ <purpose>
10
+ Complete the product brief workflow, update status files, and provide guidance on logical next steps for continued product development.
11
+ </purpose>
12
+
13
+ <instructions>
14
+ 1. Announce workflow completion and summarize accomplishments
15
+ 2. Update main workflow status file with completion information
16
+ 3. Validate product brief completeness and consistency
17
+ 4. Suggest logical next workflow steps (PRD, UX design, etc.)
18
+ 5. Present completion menu and provide next step guidance
19
+ 6. End workflow session gracefully
20
+ </instructions>
21
+
22
+ <output>
23
+ - Completion announcement with summary of accomplishments
24
+ - Workflow status file updated with completion timestamp
25
+ - Quality validation results confirming completeness and consistency
26
+ - Next step recommendations provided to user
27
+ - Final document location: {outputFile}
28
+ - Workflow marked as complete
29
+ </output>
30
+
9
31
  # Step 6: Product Brief Completion
10
32
 
11
33
  ## STEP GOAL:
@@ -1,5 +1,27 @@
1
1
  # Step 1: Context Discovery & Initialization
2
2
 
3
+ <purpose>
4
+ Discover the project's technology stack, existing patterns, and critical implementation rules that AI agents must follow when writing code.
5
+ </purpose>
6
+
7
+ <instructions>
8
+ 1. Check for existing project context (project-context.md)
9
+ 2. Discover project technology stack from package files and config
10
+ 3. Identify existing code patterns, naming conventions, and organization
11
+ 4. Extract critical implementation rules that AI agents need
12
+ 5. Initialize project context document with discovered information
13
+ 6. Present discovery summary to user
14
+ </instructions>
15
+
16
+ <output>
17
+ - Existing project context detection status
18
+ - Identified technology stack with versions
19
+ - Found implementation patterns and conventions
20
+ - Initialized project context document
21
+ - Discovery summary presented to user
22
+ - User ready to proceed to step-02
23
+ </output>
24
+
3
25
  ## MANDATORY EXECUTION RULES (READ FIRST):
4
26
 
5
27
  - 🛑 NEVER generate content without user input
@@ -1,5 +1,36 @@
1
1
  # Step 2: Context Rules Generation
2
2
 
3
+ <purpose>
4
+ Collaboratively generate specific, critical rules that AI agents must follow when implementing code in this project, organized by technology stack, language, framework, testing, code quality, workflow, and anti-patterns.
5
+ </purpose>
6
+
7
+ <instructions>
8
+ 1. Document exact technology stack and versions from discovery
9
+ 2. Generate language-specific rules for unobvious patterns
10
+ 3. Generate framework-specific rules for project conventions
11
+ 4. Generate testing rules for consistency
12
+ 5. Generate code quality and style rules
13
+ 6. Generate development workflow rules
14
+ 7. Identify critical don't-miss rules and anti-patterns
15
+ 8. Present A/P/C menu after each category for user validation
16
+ 9. Append validated rules to project context file
17
+ 10. Update frontmatter with completed sections
18
+ </instructions>
19
+
20
+ <output>
21
+ - Technology stack and versions documented
22
+ - Language-specific rules for each category
23
+ - Framework-specific rules for project patterns
24
+ - Testing rules for consistency
25
+ - Code quality and style rules
26
+ - Development workflow rules
27
+ - Critical anti-pattern rules documented
28
+ - A/P/C menu selections processed
29
+ - Rules appended to project context file
30
+ - Frontmatter updated with sections_completed
31
+ - Ready to proceed to step-03
32
+ </output>
33
+
3
34
  ## MANDATORY EXECUTION RULES (READ FIRST):
4
35
 
5
36
  - 🛑 NEVER generate content without user input
@@ -1,5 +1,33 @@
1
1
  # Step 3: Context Completion & Finalization
2
2
 
3
+ <purpose>
4
+ Complete the project context file, optimize it for LLM efficiency, validate all critical rules are captured and actionable, and provide guidance for usage and maintenance.
5
+ </purpose>
6
+
7
+ <instructions>
8
+ 1. Review complete context file for content and structure analysis
9
+ 2. Optimize content for LLM context efficiency
10
+ 3. Remove redundant or obvious information
11
+ 4. Ensure final structure follows optimized format
12
+ 5. Present completion summary to user based on skill level
13
+ 6. Update frontmatter with completion status
14
+ 7. Add usage guidelines section for agents and humans
15
+ 8. Validate all critical rules are complete
16
+ 9. Provide clear next steps for agent integration and maintenance
17
+ </instructions>
18
+
19
+ <output>
20
+ - Complete context file reviewed and optimized
21
+ - Content optimized for LLM efficiency
22
+ - Final structure validated
23
+ - Completion summary presented to user
24
+ - Frontmatter updated with status: 'complete'
25
+ - Usage guidelines section appended
26
+ - Validation checklist completed
27
+ - File ready for AI agent consumption
28
+ - Next steps provided for maintenance and evolution
29
+ </output>
30
+
3
31
  ## MANDATORY EXECUTION RULES (READ FIRST):
4
32
 
5
33
  - 🛑 NEVER generate content without user input
@@ -0,0 +1,157 @@
1
+ # Step 1: Project Discovery
2
+
3
+ <purpose>
4
+ Discover the project structure, detect repositories, identify tech stack, and gather information needed to configure Pennyfarthing.
5
+ </purpose>
6
+
7
+ <instructions>
8
+ 1. Scan project root for repository structure
9
+ 2. Detect package managers and languages
10
+ 3. Identify monorepo vs single-repo structure
11
+ 4. Find test/build/lint commands
12
+ 5. Present discovery summary for user confirmation
13
+ </instructions>
14
+
15
+ <output>
16
+ - Project structure map
17
+ - Detected repositories with paths
18
+ - Tech stack (languages, frameworks, package managers)
19
+ - Extracted commands (test, build, lint)
20
+ - User-confirmed discovery ready for repos.yaml generation
21
+ </output>
22
+
23
+ ## DISCOVERY TASKS
24
+
25
+ ### 1. Detect Repository Structure
26
+
27
+ Scan for git repositories and orchestrator patterns:
28
+
29
+ ```bash
30
+ # Find all .git directories (indicates repos)
31
+ find . -name ".git" -type d -maxdepth 3 2>/dev/null
32
+
33
+ # Check if this is a monorepo
34
+ ls -la pnpm-workspace.yaml lerna.json turborepo.json package.json 2>/dev/null
35
+
36
+ # Check for orchestrator pattern (sprint/, .session/ directories)
37
+ ls -la sprint/ .session/ 2>/dev/null
38
+
39
+ # Check .gitignore for ignored subrepo patterns
40
+ grep -E "^[a-zA-Z].*-api/?$|^[a-zA-Z].*-ui/?$|^[a-zA-Z]+/$" .gitignore 2>/dev/null
41
+ ```
42
+
43
+ **Classify structure:**
44
+ - **Single repo**: Only `./.git` exists, no sprint/
45
+ - **Monorepo**: Workspace config found (pnpm-workspace.yaml, lerna.json, etc.)
46
+ - **Orchestrator**: Has sprint/ and/or multiple `.git` directories (subrepos)
47
+
48
+ ### 1a. Detect Orchestrator Pattern (Critical)
49
+
50
+ The orchestrator pattern uses gitignored subrepos:
51
+
52
+ ```
53
+ my-project/ # Orchestrator (git repo)
54
+ ├── .gitignore # Contains: my-project-api/, my-project-ui/
55
+ ├── sprint/ # Sprint tracking (key indicator)
56
+ ├── .session/ # Work sessions
57
+ ├── my-project-api/ # Subrepo (separate git, gitignored)
58
+ │ └── .git/
59
+ └── my-project-ui/ # Subrepo (separate git, gitignored)
60
+ └── .git/
61
+ ```
62
+
63
+ **Detection steps:**
64
+ 1. Check for `sprint/` directory → indicates orchestrator
65
+ 2. Parse `.gitignore` for directory patterns (ending in `/`)
66
+ 3. Check if those directories exist AND have their own `.git`
67
+ 4. These are subrepos, not just ignored directories
68
+
69
+ **Example .gitignore patterns to look for:**
70
+ ```gitignore
71
+ # Subrepos (cloned separately)
72
+ conductor-api/
73
+ conductor-ui/
74
+
75
+ # OR with wildcards
76
+ *-api/
77
+ *-ui/
78
+ ```
79
+
80
+ **Important:** Subrepos may not exist yet (not cloned). The .gitignore tells us what SHOULD be there.
81
+
82
+ ### 2. Detect Tech Stack
83
+
84
+ For each repository/directory, check for:
85
+
86
+ | File | Indicates | Extract |
87
+ |------|-----------|---------|
88
+ | `package.json` | Node.js/JavaScript/TypeScript | name, scripts, dependencies |
89
+ | `Cargo.toml` | Rust | name, version |
90
+ | `pyproject.toml` / `requirements.txt` | Python | name, dependencies |
91
+ | `go.mod` | Go | module name |
92
+ | `pom.xml` / `build.gradle` | Java | project info |
93
+ | `tsconfig.json` | TypeScript | compiler options |
94
+
95
+ ### 3. Extract Commands
96
+
97
+ From `package.json` scripts or equivalent:
98
+
99
+ ```yaml
100
+ test_command: npm test | pnpm test | cargo test | pytest
101
+ build_command: npm run build | cargo build | python setup.py build
102
+ lint_command: npm run lint | cargo clippy | ruff check
103
+ dev_command: npm run dev | cargo watch
104
+ ```
105
+
106
+ ### 4. Identify Project Type
107
+
108
+ Based on discovery, classify:
109
+
110
+ | Type | Indicators |
111
+ |------|------------|
112
+ | `api` | Express, FastAPI, Gin, Actix endpoints |
113
+ | `ui` | React, Vue, Svelte, frontend frameworks |
114
+ | `cli` | bin entry in package.json, main.rs with clap |
115
+ | `library` | exports, no bin entry |
116
+ | `orchestrator` | sprint/, .session/, multiple subrepos |
117
+ | `framework` | distributable content, templates |
118
+
119
+ ### 5. Present Discovery Summary
120
+
121
+ ```
122
+ 📁 Project Discovery Summary
123
+ ════════════════════════════
124
+
125
+ Project Name: {detected_name}
126
+ Structure: {single|monorepo|orchestrator}
127
+
128
+ Repositories Found:
129
+ ┌────────────────┬──────────┬────────────┬─────────────────┐
130
+ │ Path │ Type │ Language │ Framework │
131
+ ├────────────────┼──────────┼────────────┼─────────────────┤
132
+ │ . │ {type} │ {lang} │ {framework} │
133
+ │ packages/api │ api │ TypeScript │ Express │
134
+ │ packages/ui │ ui │ TypeScript │ React │
135
+ └────────────────┴──────────┴────────────┴─────────────────┘
136
+
137
+ Detected Commands:
138
+ test: {test_command}
139
+ build: {build_command}
140
+ lint: {lint_command}
141
+
142
+ [C] Confirm and continue to repos.yaml generation
143
+ [E] Edit - let me provide corrections
144
+ [R] Rescan with different parameters
145
+ ```
146
+
147
+ ## SUCCESS CRITERIA
148
+
149
+ ✅ All git repositories detected
150
+ ✅ Tech stack accurately identified
151
+ ✅ Commands extracted from package files
152
+ ✅ Project type classified
153
+ ✅ User confirms discovery is accurate
154
+
155
+ ## NEXT STEP
156
+
157
+ After user confirms with [C], proceed to `step-02-clone-repos.md` to optionally clone subrepos and set up the orchestrator pattern.
@@ -0,0 +1,217 @@
1
+ # Step 2: Clone Subrepos (Optional)
2
+
3
+ <purpose>
4
+ Allow users to clone subrepos to set up or complete an orchestrator pattern. This step enables real-time repo cloning during project setup.
5
+ </purpose>
6
+
7
+ <instructions>
8
+ 1. Analyze discovery results for missing subrepos
9
+ 2. Check .gitignore for expected but missing repos
10
+ 3. Offer to clone missing repos or add new ones
11
+ 4. Update .gitignore with new repo patterns
12
+ 5. Re-scan after cloning to update discovery
13
+ </instructions>
14
+
15
+ <output>
16
+ - Subrepos cloned as needed
17
+ - .gitignore updated with new patterns
18
+ - Discovery data refreshed with new repos
19
+ - User ready to proceed to repos.yaml generation
20
+ </output>
21
+
22
+ ## ORCHESTRATOR PATTERN SETUP
23
+
24
+ ### Detecting Missing Subrepos
25
+
26
+ From step 1, we may have found:
27
+ - Patterns in .gitignore that don't have corresponding directories
28
+ - A sprint/ directory but no subrepos
29
+ - An incomplete orchestrator setup
30
+
31
+ ```
32
+ ⚠️ Orchestrator Pattern Detected - Missing Subrepos
33
+
34
+ Expected (from .gitignore):
35
+ ❌ conductor-api/ (not found)
36
+ ❌ conductor-ui/ (not found)
37
+
38
+ Found:
39
+ ✓ sprint/ (orchestrator confirmed)
40
+ ✓ .pennyfarthing/ (framework installed)
41
+ ```
42
+
43
+ ### Clone Options Menu
44
+
45
+ ```
46
+ 📦 Subrepo Setup
47
+ ════════════════
48
+
49
+ This appears to be an orchestrator project. Would you like to:
50
+
51
+ [C] Clone missing subrepos
52
+ - conductor-api from git@github.com:org/conductor-api.git
53
+ - conductor-ui from git@github.com:org/conductor-ui.git
54
+
55
+ [A] Add a new subrepo
56
+ - Enter repo URL to clone
57
+
58
+ [S] Skip - configure repos.yaml with placeholders
59
+
60
+ [N] Not an orchestrator - this is a standalone project
61
+ ```
62
+
63
+ ### Clone Workflow
64
+
65
+ If user selects [C] or [A]:
66
+
67
+ #### 1. Gather Repository Information
68
+
69
+ ```
70
+ 🔗 Clone Subrepo
71
+ ════════════════
72
+
73
+ Repository URL: {user enters URL}
74
+ Example: git@github.com:org/project-api.git
75
+ Example: https://github.com/org/project-ui.git
76
+
77
+ Local directory name: {auto-detect or user enters}
78
+ Suggested: {project}-api (from URL)
79
+
80
+ Branch to clone: {default: main or develop}
81
+ [Enter] for default, or specify branch
82
+ ```
83
+
84
+ #### 2. Execute Clone
85
+
86
+ ```bash
87
+ # Clone the repository
88
+ git clone {url} {directory_name}
89
+
90
+ # Optionally checkout specific branch
91
+ cd {directory_name} && git checkout {branch}
92
+ ```
93
+
94
+ #### 3. Update .gitignore
95
+
96
+ After successful clone, offer to update .gitignore:
97
+
98
+ ```
99
+ ✓ Cloned {repo_name} to {directory}/
100
+
101
+ Add to .gitignore? [Y/n]
102
+ ```
103
+
104
+ If yes, append:
105
+ ```gitignore
106
+ # Subrepo - clone separately
107
+ {directory_name}/
108
+ ```
109
+
110
+ #### 4. Detect Repo Type
111
+
112
+ After cloning, analyze the new repo:
113
+
114
+ ```
115
+ 📊 Analyzing {directory_name}...
116
+
117
+ Detected:
118
+ Type: api
119
+ Language: TypeScript
120
+ Framework: Express
121
+ Test command: npm test
122
+ Build command: npm run build
123
+
124
+ Is this correct? [Y/n/e]
125
+ ```
126
+
127
+ ### Setting Up New Orchestrator
128
+
129
+ If no orchestrator pattern exists but user wants one:
130
+
131
+ ```
132
+ 🏗️ Create Orchestrator Pattern
133
+ ═══════════════════════════════
134
+
135
+ This will set up your project as an orchestrator:
136
+
137
+ 1. Create sprint/ directory structure
138
+ 2. Create .session/ for work tracking
139
+ 3. Add Pennyfarthing workflow support
140
+
141
+ Subrepos to include:
142
+ [ ] Add API repo
143
+ [ ] Add UI repo
144
+ [ ] Add other repo
145
+
146
+ [P] Proceed with orchestrator setup
147
+ [S] Skip - keep as single repo
148
+ ```
149
+
150
+ ### Common Orchestrator Patterns
151
+
152
+ Offer templates based on project type:
153
+
154
+ ```
155
+ 📋 Orchestrator Templates
156
+ ═════════════════════════
157
+
158
+ [1] API + UI (most common)
159
+ - {project}-api/ (backend)
160
+ - {project}-ui/ (frontend)
161
+
162
+ [2] API + UI + Shared (monorepo-like)
163
+ - {project}-api/
164
+ - {project}-ui/
165
+ - {project}-shared/
166
+
167
+ [3] Microservices
168
+ - {project}-gateway/
169
+ - {project}-service-a/
170
+ - {project}-service-b/
171
+
172
+ [4] Custom - define your own repos
173
+ ```
174
+
175
+ ## RE-SCAN AFTER CHANGES
176
+
177
+ After any cloning or setup:
178
+
179
+ ```bash
180
+ # Re-run discovery
181
+ find . -name ".git" -type d -maxdepth 3
182
+
183
+ # Update tech stack detection
184
+ # (runs same detection as step 1)
185
+ ```
186
+
187
+ Present updated discovery:
188
+
189
+ ```
190
+ 📁 Updated Project Structure
191
+ ════════════════════════════
192
+
193
+ Repositories:
194
+ ┌────────────────┬──────────┬────────────┐
195
+ │ Path │ Type │ Status │
196
+ ├────────────────┼──────────┼────────────┤
197
+ │ . │ orch │ existing │
198
+ │ conductor-api/ │ api │ ✓ cloned │
199
+ │ conductor-ui/ │ ui │ ✓ cloned │
200
+ └────────────────┴──────────┴────────────┘
201
+
202
+ [C] Continue to repos.yaml generation
203
+ [A] Add another repo
204
+ [R] Remove a repo from tracking
205
+ ```
206
+
207
+ ## SUCCESS CRITERIA
208
+
209
+ ✅ All desired subrepos cloned
210
+ ✅ .gitignore properly updated
211
+ ✅ Discovery data refreshed
212
+ ✅ Repo types correctly identified
213
+ ✅ User ready to proceed
214
+
215
+ ## NEXT STEP
216
+
217
+ After repos are cloned and discovery is refreshed, proceed to `step-03-repos-yaml.md` to generate the repos.yaml configuration.