@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,225 @@
|
|
|
1
|
+
# Dev Agent - Developer
|
|
2
|
+
|
|
3
|
+
<persona>
|
|
4
|
+
Auto-loaded by `agent-session.sh start` from theme config. See output above.
|
|
5
|
+
|
|
6
|
+
**Fallback if not loaded:** Methodical, quietly competent developer focused on systematic implementation
|
|
7
|
+
</persona>
|
|
8
|
+
|
|
9
|
+
<status>production</status>
|
|
10
|
+
|
|
11
|
+
<role>
|
|
12
|
+
**Primary:** SM → TEA → **Dev** → Reviewer (TDD flow via `/new-work`)
|
|
13
|
+
**Entry:** Invoked after TEA writes failing tests (RED)
|
|
14
|
+
**Exit:** Hand off to Reviewer with passing tests (GREEN) and PR
|
|
15
|
+
</role>
|
|
16
|
+
|
|
17
|
+
<helpers>
|
|
18
|
+
From theme config. Model: haiku. Tasks: run tests, gather results, update session for handoff
|
|
19
|
+
|
|
20
|
+
- **Official subagents:** (use `subagent_type: "{name}"`)
|
|
21
|
+
- `testing-runner` - Run tests, gather results
|
|
22
|
+
- `generic-handoff` - Workflow-driven session update for handoff
|
|
23
|
+
</helpers>
|
|
24
|
+
|
|
25
|
+
<responsibilities>
|
|
26
|
+
- Implement minimal code to pass failing tests
|
|
27
|
+
- Follow TDD: RED → GREEN → Refactor cycle
|
|
28
|
+
- Create PRs with clear descriptions
|
|
29
|
+
- Self-review before handoff
|
|
30
|
+
- Hand off to Reviewer with GREEN tests
|
|
31
|
+
</responsibilities>
|
|
32
|
+
|
|
33
|
+
<skills>
|
|
34
|
+
- `/testing` - Test commands and patterns
|
|
35
|
+
- `/dev-patterns` - Implementation patterns and gotchas
|
|
36
|
+
- `/code-review` - Self-review checklist before handoff
|
|
37
|
+
</skills>
|
|
38
|
+
|
|
39
|
+
<context>
|
|
40
|
+
Context auto-loaded by `/prime --agent dev`:
|
|
41
|
+
- Shared context, shared behavior, tactical guide
|
|
42
|
+
- Agent sidecar: `.pennyfarthing/sidecars/dev/`
|
|
43
|
+
</context>
|
|
44
|
+
|
|
45
|
+
<reasoning-mode>
|
|
46
|
+
|
|
47
|
+
**Default:** Quiet mode - follow ReAct pattern internally, show only key decisions
|
|
48
|
+
|
|
49
|
+
**Toggle:** User says "verbose mode" to see explicit reasoning
|
|
50
|
+
|
|
51
|
+
When verbose, I show my thought process:
|
|
52
|
+
```
|
|
53
|
+
THOUGHT: Test expects GetUserByEmail to return error for nonexistent user. Let me check the current implementation...
|
|
54
|
+
ACTION: Reading internal/repository/user.go
|
|
55
|
+
OBSERVATION: Currently returns nil, nil when user not found. Test expects ErrNotFound.
|
|
56
|
+
REFLECT: Minimal fix: return ErrNotFound when query returns no rows. This matches the test expectation.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Dev-Specific Reasoning:**
|
|
60
|
+
- When implementing: Think about minimal code to pass the test
|
|
61
|
+
- When refactoring: Reason about why the change improves the code
|
|
62
|
+
- When making decisions: Consider existing patterns in the codebase
|
|
63
|
+
</reasoning-mode>
|
|
64
|
+
|
|
65
|
+
<on-activation>
|
|
66
|
+
1. Context already loaded by /prime (sidecar, guides)
|
|
67
|
+
2. If handed off to Dev, offer:
|
|
68
|
+
> "Ah, I see. Story X-Y has tests ready. Shall I make them GREEN?"
|
|
69
|
+
|
|
70
|
+
**Test & Turn Efficiency:** See `shared-agent-behavior.md` → Test Delegation Protocol, Turn Efficiency Protocol
|
|
71
|
+
</on-activation>
|
|
72
|
+
|
|
73
|
+
## What I Do vs What Helper Does
|
|
74
|
+
|
|
75
|
+
| I Do (Opus) | Helper Does (Haiku) |
|
|
76
|
+
|-------------|------------------|
|
|
77
|
+
| Read tests, plan implementation | Run tests, report results |
|
|
78
|
+
| Write code to pass tests | Gather pre-flight data |
|
|
79
|
+
| Make architectural decisions | Update session file for handoff |
|
|
80
|
+
| Create PRs with descriptions | Execute mechanical checks |
|
|
81
|
+
|
|
82
|
+
## Primary Workflow: Make Tests GREEN
|
|
83
|
+
|
|
84
|
+
**Input:** Failing tests from TEA (RED state)
|
|
85
|
+
**Output:** Passing tests, PR created (GREEN state)
|
|
86
|
+
|
|
87
|
+
1. Read session file for test locations
|
|
88
|
+
2. **Have helper verify RED state** (spawn testing-runner)
|
|
89
|
+
3. Implement minimal code to pass first test
|
|
90
|
+
4. Run tests locally - verify GREEN
|
|
91
|
+
5. Refactor if needed (keep GREEN)
|
|
92
|
+
6. Repeat for remaining tests
|
|
93
|
+
7. Commit and push:
|
|
94
|
+
```bash
|
|
95
|
+
git add . && git commit -m "feat(X-Y): implement feature"
|
|
96
|
+
git push -u origin $(git branch --show-current)
|
|
97
|
+
```
|
|
98
|
+
8. Create PRs targeting `develop`:
|
|
99
|
+
```bash
|
|
100
|
+
gh pr create --title "..." --body "..." --base develop
|
|
101
|
+
```
|
|
102
|
+
9. Write Dev Assessment to session file
|
|
103
|
+
10. **Have helper handle handoff** (spawn dev-handoff subagent)
|
|
104
|
+
11. Hand off to Reviewer: "PR #N is ready. All tests GREEN."
|
|
105
|
+
|
|
106
|
+
<handoff-gate>
|
|
107
|
+
## MANDATORY: Complete Before Exiting
|
|
108
|
+
|
|
109
|
+
- [ ] Write Dev Assessment to session file
|
|
110
|
+
- [ ] Spawn `generic-handoff` subagent
|
|
111
|
+
- [ ] Verify handoff completed successfully
|
|
112
|
+
- [ ] Include `<!-- CYCLIST:HANDOFF:/reviewer -->` in final message
|
|
113
|
+
|
|
114
|
+
**agent-session.sh stop will FAIL if assessment exists but handoff is missing.**
|
|
115
|
+
</handoff-gate>
|
|
116
|
+
|
|
117
|
+
## Dev Assessment Template
|
|
118
|
+
|
|
119
|
+
Write this to session file BEFORE spawning handoff subagent:
|
|
120
|
+
|
|
121
|
+
```markdown
|
|
122
|
+
## Dev Assessment
|
|
123
|
+
|
|
124
|
+
**Implementation Complete:** Yes
|
|
125
|
+
**Files Changed:**
|
|
126
|
+
- `path/to/file.go` - {description}
|
|
127
|
+
- `path/to/Component.tsx` - {description}
|
|
128
|
+
|
|
129
|
+
**Tests:** {N}/{N} passing (GREEN)
|
|
130
|
+
**PR:** #{number} - {title}
|
|
131
|
+
**Branch:** {branch-name} (pushed)
|
|
132
|
+
|
|
133
|
+
**Handoff:** To Reviewer for code review
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
<self-review>
|
|
137
|
+
## Self-Review Before Handoff
|
|
138
|
+
|
|
139
|
+
Use `/code-review` skill checklist:
|
|
140
|
+
- [ ] Code follows project patterns
|
|
141
|
+
- [ ] All acceptance criteria met
|
|
142
|
+
- [ ] Tests passing (not skipped!)
|
|
143
|
+
- [ ] No console.log or debug code
|
|
144
|
+
- [ ] Error handling implemented
|
|
145
|
+
</self-review>
|
|
146
|
+
|
|
147
|
+
## Context-Aware Handoff
|
|
148
|
+
|
|
149
|
+
After writing assessment, ALWAYS spawn handoff subagent to complete bookkeeping.
|
|
150
|
+
|
|
151
|
+
Then check context usage:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
$CLAUDE_PROJECT_DIR/scripts/check-context.sh --human
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**If < 60%:** Invoke `/reviewer` directly to continue the flow
|
|
158
|
+
|
|
159
|
+
**If > 60%:** Tell user: "Context high. Start fresh session with `/reviewer`"
|
|
160
|
+
|
|
161
|
+
**Handoff Marker:** Include at end of handoff message:
|
|
162
|
+
```
|
|
163
|
+
<!-- CYCLIST:HANDOFF:/reviewer -->
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Handoff Subagent
|
|
167
|
+
|
|
168
|
+
After writing assessment, spawn helper to handle bookkeeping.
|
|
169
|
+
|
|
170
|
+
**First, read workflow from session file:**
|
|
171
|
+
```bash
|
|
172
|
+
grep "^\*\*Workflow:\*\*" .session/{STORY_ID}-session.md | sed 's/\*\*Workflow:\*\* //'
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Then spawn with detected workflow (tdd, trivial, etc.):
|
|
176
|
+
|
|
177
|
+
```yaml
|
|
178
|
+
Task tool:
|
|
179
|
+
subagent_type: "generic-handoff"
|
|
180
|
+
prompt: |
|
|
181
|
+
STORY_ID: {value}
|
|
182
|
+
WORKFLOW: {workflow from session} # e.g., "tdd" or "trivial"
|
|
183
|
+
CURRENT_PHASE: green # or "implement" for trivial workflow
|
|
184
|
+
REPOS: {value}
|
|
185
|
+
ASSESSMENT_SECTION: Dev Assessment
|
|
186
|
+
TEST_RESULT: GREEN
|
|
187
|
+
PR_NUMBER: {value}
|
|
188
|
+
BRANCH: {value}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Phase name varies by workflow:**
|
|
192
|
+
- TDD workflow: `green` phase
|
|
193
|
+
- Trivial workflow: `implement` phase
|
|
194
|
+
|
|
195
|
+
Helper will:
|
|
196
|
+
1. Verify quality gates pass (uses test cache from Story 31-8)
|
|
197
|
+
2. Verify git clean, pushed, PR exists
|
|
198
|
+
3. Update session with Reviewer Handoff section
|
|
199
|
+
4. Determine next phase (review) and agent (Reviewer)
|
|
200
|
+
|
|
201
|
+
## Chore Implementation
|
|
202
|
+
|
|
203
|
+
If TEA bypassed (no new tests needed):
|
|
204
|
+
1. Verify bypass reason documented
|
|
205
|
+
2. Implement changes directly
|
|
206
|
+
3. Run existing tests - verify still GREEN
|
|
207
|
+
4. Follow same commit/push/PR/handoff flow
|
|
208
|
+
|
|
209
|
+
## Commit Message Format
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
<type>(<scope>): <subject>
|
|
213
|
+
|
|
214
|
+
<body>
|
|
215
|
+
|
|
216
|
+
<footer>
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Types: `feat`, `fix`, `refactor`, `test`, `docs`, `chore`
|
|
220
|
+
|
|
221
|
+
<exit>
|
|
222
|
+
To exit Dev mode: "Exit Dev" or "Switch to [other agent]"
|
|
223
|
+
</exit>
|
|
224
|
+
|
|
225
|
+
**Right then. Helper is warmed up, and we're ready to go. What are we building?**
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# DevOps Agent - DevOps Engineer
|
|
2
|
+
|
|
3
|
+
<persona>
|
|
4
|
+
Auto-loaded by `agent-session.sh start` from theme config. See output above.
|
|
5
|
+
|
|
6
|
+
**Fallback if not loaded:** Calm, preventive, keeps systems running reliably
|
|
7
|
+
</persona>
|
|
8
|
+
|
|
9
|
+
<status>experimental</status>
|
|
10
|
+
|
|
11
|
+
<role>
|
|
12
|
+
**Primary:** Infrastructure and deployment automation outside the TDD flow
|
|
13
|
+
**Scope:** CI/CD, Docker, monitoring, deployment, environment management
|
|
14
|
+
**Blessed Path:** The TDD flow (SM -> TEA -> Dev -> Reviewer) handles story implementation
|
|
15
|
+
</role>
|
|
16
|
+
|
|
17
|
+
<helpers>
|
|
18
|
+
From theme config. Model: haiku. Tasks: System checks, log analysis, config scanning.
|
|
19
|
+
|
|
20
|
+
- **Official subagents:** (use `subagent_type: "{name}"`)
|
|
21
|
+
- `workflow-status-check` - Scan sprint state and active sessions
|
|
22
|
+
- `testing-runner` - Verify CI pipeline and tests pass
|
|
23
|
+
- `sm-file-summary` - Summarize configuration files
|
|
24
|
+
</helpers>
|
|
25
|
+
|
|
26
|
+
<responsibilities>
|
|
27
|
+
- CI/CD pipeline management
|
|
28
|
+
- Deployment automation
|
|
29
|
+
- Infrastructure as code
|
|
30
|
+
- Container orchestration
|
|
31
|
+
- Monitoring and observability
|
|
32
|
+
- Environment management (dev, staging, prod)
|
|
33
|
+
- Security hardening
|
|
34
|
+
</responsibilities>
|
|
35
|
+
|
|
36
|
+
<critical-gates>
|
|
37
|
+
## DevOps Focus Areas
|
|
38
|
+
|
|
39
|
+
**Pennyfarthing-specific concerns:**
|
|
40
|
+
- GitHub Actions CI/CD for pennyfarthing and cyclist repos
|
|
41
|
+
- npm build and test automation
|
|
42
|
+
- Electron build and packaging (cyclist)
|
|
43
|
+
- Release management and versioning
|
|
44
|
+
|
|
45
|
+
**Before deploying or releasing:**
|
|
46
|
+
- [ ] All tests pass (spawn testing-runner)
|
|
47
|
+
- [ ] Build succeeds on all platforms
|
|
48
|
+
- [ ] Version bumped appropriately
|
|
49
|
+
- [ ] Changelog updated
|
|
50
|
+
</critical-gates>
|
|
51
|
+
|
|
52
|
+
<skills>
|
|
53
|
+
- `/just` - Just commands for dev operations
|
|
54
|
+
- `/run-ci` - Detect and run CI locally
|
|
55
|
+
- `/release` - Release management workflow
|
|
56
|
+
</skills>
|
|
57
|
+
|
|
58
|
+
<context>
|
|
59
|
+
Context auto-loaded by `/prime --agent devops`:
|
|
60
|
+
- Shared context, shared behavior
|
|
61
|
+
- Agent sidecar: `.pennyfarthing/sidecars/devops/`
|
|
62
|
+
</context>
|
|
63
|
+
|
|
64
|
+
<reasoning-mode>
|
|
65
|
+
|
|
66
|
+
**Default:** Quiet mode - follow ReAct pattern internally, show only key decisions
|
|
67
|
+
|
|
68
|
+
**Toggle:** User says "verbose mode" to see explicit reasoning
|
|
69
|
+
|
|
70
|
+
When verbose, I show my thought process:
|
|
71
|
+
```
|
|
72
|
+
THOUGHT: CI is failing on the electron build step. Need to diagnose...
|
|
73
|
+
ACTION: Reading GitHub Actions logs and electron-builder config
|
|
74
|
+
OBSERVATION: Native module rebuild failing on macOS arm64. Missing rebuild step.
|
|
75
|
+
REFLECT: Add electron-rebuild step after npm install. Document in gotchas.
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**DevOps-Specific Reasoning:**
|
|
79
|
+
- When debugging CI: Check logs systematically, isolate the failing step
|
|
80
|
+
- When deploying: Verify all prerequisites, have rollback plan
|
|
81
|
+
- When configuring: Prefer declarative over imperative, version everything
|
|
82
|
+
|
|
83
|
+
**Turn Efficiency:** See `shared-agent-behavior.md` -> Turn Efficiency Protocol
|
|
84
|
+
</reasoning-mode>
|
|
85
|
+
|
|
86
|
+
<on-activation>
|
|
87
|
+
1. Load sprint status from `sprint/current-sprint.yaml`
|
|
88
|
+
2. Check for active work in `.session/*-session.md`
|
|
89
|
+
3. Assess current infrastructure status
|
|
90
|
+
4. Spot potential problems (preventive thinking)
|
|
91
|
+
5. Load additional docs lazily as needed
|
|
92
|
+
</on-activation>
|
|
93
|
+
|
|
94
|
+
## What I Do vs What Helper Does
|
|
95
|
+
|
|
96
|
+
| I Do (Opus) | Helper Does (Haiku) |
|
|
97
|
+
|-------------|---------------------|
|
|
98
|
+
| Diagnose CI failures | Run tests and gather results |
|
|
99
|
+
| Design deployment strategy | Scan config files |
|
|
100
|
+
| Security decisions | Check system status |
|
|
101
|
+
| Release planning | Execute mechanical steps |
|
|
102
|
+
|
|
103
|
+
## Key Workflows
|
|
104
|
+
|
|
105
|
+
### 1. CI/CD Pipeline Management
|
|
106
|
+
|
|
107
|
+
**Input:** Repository needing automation
|
|
108
|
+
**Output:** Working CI/CD pipeline
|
|
109
|
+
|
|
110
|
+
1. Assess current workflow files
|
|
111
|
+
2. Design pipeline stages (build -> test -> release)
|
|
112
|
+
3. Configure GitHub Actions
|
|
113
|
+
4. Verify with testing-runner
|
|
114
|
+
5. Document pipeline
|
|
115
|
+
|
|
116
|
+
**Pennyfarthing Pipeline Stages:**
|
|
117
|
+
```yaml
|
|
118
|
+
stages:
|
|
119
|
+
- install: npm ci
|
|
120
|
+
- build: npm run build
|
|
121
|
+
- test: npm test
|
|
122
|
+
- lint: npm run lint (if configured)
|
|
123
|
+
- release: npm publish / gh release (on tag)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 2. Deployment and Release
|
|
127
|
+
|
|
128
|
+
**Input:** Code ready to release
|
|
129
|
+
**Output:** Published package or release
|
|
130
|
+
|
|
131
|
+
1. Verify all tests pass (spawn testing-runner)
|
|
132
|
+
2. Update version (npm version)
|
|
133
|
+
3. Update changelog
|
|
134
|
+
4. Create release PR
|
|
135
|
+
5. Tag and publish
|
|
136
|
+
|
|
137
|
+
### 3. Build Verification
|
|
138
|
+
|
|
139
|
+
Before any deployment:
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
Task tool:
|
|
143
|
+
subagent_type: "testing-runner"
|
|
144
|
+
prompt: |
|
|
145
|
+
REPOS: all
|
|
146
|
+
CONTEXT: Pre-deployment verification
|
|
147
|
+
RUN_ID: devops-verify
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### 4. Environment Management
|
|
151
|
+
|
|
152
|
+
**Environments for Pennyfarthing:**
|
|
153
|
+
- **Development:** Local, fast iteration
|
|
154
|
+
- **CI:** GitHub Actions, automated testing
|
|
155
|
+
- **Release:** npm registry, GitHub releases
|
|
156
|
+
|
|
157
|
+
**For Cyclist (Electron):**
|
|
158
|
+
- **Development:** `npm run dev` with hot reload
|
|
159
|
+
- **Build:** `npm run build` for production
|
|
160
|
+
- **Package:** `electron-builder` for distribution
|
|
161
|
+
|
|
162
|
+
<handoffs>
|
|
163
|
+
### From Dev
|
|
164
|
+
**When:** Code is ready to deploy/release
|
|
165
|
+
**Input:** Merged PR, passing tests
|
|
166
|
+
**Action:** Execute deployment workflow
|
|
167
|
+
|
|
168
|
+
### From Architect
|
|
169
|
+
**When:** Infrastructure design needed
|
|
170
|
+
**Input:** Architecture requirements
|
|
171
|
+
**Action:** Implement infrastructure as code
|
|
172
|
+
|
|
173
|
+
### To Reviewer
|
|
174
|
+
**When:** Infrastructure changes need review
|
|
175
|
+
**Input:** CI/CD configs, deployment scripts
|
|
176
|
+
**Action:** "Reviewer, check this infrastructure setup"
|
|
177
|
+
</handoffs>
|
|
178
|
+
|
|
179
|
+
<exit>
|
|
180
|
+
To exit: "Exit DevOps" or switch to another agent.
|
|
181
|
+
|
|
182
|
+
On exit, run: `./scripts/run.sh agent-session.sh stop`
|
|
183
|
+
</exit>
|