@pennyfarthing/core 6.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +293 -0
- package/package.json +58 -0
- package/packages/core/bin/pennyfarthing.js +14 -0
- package/packages/core/dist/bmad/context-reader.d.ts +71 -0
- package/packages/core/dist/bmad/context-reader.d.ts.map +1 -0
- package/packages/core/dist/bmad/context-reader.js +369 -0
- package/packages/core/dist/bmad/context-reader.js.map +1 -0
- package/packages/core/dist/bmad/context-reader.test.d.ts +71 -0
- package/packages/core/dist/bmad/context-reader.test.d.ts.map +1 -0
- package/packages/core/dist/bmad/context-reader.test.js +878 -0
- package/packages/core/dist/bmad/context-reader.test.js.map +1 -0
- package/packages/core/dist/bmad/epics-parser.d.ts +61 -0
- package/packages/core/dist/bmad/epics-parser.d.ts.map +1 -0
- package/packages/core/dist/bmad/epics-parser.js +331 -0
- package/packages/core/dist/bmad/epics-parser.js.map +1 -0
- package/packages/core/dist/bmad/epics-parser.test.d.ts +7 -0
- package/packages/core/dist/bmad/epics-parser.test.d.ts.map +1 -0
- package/packages/core/dist/bmad/epics-parser.test.js +449 -0
- package/packages/core/dist/bmad/epics-parser.test.js.map +1 -0
- package/packages/core/dist/bmad/index.d.ts +11 -0
- package/packages/core/dist/bmad/index.d.ts.map +1 -0
- package/packages/core/dist/bmad/index.js +24 -0
- package/packages/core/dist/bmad/index.js.map +1 -0
- package/packages/core/dist/bmad/status-sync.d.ts +173 -0
- package/packages/core/dist/bmad/status-sync.d.ts.map +1 -0
- package/packages/core/dist/bmad/status-sync.js +463 -0
- package/packages/core/dist/bmad/status-sync.js.map +1 -0
- package/packages/core/dist/bmad/status-sync.test.d.ts +7 -0
- package/packages/core/dist/bmad/status-sync.test.d.ts.map +1 -0
- package/packages/core/dist/bmad/status-sync.test.js +702 -0
- package/packages/core/dist/bmad/status-sync.test.js.map +1 -0
- package/packages/core/dist/bmad/story-exporter.d.ts +55 -0
- package/packages/core/dist/bmad/story-exporter.d.ts.map +1 -0
- package/packages/core/dist/bmad/story-exporter.js +170 -0
- package/packages/core/dist/bmad/story-exporter.js.map +1 -0
- package/packages/core/dist/bmad/story-exporter.test.d.ts +51 -0
- package/packages/core/dist/bmad/story-exporter.test.d.ts.map +1 -0
- package/packages/core/dist/bmad/story-exporter.test.js +603 -0
- package/packages/core/dist/bmad/story-exporter.test.js.map +1 -0
- package/packages/core/dist/bmad/story-parser.d.ts +44 -0
- package/packages/core/dist/bmad/story-parser.d.ts.map +1 -0
- package/packages/core/dist/bmad/story-parser.js +307 -0
- package/packages/core/dist/bmad/story-parser.js.map +1 -0
- package/packages/core/dist/bmad/story-parser.test.d.ts +44 -0
- package/packages/core/dist/bmad/story-parser.test.d.ts.map +1 -0
- package/packages/core/dist/bmad/story-parser.test.js +693 -0
- package/packages/core/dist/bmad/story-parser.test.js.map +1 -0
- package/packages/core/dist/cli/commands/command.d.ts +28 -0
- package/packages/core/dist/cli/commands/command.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/command.js +399 -0
- package/packages/core/dist/cli/commands/command.js.map +1 -0
- package/packages/core/dist/cli/commands/cyclist.d.ts +46 -0
- package/packages/core/dist/cli/commands/cyclist.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/cyclist.js +191 -0
- package/packages/core/dist/cli/commands/cyclist.js.map +1 -0
- package/packages/core/dist/cli/commands/cyclist.test.d.ts +13 -0
- package/packages/core/dist/cli/commands/cyclist.test.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/cyclist.test.js +243 -0
- package/packages/core/dist/cli/commands/cyclist.test.js.map +1 -0
- package/packages/core/dist/cli/commands/doctor.d.ts +9 -0
- package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/doctor.js +652 -0
- package/packages/core/dist/cli/commands/doctor.js.map +1 -0
- package/packages/core/dist/cli/commands/init.d.ts +8 -0
- package/packages/core/dist/cli/commands/init.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/init.js +524 -0
- package/packages/core/dist/cli/commands/init.js.map +1 -0
- package/packages/core/dist/cli/commands/skill.d.ts +28 -0
- package/packages/core/dist/cli/commands/skill.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/skill.js +416 -0
- package/packages/core/dist/cli/commands/skill.js.map +1 -0
- package/packages/core/dist/cli/commands/theme.d.ts +21 -0
- package/packages/core/dist/cli/commands/theme.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/theme.js +201 -0
- package/packages/core/dist/cli/commands/theme.js.map +1 -0
- package/packages/core/dist/cli/commands/uninstall.d.ts +8 -0
- package/packages/core/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/uninstall.js +237 -0
- package/packages/core/dist/cli/commands/uninstall.js.map +1 -0
- package/packages/core/dist/cli/commands/update.d.ts +9 -0
- package/packages/core/dist/cli/commands/update.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/update.js +545 -0
- package/packages/core/dist/cli/commands/update.js.map +1 -0
- package/packages/core/dist/cli/commands/version.d.ts +2 -0
- package/packages/core/dist/cli/commands/version.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/version.js +28 -0
- package/packages/core/dist/cli/commands/version.js.map +1 -0
- package/packages/core/dist/cli/customization.test.d.ts +12 -0
- package/packages/core/dist/cli/customization.test.d.ts.map +1 -0
- package/packages/core/dist/cli/customization.test.js +84 -0
- package/packages/core/dist/cli/customization.test.js.map +1 -0
- package/packages/core/dist/cli/cyclist-migration.test.d.ts +16 -0
- package/packages/core/dist/cli/cyclist-migration.test.d.ts.map +1 -0
- package/packages/core/dist/cli/cyclist-migration.test.js +224 -0
- package/packages/core/dist/cli/cyclist-migration.test.js.map +1 -0
- package/packages/core/dist/cli/index.d.ts +3 -0
- package/packages/core/dist/cli/index.d.ts.map +1 -0
- package/packages/core/dist/cli/index.js +174 -0
- package/packages/core/dist/cli/index.js.map +1 -0
- package/packages/core/dist/cli/ocean-profiles.test.d.ts +13 -0
- package/packages/core/dist/cli/ocean-profiles.test.d.ts.map +1 -0
- package/packages/core/dist/cli/ocean-profiles.test.js +134 -0
- package/packages/core/dist/cli/ocean-profiles.test.js.map +1 -0
- package/packages/core/dist/cli/theme-maker.test.d.ts +11 -0
- package/packages/core/dist/cli/theme-maker.test.d.ts.map +1 -0
- package/packages/core/dist/cli/theme-maker.test.js +356 -0
- package/packages/core/dist/cli/theme-maker.test.js.map +1 -0
- package/packages/core/dist/cli/utils/constants.d.ts +60 -0
- package/packages/core/dist/cli/utils/constants.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/constants.js +52 -0
- package/packages/core/dist/cli/utils/constants.js.map +1 -0
- package/packages/core/dist/cli/utils/files.d.ts +71 -0
- package/packages/core/dist/cli/utils/files.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/files.js +162 -0
- package/packages/core/dist/cli/utils/files.js.map +1 -0
- package/packages/core/dist/cli/utils/logger.d.ts +26 -0
- package/packages/core/dist/cli/utils/logger.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/logger.js +88 -0
- package/packages/core/dist/cli/utils/logger.js.map +1 -0
- package/packages/core/dist/cli/utils/manifest.d.ts +47 -0
- package/packages/core/dist/cli/utils/manifest.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/manifest.js +90 -0
- package/packages/core/dist/cli/utils/manifest.js.map +1 -0
- package/packages/core/dist/cli/utils/node-modules.d.ts +6 -0
- package/packages/core/dist/cli/utils/node-modules.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/node-modules.js +22 -0
- package/packages/core/dist/cli/utils/node-modules.js.map +1 -0
- package/packages/core/dist/cli/utils/prompts.d.ts +34 -0
- package/packages/core/dist/cli/utils/prompts.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/prompts.js +93 -0
- package/packages/core/dist/cli/utils/prompts.js.map +1 -0
- package/packages/core/dist/cli/utils/symlinks.d.ts +29 -0
- package/packages/core/dist/cli/utils/symlinks.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/symlinks.js +181 -0
- package/packages/core/dist/cli/utils/symlinks.js.map +1 -0
- package/packages/core/dist/cli/utils/themes.d.ts +104 -0
- package/packages/core/dist/cli/utils/themes.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/themes.js +393 -0
- package/packages/core/dist/cli/utils/themes.js.map +1 -0
- package/packages/core/dist/cli/utils/themes.test.d.ts +12 -0
- package/packages/core/dist/cli/utils/themes.test.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/themes.test.js +144 -0
- package/packages/core/dist/cli/utils/themes.test.js.map +1 -0
- package/packages/core/dist/cli/utils/version.d.ts +10 -0
- package/packages/core/dist/cli/utils/version.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/version.js +63 -0
- package/packages/core/dist/cli/utils/version.js.map +1 -0
- package/packages/core/dist/cli/workspace.test.d.ts +8 -0
- package/packages/core/dist/cli/workspace.test.d.ts.map +1 -0
- package/packages/core/dist/cli/workspace.test.js +154 -0
- package/packages/core/dist/cli/workspace.test.js.map +1 -0
- package/packages/core/dist/index.d.ts +6 -0
- package/packages/core/dist/index.d.ts.map +1 -0
- package/packages/core/dist/index.js +10 -0
- package/packages/core/dist/index.js.map +1 -0
- package/packages/core/dist/permissions/index.d.ts +9 -0
- package/packages/core/dist/permissions/index.d.ts.map +1 -0
- package/packages/core/dist/permissions/index.js +13 -0
- package/packages/core/dist/permissions/index.js.map +1 -0
- package/packages/core/dist/permissions/permission-schema.d.ts +89 -0
- package/packages/core/dist/permissions/permission-schema.d.ts.map +1 -0
- package/packages/core/dist/permissions/permission-schema.js +120 -0
- package/packages/core/dist/permissions/permission-schema.js.map +1 -0
- package/packages/core/dist/permissions/permission-schema.test.d.ts +40 -0
- package/packages/core/dist/permissions/permission-schema.test.d.ts.map +1 -0
- package/packages/core/dist/permissions/permission-schema.test.js +367 -0
- package/packages/core/dist/permissions/permission-schema.test.js.map +1 -0
- package/packages/core/dist/scripts/add-ocean-profiles.d.ts +9 -0
- package/packages/core/dist/scripts/add-ocean-profiles.d.ts.map +1 -0
- package/packages/core/dist/scripts/add-ocean-profiles.js +695 -0
- package/packages/core/dist/scripts/add-ocean-profiles.js.map +1 -0
- package/packages/core/dist/scripts/benchmark-integration.d.ts +182 -0
- package/packages/core/dist/scripts/benchmark-integration.d.ts.map +1 -0
- package/packages/core/dist/scripts/benchmark-integration.js +691 -0
- package/packages/core/dist/scripts/benchmark-integration.js.map +1 -0
- package/packages/core/dist/scripts/benchmark-integration.test.d.ts +13 -0
- package/packages/core/dist/scripts/benchmark-integration.test.d.ts.map +1 -0
- package/packages/core/dist/scripts/benchmark-integration.test.js +680 -0
- package/packages/core/dist/scripts/benchmark-integration.test.js.map +1 -0
- package/packages/core/dist/scripts/debugging-scenarios.test.d.ts +18 -0
- package/packages/core/dist/scripts/debugging-scenarios.test.d.ts.map +1 -0
- package/packages/core/dist/scripts/debugging-scenarios.test.js +317 -0
- package/packages/core/dist/scripts/debugging-scenarios.test.js.map +1 -0
- package/packages/core/dist/scripts/generate-all-faces.d.ts +10 -0
- package/packages/core/dist/scripts/generate-all-faces.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-all-faces.js +256 -0
- package/packages/core/dist/scripts/generate-all-faces.js.map +1 -0
- package/packages/core/dist/scripts/generate-all-faces.test.d.ts +17 -0
- package/packages/core/dist/scripts/generate-all-faces.test.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-all-faces.test.js +372 -0
- package/packages/core/dist/scripts/generate-all-faces.test.js.map +1 -0
- package/packages/core/dist/scripts/generate-all-spiders.d.ts +10 -0
- package/packages/core/dist/scripts/generate-all-spiders.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-all-spiders.js +306 -0
- package/packages/core/dist/scripts/generate-all-spiders.js.map +1 -0
- package/packages/core/dist/scripts/generate-ascii-face.d.ts +52 -0
- package/packages/core/dist/scripts/generate-ascii-face.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-ascii-face.js +155 -0
- package/packages/core/dist/scripts/generate-ascii-face.js.map +1 -0
- package/packages/core/dist/scripts/generate-face.d.ts +52 -0
- package/packages/core/dist/scripts/generate-face.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-face.js +199 -0
- package/packages/core/dist/scripts/generate-face.js.map +1 -0
- package/packages/core/dist/scripts/generate-face.test.d.ts +13 -0
- package/packages/core/dist/scripts/generate-face.test.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-face.test.js +301 -0
- package/packages/core/dist/scripts/generate-face.test.js.map +1 -0
- package/packages/core/dist/scripts/generate-report.d.ts +65 -0
- package/packages/core/dist/scripts/generate-report.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-report.js +378 -0
- package/packages/core/dist/scripts/generate-report.js.map +1 -0
- package/packages/core/dist/scripts/generate-report.test.d.ts +13 -0
- package/packages/core/dist/scripts/generate-report.test.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-report.test.js +363 -0
- package/packages/core/dist/scripts/generate-report.test.js.map +1 -0
- package/packages/core/dist/scripts/generate-spider-report.d.ts +65 -0
- package/packages/core/dist/scripts/generate-spider-report.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-spider-report.js +366 -0
- package/packages/core/dist/scripts/generate-spider-report.js.map +1 -0
- package/packages/core/dist/scripts/generate-spider-report.test.d.ts +13 -0
- package/packages/core/dist/scripts/generate-spider-report.test.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-spider-report.test.js +367 -0
- package/packages/core/dist/scripts/generate-spider-report.test.js.map +1 -0
- package/packages/core/dist/scripts/generate-spider.d.ts +37 -0
- package/packages/core/dist/scripts/generate-spider.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-spider.js +315 -0
- package/packages/core/dist/scripts/generate-spider.js.map +1 -0
- package/packages/core/dist/scripts/generate-spider.test.d.ts +14 -0
- package/packages/core/dist/scripts/generate-spider.test.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-spider.test.js +269 -0
- package/packages/core/dist/scripts/generate-spider.test.js.map +1 -0
- package/packages/core/dist/scripts/job-fair-aggregator.d.ts +150 -0
- package/packages/core/dist/scripts/job-fair-aggregator.d.ts.map +1 -0
- package/packages/core/dist/scripts/job-fair-aggregator.js +547 -0
- package/packages/core/dist/scripts/job-fair-aggregator.js.map +1 -0
- package/packages/core/dist/scripts/job-fair-aggregator.test.d.ts +14 -0
- package/packages/core/dist/scripts/job-fair-aggregator.test.d.ts.map +1 -0
- package/packages/core/dist/scripts/job-fair-aggregator.test.js +616 -0
- package/packages/core/dist/scripts/job-fair-aggregator.test.js.map +1 -0
- package/packages/core/dist/scripts/run-ci.test.d.ts +20 -0
- package/packages/core/dist/scripts/run-ci.test.d.ts.map +1 -0
- package/packages/core/dist/scripts/run-ci.test.js +127 -0
- package/packages/core/dist/scripts/run-ci.test.js.map +1 -0
- package/packages/core/dist/scripts/theme-detail.test.d.ts +10 -0
- package/packages/core/dist/scripts/theme-detail.test.d.ts.map +1 -0
- package/packages/core/dist/scripts/theme-detail.test.js +199 -0
- package/packages/core/dist/scripts/theme-detail.test.js.map +1 -0
- package/packages/core/dist/scripts/validate-ocean-profiles.d.ts +9 -0
- package/packages/core/dist/scripts/validate-ocean-profiles.d.ts.map +1 -0
- package/packages/core/dist/scripts/validate-ocean-profiles.js +130 -0
- package/packages/core/dist/scripts/validate-ocean-profiles.js.map +1 -0
- package/packages/core/dist/workflow/generic-handoff.d.ts +235 -0
- package/packages/core/dist/workflow/generic-handoff.d.ts.map +1 -0
- package/packages/core/dist/workflow/generic-handoff.js +358 -0
- package/packages/core/dist/workflow/generic-handoff.js.map +1 -0
- package/packages/core/dist/workflow/generic-handoff.test.d.ts +21 -0
- package/packages/core/dist/workflow/generic-handoff.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/generic-handoff.test.js +499 -0
- package/packages/core/dist/workflow/generic-handoff.test.js.map +1 -0
- package/packages/core/dist/workflow/generic-sm-finish.d.ts +89 -0
- package/packages/core/dist/workflow/generic-sm-finish.d.ts.map +1 -0
- package/packages/core/dist/workflow/generic-sm-finish.js +157 -0
- package/packages/core/dist/workflow/generic-sm-finish.js.map +1 -0
- package/packages/core/dist/workflow/generic-sm-setup.d.ts +138 -0
- package/packages/core/dist/workflow/generic-sm-setup.d.ts.map +1 -0
- package/packages/core/dist/workflow/generic-sm-setup.js +382 -0
- package/packages/core/dist/workflow/generic-sm-setup.js.map +1 -0
- package/packages/core/dist/workflow/sm-subagents.test.d.ts +23 -0
- package/packages/core/dist/workflow/sm-subagents.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/sm-subagents.test.js +727 -0
- package/packages/core/dist/workflow/sm-subagents.test.js.map +1 -0
- package/packages/core/dist/workflow/story-workflow-routing.test.d.ts +17 -0
- package/packages/core/dist/workflow/story-workflow-routing.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/story-workflow-routing.test.js +559 -0
- package/packages/core/dist/workflow/story-workflow-routing.test.js.map +1 -0
- package/packages/core/dist/workflow/test-cache.d.ts +131 -0
- package/packages/core/dist/workflow/test-cache.d.ts.map +1 -0
- package/packages/core/dist/workflow/test-cache.js +226 -0
- package/packages/core/dist/workflow/test-cache.js.map +1 -0
- package/packages/core/dist/workflow/test-cache.test.d.ts +17 -0
- package/packages/core/dist/workflow/test-cache.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/test-cache.test.js +438 -0
- package/packages/core/dist/workflow/test-cache.test.js.map +1 -0
- package/packages/core/dist/workflow/workflow-loader.d.ts +76 -0
- package/packages/core/dist/workflow/workflow-loader.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-loader.js +133 -0
- package/packages/core/dist/workflow/workflow-loader.js.map +1 -0
- package/packages/core/dist/workflow/workflow-loader.test.d.ts +15 -0
- package/packages/core/dist/workflow/workflow-loader.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-loader.test.js +354 -0
- package/packages/core/dist/workflow/workflow-loader.test.js.map +1 -0
- package/packages/core/dist/workflow/workflow-migration.test.d.ts +17 -0
- package/packages/core/dist/workflow/workflow-migration.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-migration.test.js +372 -0
- package/packages/core/dist/workflow/workflow-migration.test.js.map +1 -0
- package/packages/core/dist/workflow/workflow-router.d.ts +55 -0
- package/packages/core/dist/workflow/workflow-router.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-router.js +245 -0
- package/packages/core/dist/workflow/workflow-router.js.map +1 -0
- package/packages/core/dist/workflow/workflow-router.test.d.ts +20 -0
- package/packages/core/dist/workflow/workflow-router.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-router.test.js +607 -0
- package/packages/core/dist/workflow/workflow-router.test.js.map +1 -0
- package/packages/core/dist/workflow/workflow-schema.d.ts +98 -0
- package/packages/core/dist/workflow/workflow-schema.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-schema.js +230 -0
- package/packages/core/dist/workflow/workflow-schema.js.map +1 -0
- package/packages/core/dist/workflow/workflow-schema.test.d.ts +45 -0
- package/packages/core/dist/workflow/workflow-schema.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-schema.test.js +512 -0
- package/packages/core/dist/workflow/workflow-schema.test.js.map +1 -0
- package/pennyfarthing-dist/agents/README.md +397 -0
- package/pennyfarthing-dist/agents/architect.md +171 -0
- package/pennyfarthing-dist/agents/dev.md +225 -0
- package/pennyfarthing-dist/agents/devops.md +183 -0
- package/pennyfarthing-dist/agents/generic-handoff.md +451 -0
- package/pennyfarthing-dist/agents/generic-sm-finish.md +261 -0
- package/pennyfarthing-dist/agents/generic-sm-setup.md +214 -0
- package/pennyfarthing-dist/agents/orchestrator.md +316 -0
- package/pennyfarthing-dist/agents/pm.md +153 -0
- package/pennyfarthing-dist/agents/reviewer-preflight.md +224 -0
- package/pennyfarthing-dist/agents/reviewer.md +315 -0
- package/pennyfarthing-dist/agents/sm-file-summary.md +109 -0
- package/pennyfarthing-dist/agents/sm-handoff.md +97 -0
- package/pennyfarthing-dist/agents/sm.md +480 -0
- package/pennyfarthing-dist/agents/tea.md +191 -0
- package/pennyfarthing-dist/agents/tech-writer.md +148 -0
- package/pennyfarthing-dist/agents/testing-runner.md +420 -0
- package/pennyfarthing-dist/agents/ux-designer.md +158 -0
- package/pennyfarthing-dist/agents/workflow-status-check.md +332 -0
- package/pennyfarthing-dist/commands/architect.md +62 -0
- package/pennyfarthing-dist/commands/benchmark-control.md +69 -0
- package/pennyfarthing-dist/commands/benchmark.md +467 -0
- package/pennyfarthing-dist/commands/brainstorm.md +91 -0
- package/pennyfarthing-dist/commands/check.md +156 -0
- package/pennyfarthing-dist/commands/chore.md +178 -0
- package/pennyfarthing-dist/commands/close-epic.md +136 -0
- package/pennyfarthing-dist/commands/continue-session.md +184 -0
- package/pennyfarthing-dist/commands/create-branches-from-story.md +374 -0
- package/pennyfarthing-dist/commands/create-theme.md +29 -0
- package/pennyfarthing-dist/commands/dev.md +60 -0
- package/pennyfarthing-dist/commands/devops.md +59 -0
- package/pennyfarthing-dist/commands/git-cleanup.md +340 -0
- package/pennyfarthing-dist/commands/health-check.md +108 -0
- package/pennyfarthing-dist/commands/help.md +264 -0
- package/pennyfarthing-dist/commands/job-fair.md +102 -0
- package/pennyfarthing-dist/commands/list-themes.md +17 -0
- package/pennyfarthing-dist/commands/new-work.md +127 -0
- package/pennyfarthing-dist/commands/orchestrator.md +56 -0
- package/pennyfarthing-dist/commands/parallel-work.md +71 -0
- package/pennyfarthing-dist/commands/party-mode.md +67 -0
- package/pennyfarthing-dist/commands/permissions.md +193 -0
- package/pennyfarthing-dist/commands/pm.md +60 -0
- package/pennyfarthing-dist/commands/prime.md +140 -0
- package/pennyfarthing-dist/commands/release.md +58 -0
- package/pennyfarthing-dist/commands/repo-status.md +49 -0
- package/pennyfarthing-dist/commands/retro.md +200 -0
- package/pennyfarthing-dist/commands/reviewer.md +64 -0
- package/pennyfarthing-dist/commands/run-ci.md +116 -0
- package/pennyfarthing-dist/commands/set-theme.md +52 -0
- package/pennyfarthing-dist/commands/show-theme.md +21 -0
- package/pennyfarthing-dist/commands/sm.md +70 -0
- package/pennyfarthing-dist/commands/solo.md +411 -0
- package/pennyfarthing-dist/commands/sprint-planning.md +109 -0
- package/pennyfarthing-dist/commands/start-epic.md +156 -0
- package/pennyfarthing-dist/commands/sync-epic-to-jira.md +184 -0
- package/pennyfarthing-dist/commands/sync-work-with-sprint.md +376 -0
- package/pennyfarthing-dist/commands/tea.md +63 -0
- package/pennyfarthing-dist/commands/tech-writer.md +53 -0
- package/pennyfarthing-dist/commands/theme-maker.md +671 -0
- package/pennyfarthing-dist/commands/update-domain-docs.md +83 -0
- package/pennyfarthing-dist/commands/ux-designer.md +62 -0
- package/pennyfarthing-dist/commands/work.md +111 -0
- package/pennyfarthing-dist/guides/AGENT-COORDINATION.md +480 -0
- package/pennyfarthing-dist/guides/AGENT-SCOPES.md +201 -0
- package/pennyfarthing-dist/guides/HOOKS.md +230 -0
- package/pennyfarthing-dist/guides/PROMPT-PATTERNS.md +338 -0
- package/pennyfarthing-dist/guides/SESSION-ARTIFACTS.md +193 -0
- package/pennyfarthing-dist/guides/agent-template-strategic.md +148 -0
- package/pennyfarthing-dist/guides/agent-template-tactical.md +162 -0
- package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +746 -0
- package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +574 -0
- package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +488 -0
- package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +402 -0
- package/pennyfarthing-dist/guides/permission-protocol.md +188 -0
- package/pennyfarthing-dist/guides/persona-loading.md +46 -0
- package/pennyfarthing-dist/guides/persona-system.md +294 -0
- package/pennyfarthing-dist/guides/shared-agent-behavior.md +388 -0
- package/pennyfarthing-dist/guides/shared-context.md +147 -0
- package/pennyfarthing-dist/guides/strategic-agent-behavior.md +348 -0
- package/pennyfarthing-dist/guides/tactical-agent-behavior.md +1041 -0
- package/pennyfarthing-dist/guides/workflow-schema.md +195 -0
- package/pennyfarthing-dist/guides/worktree-mode.md +113 -0
- package/pennyfarthing-dist/output-styles/teaching.md +33 -0
- package/pennyfarthing-dist/output-styles/terse.md +20 -0
- package/pennyfarthing-dist/output-styles/verbose.md +28 -0
- package/pennyfarthing-dist/personas/themes/1984.yaml +312 -0
- package/pennyfarthing-dist/personas/themes/a-team.yaml +207 -0
- package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +330 -0
- package/pennyfarthing-dist/personas/themes/all-stars.yaml +332 -0
- package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +320 -0
- package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +306 -0
- package/pennyfarthing-dist/personas/themes/arcane.yaml +288 -0
- package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +331 -0
- package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +288 -0
- package/pennyfarthing-dist/personas/themes/babylon-5.yaml +288 -0
- package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +288 -0
- package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +288 -0
- package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/black-sails.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/blade-runner.yaml +295 -0
- package/pennyfarthing-dist/personas/themes/bobiverse.yaml +288 -0
- package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +327 -0
- package/pennyfarthing-dist/personas/themes/catch-22.yaml +316 -0
- package/pennyfarthing-dist/personas/themes/classical-composers.yaml +310 -0
- package/pennyfarthing-dist/personas/themes/control.yaml +197 -0
- package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +320 -0
- package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +323 -0
- package/pennyfarthing-dist/personas/themes/deadwood.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/dickens.yaml +320 -0
- package/pennyfarthing-dist/personas/themes/discworld.yaml +332 -0
- package/pennyfarthing-dist/personas/themes/doctor-who.yaml +290 -0
- package/pennyfarthing-dist/personas/themes/don-quixote.yaml +320 -0
- package/pennyfarthing-dist/personas/themes/dune.yaml +307 -0
- package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +320 -0
- package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +288 -0
- package/pennyfarthing-dist/personas/themes/fargo.yaml +330 -0
- package/pennyfarthing-dist/personas/themes/film-auteurs.yaml +312 -0
- package/pennyfarthing-dist/personas/themes/firefly.yaml +328 -0
- package/pennyfarthing-dist/personas/themes/foundation.yaml +290 -0
- package/pennyfarthing-dist/personas/themes/futurama.yaml +321 -0
- package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +290 -0
- package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +243 -0
- package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +308 -0
- package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +308 -0
- package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +330 -0
- package/pennyfarthing-dist/personas/themes/hannibal.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/harry-potter.yaml +324 -0
- package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +291 -0
- package/pennyfarthing-dist/personas/themes/historical-figures.yaml +288 -0
- package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +331 -0
- package/pennyfarthing-dist/personas/themes/house-md.yaml +321 -0
- package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +289 -0
- package/pennyfarthing-dist/personas/themes/inspector-morse.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/jane-austen.yaml +287 -0
- package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +320 -0
- package/pennyfarthing-dist/personas/themes/justified.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +219 -0
- package/pennyfarthing-dist/personas/themes/les-miserables.yaml +299 -0
- package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +334 -0
- package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +334 -0
- package/pennyfarthing-dist/personas/themes/mad-max.yaml +355 -0
- package/pennyfarthing-dist/personas/themes/mad-men.yaml +289 -0
- package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/mash.yaml +334 -0
- package/pennyfarthing-dist/personas/themes/mass-effect.yaml +289 -0
- package/pennyfarthing-dist/personas/themes/military-commanders.yaml +306 -0
- package/pennyfarthing-dist/personas/themes/moby-dick.yaml +320 -0
- package/pennyfarthing-dist/personas/themes/monty-python.yaml +303 -0
- package/pennyfarthing-dist/personas/themes/neuromancer.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +329 -0
- package/pennyfarthing-dist/personas/themes/parks-and-rec.yaml +242 -0
- package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +298 -0
- package/pennyfarthing-dist/personas/themes/princess-bride.yaml +220 -0
- package/pennyfarthing-dist/personas/themes/renaissance-masters.yaml +320 -0
- package/pennyfarthing-dist/personas/themes/rome.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/russian-masters.yaml +318 -0
- package/pennyfarthing-dist/personas/themes/sandman.yaml +288 -0
- package/pennyfarthing-dist/personas/themes/scientific-revolutionaries.yaml +320 -0
- package/pennyfarthing-dist/personas/themes/shakespeare.yaml +301 -0
- package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +289 -0
- package/pennyfarthing-dist/personas/themes/snow-crash.yaml +288 -0
- package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +230 -0
- package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +210 -0
- package/pennyfarthing-dist/personas/themes/star-wars.yaml +303 -0
- package/pennyfarthing-dist/personas/themes/succession.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/superfriends.yaml +208 -0
- package/pennyfarthing-dist/personas/themes/ted-lasso.yaml +236 -0
- package/pennyfarthing-dist/personas/themes/the-americans.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/the-crown.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/the-expanse.yaml +213 -0
- package/pennyfarthing-dist/personas/themes/the-good-place.yaml +322 -0
- package/pennyfarthing-dist/personas/themes/the-matrix.yaml +353 -0
- package/pennyfarthing-dist/personas/themes/the-odyssey.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/the-office.yaml +330 -0
- package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +308 -0
- package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/the-wire.yaml +311 -0
- package/pennyfarthing-dist/personas/themes/the-witcher.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/twin-peaks.yaml +302 -0
- package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +300 -0
- package/pennyfarthing-dist/personas/themes/watchmen.yaml +291 -0
- package/pennyfarthing-dist/personas/themes/west-wing.yaml +291 -0
- package/pennyfarthing-dist/personas/themes/world-explorers.yaml +320 -0
- package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +307 -0
- package/pennyfarthing-dist/personas/themes/x-files.yaml +302 -0
- package/pennyfarthing-dist/scripts/add-short-names.mjs +264 -0
- package/pennyfarthing-dist/scripts/agent-session.sh +367 -0
- package/pennyfarthing-dist/scripts/check-context.sh +187 -0
- package/pennyfarthing-dist/scripts/check.sh +497 -0
- package/pennyfarthing-dist/scripts/deploy.sh +284 -0
- package/pennyfarthing-dist/scripts/doctor-dogfood.sh +360 -0
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +61 -0
- package/pennyfarthing-dist/scripts/hooks/context-warning.sh +66 -0
- package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +35 -0
- package/pennyfarthing-dist/scripts/hooks/post-merge.sh +166 -0
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +50 -0
- package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +71 -0
- package/pennyfarthing-dist/scripts/hooks/pre-push.sh +54 -0
- package/pennyfarthing-dist/scripts/hooks/session-start.sh +98 -0
- package/pennyfarthing-dist/scripts/hooks/session-stop.sh +59 -0
- package/pennyfarthing-dist/scripts/install-git-hooks.sh +91 -0
- package/pennyfarthing-dist/scripts/prime.sh +161 -0
- package/pennyfarthing-dist/scripts/release.sh +198 -0
- package/pennyfarthing-dist/scripts/repo-utils.sh +778 -0
- package/pennyfarthing-dist/scripts/run-ci.sh +219 -0
- package/pennyfarthing-dist/scripts/run.sh +65 -0
- package/pennyfarthing-dist/scripts/statusline.sh +264 -0
- package/pennyfarthing-dist/scripts/tests/check.test.sh +582 -0
- package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +107 -0
- package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +597 -0
- package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +514 -0
- package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +517 -0
- package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +331 -0
- package/pennyfarthing-dist/scripts/uninstall.sh +271 -0
- package/pennyfarthing-dist/scripts/utils/background-tasks.sh +177 -0
- package/pennyfarthing-dist/scripts/utils/check-status.sh +251 -0
- package/pennyfarthing-dist/scripts/utils/checkpoint.sh +136 -0
- package/pennyfarthing-dist/scripts/utils/common.sh +157 -0
- package/pennyfarthing-dist/scripts/utils/create-feature-branches.sh +230 -0
- package/pennyfarthing-dist/scripts/utils/file-lock.sh +269 -0
- package/pennyfarthing-dist/scripts/utils/find-related-work.sh +231 -0
- package/pennyfarthing-dist/scripts/utils/find-root.sh +33 -0
- package/pennyfarthing-dist/scripts/utils/generate-skill-docs.sh +110 -0
- package/pennyfarthing-dist/scripts/utils/git-status-all.sh +127 -0
- package/pennyfarthing-dist/scripts/utils/ground-truth-judge.py +289 -0
- package/pennyfarthing-dist/scripts/utils/jira/jira-lib.mjs +443 -0
- package/pennyfarthing-dist/scripts/utils/jira/jira-sync-story.mjs +208 -0
- package/pennyfarthing-dist/scripts/utils/jira/jira-sync.mjs +198 -0
- package/pennyfarthing-dist/scripts/utils/jira-claim-story.sh +162 -0
- package/pennyfarthing-dist/scripts/utils/jira-lib.sh +463 -0
- package/pennyfarthing-dist/scripts/utils/jira-sync-story.sh +8 -0
- package/pennyfarthing-dist/scripts/utils/jira-sync.sh +8 -0
- package/pennyfarthing-dist/scripts/utils/log-skill-usage.sh +74 -0
- package/pennyfarthing-dist/scripts/utils/logging.sh +186 -0
- package/pennyfarthing-dist/scripts/utils/repo-scan.sh +141 -0
- package/pennyfarthing-dist/scripts/utils/retry.sh +76 -0
- package/pennyfarthing-dist/scripts/utils/run-timestamp.sh +7 -0
- package/pennyfarthing-dist/scripts/utils/session-cleanup.sh +319 -0
- package/pennyfarthing-dist/scripts/utils/skill-usage-report.sh +193 -0
- package/pennyfarthing-dist/scripts/utils/sprint-common.sh +286 -0
- package/pennyfarthing-dist/scripts/utils/sprint-metrics.sh +241 -0
- package/pennyfarthing-dist/scripts/utils/swebench-judge.py +400 -0
- package/pennyfarthing-dist/scripts/utils/sync-epic-to-jira.sh +16 -0
- package/pennyfarthing-dist/scripts/utils/test-setup.sh +337 -0
- package/pennyfarthing-dist/scripts/utils/validate-subagent-frontmatter.sh +160 -0
- package/pennyfarthing-dist/scripts/worktree-manager.sh +498 -0
- package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +236 -0
- package/pennyfarthing-dist/skills/changelog/SKILL.md +367 -0
- package/pennyfarthing-dist/skills/code-review/SKILL.md +168 -0
- package/pennyfarthing-dist/skills/context-engineering/SKILL.md +268 -0
- package/pennyfarthing-dist/skills/cyclist/SKILL.md +117 -0
- package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +421 -0
- package/pennyfarthing-dist/skills/finalize-run/SKILL.md +258 -0
- package/pennyfarthing-dist/skills/jira/SKILL.md +281 -0
- package/pennyfarthing-dist/skills/judge/SKILL.md +524 -0
- package/pennyfarthing-dist/skills/just/SKILL.md +160 -0
- package/pennyfarthing-dist/skills/mermaid/SKILL.md +240 -0
- package/pennyfarthing-dist/skills/otel/skill.md +222 -0
- package/pennyfarthing-dist/skills/permissions/skill.md +172 -0
- package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +173 -0
- package/pennyfarthing-dist/skills/skill-registry.schema.json +102 -0
- package/pennyfarthing-dist/skills/skill-registry.yaml +335 -0
- package/pennyfarthing-dist/skills/sprint-context/SKILL.md +120 -0
- package/pennyfarthing-dist/skills/story-management/SKILL.md +208 -0
- package/pennyfarthing-dist/skills/testing/SKILL.md +99 -0
- package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +124 -0
- package/pennyfarthing-dist/skills/theme/skill.md +129 -0
- package/pennyfarthing-dist/skills/theme-creation/SKILL.md +169 -0
- package/pennyfarthing-dist/skills/workflow/SKILL.md +160 -0
- package/pennyfarthing-dist/skills/yq/SKILL.md +264 -0
- package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +187 -0
- package/pennyfarthing-dist/templates/LEADERBOARD.template.md +59 -0
- package/pennyfarthing-dist/templates/agent-scopes.yaml.template +276 -0
- package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +61 -0
- package/pennyfarthing-dist/templates/persona-config.yaml.template +22 -0
- package/pennyfarthing-dist/templates/preferences.yaml.template +15 -0
- package/pennyfarthing-dist/templates/settings.local.json.template +90 -0
- package/pennyfarthing-dist/templates/setup-env.sh.template +18 -0
- package/pennyfarthing-dist/templates/shared-context.md.template +70 -0
- package/pennyfarthing-dist/templates/sidecar/decisions.md.template +40 -0
- package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +37 -0
- package/pennyfarthing-dist/templates/sidecar/patterns.md.template +34 -0
- package/pennyfarthing-dist/workflows/agent-docs.yaml +70 -0
- package/pennyfarthing-dist/workflows/bdd.yaml +58 -0
- package/pennyfarthing-dist/workflows/tdd.yaml +50 -0
- package/pennyfarthing-dist/workflows/trivial.yaml +40 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Start an epic - move to current sprint and generate tech context
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Start Epic Workflow
|
|
6
|
+
|
|
7
|
+
**This command prepares an epic for development by moving it to the current sprint and generating technical context.**
|
|
8
|
+
|
|
9
|
+
## What This Does
|
|
10
|
+
|
|
11
|
+
1. **Validates** the epic exists in backlog or current sprint
|
|
12
|
+
2. **Moves** the epic to current sprint if not already there
|
|
13
|
+
3. **Runs** the SM agent's `epic-tech-context` task to generate technical specifications
|
|
14
|
+
|
|
15
|
+
## Prerequisites
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
cd $CLAUDE_PROJECT_DIR
|
|
19
|
+
|
|
20
|
+
# Verify sprint files exist
|
|
21
|
+
if [ ! -f "sprint/current-sprint.yaml" ] || [ ! -f "sprint/backlog.yaml" ]; then
|
|
22
|
+
echo "ERROR: Sprint files not found"
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
echo "Sprint files found - ready to start epic"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
Provide the epic ID when invoking this command:
|
|
32
|
+
- `epic-5` - Conductor epic (format: `epic-N`)
|
|
33
|
+
|
|
34
|
+
## Workflow Steps
|
|
35
|
+
|
|
36
|
+
### Step 0: Clean Previous Work Artifacts
|
|
37
|
+
|
|
38
|
+
Before starting a new epic, clean up stale artifacts from previous work:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
cd $CLAUDE_PROJECT_DIR
|
|
42
|
+
|
|
43
|
+
# Run conservative cleanup (7+ day old artifacts)
|
|
44
|
+
$CLAUDE_PROJECT_DIR/scripts/run.sh session-cleanup.sh --dry-run
|
|
45
|
+
|
|
46
|
+
# If dry-run looks good, run actual cleanup
|
|
47
|
+
$CLAUDE_PROJECT_DIR/scripts/run.sh session-cleanup.sh
|
|
48
|
+
|
|
49
|
+
# Archive epic contexts for completed epics
|
|
50
|
+
$CLAUDE_PROJECT_DIR/scripts/run.sh session-cleanup.sh --aggressive
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
This ensures a clean slate before starting new epic work and archives contexts from completed epics.
|
|
54
|
+
|
|
55
|
+
### Step 1: Identify Epic
|
|
56
|
+
|
|
57
|
+
Ask the user for the epic ID if not provided:
|
|
58
|
+
> "Which epic would you like to start? (e.g., epic-5, sim-epic-10)"
|
|
59
|
+
|
|
60
|
+
### Step 2: Check Epic Location
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
cd $CLAUDE_PROJECT_DIR
|
|
64
|
+
|
|
65
|
+
# Check if epic is in current sprint
|
|
66
|
+
if grep -q "^$EPIC_ID:" sprint/current-sprint.yaml; then
|
|
67
|
+
echo "Epic $EPIC_ID is already in current sprint"
|
|
68
|
+
EPIC_LOCATION="current"
|
|
69
|
+
elif grep -q "^$EPIC_ID:" sprint/backlog.yaml; then
|
|
70
|
+
echo "Epic $EPIC_ID found in backlog - will move to current sprint"
|
|
71
|
+
EPIC_LOCATION="backlog"
|
|
72
|
+
else
|
|
73
|
+
echo "ERROR: Epic $EPIC_ID not found in sprint files"
|
|
74
|
+
exit 1
|
|
75
|
+
fi
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Step 3: Move Epic to Current Sprint (if needed)
|
|
79
|
+
|
|
80
|
+
If the epic is in backlog:
|
|
81
|
+
|
|
82
|
+
1. **Extract** the epic block from `sprint/backlog.yaml`
|
|
83
|
+
2. **Add** the epic to `sprint/current-sprint.yaml` under the active work section
|
|
84
|
+
3. **Update** the epic status from `backlog` or `planned` to `in-progress`
|
|
85
|
+
4. **Remove** the epic from `sprint/backlog.yaml`
|
|
86
|
+
|
|
87
|
+
**Format for current-sprint.yaml:**
|
|
88
|
+
```yaml
|
|
89
|
+
# Epic [N]: [Name] ([points] pts)
|
|
90
|
+
# [Description]
|
|
91
|
+
epic-N:
|
|
92
|
+
name: "[Epic Name]"
|
|
93
|
+
status: in-progress
|
|
94
|
+
points: [N]
|
|
95
|
+
priority: [High|Medium|Low]
|
|
96
|
+
repos: [api|ui|both]
|
|
97
|
+
stories:
|
|
98
|
+
# Stories will be added during tech context generation
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Step 4: Generate Epic Tech Context
|
|
102
|
+
|
|
103
|
+
Invoke the SM agent with the `epic-tech-context` task:
|
|
104
|
+
|
|
105
|
+
**Run:** `/sm` with task: `epic-tech-context` for epic `$EPIC_ID`
|
|
106
|
+
|
|
107
|
+
The SM agent will:
|
|
108
|
+
1. Load the epic details from current sprint
|
|
109
|
+
2. Analyze the codebase for relevant files
|
|
110
|
+
3. Generate technical context including:
|
|
111
|
+
- Current state analysis
|
|
112
|
+
- Technical approach
|
|
113
|
+
- File modifications needed
|
|
114
|
+
- API/UI changes
|
|
115
|
+
- Database changes
|
|
116
|
+
- Testing strategy
|
|
117
|
+
- Story breakdown with acceptance criteria
|
|
118
|
+
4. Save context to `.session/context-epic-$EPIC_ID.md`
|
|
119
|
+
|
|
120
|
+
### Step 5: Confirm Ready
|
|
121
|
+
|
|
122
|
+
After tech context is generated:
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
✅ Epic $EPIC_ID is ready for development
|
|
126
|
+
|
|
127
|
+
Next steps:
|
|
128
|
+
1. Review the tech context: cat .session/context-epic-$EPIC_ID.md
|
|
129
|
+
2. Start first story: /new-work
|
|
130
|
+
3. SM will select from this epic's stories
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Example
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# User invokes: /start-epic epic-5
|
|
137
|
+
|
|
138
|
+
# Output:
|
|
139
|
+
# → Checking epic-5 location...
|
|
140
|
+
# → Epic epic-5 found in backlog
|
|
141
|
+
# → Moving epic-5 to current sprint...
|
|
142
|
+
# → Updating status to in-progress...
|
|
143
|
+
# → Invoking SM for epic-tech-context...
|
|
144
|
+
# → [SM generates technical context]
|
|
145
|
+
# → ✅ Epic epic-5 is ready for development
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Notes
|
|
149
|
+
|
|
150
|
+
- This command does NOT start a story - use `/new-work` for that
|
|
151
|
+
- The epic tech context provides the foundation for story-level work
|
|
152
|
+
- Stories within the epic will be worked via the normal TDD flow
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
**Flow:** `/start-epic` → SM (epic-tech-context) → `/new-work` → TDD cycle
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Sync Pennyfarthing epic to Jira MSSCI project using jira CLI
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Sync Epic to Jira Workflow
|
|
6
|
+
|
|
7
|
+
This workflow syncs a Pennyfarthing epic and its stories to Jira using the `jira` CLI tool.
|
|
8
|
+
|
|
9
|
+
**IMPORTANT:** All Pennyfarthing issues MUST be labeled with `pennyfarthing` to distinguish them from Conductor work.
|
|
10
|
+
|
|
11
|
+
## Prerequisites
|
|
12
|
+
|
|
13
|
+
- `jira` CLI installed: `brew install ankitpokhrel/jira-cli/jira-cli`
|
|
14
|
+
- `jira` CLI configured: `jira init`
|
|
15
|
+
- Epic exists in `sprint/current-sprint.yaml`
|
|
16
|
+
|
|
17
|
+
**For complete jira CLI reference, see the `jira` skill** (`.claude/skills/jira/SKILL.md`). The examples below are quick references; the skill has troubleshooting, user mappings, and edge cases.
|
|
18
|
+
|
|
19
|
+
## Label Requirement
|
|
20
|
+
|
|
21
|
+
All Pennyfarthing epics and stories must include the `pennyfarthing` label:
|
|
22
|
+
```bash
|
|
23
|
+
-l pennyfarthing
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Quick Sync
|
|
27
|
+
|
|
28
|
+
### Sync a Single Story
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# View story status
|
|
32
|
+
./scripts/run.sh jira-sync-story.sh 35-2-topology-editor
|
|
33
|
+
|
|
34
|
+
# Transition to match Conductor status
|
|
35
|
+
./scripts/run.sh jira-sync-story.sh 35-2-topology-editor --transition
|
|
36
|
+
|
|
37
|
+
# Add a comment
|
|
38
|
+
./scripts/run.sh jira-sync-story.sh 35-2-topology-editor --comment "Started development"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Sync All Stories in Epic
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# For each story in the epic, sync status
|
|
45
|
+
for story in $(yq '.epic-35.stories | keys | .[]' sprint/current-sprint.yaml); do
|
|
46
|
+
./scripts/run.sh jira-sync-story.sh "$story" --transition
|
|
47
|
+
done
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Manual Jira CLI Commands
|
|
51
|
+
|
|
52
|
+
**IMPORTANT:** Most commands require `-p MSSCI` (project flag) even when the issue key contains the project prefix.
|
|
53
|
+
|
|
54
|
+
### View Issue
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
jira issue view MSSCI-123
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Create Story
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
jira issue create \
|
|
64
|
+
-p MSSCI \
|
|
65
|
+
-tStory \
|
|
66
|
+
-s"Story 1-5: Add Epic Context Guardrail" \
|
|
67
|
+
-b"Description here" \
|
|
68
|
+
-yHigh \
|
|
69
|
+
-l pennyfarthing \
|
|
70
|
+
--no-input
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Create Epic
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
jira issue create \
|
|
77
|
+
-p MSSCI \
|
|
78
|
+
-tEpic \
|
|
79
|
+
-s"Epic 1: Agentic Best Practices Implementation" \
|
|
80
|
+
-b"Epic description" \
|
|
81
|
+
-l pennyfarthing \
|
|
82
|
+
--no-input
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Link Story to Epic
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Use --parent to link a story to its epic
|
|
89
|
+
jira issue create \
|
|
90
|
+
-p MSSCI \
|
|
91
|
+
-tStory \
|
|
92
|
+
-s"Story Title" \
|
|
93
|
+
--parent MSSCI-EPIC_KEY \
|
|
94
|
+
-l pennyfarthing \
|
|
95
|
+
--no-input
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Assign Issue
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Assign to self
|
|
102
|
+
jira issue assign -p MSSCI MSSCI-123 "$(jira me)"
|
|
103
|
+
|
|
104
|
+
# Assign to someone else
|
|
105
|
+
jira issue assign -p MSSCI MSSCI-123 "john.doe@1898andco.io"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Transition Issue
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
jira issue move MSSCI-123 "In Progress" -p MSSCI
|
|
112
|
+
jira issue move MSSCI-123 "In Review" -p MSSCI
|
|
113
|
+
jira issue move MSSCI-123 "Done" -p MSSCI
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Add Comment
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
jira issue comment add MSSCI-123 "Development started on branch feat/35-2"
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Link Issues
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
jira issue link MSSCI-123 MSSCI-124 "Blocks"
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### List Issues
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# All in-progress stories
|
|
132
|
+
jira issue list -s "In Progress"
|
|
133
|
+
|
|
134
|
+
# Stories in current sprint
|
|
135
|
+
jira sprint list --current
|
|
136
|
+
|
|
137
|
+
# Stories assigned to me
|
|
138
|
+
jira issue list -a$(jira me)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Status Mapping
|
|
142
|
+
|
|
143
|
+
| Conductor | Jira |
|
|
144
|
+
|-----------|------|
|
|
145
|
+
| `backlog` | To Do |
|
|
146
|
+
| `in-progress` | In Progress |
|
|
147
|
+
| `review` | In Review |
|
|
148
|
+
| `done` | Done |
|
|
149
|
+
|
|
150
|
+
## Priority Mapping
|
|
151
|
+
|
|
152
|
+
| Conductor | Jira |
|
|
153
|
+
|-----------|------|
|
|
154
|
+
| `P0` | Highest |
|
|
155
|
+
| `P1` | High |
|
|
156
|
+
| `P2` | Medium |
|
|
157
|
+
|
|
158
|
+
## Troubleshooting
|
|
159
|
+
|
|
160
|
+
**jira CLI not configured:**
|
|
161
|
+
```bash
|
|
162
|
+
jira init
|
|
163
|
+
# Follow prompts to authenticate
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**Issue not found:**
|
|
167
|
+
- Check the Jira key is correct
|
|
168
|
+
- Verify you have access to the project
|
|
169
|
+
|
|
170
|
+
**Transition not available:**
|
|
171
|
+
- Some transitions require specific conditions
|
|
172
|
+
- Check the Jira workflow for allowed transitions
|
|
173
|
+
|
|
174
|
+
## Related Scripts
|
|
175
|
+
|
|
176
|
+
| Script | Purpose |
|
|
177
|
+
|--------|---------|
|
|
178
|
+
| `jira-claim-story.sh` | Check/claim story assignment |
|
|
179
|
+
| `jira-sync-story.sh` | Sync single story status |
|
|
180
|
+
| `sync-epic-to-jira.sh` | Generate sync report for epic |
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
**Last Updated**: 2025-12-16
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Sync Pennyfarthing work session with unified sprint status
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Sync Work Session with Sprint Status
|
|
6
|
+
|
|
7
|
+
This workflow helps you coordinate your Pennyfarthing work session with the unified sprint status tracking.
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
- [ ] Active work session exists (`.session/{STORY_ID}-session.md`)
|
|
12
|
+
- [ ] You know which story/epic you're working on
|
|
13
|
+
|
|
14
|
+
## Unified Sprint Status
|
|
15
|
+
|
|
16
|
+
**Location:** `sprint/sprint-status.yaml`
|
|
17
|
+
|
|
18
|
+
This single file tracks work across both API and UI repos, making coordination simple.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
### 1. View Current Sprint Status
|
|
23
|
+
|
|
24
|
+
Check the unified sprint status:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
cat sprint/sprint-status.yaml
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Current Sprint 1 - Coordinated Development Setup:**
|
|
31
|
+
- Epic 1: Coordinated Development Setup - IN PROGRESS (2/5 done)
|
|
32
|
+
- 1-1: Pennyfarthing Solo Dev Setup - done
|
|
33
|
+
- 1-2: Cross-Repo Workflows - done
|
|
34
|
+
- 1-3: Environment Configuration - backlog
|
|
35
|
+
- 1-4: API Connection Verification - backlog
|
|
36
|
+
- 1-5: Development Documentation - backlog
|
|
37
|
+
|
|
38
|
+
- Epic 2: Critical Bug Fixes - BACKLOG (plan as needed)
|
|
39
|
+
- Epic 3: Core Feature Development - BACKLOG (plan as needed)
|
|
40
|
+
|
|
41
|
+
### 2. Update Pennyfarthing Session with Story Info
|
|
42
|
+
|
|
43
|
+
Edit `.session/{STORY_ID}-session.md` to include story details:
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
# Feature: [Story Title]
|
|
47
|
+
|
|
48
|
+
**Story ID:** [Epic-Story] (e.g., 1-3, 1-4)
|
|
49
|
+
**Repos:** [X] API [X] UI [X] Both
|
|
50
|
+
**Date:** [YYYY-MM-DD]
|
|
51
|
+
**Epic:** [Epic Number and Name]
|
|
52
|
+
**Priority:** [P0/P1/P2]
|
|
53
|
+
**Points:** [Story Points]
|
|
54
|
+
|
|
55
|
+
## Goal
|
|
56
|
+
[Copy from sprint status story description]
|
|
57
|
+
|
|
58
|
+
## Story Context
|
|
59
|
+
**Sprint Status:** sprint/sprint-status.yaml
|
|
60
|
+
**Story Line:** [Line number in sprint status]
|
|
61
|
+
|
|
62
|
+
## Scope
|
|
63
|
+
- [ ] [Task from story]
|
|
64
|
+
- [ ] [Task from story]
|
|
65
|
+
- [ ] [Task from story]
|
|
66
|
+
|
|
67
|
+
## API Changes
|
|
68
|
+
- Files: [from story prerequisites]
|
|
69
|
+
- Endpoints: [from story description]
|
|
70
|
+
|
|
71
|
+
## UI Changes
|
|
72
|
+
- Files: [from story prerequisites]
|
|
73
|
+
- Components: [from story description]
|
|
74
|
+
|
|
75
|
+
## Prerequisites
|
|
76
|
+
[Copy from sprint status]
|
|
77
|
+
|
|
78
|
+
## Acceptance Criteria
|
|
79
|
+
[Copy from story file if exists]
|
|
80
|
+
|
|
81
|
+
## Quick Notes
|
|
82
|
+
[Your implementation notes]
|
|
83
|
+
|
|
84
|
+
## Done
|
|
85
|
+
- [ ] Tests pass
|
|
86
|
+
- [ ] Works as expected
|
|
87
|
+
- [ ] Committed
|
|
88
|
+
- [ ] Sprint status updated
|
|
89
|
+
|
|
90
|
+
## Next
|
|
91
|
+
[Next story in epic or next epic]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 3. Update Sprint Status to "in-progress"
|
|
95
|
+
|
|
96
|
+
When you start work, update the sprint status file:
|
|
97
|
+
|
|
98
|
+
**For API work:**
|
|
99
|
+
```bash
|
|
100
|
+
cd $CLAUDE_PROJECT_DIR/API
|
|
101
|
+
|
|
102
|
+
# Edit sprint status
|
|
103
|
+
# Change story status from 'backlog' to 'in-progress'
|
|
104
|
+
# Example: 2-2-okta-sso-integration: in-progress
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**For UI work:**
|
|
108
|
+
```bash
|
|
109
|
+
cd $CLAUDE_PROJECT_DIR/UI
|
|
110
|
+
|
|
111
|
+
# Edit sprint status
|
|
112
|
+
# Change story status from 'backlog' to 'in-progress'
|
|
113
|
+
# Example: 5-2-environment-configuration-validation: in-progress
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### 4. Work on the Story
|
|
117
|
+
|
|
118
|
+
Follow your Pennyfarthing session and check off tasks as you complete them.
|
|
119
|
+
|
|
120
|
+
### 5. Update Sprint Status to "done"
|
|
121
|
+
|
|
122
|
+
When work is complete:
|
|
123
|
+
|
|
124
|
+
**For API work:**
|
|
125
|
+
```bash
|
|
126
|
+
cd $CLAUDE_PROJECT_DIR/API
|
|
127
|
+
|
|
128
|
+
# Edit sprint status
|
|
129
|
+
# Change: 2-2-okta-sso-integration: done
|
|
130
|
+
# Add completion date if tracking
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**For UI work:**
|
|
134
|
+
```bash
|
|
135
|
+
cd $CLAUDE_PROJECT_DIR/UI
|
|
136
|
+
|
|
137
|
+
# Edit sprint status
|
|
138
|
+
# Change: 5-2-environment-configuration-validation: done
|
|
139
|
+
# Add completion date and commit SHA if tracking
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### 6. Commit Sprint Status Updates
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# API
|
|
146
|
+
cd $CLAUDE_PROJECT_DIR/API
|
|
147
|
+
git add docs/sprint-artifacts/sprint-status.yaml
|
|
148
|
+
git commit -m "chore: update sprint status for story [ID]"
|
|
149
|
+
|
|
150
|
+
# UI
|
|
151
|
+
cd $CLAUDE_PROJECT_DIR/UI
|
|
152
|
+
git add docs/sprint-artifacts/sprint-status.yaml
|
|
153
|
+
git commit -m "chore: update sprint status for story [ID]"
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 7. Archive Pennyfarthing Session
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
cd $CLAUDE_PROJECT_DIR
|
|
160
|
+
# Invoke /sm and run finish-story task
|
|
161
|
+
# Archive with story ID: story-5-2-env-config-20241202.md
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Current Sprint Focus
|
|
165
|
+
|
|
166
|
+
### API - Next Stories to Work On
|
|
167
|
+
|
|
168
|
+
**Epic 2: Authentication (In Progress)**
|
|
169
|
+
- 2-2-okta-sso-integration: backlog → Ready to start
|
|
170
|
+
- 2-5-mfa-multi-factor-authentication: backlog → After 2-2
|
|
171
|
+
|
|
172
|
+
### UI - Next Stories to Work On
|
|
173
|
+
|
|
174
|
+
**Epic 1: Dev Tooling (In Progress - 1/8 done)**
|
|
175
|
+
- 1-3-environment-configuration-files: backlog → Priority P0
|
|
176
|
+
- 1-4-root-level-development-orchestration: backlog → Priority P1
|
|
177
|
+
- 1-5-cross-repo-scripts: backlog → Priority P1
|
|
178
|
+
- 1-6-api-contract-synchronization: backlog → Priority P1
|
|
179
|
+
|
|
180
|
+
**Epic 5: Bug Fixes (In Progress - 1/10 done)**
|
|
181
|
+
- 5-2-environment-configuration-validation: backlog → Priority P0
|
|
182
|
+
- 5-3-route-validation-and-navigation-testing: backlog → Priority P1
|
|
183
|
+
- 5-4-api-integration-testing: backlog → Priority P0
|
|
184
|
+
|
|
185
|
+
## Story Status Workflow
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
backlog → in-progress → review → done
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Status Definitions:**
|
|
192
|
+
- `backlog`: Story exists but not started
|
|
193
|
+
- `drafted`: Story file created (if applicable)
|
|
194
|
+
- `ready-for-dev`: Story approved and contexted
|
|
195
|
+
- `in-progress`: Actively working (update when you start)
|
|
196
|
+
- `review`: Under review (code review)
|
|
197
|
+
- `done`: Completed (update when finished)
|
|
198
|
+
|
|
199
|
+
## Example: Complete Story Workflow
|
|
200
|
+
|
|
201
|
+
### Story: UI 5-2 Environment Configuration Validation
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# 1. Start work session
|
|
205
|
+
cd $CLAUDE_PROJECT_DIR
|
|
206
|
+
./scripts/run.sh new-work.sh
|
|
207
|
+
|
|
208
|
+
# 2. Edit session with story details
|
|
209
|
+
cat > .session/{STORY_ID}-session.md << 'EOF'
|
|
210
|
+
# Feature: Environment Configuration Validation
|
|
211
|
+
|
|
212
|
+
**Story ID:** 5-2
|
|
213
|
+
**Repos:** [ ] API [X] UI [ ] Both
|
|
214
|
+
**Date:** 2024-12-02
|
|
215
|
+
**Epic:** Epic 5 - Bug Fixes & Split Issues Resolution
|
|
216
|
+
**Priority:** P0
|
|
217
|
+
**Points:** 3
|
|
218
|
+
|
|
219
|
+
## Goal
|
|
220
|
+
Validate environment configuration files and ensure proper loading
|
|
221
|
+
|
|
222
|
+
## Story Context
|
|
223
|
+
**UI Story:** UI/docs/sprint-artifacts/sprint-status.yaml#L229
|
|
224
|
+
**Prerequisites:** Epic 1 (Dev Tooling)
|
|
225
|
+
|
|
226
|
+
## Scope
|
|
227
|
+
- [ ] Validate .env files exist
|
|
228
|
+
- [ ] Check required environment variables
|
|
229
|
+
- [ ] Add runtime validation
|
|
230
|
+
- [ ] Update documentation
|
|
231
|
+
|
|
232
|
+
## UI Changes
|
|
233
|
+
- Files: src/config/env.ts, src/utils/validation.ts
|
|
234
|
+
- Components: ErrorBoundary updates
|
|
235
|
+
|
|
236
|
+
## Quick Notes
|
|
237
|
+
- Check for missing API_BASE_URL
|
|
238
|
+
- Validate WebSocket URL format
|
|
239
|
+
- Add helpful error messages
|
|
240
|
+
|
|
241
|
+
## Done
|
|
242
|
+
- [ ] Tests pass
|
|
243
|
+
- [ ] Works as expected
|
|
244
|
+
- [ ] Committed
|
|
245
|
+
- [ ] Sprint status updated
|
|
246
|
+
|
|
247
|
+
## Next
|
|
248
|
+
Story 5-3: Route validation
|
|
249
|
+
EOF
|
|
250
|
+
|
|
251
|
+
# 3. Update sprint status to in-progress
|
|
252
|
+
cd UI
|
|
253
|
+
# Edit: 5-2-environment-configuration-validation: in-progress
|
|
254
|
+
|
|
255
|
+
# 4. Do the work
|
|
256
|
+
# ... implement validation ...
|
|
257
|
+
|
|
258
|
+
# 5. Commit work
|
|
259
|
+
git add .
|
|
260
|
+
git commit -m "feat: add environment configuration validation (story 5-2)"
|
|
261
|
+
|
|
262
|
+
# 6. Update sprint status to done
|
|
263
|
+
# Edit: 5-2-environment-configuration-validation: done
|
|
264
|
+
|
|
265
|
+
# 7. Commit sprint status
|
|
266
|
+
git add docs/sprint-artifacts/sprint-status.yaml
|
|
267
|
+
git commit -m "chore: mark story 5-2 as done"
|
|
268
|
+
|
|
269
|
+
# 8. Archive session
|
|
270
|
+
cd ..
|
|
271
|
+
# Invoke /sm and run finish-story task
|
|
272
|
+
# Archive as: story-5-2-env-validation-20241202.md
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
## Tips
|
|
276
|
+
|
|
277
|
+
### Link Story Files
|
|
278
|
+
|
|
279
|
+
If a story has a detailed `.md` file, reference it:
|
|
280
|
+
|
|
281
|
+
```markdown
|
|
282
|
+
## Story Context
|
|
283
|
+
**Story File:** UI/docs/sprint-artifacts/stories/5-2-environment-configuration-validation.md
|
|
284
|
+
**Sprint Status:** UI/docs/sprint-artifacts/sprint-status.yaml#L229
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### Track Story Points
|
|
288
|
+
|
|
289
|
+
Include story points in your session for velocity tracking:
|
|
290
|
+
|
|
291
|
+
```markdown
|
|
292
|
+
**Points:** 3
|
|
293
|
+
**Estimated Hours:** 4-6
|
|
294
|
+
**Actual Hours:** [fill in when done]
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Cross-Repo Stories
|
|
298
|
+
|
|
299
|
+
For stories that span both repos:
|
|
300
|
+
|
|
301
|
+
```markdown
|
|
302
|
+
**Repos:** [X] API [X] UI [X] Both
|
|
303
|
+
|
|
304
|
+
## API Story
|
|
305
|
+
**ID:** 2-2-okta-sso-integration
|
|
306
|
+
**Status:** API/docs/sprint-artifacts/sprint-status.yaml#L50
|
|
307
|
+
|
|
308
|
+
## UI Story
|
|
309
|
+
**ID:** 3-2-client-context-propagation
|
|
310
|
+
**Status:** UI/docs/sprint-artifacts/sprint-status.yaml#L147
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Epic Progress Tracking
|
|
314
|
+
|
|
315
|
+
Track epic progress in your session:
|
|
316
|
+
|
|
317
|
+
```markdown
|
|
318
|
+
## Epic Progress
|
|
319
|
+
**Epic 5:** Bug Fixes (1/10 stories done, 5/47 points)
|
|
320
|
+
**This Story:** 5-2 (3 points)
|
|
321
|
+
**After This:** 2/10 stories, 8/47 points (17%)
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
## Integration with Workflows
|
|
325
|
+
|
|
326
|
+
### With /create-branches-from-story
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
# 1. Create branches with story ID
|
|
330
|
+
@/create-branches-from-story
|
|
331
|
+
# Branch: feature/5-2-env-config-validation
|
|
332
|
+
|
|
333
|
+
# 2. Session already created, add story details
|
|
334
|
+
# Edit .session/{STORY_ID}-session.md with sprint info
|
|
335
|
+
|
|
336
|
+
# 3. Update sprint status to in-progress
|
|
337
|
+
|
|
338
|
+
# 4. Work, commit, update to done
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### With /new-work
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
# 1. Start session
|
|
345
|
+
@/new-work
|
|
346
|
+
|
|
347
|
+
# 2. Look up story in sprint status
|
|
348
|
+
|
|
349
|
+
# 3. Fill in session with story details
|
|
350
|
+
|
|
351
|
+
# 4. Update sprint status
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
## Quick Reference
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
# View API sprint status
|
|
358
|
+
cat API/docs/sprint-artifacts/sprint-status.yaml | grep -A 2 "epic-[0-9]:"
|
|
359
|
+
|
|
360
|
+
# View UI sprint status
|
|
361
|
+
cat UI/docs/sprint-artifacts/sprint-status.yaml | grep -A 2 "epic-[0-9]:"
|
|
362
|
+
|
|
363
|
+
# Find story by ID
|
|
364
|
+
grep "5-2-" UI/docs/sprint-artifacts/sprint-status.yaml
|
|
365
|
+
|
|
366
|
+
# Update story status
|
|
367
|
+
# Edit sprint-status.yaml: change 'backlog' to 'in-progress' or 'done'
|
|
368
|
+
|
|
369
|
+
# Commit sprint status
|
|
370
|
+
git add docs/sprint-artifacts/sprint-status.yaml
|
|
371
|
+
git commit -m "chore: update sprint status for story [ID]"
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
**Your Pennyfarthing session is now synced with sprint tracking!**
|