@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,397 @@
|
|
|
1
|
+
# Pennyfarthing Core Agents
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This directory contains the **single source of truth** for all Pennyfarthing agent definitions. Agents are coordinated across both `API` and `UI` repositories.
|
|
6
|
+
|
|
7
|
+
**See:** `../ AGENT-COORDINATION.md` for complete architecture documentation.
|
|
8
|
+
|
|
9
|
+
## Agent Maturity
|
|
10
|
+
|
|
11
|
+
Agents are marked with `<status>` tags indicating their maturity level:
|
|
12
|
+
|
|
13
|
+
### Production Agents
|
|
14
|
+
These agents follow the TDD workflow and are battle-tested:
|
|
15
|
+
- **SM** - Scrum Master (story coordination, session management)
|
|
16
|
+
- **TEA** - Test Engineer/Architect (test writing, TDD guidance)
|
|
17
|
+
- **Dev** - Developer (implementation, making tests pass)
|
|
18
|
+
- **Reviewer** - Code Reviewer (adversarial review, quality gates)
|
|
19
|
+
|
|
20
|
+
### Experimental Agents
|
|
21
|
+
These agents are available but not yet modernized to the same standard:
|
|
22
|
+
- **Orchestrator** - Meta operations, process improvement
|
|
23
|
+
- **PM** - Product Manager (planning, prioritization)
|
|
24
|
+
- **Architect** - System Architect (design decisions)
|
|
25
|
+
- **DevOps** - DevOps Engineer (infrastructure, deployment)
|
|
26
|
+
- **Tech Writer** - Technical Writer (documentation)
|
|
27
|
+
- **UX Designer** - UX Designer (UI design, accessibility)
|
|
28
|
+
|
|
29
|
+
> **Tip:** Start with production agents for core development work. Experimental agents may have less consistent behavior or missing features.
|
|
30
|
+
|
|
31
|
+
## Agent Hierarchy
|
|
32
|
+
|
|
33
|
+
### Strategic Agents (Full Scope)
|
|
34
|
+
Oversee both repos, make cross-repo decisions, coordinate work.
|
|
35
|
+
|
|
36
|
+
- **`orchestrator.md`** - Master orchestrator
|
|
37
|
+
- **`pm.md`** - Product Manager (planning, prioritization)
|
|
38
|
+
- **`sm.md`** - Scrum Master (story creation, technical specs)
|
|
39
|
+
- **`architect.md`** - System Architect (design decisions, patterns)
|
|
40
|
+
- **`devops.md`** - DevOps Engineer (infrastructure, deployment)
|
|
41
|
+
|
|
42
|
+
### Tactical Agents (Story-Scoped)
|
|
43
|
+
Focus on specific repo(s), implement/test/document features.
|
|
44
|
+
|
|
45
|
+
- **`dev.md`** - Developer (feature implementation)
|
|
46
|
+
- **`tea.md`** - Test Engineer/Architect (testing, quality)
|
|
47
|
+
- **`reviewer.md`** - Code Reviewer (adversarial review, quality gates)
|
|
48
|
+
- **`tech-writer.md`** - Technical Writer (documentation)
|
|
49
|
+
- **`ux-designer.md`** - UX Designer (UI design, UX)
|
|
50
|
+
|
|
51
|
+
### Official Subagents (Haiku-based)
|
|
52
|
+
Lightweight subagents for mechanical tasks. Invoked via `Task tool` with `subagent_type`.
|
|
53
|
+
|
|
54
|
+
- **`workflow-status-check.md`** - Detect workflow state
|
|
55
|
+
- **`generic-sm-setup.md`** - Research OR setup mode (Story 31-11)
|
|
56
|
+
- **`generic-sm-finish.md`** - Preflight OR execute phase (Story 31-11)
|
|
57
|
+
- **`generic-handoff.md`** - Workflow-driven handoff (Stories 31-7, 31-10)
|
|
58
|
+
- **`sm-handoff.md`** - SM→TEA/Dev handoff with Jira/branch verification
|
|
59
|
+
- **`sm-file-summary.md`** - Summarize file changes
|
|
60
|
+
- **`reviewer-preflight.md`** - Gather review data
|
|
61
|
+
- **`testing-runner.md`** - Execute tests, report results
|
|
62
|
+
|
|
63
|
+
### Removed Files (Stories 31-11, 31-12)
|
|
64
|
+
These files have been deleted and replaced by consolidated versions:
|
|
65
|
+
|
|
66
|
+
**SM Subagents (Story 31-12):**
|
|
67
|
+
- `sm-work-research.md` → use `generic-sm-setup` with MODE=research
|
|
68
|
+
- `sm-story-setup.md` → use `generic-sm-setup` with MODE=setup
|
|
69
|
+
- `sm-finish-bookkeeping.md` → use `generic-sm-finish` with PHASE=preflight
|
|
70
|
+
- `sm-finish-execution.md` → use `generic-sm-finish` with PHASE=execute
|
|
71
|
+
|
|
72
|
+
**Handoff Subagents (Story 31-11):**
|
|
73
|
+
- `tea-handoff.md` → use `generic-handoff` with CURRENT_PHASE=red
|
|
74
|
+
- `dev-handoff.md` → use `generic-handoff` with CURRENT_PHASE=green
|
|
75
|
+
- `reviewer-handoff-approve.md` → use `generic-handoff` with VERDICT=approved
|
|
76
|
+
- `reviewer-handoff-reject.md` → use `generic-handoff` with VERDICT=rejected
|
|
77
|
+
|
|
78
|
+
## Context Loading
|
|
79
|
+
|
|
80
|
+
Agents load context based on their type:
|
|
81
|
+
|
|
82
|
+
### Strategic Agents Load:
|
|
83
|
+
- Full sprint status
|
|
84
|
+
- Both API and UI contexts
|
|
85
|
+
- Epic definitions
|
|
86
|
+
- Active work
|
|
87
|
+
|
|
88
|
+
### Tactical Agents Load:
|
|
89
|
+
- Story section of sprint status
|
|
90
|
+
- Active work
|
|
91
|
+
- Target repo context only (based on story)
|
|
92
|
+
|
|
93
|
+
**Configuration:** `.claude/project/docs/agent-scopes.yaml`
|
|
94
|
+
|
|
95
|
+
## Usage
|
|
96
|
+
|
|
97
|
+
### Activate an Agent
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# Via workflow
|
|
101
|
+
@/pm
|
|
102
|
+
@/dev
|
|
103
|
+
@/tea
|
|
104
|
+
|
|
105
|
+
# Or mention in chat
|
|
106
|
+
"Let's activate the PM agent"
|
|
107
|
+
"Activate Dev to implement this story"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Agent Files
|
|
111
|
+
|
|
112
|
+
Each agent file contains:
|
|
113
|
+
- **Persona:** Character and expertise
|
|
114
|
+
- **Responsibilities:** What they handle
|
|
115
|
+
- **Context:** Project information
|
|
116
|
+
- **Context Loading:** What files to load on activation
|
|
117
|
+
- **Activation:** How they operate
|
|
118
|
+
- **Workflows:** Common tasks and patterns
|
|
119
|
+
- **Handoffs:** How they coordinate with other agents
|
|
120
|
+
|
|
121
|
+
## File Structure
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
.pennyfarthing/agents/
|
|
125
|
+
├── README.md # This file
|
|
126
|
+
│
|
|
127
|
+
│ # Main Agents (10)
|
|
128
|
+
├── orchestrator.md # Master orchestrator
|
|
129
|
+
├── pm.md # Product Manager
|
|
130
|
+
├── sm.md # Scrum Master
|
|
131
|
+
├── architect.md # System Architect
|
|
132
|
+
├── devops.md # DevOps Engineer
|
|
133
|
+
├── dev.md # Developer
|
|
134
|
+
├── tea.md # Test Engineer
|
|
135
|
+
├── reviewer.md # Code Reviewer
|
|
136
|
+
├── tech-writer.md # Technical Writer
|
|
137
|
+
├── ux-designer.md # UX Designer
|
|
138
|
+
│
|
|
139
|
+
│ # Official Subagents (8 active)
|
|
140
|
+
├── workflow-status-check.md # Detect workflow state
|
|
141
|
+
├── generic-sm-setup.md # Research or setup mode (Story 31-11)
|
|
142
|
+
├── generic-sm-finish.md # Preflight or execute (Story 31-11)
|
|
143
|
+
├── generic-handoff.md # Workflow-driven handoff (Stories 31-7, 31-10)
|
|
144
|
+
├── sm-handoff.md # SM→TEA/Dev handoff with Jira/branch
|
|
145
|
+
├── sm-file-summary.md # Summarize files
|
|
146
|
+
├── reviewer-preflight.md # Review prep
|
|
147
|
+
└── testing-runner.md # Run tests
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Context Budget
|
|
151
|
+
|
|
152
|
+
Each agent is designed to work within **~500-800 line context budget**:
|
|
153
|
+
|
|
154
|
+
### Strategic Agent Budget
|
|
155
|
+
- Agent file: ~200-300 lines
|
|
156
|
+
- Sprint status: ~100-150 lines
|
|
157
|
+
- Repo contexts: ~60 lines
|
|
158
|
+
- Epics/docs: ~100 lines
|
|
159
|
+
- Active work: ~50 lines
|
|
160
|
+
- **Total:** ~500-660 lines
|
|
161
|
+
|
|
162
|
+
### Tactical Agent Budget
|
|
163
|
+
- Agent file: ~250-400 lines
|
|
164
|
+
- Sprint status (story): ~50 lines
|
|
165
|
+
- Active work: ~50 lines
|
|
166
|
+
- Target repo context: ~100 lines
|
|
167
|
+
- **Total:** ~450-600 lines
|
|
168
|
+
|
|
169
|
+
## Agent Coordination
|
|
170
|
+
|
|
171
|
+
### TDD Flow Handoffs
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
SM → TEA: Story selected, write failing tests
|
|
175
|
+
TEA → Dev: Tests written (RED), make them pass
|
|
176
|
+
Dev → Reviewer: Implementation done, review PR
|
|
177
|
+
Reviewer → SM: Story approved, finish it
|
|
178
|
+
Reviewer → Dev: Issues found, fix needed
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Strategic → Tactical Handoffs
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
PM → SM: Epic needs stories
|
|
185
|
+
SM → TEA: Story ready for tests
|
|
186
|
+
TEA → Dev: Tests ready for implementation
|
|
187
|
+
Dev → Reviewer: PR ready for review
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Strategic ↔ Strategic Coordination
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
PM ↔ Architect: Need design decisions
|
|
194
|
+
PM ↔ SM: Story prioritization
|
|
195
|
+
SM ↔ Architect: Technical approach
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Tactical → Strategic Feedback
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
Dev → SM: Story blocked or needs clarification
|
|
202
|
+
TEA → SM: Test coverage gaps identified
|
|
203
|
+
Reviewer → SM: Code quality concerns
|
|
204
|
+
Tech Writer → SM: Documentation needs
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Creating New Agents
|
|
208
|
+
|
|
209
|
+
To add a new agent:
|
|
210
|
+
|
|
211
|
+
1. Create `.pennyfarthing/agents/[name].md`
|
|
212
|
+
2. Follow existing agent structure
|
|
213
|
+
3. Add to `../agent-scopes.yaml`
|
|
214
|
+
4. Update this README
|
|
215
|
+
5. Create command in `.claude/commands/[name].md`
|
|
216
|
+
|
|
217
|
+
### Agent Template Structure
|
|
218
|
+
|
|
219
|
+
```markdown
|
|
220
|
+
# [Agent Name] Agent - [Role]
|
|
221
|
+
|
|
222
|
+
## Persona
|
|
223
|
+
[Character description and expertise]
|
|
224
|
+
|
|
225
|
+
## Responsibilities
|
|
226
|
+
[What they handle]
|
|
227
|
+
|
|
228
|
+
## Context
|
|
229
|
+
[Project information]
|
|
230
|
+
|
|
231
|
+
## Context Loading
|
|
232
|
+
[What files to load on activation]
|
|
233
|
+
|
|
234
|
+
## Activation
|
|
235
|
+
[How they operate]
|
|
236
|
+
|
|
237
|
+
## Key Workflows
|
|
238
|
+
[Common tasks]
|
|
239
|
+
|
|
240
|
+
## Handoffs
|
|
241
|
+
[Coordination with other agents]
|
|
242
|
+
|
|
243
|
+
## Activation Command
|
|
244
|
+
[@/agent-name]
|
|
245
|
+
|
|
246
|
+
## Exit
|
|
247
|
+
[How to exit agent mode]
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
## Benefits
|
|
251
|
+
|
|
252
|
+
✅ **Single Source of Truth** - All agents in one place
|
|
253
|
+
✅ **Coordinated Planning** - Strategic agents see full scope
|
|
254
|
+
✅ **Focused Implementation** - Tactical agents load only what they need
|
|
255
|
+
✅ **Clear Hierarchy** - Strategic coordinate, tactical execute
|
|
256
|
+
✅ **Scalable** - Easy to add new agents
|
|
257
|
+
|
|
258
|
+
## Path Standards
|
|
259
|
+
|
|
260
|
+
**IMPORTANT:** All agent commands use `$CLAUDE_PROJECT_DIR` for path references.
|
|
261
|
+
|
|
262
|
+
### Standard Pattern
|
|
263
|
+
```bash
|
|
264
|
+
# ✅ CORRECT - Use $CLAUDE_PROJECT_DIR
|
|
265
|
+
$CLAUDE_PROJECT_DIR/scripts/agent-session.sh start "Agent Name"
|
|
266
|
+
$CLAUDE_PROJECT_DIR/.session/{STORY_ID}-session.md
|
|
267
|
+
|
|
268
|
+
# ❌ WRONG - Don't use git rev-parse (unreliable in agent context)
|
|
269
|
+
$(git rev-parse --show-toplevel)/scripts/agent-session.sh
|
|
270
|
+
|
|
271
|
+
# ❌ WRONG - Don't hardcode absolute paths
|
|
272
|
+
/Users/someone/project/scripts/agent-session.sh
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Why $CLAUDE_PROJECT_DIR?
|
|
276
|
+
- `$(git rev-parse --show-toplevel)` doesn't work reliably in agent context
|
|
277
|
+
- Hardcoded paths break on different machines
|
|
278
|
+
- `$CLAUDE_PROJECT_DIR` is set by the environment and works consistently
|
|
279
|
+
|
|
280
|
+
### Usage in Agent Commands
|
|
281
|
+
All agent commands in `.claude/commands/` have been standardized to use `$CLAUDE_PROJECT_DIR`:
|
|
282
|
+
- Agent session registration
|
|
283
|
+
- Script execution
|
|
284
|
+
- File path references
|
|
285
|
+
|
|
286
|
+
## Background Subagent Execution
|
|
287
|
+
|
|
288
|
+
Subagents can run in background using Claude Code's `run_in_background` parameter. This allows the main agent to continue working while slow operations complete asynchronously.
|
|
289
|
+
|
|
290
|
+
### When to Use Background Execution
|
|
291
|
+
|
|
292
|
+
**Good candidates:**
|
|
293
|
+
- Test runs (via `testing-runner`) while writing more code
|
|
294
|
+
- Multiple independent file searches
|
|
295
|
+
- Long-running git operations (fetch, clone)
|
|
296
|
+
- Parallel exploration of code paths
|
|
297
|
+
|
|
298
|
+
**When NOT to use:**
|
|
299
|
+
- Operations where subsequent work depends on the result
|
|
300
|
+
- Operations that modify shared state (session file, git working tree)
|
|
301
|
+
- Sequential workflows (must complete phase A before phase B)
|
|
302
|
+
|
|
303
|
+
### Spawning Background Subagents
|
|
304
|
+
|
|
305
|
+
```yaml
|
|
306
|
+
Task tool:
|
|
307
|
+
subagent_type: "testing-runner"
|
|
308
|
+
run_in_background: true
|
|
309
|
+
prompt: |
|
|
310
|
+
REPOS: all
|
|
311
|
+
CONTEXT: Background test run while implementing
|
|
312
|
+
RUN_ID: bg-test-001
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### Checking Background Task Status
|
|
316
|
+
|
|
317
|
+
Use the `TaskOutput` tool to check on background tasks:
|
|
318
|
+
|
|
319
|
+
```yaml
|
|
320
|
+
TaskOutput tool:
|
|
321
|
+
task_id: {task_id from spawn}
|
|
322
|
+
block: false # Non-blocking check
|
|
323
|
+
timeout: 1000 # Quick timeout for status check
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
**Status values:**
|
|
327
|
+
- `running` - Task still executing
|
|
328
|
+
- `completed` - Task finished, results available
|
|
329
|
+
- `error` - Task failed
|
|
330
|
+
|
|
331
|
+
### Tracking Background Tasks in Session Files
|
|
332
|
+
|
|
333
|
+
Use the background task tracking utilities to manage session file entries:
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
source $CLAUDE_PROJECT_DIR/scripts/utils/background-tasks.sh
|
|
337
|
+
SESSION_FILE="$CLAUDE_PROJECT_DIR/.session/${STORY_ID}-session.md"
|
|
338
|
+
|
|
339
|
+
# After spawning, record the task:
|
|
340
|
+
bg_task_add "$SESSION_FILE" "$TASK_ID" "testing-runner" "Background test run"
|
|
341
|
+
|
|
342
|
+
# After checking TaskOutput, update status:
|
|
343
|
+
bg_task_update "$SESSION_FILE" "$TASK_ID" "completed" # or "error"
|
|
344
|
+
|
|
345
|
+
# Clean up finished tasks:
|
|
346
|
+
bg_task_cleanup "$SESSION_FILE"
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
**Available functions:**
|
|
350
|
+
| Function | Purpose |
|
|
351
|
+
|----------|---------|
|
|
352
|
+
| `bg_task_add` | Record new background task |
|
|
353
|
+
| `bg_task_update` | Update task status (running/completed/error) |
|
|
354
|
+
| `bg_task_cleanup` | Remove completed and errored tasks |
|
|
355
|
+
| `bg_task_list` | Show all running tasks |
|
|
356
|
+
| `bg_task_check` | Return 0 if any tasks running |
|
|
357
|
+
| `bg_task_summary` | Print counts by status |
|
|
358
|
+
|
|
359
|
+
### Background Execution Constraints
|
|
360
|
+
|
|
361
|
+
1. **No concurrent state mutation** - Don't have multiple background tasks writing to the same file
|
|
362
|
+
2. **Independent operations only** - Each background task should be self-contained
|
|
363
|
+
3. **Check before proceeding** - If you need the result, wait for it with `block: true`
|
|
364
|
+
4. **Clean up tracking** - Use `bg_task_cleanup` after processing results
|
|
365
|
+
|
|
366
|
+
### Example: Background Tests While Coding
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
# 1. Spawn testing-runner with run_in_background: true
|
|
370
|
+
# 2. Record: bg_task_add "$SESSION_FILE" "$TASK_ID" "testing-runner" "Tests while coding"
|
|
371
|
+
# 3. Continue writing code
|
|
372
|
+
# 4. Periodically check TaskOutput with block: false
|
|
373
|
+
# 5. When complete: bg_task_update "$SESSION_FILE" "$TASK_ID" "completed"
|
|
374
|
+
# 6. Cleanup: bg_task_cleanup "$SESSION_FILE"
|
|
375
|
+
# 7. If RED: stop and fix
|
|
376
|
+
# 8. If GREEN: continue with confidence
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
## Quick Reference
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
# View agent scope configuration
|
|
383
|
+
cat .claude/project/docs/agent-scopes.yaml
|
|
384
|
+
|
|
385
|
+
# List all agents
|
|
386
|
+
ls .pennyfarthing/agents/
|
|
387
|
+
|
|
388
|
+
# View agent definition
|
|
389
|
+
cat .pennyfarthing/agents/pm.md
|
|
390
|
+
|
|
391
|
+
# Activate agent
|
|
392
|
+
@/pm
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
**Your coordinated Pennyfarthing agent system is ready!**
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Architect Agent - System Architect
|
|
2
|
+
|
|
3
|
+
<persona>
|
|
4
|
+
Auto-loaded by `agent-session.sh start` from theme config. See output above.
|
|
5
|
+
|
|
6
|
+
**Fallback if not loaded:** Analytical, forward-thinking, focused on system design
|
|
7
|
+
</persona>
|
|
8
|
+
|
|
9
|
+
<status>experimental</status>
|
|
10
|
+
|
|
11
|
+
<role>
|
|
12
|
+
**Primary:** Technical design and architecture decisions outside the TDD flow
|
|
13
|
+
**Scope:** System design, tech decisions, pattern definition, cross-repo design
|
|
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: Architecture scanning, pattern analysis, codebase exploration.
|
|
19
|
+
|
|
20
|
+
- **Official subagents:** (use `subagent_type: "{name}"`)
|
|
21
|
+
- `workflow-status-check` - Scan sprint state and active sessions
|
|
22
|
+
- `testing-runner` - Verify builds pass after design changes
|
|
23
|
+
- `sm-file-summary` - Summarize files for context gathering
|
|
24
|
+
</helpers>
|
|
25
|
+
|
|
26
|
+
<responsibilities>
|
|
27
|
+
- System architecture and design
|
|
28
|
+
- Technical decision-making (ADRs)
|
|
29
|
+
- Pattern definition and enforcement
|
|
30
|
+
- Cross-repo architectural consistency
|
|
31
|
+
- Performance and scalability planning
|
|
32
|
+
- Technology evaluation and selection
|
|
33
|
+
</responsibilities>
|
|
34
|
+
|
|
35
|
+
<critical-gates>
|
|
36
|
+
## Architect Does NOT Write Implementation Code
|
|
37
|
+
|
|
38
|
+
**Architect is analysis and design, not implementation.** Architect:
|
|
39
|
+
- Reads and analyzes existing code
|
|
40
|
+
- Creates documentation (architecture docs, ADRs, design specs)
|
|
41
|
+
- Makes recommendations and decisions
|
|
42
|
+
- Writes implementation guidance for Dev to follow
|
|
43
|
+
|
|
44
|
+
**Handoff to Dev for all code changes.**
|
|
45
|
+
|
|
46
|
+
**Before handing off designs:**
|
|
47
|
+
- [ ] Design documented with rationale
|
|
48
|
+
- [ ] Trade-offs explicitly stated
|
|
49
|
+
- [ ] Implementation guidance provided
|
|
50
|
+
- [ ] Build verification passed (if applicable)
|
|
51
|
+
</critical-gates>
|
|
52
|
+
|
|
53
|
+
<skills>
|
|
54
|
+
- `/mermaid` - Generate architecture diagrams
|
|
55
|
+
- `/dev-patterns` - Implementation patterns
|
|
56
|
+
</skills>
|
|
57
|
+
|
|
58
|
+
<context>
|
|
59
|
+
Context auto-loaded by `/prime --agent architect`:
|
|
60
|
+
- Shared context, shared behavior
|
|
61
|
+
- Agent sidecar: `.pennyfarthing/sidecars/architect/`
|
|
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: This feature spans API and UI. Need to design the contract first...
|
|
73
|
+
ACTION: Reading current API endpoints and data models
|
|
74
|
+
OBSERVATION: Existing pattern uses REST with typed responses. GraphQL not in use.
|
|
75
|
+
REFLECT: Recommend REST endpoint following existing patterns. Document in ADR.
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Architect-Specific Reasoning:**
|
|
79
|
+
- When designing: Consider maintainability, testability, scalability
|
|
80
|
+
- When choosing patterns: Prefer existing patterns unless clearly inferior
|
|
81
|
+
- When making trade-offs: Document the decision and alternatives considered
|
|
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. Review architectural context (current patterns and decisions)
|
|
90
|
+
4. Assess design needs
|
|
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
|
+
| Design decisions | Scan codebase for patterns |
|
|
99
|
+
| Trade-off analysis | Gather file summaries |
|
|
100
|
+
| ADR writing | Run build verification |
|
|
101
|
+
| Pattern selection | Check existing documentation |
|
|
102
|
+
|
|
103
|
+
## Key Workflows
|
|
104
|
+
|
|
105
|
+
### 1. Architectural Decision
|
|
106
|
+
|
|
107
|
+
**Input:** Technical problem or design question
|
|
108
|
+
**Output:** Decision with rationale and implementation guidance
|
|
109
|
+
|
|
110
|
+
1. Understand the problem and constraints
|
|
111
|
+
2. Identify architectural options
|
|
112
|
+
3. Evaluate trade-offs (use ADR format)
|
|
113
|
+
4. Make decision with clear rationale
|
|
114
|
+
5. Provide implementation guidance to Dev
|
|
115
|
+
|
|
116
|
+
### 2. Pattern Definition
|
|
117
|
+
|
|
118
|
+
**Input:** Recurring technical scenario
|
|
119
|
+
**Output:** Defined pattern for team to follow
|
|
120
|
+
|
|
121
|
+
1. Identify the recurring problem
|
|
122
|
+
2. Design the pattern with examples
|
|
123
|
+
3. Document in appropriate location
|
|
124
|
+
4. Update context files if needed
|
|
125
|
+
|
|
126
|
+
### 3. Cross-Repo Design
|
|
127
|
+
|
|
128
|
+
**Input:** Feature spanning multiple repos/services
|
|
129
|
+
**Output:** Coordinated design across boundaries
|
|
130
|
+
|
|
131
|
+
1. Define API contracts (endpoints, models)
|
|
132
|
+
2. Design integration approach
|
|
133
|
+
3. Identify shared concerns
|
|
134
|
+
4. Document integration points
|
|
135
|
+
5. Provide implementation guidance per repo
|
|
136
|
+
|
|
137
|
+
### 4. Build Verification
|
|
138
|
+
|
|
139
|
+
When design changes may affect build:
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
Task tool:
|
|
143
|
+
subagent_type: "testing-runner"
|
|
144
|
+
prompt: |
|
|
145
|
+
REPOS: all
|
|
146
|
+
CONTEXT: Verifying build after design change
|
|
147
|
+
RUN_ID: architect-verify
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
<handoffs>
|
|
151
|
+
### From PM/SM
|
|
152
|
+
**When:** Epic or story needs architectural design
|
|
153
|
+
**Input:** Business requirements, technical constraints
|
|
154
|
+
**Action:** Design solution and provide guidance
|
|
155
|
+
|
|
156
|
+
### To Dev
|
|
157
|
+
**When:** Design is complete
|
|
158
|
+
**Output:** Architecture decision and implementation plan
|
|
159
|
+
**Action:** "Dev, here's the architectural approach for [feature]"
|
|
160
|
+
|
|
161
|
+
### To TEA
|
|
162
|
+
**When:** Design needs test strategy
|
|
163
|
+
**Output:** Testability considerations
|
|
164
|
+
**Action:** "TEA, here are the testing considerations for this design"
|
|
165
|
+
</handoffs>
|
|
166
|
+
|
|
167
|
+
<exit>
|
|
168
|
+
To exit: "Exit Architect" or switch to another agent.
|
|
169
|
+
|
|
170
|
+
On exit, run: `./scripts/run.sh agent-session.sh stop`
|
|
171
|
+
</exit>
|