@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,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Quick commit for small changes without full git-cleanup ceremony
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Quick Chore Commit
|
|
6
|
+
|
|
7
|
+
Quickly commit dirty changes without the full `/git-cleanup` ceremony. Creates a branch, commits, merges to develop, and pushes in one command.
|
|
8
|
+
|
|
9
|
+
<purpose>
|
|
10
|
+
Fast path for committing small changes that don't warrant story tracking.
|
|
11
|
+
</purpose>
|
|
12
|
+
|
|
13
|
+
<usage>
|
|
14
|
+
```bash
|
|
15
|
+
# Default: chore commit (auto-generate message)
|
|
16
|
+
/chore
|
|
17
|
+
|
|
18
|
+
# Chore with custom message
|
|
19
|
+
/chore "update sprint tracking"
|
|
20
|
+
|
|
21
|
+
# Variants for different commit types
|
|
22
|
+
/chore doc # docs: prefix, docs/* branch
|
|
23
|
+
/chore doc "update README" # docs: with custom message
|
|
24
|
+
/chore ux # style: prefix, ux/* branch
|
|
25
|
+
/chore ux "adjust button spacing"
|
|
26
|
+
```
|
|
27
|
+
</usage>
|
|
28
|
+
|
|
29
|
+
<variants>
|
|
30
|
+
| Command | Branch | Commit Prefix | Use For |
|
|
31
|
+
|---------|--------|---------------|---------|
|
|
32
|
+
| `/chore` | `chore/*` | `chore:` | Maintenance, config, scripts |
|
|
33
|
+
| `/chore doc` | `docs/*` | `docs:` | Documentation, README, guides |
|
|
34
|
+
| `/chore ux` | `ux/*` | `style:` | UI tweaks, CSS, styling |
|
|
35
|
+
</variants>
|
|
36
|
+
|
|
37
|
+
<workflow>
|
|
38
|
+
**CRITICAL: Never commit directly to develop. Branch protection hooks will reject direct commits.**
|
|
39
|
+
|
|
40
|
+
1. Verify dirty files exist (abort if clean)
|
|
41
|
+
2. Determine variant (chore/doc/ux) from first arg
|
|
42
|
+
3. Create branch from develop: `{variant}/{timestamp}`
|
|
43
|
+
4. Stage all changes
|
|
44
|
+
5. Generate or use provided commit message
|
|
45
|
+
6. Commit with conventional format
|
|
46
|
+
7. Merge to develop locally
|
|
47
|
+
8. Push develop
|
|
48
|
+
9. Delete local branch
|
|
49
|
+
</workflow>
|
|
50
|
+
|
|
51
|
+
## Execution
|
|
52
|
+
|
|
53
|
+
### Step 1: Pre-Flight
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Abort if clean
|
|
57
|
+
if git diff --quiet && git diff --cached --quiet; then
|
|
58
|
+
echo "ERROR: No changes to commit."
|
|
59
|
+
exit 1
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
echo "=== Changes to Commit ==="
|
|
63
|
+
git status --short
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Step 2: Parse Arguments
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Defaults
|
|
70
|
+
VARIANT="chore"
|
|
71
|
+
PREFIX="chore"
|
|
72
|
+
BRANCH_TYPE="chore"
|
|
73
|
+
MESSAGE=""
|
|
74
|
+
|
|
75
|
+
# Check first arg
|
|
76
|
+
case "$1" in
|
|
77
|
+
doc|docs)
|
|
78
|
+
VARIANT="docs"
|
|
79
|
+
PREFIX="docs"
|
|
80
|
+
BRANCH_TYPE="docs"
|
|
81
|
+
shift
|
|
82
|
+
;;
|
|
83
|
+
ux|style)
|
|
84
|
+
VARIANT="ux"
|
|
85
|
+
PREFIX="style"
|
|
86
|
+
BRANCH_TYPE="ux"
|
|
87
|
+
shift
|
|
88
|
+
;;
|
|
89
|
+
esac
|
|
90
|
+
|
|
91
|
+
# Remaining args are the message
|
|
92
|
+
MESSAGE="$*"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Step 3: Generate Message (if needed)
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
if [ -z "$MESSAGE" ]; then
|
|
99
|
+
CHANGED_FILES=$(git status --porcelain | awk '{print $2}')
|
|
100
|
+
|
|
101
|
+
case "$VARIANT" in
|
|
102
|
+
docs)
|
|
103
|
+
if echo "$CHANGED_FILES" | grep -qi "readme"; then
|
|
104
|
+
MESSAGE="update README"
|
|
105
|
+
elif echo "$CHANGED_FILES" | grep -qi "changelog"; then
|
|
106
|
+
MESSAGE="update changelog"
|
|
107
|
+
else
|
|
108
|
+
MESSAGE="update documentation"
|
|
109
|
+
fi
|
|
110
|
+
;;
|
|
111
|
+
ux)
|
|
112
|
+
if echo "$CHANGED_FILES" | grep -qE "\.css|\.scss"; then
|
|
113
|
+
MESSAGE="update styles"
|
|
114
|
+
else
|
|
115
|
+
MESSAGE="update styling"
|
|
116
|
+
fi
|
|
117
|
+
;;
|
|
118
|
+
chore)
|
|
119
|
+
if echo "$CHANGED_FILES" | grep -q "sprint/"; then
|
|
120
|
+
MESSAGE="update sprint tracking"
|
|
121
|
+
elif echo "$CHANGED_FILES" | grep -q "\.claude/"; then
|
|
122
|
+
MESSAGE="update pennyfarthing config"
|
|
123
|
+
elif echo "$CHANGED_FILES" | grep -q "scripts/"; then
|
|
124
|
+
MESSAGE="update scripts"
|
|
125
|
+
else
|
|
126
|
+
FILE_COUNT=$(echo "$CHANGED_FILES" | wc -l | tr -d ' ')
|
|
127
|
+
MESSAGE="minor updates to ${FILE_COUNT} files"
|
|
128
|
+
fi
|
|
129
|
+
;;
|
|
130
|
+
esac
|
|
131
|
+
fi
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Step 4: Branch and Commit
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# Stash current changes
|
|
138
|
+
git stash push -m "${BRANCH_TYPE}-wip-$(date +%s)"
|
|
139
|
+
|
|
140
|
+
# Update develop and create branch
|
|
141
|
+
git checkout develop && git pull origin develop
|
|
142
|
+
BRANCH="${BRANCH_TYPE}/$(date +%Y%m%d-%H%M%S)"
|
|
143
|
+
git checkout -b "$BRANCH"
|
|
144
|
+
|
|
145
|
+
# Restore changes
|
|
146
|
+
git stash pop
|
|
147
|
+
|
|
148
|
+
# Stage and commit
|
|
149
|
+
git add .
|
|
150
|
+
git commit -m "${PREFIX}: ${MESSAGE}
|
|
151
|
+
|
|
152
|
+
Co-Authored-By: Claude <noreply@anthropic.com>"
|
|
153
|
+
|
|
154
|
+
# Merge and push
|
|
155
|
+
git checkout develop
|
|
156
|
+
git merge "$BRANCH"
|
|
157
|
+
git branch -d "$BRANCH"
|
|
158
|
+
git push origin develop
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Safety
|
|
162
|
+
|
|
163
|
+
- **NEVER commit directly to develop**
|
|
164
|
+
- **Never force push**
|
|
165
|
+
- **Never commit secrets** (.env, credentials)
|
|
166
|
+
- **Abort if working directory is clean**
|
|
167
|
+
|
|
168
|
+
## When to Use
|
|
169
|
+
|
|
170
|
+
| Use /chore | Use /git-cleanup |
|
|
171
|
+
|------------|------------------|
|
|
172
|
+
| Single logical change | Multiple unrelated changes |
|
|
173
|
+
| Quick fix or tweak | Need to organize into groups |
|
|
174
|
+
| One type of change | Mixed types requiring separation |
|
|
175
|
+
|
|
176
|
+
<related>
|
|
177
|
+
- `/git-cleanup` - Full ceremony for organizing multiple changes
|
|
178
|
+
</related>
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Close an epic - verify completion, update status, and archive context
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Close Epic Workflow
|
|
6
|
+
|
|
7
|
+
**This command closes an epic by verifying all stories are done, updating status, and optionally archiving context.**
|
|
8
|
+
|
|
9
|
+
## What This Does
|
|
10
|
+
|
|
11
|
+
1. **Verifies** all stories in the epic are status: done
|
|
12
|
+
2. **Updates** epic status to `done` and completed_points
|
|
13
|
+
3. **Updates** sprint summary totals
|
|
14
|
+
4. **Optionally** transitions Jira epic to Done
|
|
15
|
+
5. **Optionally** archives the epic context file
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
- Epic must exist in current sprint
|
|
20
|
+
- All stories should be done (will warn if not)
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
Provide the epic ID when invoking this command:
|
|
25
|
+
- `/close-epic 9` - Close epic 9
|
|
26
|
+
- `/close-epic epic-9` - Also accepts epic-N format
|
|
27
|
+
|
|
28
|
+
## Workflow Steps
|
|
29
|
+
|
|
30
|
+
### Step 1: Identify Epic
|
|
31
|
+
|
|
32
|
+
If no epic ID provided, ask:
|
|
33
|
+
> "Which epic would you like to close? (e.g., 9 or epic-9)"
|
|
34
|
+
|
|
35
|
+
Parse the epic ID (strip "epic-" prefix if present).
|
|
36
|
+
|
|
37
|
+
### Step 2: Verify Epic Exists
|
|
38
|
+
|
|
39
|
+
Read `sprint/current-sprint.yaml` and find the epic block:
|
|
40
|
+
- `id: epic-{N}`
|
|
41
|
+
|
|
42
|
+
If not found, error: "Epic not found in current sprint"
|
|
43
|
+
|
|
44
|
+
### Step 3: Check Story Completion
|
|
45
|
+
|
|
46
|
+
For each story in the epic:
|
|
47
|
+
1. Check `status` field
|
|
48
|
+
2. Count done vs not-done
|
|
49
|
+
|
|
50
|
+
**If all done:** Proceed to close
|
|
51
|
+
**If some not done:** Warn user with list of incomplete stories, ask to confirm
|
|
52
|
+
|
|
53
|
+
### Step 4: Update Epic Status
|
|
54
|
+
|
|
55
|
+
Update the epic in `sprint/current-sprint.yaml`:
|
|
56
|
+
```yaml
|
|
57
|
+
status: done
|
|
58
|
+
completed_points: {total of all story points}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Step 5: Update Sprint Summary
|
|
62
|
+
|
|
63
|
+
Recalculate and update the summary section:
|
|
64
|
+
- `completed_points`: Sum of all done story points across all epics
|
|
65
|
+
- `remaining_points`: total_points - completed_points
|
|
66
|
+
- Update notes to reflect epic completion
|
|
67
|
+
|
|
68
|
+
### Step 6: Jira Transition (Optional)
|
|
69
|
+
|
|
70
|
+
If epic has `jira_key`:
|
|
71
|
+
```bash
|
|
72
|
+
# Check if Jira CLI available
|
|
73
|
+
if command -v jira &> /dev/null; then
|
|
74
|
+
echo "Transition Jira epic to Done? (y/n)"
|
|
75
|
+
# If yes: jira issue move $JIRA_KEY "Done"
|
|
76
|
+
fi
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Step 7: Archive Context (Optional)
|
|
80
|
+
|
|
81
|
+
If `.session/context-epic-{N}.md` exists:
|
|
82
|
+
```bash
|
|
83
|
+
# Ask user
|
|
84
|
+
echo "Archive epic context file? (y/n)"
|
|
85
|
+
# If yes: mv .session/context-epic-{N}.md sprint/archive/
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Step 8: Confirm Closure
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
Epic {N} closed successfully
|
|
92
|
+
|
|
93
|
+
Summary:
|
|
94
|
+
- Stories: {count} done
|
|
95
|
+
- Points: {points} completed
|
|
96
|
+
- Jira: {transitioned/skipped/no-key}
|
|
97
|
+
- Context: {archived/kept/not-found}
|
|
98
|
+
|
|
99
|
+
Sprint progress: {completed}/{total} points ({percentage}%)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Example
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# User invokes: /close-epic 9
|
|
106
|
+
|
|
107
|
+
# Output:
|
|
108
|
+
# Checking epic-9...
|
|
109
|
+
# Found: Skill Discovery & Documentation Hub
|
|
110
|
+
# Stories: 5/5 done (13 points)
|
|
111
|
+
#
|
|
112
|
+
# Updating epic status to done...
|
|
113
|
+
# Updating sprint summary (31/45 points)...
|
|
114
|
+
#
|
|
115
|
+
# Jira key found: MSSCI-11512
|
|
116
|
+
# Transition to Done? (y/n): y
|
|
117
|
+
# Transitioning MSSCI-11512 to Done...
|
|
118
|
+
#
|
|
119
|
+
# Context file found: .session/context-epic-9.md
|
|
120
|
+
# Archive to sprint/archive/? (y/n): n
|
|
121
|
+
# Keeping context file in place.
|
|
122
|
+
#
|
|
123
|
+
# Epic 9 closed successfully!
|
|
124
|
+
# Sprint progress: 31/45 points (69%)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Notes
|
|
128
|
+
|
|
129
|
+
- This is the counterpart to `/start-epic`
|
|
130
|
+
- Safe to run multiple times (idempotent)
|
|
131
|
+
- Does NOT delete any data, only updates status
|
|
132
|
+
- Context archival is optional and reversible
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
**Flow:** TDD cycle complete all stories `/close-epic` update sprint
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Resume work from a saved checkpoint after context circuit breaker
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Continue Session
|
|
6
|
+
|
|
7
|
+
<purpose>
|
|
8
|
+
Recovery command for resuming work after the context circuit breaker (85% threshold) halts execution. Loads saved checkpoints and resumes the appropriate agent to continue where you left off.
|
|
9
|
+
</purpose>
|
|
10
|
+
|
|
11
|
+
<when-to-use>
|
|
12
|
+
- After context circuit breaker blocks further work
|
|
13
|
+
- After a session timeout or interruption
|
|
14
|
+
- When returning to work saved with `checkpoint_save`
|
|
15
|
+
- To recover from any context overflow situation
|
|
16
|
+
</when-to-use>
|
|
17
|
+
|
|
18
|
+
<usage>
|
|
19
|
+
```
|
|
20
|
+
/continue-session [--list] [--story-id ID]
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
| Option | Description |
|
|
24
|
+
|--------|-------------|
|
|
25
|
+
| (none) | Interactive: show checkpoints, let user choose |
|
|
26
|
+
| `--list` | Just display available checkpoints, don't restore |
|
|
27
|
+
| `--story-id ID` | Resume specific story directly (skip selection) |
|
|
28
|
+
</usage>
|
|
29
|
+
|
|
30
|
+
<on-invoke>
|
|
31
|
+
|
|
32
|
+
## Step 1: Scan for Checkpoints
|
|
33
|
+
|
|
34
|
+
Run bash to check for saved checkpoints:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
CHECKPOINT_FILE="${PROJECT_ROOT:-.}/.session/checkpoints.log"
|
|
38
|
+
if [[ -f "$CHECKPOINT_FILE" ]]; then
|
|
39
|
+
echo "=== Recent Checkpoints ==="
|
|
40
|
+
tail -20 "$CHECKPOINT_FILE"
|
|
41
|
+
else
|
|
42
|
+
echo "No checkpoints found."
|
|
43
|
+
fi
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Step 2: Parse and Present Options
|
|
47
|
+
|
|
48
|
+
If checkpoints exist, parse and present them:
|
|
49
|
+
|
|
50
|
+
```markdown
|
|
51
|
+
## Available Checkpoints
|
|
52
|
+
|
|
53
|
+
| # | Timestamp | Label | Data |
|
|
54
|
+
|---|-----------|-------|------|
|
|
55
|
+
| 1 | 2026-01-06T14:30:22Z | phase:3-4 | dev |
|
|
56
|
+
| 2 | 2026-01-06T14:28:15Z | context:3-4 | Working on continue-session command |
|
|
57
|
+
|
|
58
|
+
Which checkpoint would you like to restore? (Enter number or 'all' for most recent of each label)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Use `AskUserQuestion` to let user choose.
|
|
62
|
+
|
|
63
|
+
## Step 3: Restore Checkpoint
|
|
64
|
+
|
|
65
|
+
Source the checkpoint utilities and restore:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Source checkpoint utilities
|
|
69
|
+
source "${PROJECT_ROOT:-.}/.pennyfarthing/scripts/utils/checkpoint.sh"
|
|
70
|
+
|
|
71
|
+
# Restore by label
|
|
72
|
+
PHASE=$(checkpoint_restore "phase:${STORY_ID}")
|
|
73
|
+
CONTEXT=$(checkpoint_restore "context:${STORY_ID}")
|
|
74
|
+
FILES=$(checkpoint_restore "files:${STORY_ID}")
|
|
75
|
+
|
|
76
|
+
echo "Restored checkpoint:"
|
|
77
|
+
echo " Phase: $PHASE"
|
|
78
|
+
echo " Context: $CONTEXT"
|
|
79
|
+
echo " Files: $FILES"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Step 4: Find Session File
|
|
83
|
+
|
|
84
|
+
Look for the matching session file:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
SESSION_FILE=".session/${STORY_ID}-session.md"
|
|
88
|
+
if [[ -f "$SESSION_FILE" ]]; then
|
|
89
|
+
echo "Found session file: $SESSION_FILE"
|
|
90
|
+
head -20 "$SESSION_FILE"
|
|
91
|
+
else
|
|
92
|
+
echo "Warning: No session file found for story $STORY_ID"
|
|
93
|
+
fi
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Step 5: Resume Appropriate Agent
|
|
97
|
+
|
|
98
|
+
Based on the restored phase, invoke the appropriate agent:
|
|
99
|
+
|
|
100
|
+
| Phase | Agent | Command |
|
|
101
|
+
|-------|-------|---------|
|
|
102
|
+
| `setup` or `sm` | TEA | `/tea` |
|
|
103
|
+
| `tea` or `red` | Dev | `/dev` |
|
|
104
|
+
| `dev` or `green` | Reviewer | `/reviewer` |
|
|
105
|
+
| `review` | Reviewer | `/reviewer` |
|
|
106
|
+
| `approved` | SM | `/sm` (finish flow) |
|
|
107
|
+
|
|
108
|
+
Present to user:
|
|
109
|
+
```markdown
|
|
110
|
+
## Session Restored
|
|
111
|
+
|
|
112
|
+
**Story:** {STORY_ID} - {title from session}
|
|
113
|
+
**Phase:** {PHASE}
|
|
114
|
+
**Context:** {CONTEXT}
|
|
115
|
+
|
|
116
|
+
Ready to continue with **{Agent Name}**.
|
|
117
|
+
|
|
118
|
+
The checkpoint shows you were working on: {CONTEXT}
|
|
119
|
+
|
|
120
|
+
[Continue] [Show more details] [Cancel]
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
</on-invoke>
|
|
124
|
+
|
|
125
|
+
<checkpoint-labels>
|
|
126
|
+
Standard checkpoint labels include the story ID:
|
|
127
|
+
|
|
128
|
+
| Label Pattern | Purpose | Example |
|
|
129
|
+
|---------------|---------|---------|
|
|
130
|
+
| `phase:{story-id}` | Workflow phase | `phase:3-4` → `dev` |
|
|
131
|
+
| `context:{story-id}` | Work summary | `context:3-4` → `Implementing validation` |
|
|
132
|
+
| `files:{story-id}` | Key files | `files:3-4` → `src/api.ts,src/utils.ts` |
|
|
133
|
+
| `branch:{story-id}` | Git branch | `branch:3-4` → `feat/3-4-session` |
|
|
134
|
+
</checkpoint-labels>
|
|
135
|
+
|
|
136
|
+
<no-checkpoints>
|
|
137
|
+
If no checkpoints are found:
|
|
138
|
+
|
|
139
|
+
```markdown
|
|
140
|
+
## No Checkpoints Found
|
|
141
|
+
|
|
142
|
+
No saved checkpoints exist in `.session/checkpoints.log`.
|
|
143
|
+
|
|
144
|
+
**Options:**
|
|
145
|
+
1. `/work` - Check for active session files
|
|
146
|
+
2. `/new-work` - Start fresh with a new story
|
|
147
|
+
3. Check git stash: `git stash list`
|
|
148
|
+
```
|
|
149
|
+
</no-checkpoints>
|
|
150
|
+
|
|
151
|
+
<stale-checkpoint-warning>
|
|
152
|
+
If checkpoint is older than 24 hours:
|
|
153
|
+
|
|
154
|
+
```markdown
|
|
155
|
+
## Stale Checkpoint Warning
|
|
156
|
+
|
|
157
|
+
The most recent checkpoint is from **{timestamp}** ({hours} hours ago).
|
|
158
|
+
|
|
159
|
+
The codebase may have changed significantly since then.
|
|
160
|
+
|
|
161
|
+
**Options:**
|
|
162
|
+
1. [Restore anyway] - Load this checkpoint
|
|
163
|
+
2. [Check git log] - See what changed since checkpoint
|
|
164
|
+
3. [Start fresh] - Begin new work with `/new-work`
|
|
165
|
+
```
|
|
166
|
+
</stale-checkpoint-warning>
|
|
167
|
+
|
|
168
|
+
<integration>
|
|
169
|
+
This command completes the circuit breaker workflow:
|
|
170
|
+
|
|
171
|
+
1. Agent works normally
|
|
172
|
+
2. Context reaches 85% → circuit breaker triggers
|
|
173
|
+
3. Agent saves checkpoint: `checkpoint_save "phase:X-Y" "dev"`
|
|
174
|
+
4. User starts new Claude session
|
|
175
|
+
5. User runs `/continue-session`
|
|
176
|
+
6. Checkpoint restored, agent resumes
|
|
177
|
+
</integration>
|
|
178
|
+
|
|
179
|
+
<reference>
|
|
180
|
+
- **Checkpoint API:** `scripts/utils/checkpoint.sh`
|
|
181
|
+
- **Circuit Breaker:** `scripts/hooks/context-circuit-breaker.sh`
|
|
182
|
+
- **Related:** `/work`, `/new-work`
|
|
183
|
+
- **Session Files:** `.session/{story-id}-session.md`
|
|
184
|
+
</reference>
|