@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.
- package/README.md +16 -7
- package/package.json +1 -1
- package/packages/core/dist/cli/commands/doctor.d.ts +5 -2
- package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/doctor.js +327 -17
- package/packages/core/dist/cli/commands/doctor.js.map +1 -1
- package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/init.js +3 -246
- package/packages/core/dist/cli/commands/init.js.map +1 -1
- package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/update.js +4 -140
- package/packages/core/dist/cli/commands/update.js.map +1 -1
- package/packages/core/dist/cli/utils/constants.d.ts +7 -1
- package/packages/core/dist/cli/utils/constants.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/constants.js +2 -0
- package/packages/core/dist/cli/utils/constants.js.map +1 -1
- package/packages/core/dist/cli/utils/settings.d.ts +22 -0
- package/packages/core/dist/cli/utils/settings.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/settings.js +300 -0
- package/packages/core/dist/cli/utils/settings.js.map +1 -0
- package/pennyfarthing-dist/commands/chore.md +18 -17
- package/pennyfarthing-dist/commands/continue-session.md +41 -7
- package/pennyfarthing-dist/commands/fix-blocker.md +22 -0
- package/pennyfarthing-dist/commands/git-cleanup.md +25 -19
- package/pennyfarthing-dist/commands/patch.md +210 -0
- package/pennyfarthing-dist/commands/setup.md +65 -0
- package/pennyfarthing-dist/guides/session-schema.md +346 -0
- package/pennyfarthing-dist/guides/skill-schema.md +412 -0
- package/pennyfarthing-dist/guides/workflow-step-schema.md +512 -0
- package/pennyfarthing-dist/guides/xml-tags.md +292 -0
- package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +43 -8
- package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +30 -0
- package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +78 -0
- package/pennyfarthing-dist/scripts/lib/find-root.sh +32 -7
- package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +13 -2
- package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +139 -0
- package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +4 -0
- package/pennyfarthing-dist/skills/changelog/SKILL.md +18 -0
- package/pennyfarthing-dist/skills/code-review/SKILL.md +5 -1
- package/pennyfarthing-dist/skills/context-engineering/SKILL.md +3 -0
- package/pennyfarthing-dist/skills/cyclist/SKILL.md +2 -2
- package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +24 -0
- package/pennyfarthing-dist/skills/finalize-run/SKILL.md +3 -0
- package/pennyfarthing-dist/skills/judge/SKILL.md +8 -0
- package/pennyfarthing-dist/skills/just/SKILL.md +11 -0
- package/pennyfarthing-dist/skills/mermaid/SKILL.md +16 -0
- package/pennyfarthing-dist/skills/otel/skill.md +4 -0
- package/pennyfarthing-dist/skills/permissions/skill.md +3 -0
- package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +9 -0
- package/pennyfarthing-dist/skills/story/skill.md +16 -16
- package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +56 -0
- package/pennyfarthing-dist/skills/testing/SKILL.md +22 -0
- package/pennyfarthing-dist/skills/theme/skill.md +12 -0
- package/pennyfarthing-dist/skills/theme-creation/SKILL.md +4 -0
- package/pennyfarthing-dist/skills/workflow/skill.md +22 -14
- package/pennyfarthing-dist/skills/yq/SKILL.md +8 -0
- package/pennyfarthing-dist/templates/settings.local.json.template +9 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +12 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +12 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +12 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +12 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +12 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +12 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +12 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +12 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +25 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +23 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +26 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +24 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +23 -0
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +43 -41
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-02-categorize.md +50 -19
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-03-execute.md +102 -111
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +48 -39
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +30 -31
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +21 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +21 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +23 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +23 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +28 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +25 -0
- package/pennyfarthing-dist/workflows/interactive-debug/steps/step-01-connect.md +257 -0
- package/pennyfarthing-dist/workflows/interactive-debug/steps/step-02-explore.md +107 -0
- package/pennyfarthing-dist/workflows/interactive-debug/steps/step-03-fix.md +127 -0
- package/pennyfarthing-dist/workflows/interactive-debug/steps/step-04-commit.md +122 -0
- package/pennyfarthing-dist/workflows/interactive-debug/workflow.yaml +51 -0
- package/pennyfarthing-dist/workflows/patch.yaml +2 -3
- package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +6 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +6 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +18 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +19 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +22 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +22 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +23 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +24 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +22 -0
- package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +22 -0
- package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +31 -0
- package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +28 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +157 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-02-clone-repos.md +217 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-03-repos-yaml.md +159 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-04-claude-md.md +186 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-05-shared-context.md +185 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-06-task-runner.md +279 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-07-theme.md +200 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-08-cyclist.md +245 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-09-complete.md +203 -0
- package/pennyfarthing-dist/workflows/project-setup/workflow.yaml +41 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +21 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +23 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +25 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +22 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +23 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +23 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +12 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +12 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +12 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +12 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +22 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +24 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +25 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +26 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +26 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +34 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +23 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +25 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +27 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +26 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +27 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +26 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +35 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +22 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +25 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +26 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +26 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +29 -1
- package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +37 -1
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +15 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +17 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +16 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +17 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +22 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +6 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +6 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_bidirectional_sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/output.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/patch_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__init__.py +39 -0
- package/pennyfarthing_scripts/migration/__main__.py +10 -0
- package/pennyfarthing_scripts/migration/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/session.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/skill.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/step.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/validate.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/cli.py +304 -0
- package/pennyfarthing_scripts/migration/session.py +384 -0
- package/pennyfarthing_scripts/migration/skill.py +188 -0
- package/pennyfarthing_scripts/migration/step.py +229 -0
- package/pennyfarthing_scripts/migration/validate.py +282 -0
- package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/tiers.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/schema_validation_hook.py +306 -0
- package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/archive_epic.py +399 -0
- package/pennyfarthing_scripts/sprint/cli.py +100 -0
- package/pennyfarthing_scripts/sprint/import_epic.py +431 -0
- package/pennyfarthing_scripts/story/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/create.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/size.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/template.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_cli_modules.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_common.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_jira_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_package_structure.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_patch_mode.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tiers.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_token_counting.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_cli.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing-dist/scripts/sprint/import-epic-to-future.sh +0 -10
- 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.
|