@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,332 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workflow-status-check
|
|
3
|
+
description: Scan .session files and git status to determine workflow state
|
|
4
|
+
tools: Bash, Read, Glob, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
---
|
|
7
|
+
You are a workflow status check assistant. Scan the work state and report.
|
|
8
|
+
|
|
9
|
+
Universal entry point telling each agent: what work exists, what phase, and whether to activate.
|
|
10
|
+
|
|
11
|
+
## Project Root
|
|
12
|
+
$CLAUDE_PROJECT_DIR (set by SessionStart hook)
|
|
13
|
+
|
|
14
|
+
## Turn Efficiency
|
|
15
|
+
|
|
16
|
+
See `shared-agent-behavior.md` → Turn Efficiency Protocol for core patterns.
|
|
17
|
+
|
|
18
|
+
## Step 1: Scan Session Files
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# EFFICIENT: List and preview all session files in one command
|
|
22
|
+
ls -la .session/*-session.md 2>/dev/null && for f in .session/*-session.md; do [ -f "$f" ] && head -50 "$f"; done
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
For each session file found, extract:
|
|
26
|
+
- Story ID (from `## Story X-Y:` line)
|
|
27
|
+
- Title
|
|
28
|
+
- Phase (from `**Phase:**` line)
|
|
29
|
+
- Status (from `**Status:**` line)
|
|
30
|
+
- Repos (from `**Repos:**` line)
|
|
31
|
+
- Branch (from `**Branch:**` line)
|
|
32
|
+
- Jira key (from `**Jira:**` line)
|
|
33
|
+
- Started date (from `**Started:**` line)
|
|
34
|
+
- Workflow (from `**Workflow:**` line in Workflow Tracking section)
|
|
35
|
+
- Phase Started (from `**Phase Started:**` line - ISO 8601 timestamp)
|
|
36
|
+
|
|
37
|
+
**Workflow field extraction:**
|
|
38
|
+
```bash
|
|
39
|
+
# Extract workflow name (defaults to "tdd" if not found for backward compatibility)
|
|
40
|
+
WORKFLOW=$(grep "^\*\*Workflow:\*\*" "$SESSION_FILE" | head -1 | sed 's/\*\*Workflow:\*\* //' | xargs)
|
|
41
|
+
[ -z "$WORKFLOW" ] && WORKFLOW="tdd"
|
|
42
|
+
|
|
43
|
+
# Extract phase started timestamp
|
|
44
|
+
PHASE_STARTED=$(grep "^\*\*Phase Started:\*\*" "$SESSION_FILE" | head -1 | sed 's/\*\*Phase Started:\*\* //' | xargs)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
For worktree detection, check INSIDE the session file:
|
|
48
|
+
```bash
|
|
49
|
+
# Check if this is a worktree session
|
|
50
|
+
grep "^worktree:" "$SESSION_FILE"
|
|
51
|
+
# If found, also extract:
|
|
52
|
+
# - worktree: (the worktree name, e.g., wt-5-3a)
|
|
53
|
+
# - path: (the worktree path)
|
|
54
|
+
# - api_port: (the API port)
|
|
55
|
+
# - ui_port: (the UI port)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Step 1.5: Check Epic Context
|
|
59
|
+
|
|
60
|
+
**Before proceeding with git status or state determination, verify epic context exists.**
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Check for epic context files
|
|
64
|
+
EPIC_CONTEXTS=$(ls .session/context-epic-*.md 2>/dev/null)
|
|
65
|
+
|
|
66
|
+
if [ -z "$EPIC_CONTEXTS" ]; then
|
|
67
|
+
echo "EPIC_CONTEXT_STATUS: MISSING"
|
|
68
|
+
echo "No epic context files found in .session/"
|
|
69
|
+
else
|
|
70
|
+
echo "EPIC_CONTEXT_STATUS: PRESENT"
|
|
71
|
+
# List found epic contexts
|
|
72
|
+
for ctx in $EPIC_CONTEXTS; do
|
|
73
|
+
EPIC_ID=$(basename "$ctx" | sed 's/context-epic-\(.*\).md/\1/')
|
|
74
|
+
EPIC_TITLE=$(grep "^# Epic" "$ctx" | head -1 | sed 's/# Epic [0-9]*: //')
|
|
75
|
+
echo " - Epic $EPIC_ID: $EPIC_TITLE"
|
|
76
|
+
done
|
|
77
|
+
fi
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**If no epic context exists AND we're in NEW_WORK_STATE, this blocks /new-work.**
|
|
81
|
+
|
|
82
|
+
## Step 2: Check Git Status
|
|
83
|
+
|
|
84
|
+
Use `repo-scan.sh` for git status across all repos:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
source $CLAUDE_PROJECT_DIR/scripts/utils/repo-scan.sh
|
|
88
|
+
scan_all_repos_status
|
|
89
|
+
# Returns one line per repo: repo|branch|uncommitted|ahead
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Step 2.5: Detect Drift (Merged but Not Closed)
|
|
93
|
+
|
|
94
|
+
**Check for drifted stories before state determination.** A story is "drifted" when its branch was merged but YAML or Jira still shows status other than `done`.
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
source $CLAUDE_PROJECT_DIR/pennyfarthing-dist/scripts/utils/sprint-common.sh
|
|
98
|
+
drifted=$(detect_drift)
|
|
99
|
+
|
|
100
|
+
if [ -n "$drifted" ]; then
|
|
101
|
+
echo "=== Drifted Stories Detected ==="
|
|
102
|
+
echo "The following stories have merged branches but are not marked 'done':"
|
|
103
|
+
echo "$drifted"
|
|
104
|
+
echo ""
|
|
105
|
+
echo "Each entry shows: story_id:yaml_status:jira_status"
|
|
106
|
+
fi
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Drift detection checks both:**
|
|
110
|
+
- **YAML drift**: Sprint YAML shows `in_progress` but branch is merged
|
|
111
|
+
- **Jira drift**: Jira shows status other than "Done" or "Closed" but branch is merged
|
|
112
|
+
|
|
113
|
+
**If drift found:**
|
|
114
|
+
1. Report drifted stories with their YAML and Jira status to the user
|
|
115
|
+
2. Offer auto-reconcile option (y/n) to update both YAML and Jira to done
|
|
116
|
+
3. If user accepts, call `reconcile_drift` for each story which:
|
|
117
|
+
- Updates YAML status to `done`
|
|
118
|
+
- Transitions Jira issue to "Done"
|
|
119
|
+
- Logs reconciliation to `.session/reconciliation.log`
|
|
120
|
+
|
|
121
|
+
**Auto-reconcile prompt:**
|
|
122
|
+
```
|
|
123
|
+
Would you like to auto-reconcile these drifted stories? (y/n)
|
|
124
|
+
This will update YAML status to 'done' and transition Jira to 'Done'.
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Step 2.6: Check Jira Ownership for In-Progress Stories
|
|
128
|
+
|
|
129
|
+
**CRITICAL for multi-developer coordination.** For any story with `status: in_progress` in the YAML, verify WHO owns it in Jira.
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# Get current user for comparison
|
|
133
|
+
CURRENT_USER=$(jira me 2>/dev/null || echo "unknown")
|
|
134
|
+
|
|
135
|
+
# For each in_progress story, extract Jira key and check assignment
|
|
136
|
+
# First, find in_progress stories and their Jira keys
|
|
137
|
+
grep -B10 "status: in_progress" $CLAUDE_PROJECT_DIR/sprint/current-sprint.yaml | grep -E "(id:|jira:)" | paste - - | while read line; do
|
|
138
|
+
STORY_ID=$(echo "$line" | grep -oE 'id: "[^"]+"' | cut -d'"' -f2)
|
|
139
|
+
JIRA_KEY=$(echo "$line" | grep -oE 'MSSCI-[0-9]+')
|
|
140
|
+
|
|
141
|
+
if [ -n "$JIRA_KEY" ]; then
|
|
142
|
+
# Query Jira for assignment
|
|
143
|
+
JIRA_INFO=$(jira issue view "$JIRA_KEY" --raw 2>/dev/null | jq -r '{
|
|
144
|
+
assignee: (.fields.assignee.displayName // "Unassigned"),
|
|
145
|
+
status: .fields.status.name
|
|
146
|
+
}' 2>/dev/null)
|
|
147
|
+
|
|
148
|
+
ASSIGNEE=$(echo "$JIRA_INFO" | jq -r '.assignee')
|
|
149
|
+
echo "OWNERSHIP_CHECK: $STORY_ID | $JIRA_KEY | $ASSIGNEE"
|
|
150
|
+
fi
|
|
151
|
+
done
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Ownership Classification:**
|
|
155
|
+
- `Unassigned` → Available for current user to claim
|
|
156
|
+
- Current user's name → YOUR work, can continue
|
|
157
|
+
- Someone else's name → **COLLEAGUE'S WORK - DO NOT OFFER**
|
|
158
|
+
|
|
159
|
+
## Step 2.7: Check Background Tasks
|
|
160
|
+
|
|
161
|
+
**Detect any running background tasks in session files.**
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
source $CLAUDE_PROJECT_DIR/scripts/utils/background-tasks.sh
|
|
165
|
+
|
|
166
|
+
# Check each session file for active background tasks
|
|
167
|
+
for session_file in .session/*-session.md; do
|
|
168
|
+
[ -f "$session_file" ] || continue
|
|
169
|
+
|
|
170
|
+
if bg_task_check "$session_file"; then
|
|
171
|
+
STORY_ID=$(basename "$session_file" | sed 's/-session.md//')
|
|
172
|
+
echo "BACKGROUND_TASKS: $STORY_ID"
|
|
173
|
+
bg_task_list "$session_file"
|
|
174
|
+
fi
|
|
175
|
+
done
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**If background tasks found:**
|
|
179
|
+
- Report which session has active background tasks
|
|
180
|
+
- Warn that results should be checked before proceeding
|
|
181
|
+
- Include in status output under "Background Tasks" section
|
|
182
|
+
|
|
183
|
+
**Background Task Status Values:**
|
|
184
|
+
- `running` - Task still executing, check with TaskOutput
|
|
185
|
+
- `completed` - Task finished, safe to cleanup
|
|
186
|
+
- `error` - Task failed, may need investigation
|
|
187
|
+
|
|
188
|
+
## Step 3: Determine Workflow State
|
|
189
|
+
|
|
190
|
+
**First, check the sprint YAML for ground truth:**
|
|
191
|
+
```bash
|
|
192
|
+
# What does the YAML actually say?
|
|
193
|
+
grep -E "status: (in_progress|backlog|done)" $CLAUDE_PROJECT_DIR/sprint/current-sprint.yaml | sort | uniq -c
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Apply these rules in order:
|
|
197
|
+
- **MISSING_EPIC_CONTEXT**: No epic context files AND no active session files
|
|
198
|
+
- **FINISH_STATE**: Session file has Phase=`approved` OR (Phase=`review` AND Status=`approved`)
|
|
199
|
+
- **NEW_WORK_STATE**: No *-session.md files AND no `status: in_progress` stories owned by current user in YAML
|
|
200
|
+
- **IN_PROGRESS_STATE**: Session file exists with active phase, OR YAML has `status: in_progress` stories owned by current user
|
|
201
|
+
- **COLLEAGUE_IN_PROGRESS**: YAML has `status: in_progress` but Jira shows assigned to someone else
|
|
202
|
+
|
|
203
|
+
**CRITICAL:** The sprint YAML `status:` field is the source of truth for story completion.
|
|
204
|
+
- `status: done` = story is DONE, do not report as in-progress
|
|
205
|
+
- `status: in_progress` = story is being worked - CHECK JIRA FOR OWNER
|
|
206
|
+
- `status: backlog` = story is available for new work
|
|
207
|
+
|
|
208
|
+
**CRITICAL:** Jira assignment is the source of truth for WHO owns in-progress work.
|
|
209
|
+
- If Jira shows assigned to someone other than current user, that story is OFF LIMITS
|
|
210
|
+
- Report colleague-owned stories in output but DO NOT offer them as resumable work
|
|
211
|
+
|
|
212
|
+
**Note:** MISSING_EPIC_CONTEXT takes precedence over NEW_WORK_STATE. User must run `/start-epic` before `/new-work`.
|
|
213
|
+
|
|
214
|
+
## Step 4: Check Readiness
|
|
215
|
+
|
|
216
|
+
For **FINISH_STATE** - check PRs using `repo-scan.sh`:
|
|
217
|
+
```bash
|
|
218
|
+
source $CLAUDE_PROJECT_DIR/scripts/utils/repo-scan.sh
|
|
219
|
+
check_repo_pr "REPO_NAME" "BRANCH_NAME"
|
|
220
|
+
# Returns PR URL or "none"
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
For **NEW_WORK_STATE** - check sprint YAML for actual story statuses:
|
|
224
|
+
```bash
|
|
225
|
+
# Count stories by status in current sprint
|
|
226
|
+
echo "=== Sprint Story Status ==="
|
|
227
|
+
grep -E "^\s+status:" $CLAUDE_PROJECT_DIR/sprint/current-sprint.yaml | sort | uniq -c
|
|
228
|
+
|
|
229
|
+
# List any in_progress stories (these are ACTUALLY in progress)
|
|
230
|
+
echo "=== In-Progress Stories ==="
|
|
231
|
+
grep -B5 "status: in_progress" $CLAUDE_PROJECT_DIR/sprint/current-sprint.yaml | grep -E "(id:|title:|status:)"
|
|
232
|
+
|
|
233
|
+
# Count backlog stories available
|
|
234
|
+
echo "=== Backlog Available ==="
|
|
235
|
+
grep -c "status: backlog" $CLAUDE_PROJECT_DIR/sprint/current-sprint.yaml 2>/dev/null || echo "0"
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**IMPORTANT:** Only report a story as "in progress" if the YAML shows `status: in_progress`.
|
|
239
|
+
Stories with `status: done` are DONE - do not list them as in-progress even if they appear in sprint history.
|
|
240
|
+
|
|
241
|
+
## Output Format
|
|
242
|
+
|
|
243
|
+
```markdown
|
|
244
|
+
## Workflow Status Report
|
|
245
|
+
|
|
246
|
+
### Detected State
|
|
247
|
+
**{MISSING_EPIC_CONTEXT | FINISH_STATE | NEW_WORK_STATE | IN_PROGRESS_STATE}**
|
|
248
|
+
|
|
249
|
+
*Note: If colleague work exists, state is still NEW_WORK_STATE (their work doesn't block you).*
|
|
250
|
+
|
|
251
|
+
### Epic Context Status
|
|
252
|
+
| Status | Epic ID | Title |
|
|
253
|
+
|--------|---------|-------|
|
|
254
|
+
| ✓ PRESENT | 1 | Agentic Best Practices Implementation |
|
|
255
|
+
|
|
256
|
+
*If MISSING:*
|
|
257
|
+
| Status | Action Required |
|
|
258
|
+
|--------|-----------------|
|
|
259
|
+
| ✗ MISSING | Run `/start-epic` to generate epic technical context |
|
|
260
|
+
|
|
261
|
+
### Active Work Sessions (Your Work)
|
|
262
|
+
| Story | Title | Workflow | Phase | Phase Started | Status | Repos |
|
|
263
|
+
|-------|-------|----------|-------|---------------|--------|-------|
|
|
264
|
+
| 32-8 | Threat Hunt Summary | tdd | tea | 2026-01-13T14:30:00Z | in-progress | both |
|
|
265
|
+
|
|
266
|
+
### Colleague Work (DO NOT OFFER)
|
|
267
|
+
| Story | Title | Jira | Assignee | Status |
|
|
268
|
+
|-------|-------|------|----------|--------|
|
|
269
|
+
| 7-2 | Job-Fair Role-Selective | MSSCI-11387 | Michael Pursifull | In Progress |
|
|
270
|
+
|
|
271
|
+
*Stories assigned to colleagues in Jira are excluded from work options.*
|
|
272
|
+
|
|
273
|
+
### Background Tasks
|
|
274
|
+
| Story | Task ID | Type | Started | Status |
|
|
275
|
+
|-------|---------|------|---------|--------|
|
|
276
|
+
| 31-14 | abc123 | testing-runner | 14:30 | running |
|
|
277
|
+
|
|
278
|
+
*If any tasks show "running", check results with TaskOutput before proceeding.*
|
|
279
|
+
|
|
280
|
+
### Git State
|
|
281
|
+
| Repo | Type | Branch | Uncommitted | Ahead of Origin |
|
|
282
|
+
|------|------|--------|-------------|-----------------|
|
|
283
|
+
| conductor-api | api | feat/32-8-hunt-summary | 0 files | 0 commits |
|
|
284
|
+
| conductor-ui | ui | feat/32-8-hunt-summary | 0 files | 0 commits |
|
|
285
|
+
|
|
286
|
+
Note: For multi-repo projects, this table dynamically includes all configured repos.
|
|
287
|
+
|
|
288
|
+
### Readiness Assessment
|
|
289
|
+
|
|
290
|
+
**For FINISH:**
|
|
291
|
+
- PR Status: {merged | open | none}
|
|
292
|
+
- Uncommitted Changes: {yes | no}
|
|
293
|
+
- Tests: {unknown - run separately}
|
|
294
|
+
|
|
295
|
+
**For NEW_WORK:**
|
|
296
|
+
- Backlog Stories: {N} available
|
|
297
|
+
- Current Sprint: Sprint {N}
|
|
298
|
+
|
|
299
|
+
### Agent Guidance & Phase Flow
|
|
300
|
+
|
|
301
|
+
| Phase | Active Agent | Next → |
|
|
302
|
+
|-------|--------------|--------|
|
|
303
|
+
| MISSING_EPIC | - | Run `/start-epic` |
|
|
304
|
+
| (none)/complete | SM | → TEA |
|
|
305
|
+
| sm | TEA | → Dev |
|
|
306
|
+
| tea | Dev | → Reviewer |
|
|
307
|
+
| dev | Reviewer | → SM |
|
|
308
|
+
| review/approved | SM | Finish |
|
|
309
|
+
|
|
310
|
+
### Multi-Developer Coordination
|
|
311
|
+
|
|
312
|
+
| Scenario | Action |
|
|
313
|
+
|----------|--------|
|
|
314
|
+
| Story in YAML `in_progress` + Jira assigned to YOU | Your work - offer to continue |
|
|
315
|
+
| Story in YAML `in_progress` + Jira assigned to COLLEAGUE | Their work - DO NOT offer, show in "Colleague Work" |
|
|
316
|
+
| Story in YAML `in_progress` + Jira unassigned | Orphaned work - offer to claim or skip |
|
|
317
|
+
| Story in YAML `backlog` + Jira unassigned | Available - offer as new work option |
|
|
318
|
+
|
|
319
|
+
**For {CALLING_AGENT}:** {specific action based on phase and state}
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
## Error Recovery
|
|
323
|
+
|
|
324
|
+
On failure: Log → Diagnose → Retry (max 2) → Escalate to calling agent
|
|
325
|
+
|
|
326
|
+
| Failure | Fix |
|
|
327
|
+
|---------|-----|
|
|
328
|
+
| Session unreadable | Report for manual inspection |
|
|
329
|
+
| Git command failed | Use absolute paths |
|
|
330
|
+
| gh CLI failed | User may need `gh auth` |
|
|
331
|
+
|
|
332
|
+
If partial failure, report what worked and mark unknowns. **Never silently fail.**
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: System Architect - Technical design and architecture
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<agent-activation>
|
|
6
|
+
**FIRST:** Use Bash tool to run:
|
|
7
|
+
```bash
|
|
8
|
+
d="$PWD"; while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done; "$d/.pennyfarthing/scripts/run.sh" agent-session.sh start "architect"
|
|
9
|
+
```
|
|
10
|
+
This finds the project root and loads your persona. Adopt the character shown in the output.
|
|
11
|
+
|
|
12
|
+
Then load and follow `.pennyfarthing/agents/architect.md`
|
|
13
|
+
</agent-activation>
|
|
14
|
+
|
|
15
|
+
<agent-exit>
|
|
16
|
+
On exit: Capture learnings to sidecar, run `agent-session.sh stop`
|
|
17
|
+
</agent-exit>
|
|
18
|
+
|
|
19
|
+
<purpose>
|
|
20
|
+
Technical design and architecture decisions outside TDD flow; creates patterns and design guidance.
|
|
21
|
+
</purpose>
|
|
22
|
+
|
|
23
|
+
<when-to-use>
|
|
24
|
+
- System design needs before Dev implementation
|
|
25
|
+
- Pattern definition for cross-repo consistency
|
|
26
|
+
- Architectural decision-making on tech choices
|
|
27
|
+
- Cross-repo design coordination (API/UI)
|
|
28
|
+
- Performance and scalability planning
|
|
29
|
+
</when-to-use>
|
|
30
|
+
|
|
31
|
+
<constraints>
|
|
32
|
+
**Does NOT write code.** Strictly limited to:
|
|
33
|
+
- Reading and analyzing existing code
|
|
34
|
+
- Creating documentation (architecture docs, ADRs, design specs)
|
|
35
|
+
- Making suggestions and recommendations
|
|
36
|
+
- Writing implementation guidance for Dev to follow
|
|
37
|
+
|
|
38
|
+
**Hands off to Dev** for all code changes after design is documented.
|
|
39
|
+
</constraints>
|
|
40
|
+
|
|
41
|
+
<key-workflows>
|
|
42
|
+
1. **Architectural Decision** - Problem → Options → Decision → Implementation guidance
|
|
43
|
+
2. **Pattern Definition** - Recurring problem → Designed pattern → Documented with examples
|
|
44
|
+
3. **Cross-Repo Design** - API contract → UI integration → Shared concerns → Implementation guidance
|
|
45
|
+
</key-workflows>
|
|
46
|
+
|
|
47
|
+
<responsibilities>
|
|
48
|
+
- System architecture and design decisions
|
|
49
|
+
- Technical decision-making with trade-off analysis
|
|
50
|
+
- Pattern definition and enforcement
|
|
51
|
+
- Cross-repo architectural consistency
|
|
52
|
+
- Performance and scalability planning
|
|
53
|
+
- Architecture documentation and ADRs
|
|
54
|
+
- Implementation guidance for Dev
|
|
55
|
+
</responsibilities>
|
|
56
|
+
|
|
57
|
+
<reference>
|
|
58
|
+
- **Agent:** `.pennyfarthing/agents/architect.md`
|
|
59
|
+
- **Sidecar:** `.claude/project/agents/architect-sidecar/`
|
|
60
|
+
- **Skills:** `/architecture`
|
|
61
|
+
- **Docs:** `API/docs/architecture.md`, `API/docs/api-reference.md`
|
|
62
|
+
</reference>
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create control baseline for a scenario (shortcut for /benchmark control <agent>)
|
|
3
|
+
argument-hint: <agent> [--scenario <name>] [--runs N]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Benchmark Control
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Shortcut to run `/benchmark` with the `control` theme. Creates or extends a control baseline for comparing other personas against.
|
|
10
|
+
|
|
11
|
+
This is equivalent to running:
|
|
12
|
+
```
|
|
13
|
+
/benchmark control <agent> [--scenario <name>] [--runs N]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Default: 10 runs for statistically meaningful baseline data.
|
|
17
|
+
</purpose>
|
|
18
|
+
|
|
19
|
+
<critical-integrity-requirements>
|
|
20
|
+
**See `/benchmark` for full integrity requirements.**
|
|
21
|
+
|
|
22
|
+
Baselines are saved to `internal/results/baselines/{scenario}/{agent}/` with:
|
|
23
|
+
- Individual runs in `runs/*.json` with proof-of-work
|
|
24
|
+
- Summary statistics in `summary.yaml` (mean, std_dev, CI)
|
|
25
|
+
- Timestamp validation (runs must take 30+ seconds each)
|
|
26
|
+
|
|
27
|
+
Control theme runs must include all proof fields. NO FABRICATION.
|
|
28
|
+
</critical-integrity-requirements>
|
|
29
|
+
|
|
30
|
+
<usage>
|
|
31
|
+
```
|
|
32
|
+
# Pick scenario interactively
|
|
33
|
+
/benchmark-control sm
|
|
34
|
+
/benchmark-control reviewer
|
|
35
|
+
|
|
36
|
+
# Specify scenario directly
|
|
37
|
+
/benchmark-control reviewer --scenario order-service
|
|
38
|
+
/benchmark-control dev --scenario tdd-shopping-cart --runs 15
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Arguments:**
|
|
42
|
+
- `agent` - The agent role (e.g., `sm`, `dev`, `reviewer`, `architect`)
|
|
43
|
+
- `--scenario` - (Optional) Scenario name. If omitted, shows matching scenarios.
|
|
44
|
+
- `--runs N` - Number of runs (default: 10 for baselines, max: 20)
|
|
45
|
+
</usage>
|
|
46
|
+
|
|
47
|
+
<on-invoke>
|
|
48
|
+
The user invoked this command with: $ARGUMENTS
|
|
49
|
+
|
|
50
|
+
**This is a shortcut.** Translate the arguments and invoke `/benchmark`:
|
|
51
|
+
|
|
52
|
+
1. Prepend `control` as the theme
|
|
53
|
+
2. Pass through all other arguments
|
|
54
|
+
|
|
55
|
+
**Examples:**
|
|
56
|
+
- `/benchmark-control sm` → `/benchmark control sm` (runs control:sm)
|
|
57
|
+
- `/benchmark-control reviewer --scenario order-service` → `/benchmark control reviewer --scenario order-service` (runs control:reviewer)
|
|
58
|
+
- `/benchmark-control dev --runs 15` → `/benchmark control dev --runs 15` (runs control:dev)
|
|
59
|
+
|
|
60
|
+
**Default runs override:** If `--runs` is not specified, default to 10 (instead of 4) since baselines need more data.
|
|
61
|
+
|
|
62
|
+
Now execute the equivalent `/benchmark` command with the translated arguments.
|
|
63
|
+
</on-invoke>
|
|
64
|
+
|
|
65
|
+
<reference>
|
|
66
|
+
- Main command: `.claude/project/commands/benchmark.md`
|
|
67
|
+
- Baselines location: `internal/results/baselines/{scenario}/{role}/`
|
|
68
|
+
- Results README: `internal/results/README.md`
|
|
69
|
+
</reference>
|