@pennyfarthing/core 7.5.0 → 7.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/LICENSE +14 -0
- package/README.md +301 -0
- package/package.json +31 -36
- 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 +196 -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 +245 -0
- package/packages/core/dist/cli/commands/cyclist.test.js.map +1 -0
- package/packages/core/dist/cli/commands/doctor-legacy.test.d.ts +13 -0
- package/packages/core/dist/cli/commands/doctor-legacy.test.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/doctor-legacy.test.js +207 -0
- package/packages/core/dist/cli/commands/doctor-legacy.test.js.map +1 -0
- package/packages/core/dist/cli/commands/doctor.d.ts +25 -0
- package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/doctor.js +780 -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 +515 -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 +390 -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 +225 -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 +66 -0
- package/packages/core/dist/cli/utils/constants.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/constants.js +54 -0
- package/packages/core/dist/cli/utils/constants.js.map +1 -0
- package/{dist → packages/core/dist}/cli/utils/files.d.ts +1 -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/{dist → packages/core/dist}/cli/utils/manifest.d.ts +1 -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 +32 -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 +44 -0
- package/packages/core/dist/cli/utils/symlinks.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/symlinks.js +327 -0
- package/packages/core/dist/cli/utils/symlinks.js.map +1 -0
- package/packages/core/dist/cli/utils/themes.d.ts +101 -0
- package/packages/core/dist/cli/utils/themes.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/themes.js +382 -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 +147 -0
- package/packages/core/dist/cli/utils/themes.test.js.map +1 -0
- package/{dist → packages/core/dist}/cli/utils/version.d.ts +1 -0
- package/packages/core/dist/cli/utils/version.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/version.js +64 -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 +156 -0
- package/packages/core/dist/cli/workspace.test.js.map +1 -0
- package/{dist → packages/core/dist}/index.d.ts +1 -0
- package/packages/core/dist/index.d.ts.map +1 -0
- package/packages/core/dist/index.js +20 -0
- package/packages/core/dist/index.js.map +1 -0
- package/packages/core/dist/jira/jira-epic-creation.d.ts +109 -0
- package/packages/core/dist/jira/jira-epic-creation.d.ts.map +1 -0
- package/packages/core/dist/jira/jira-epic-creation.js +253 -0
- package/packages/core/dist/jira/jira-epic-creation.js.map +1 -0
- package/packages/core/dist/jira/jira-epic-creation.test.d.ts +16 -0
- package/packages/core/dist/jira/jira-epic-creation.test.d.ts.map +1 -0
- package/packages/core/dist/jira/jira-epic-creation.test.js +387 -0
- package/packages/core/dist/jira/jira-epic-creation.test.js.map +1 -0
- package/packages/core/dist/jira/jira-sprint-sync.d.ts +247 -0
- package/packages/core/dist/jira/jira-sprint-sync.d.ts.map +1 -0
- package/packages/core/dist/jira/jira-sprint-sync.js +670 -0
- package/packages/core/dist/jira/jira-sprint-sync.js.map +1 -0
- package/packages/core/dist/jira/jira-sprint-sync.test.d.ts +16 -0
- package/packages/core/dist/jira/jira-sprint-sync.test.d.ts.map +1 -0
- package/packages/core/dist/jira/jira-sprint-sync.test.js +845 -0
- package/packages/core/dist/jira/jira-sprint-sync.test.js.map +1 -0
- package/{dist → packages/core/dist}/permissions/index.d.ts +1 -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/{dist → packages/core/dist}/permissions/permission-schema.d.ts +1 -0
- package/packages/core/dist/permissions/permission-schema.d.ts.map +1 -0
- package/{dist → packages/core/dist}/permissions/permission-schema.js +9 -13
- 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-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-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 +47 -0
- package/packages/core/dist/scripts/generate-spider.d.ts.map +1 -0
- package/packages/core/dist/scripts/generate-spider.js +338 -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 +271 -0
- package/packages/core/dist/scripts/generate-spider.test.js.map +1 -0
- package/{dist → packages/core/dist}/scripts/job-fair-aggregator.d.ts +1 -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/gate-handler.d.ts +94 -0
- package/packages/core/dist/workflow/gate-handler.d.ts.map +1 -0
- package/packages/core/dist/workflow/gate-handler.js +189 -0
- package/packages/core/dist/workflow/gate-handler.js.map +1 -0
- package/packages/core/dist/workflow/gate-handler.test.d.ts +14 -0
- package/packages/core/dist/workflow/gate-handler.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/gate-handler.test.js +543 -0
- package/packages/core/dist/workflow/gate-handler.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/handoff.d.ts +281 -0
- package/packages/core/dist/workflow/handoff.d.ts.map +1 -0
- package/packages/core/dist/workflow/handoff.js +411 -0
- package/packages/core/dist/workflow/handoff.js.map +1 -0
- package/packages/core/dist/workflow/handoff.test.d.ts +21 -0
- package/packages/core/dist/workflow/handoff.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/handoff.test.js +499 -0
- package/packages/core/dist/workflow/handoff.test.js.map +1 -0
- package/{dist → packages/core/dist}/workflow/index.d.ts +1 -0
- package/packages/core/dist/workflow/index.d.ts.map +1 -0
- package/packages/core/dist/workflow/index.js +24 -0
- package/packages/core/dist/workflow/index.js.map +1 -0
- package/packages/core/dist/workflow/session-state.d.ts +92 -0
- package/packages/core/dist/workflow/session-state.d.ts.map +1 -0
- package/packages/core/dist/workflow/session-state.js +198 -0
- package/packages/core/dist/workflow/session-state.js.map +1 -0
- package/packages/core/dist/workflow/session-state.test.d.ts +8 -0
- package/packages/core/dist/workflow/session-state.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/session-state.test.js +551 -0
- package/packages/core/dist/workflow/session-state.test.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/step-parser.d.ts +45 -0
- package/packages/core/dist/workflow/step-parser.d.ts.map +1 -0
- package/packages/core/dist/workflow/step-parser.js +147 -0
- package/packages/core/dist/workflow/step-parser.js.map +1 -0
- package/packages/core/dist/workflow/step-parser.test.d.ts +14 -0
- package/packages/core/dist/workflow/step-parser.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/step-parser.test.js +470 -0
- package/packages/core/dist/workflow/step-parser.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/trimodal.d.ts +86 -0
- package/packages/core/dist/workflow/trimodal.d.ts.map +1 -0
- package/packages/core/dist/workflow/trimodal.js +118 -0
- package/packages/core/dist/workflow/trimodal.js.map +1 -0
- package/packages/core/dist/workflow/trimodal.test.d.ts +11 -0
- package/packages/core/dist/workflow/trimodal.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/trimodal.test.js +395 -0
- package/packages/core/dist/workflow/trimodal.test.js.map +1 -0
- package/packages/core/dist/workflow/variable-resolver.d.ts +67 -0
- package/packages/core/dist/workflow/variable-resolver.d.ts.map +1 -0
- package/packages/core/dist/workflow/variable-resolver.js +156 -0
- package/packages/core/dist/workflow/variable-resolver.js.map +1 -0
- package/packages/core/dist/workflow/variable-resolver.test.d.ts +14 -0
- package/packages/core/dist/workflow/variable-resolver.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/variable-resolver.test.js +400 -0
- package/packages/core/dist/workflow/variable-resolver.test.js.map +1 -0
- package/packages/core/dist/workflow/workflow-executor.d.ts +163 -0
- package/packages/core/dist/workflow/workflow-executor.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-executor.js +197 -0
- package/packages/core/dist/workflow/workflow-executor.js.map +1 -0
- package/packages/core/dist/workflow/workflow-executor.test.d.ts +8 -0
- package/packages/core/dist/workflow/workflow-executor.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-executor.test.js +444 -0
- package/packages/core/dist/workflow/workflow-executor.test.js.map +1 -0
- package/{dist → packages/core/dist}/workflow/workflow-loader.d.ts +1 -0
- package/packages/core/dist/workflow/workflow-loader.d.ts.map +1 -0
- package/{dist → packages/core/dist}/workflow/workflow-loader.js +34 -40
- 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 +371 -0
- package/packages/core/dist/workflow/workflow-migration.test.js.map +1 -0
- package/{dist → packages/core/dist}/workflow/workflow-permissions.d.ts +1 -0
- package/packages/core/dist/workflow/workflow-permissions.d.ts.map +1 -0
- package/{dist → packages/core/dist}/workflow/workflow-permissions.js +8 -14
- package/packages/core/dist/workflow/workflow-permissions.js.map +1 -0
- package/packages/core/dist/workflow/workflow-permissions.test.d.ts +15 -0
- package/packages/core/dist/workflow/workflow-permissions.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-permissions.test.js +301 -0
- package/packages/core/dist/workflow/workflow-permissions.test.js.map +1 -0
- package/{dist → packages/core/dist}/workflow/workflow-router.d.ts +1 -0
- package/packages/core/dist/workflow/workflow-router.d.ts.map +1 -0
- package/{dist → packages/core/dist}/workflow/workflow-router.js +51 -70
- 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/{dist → packages/core/dist}/workflow/workflow-schema.d.ts +1 -0
- package/packages/core/dist/workflow/workflow-schema.d.ts.map +1 -0
- package/{dist → packages/core/dist}/workflow/workflow-schema.js +59 -62
- 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/packages/core/dist/workflow/workflow-stepped-schema.test.d.ts +18 -0
- package/packages/core/dist/workflow/workflow-stepped-schema.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-stepped-schema.test.js +608 -0
- package/packages/core/dist/workflow/workflow-stepped-schema.test.js.map +1 -0
- package/pennyfarthing-dist/agents/README.md +340 -0
- package/pennyfarthing-dist/agents/architect.md +193 -0
- package/pennyfarthing-dist/agents/dev.md +259 -0
- package/pennyfarthing-dist/agents/devops.md +206 -0
- package/pennyfarthing-dist/agents/handoff.md +212 -0
- package/pennyfarthing-dist/agents/orchestrator.md +355 -0
- package/pennyfarthing-dist/agents/pm.md +169 -0
- package/pennyfarthing-dist/agents/reviewer-preflight.md +96 -0
- package/pennyfarthing-dist/agents/reviewer.md +377 -0
- package/pennyfarthing-dist/agents/sm-file-summary.md +58 -0
- package/pennyfarthing-dist/agents/sm-finish.md +61 -0
- package/pennyfarthing-dist/agents/sm-handoff.md +122 -0
- package/pennyfarthing-dist/agents/sm-setup.md +174 -0
- package/pennyfarthing-dist/agents/sm.md +649 -0
- package/pennyfarthing-dist/agents/tea.md +230 -0
- package/pennyfarthing-dist/agents/tech-writer.md +216 -0
- package/pennyfarthing-dist/agents/testing-runner.md +141 -0
- package/pennyfarthing-dist/agents/ux-designer.md +231 -0
- package/pennyfarthing-dist/agents/workflow-status-check.md +68 -0
- package/pennyfarthing-dist/commands/architect.md +7 -0
- package/pennyfarthing-dist/commands/benchmark-control.md +69 -0
- package/pennyfarthing-dist/commands/benchmark.md +467 -0
- package/pennyfarthing-dist/commands/brainstorming.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 +139 -0
- package/pennyfarthing-dist/commands/continue-session.md +184 -0
- package/pennyfarthing-dist/commands/create-branches-from-story.md +358 -0
- package/pennyfarthing-dist/commands/create-theme.md +29 -0
- package/pennyfarthing-dist/commands/dev.md +7 -0
- package/pennyfarthing-dist/commands/devops.md +7 -0
- package/pennyfarthing-dist/commands/git-cleanup.md +340 -0
- package/pennyfarthing-dist/commands/health-check.md +141 -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 +21 -0
- package/pennyfarthing-dist/commands/orchestrator.md +7 -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 +7 -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 +7 -0
- package/pennyfarthing-dist/commands/run-ci.md +116 -0
- package/pennyfarthing-dist/commands/set-theme.md +56 -0
- package/pennyfarthing-dist/commands/show-theme.md +21 -0
- package/pennyfarthing-dist/commands/sm.md +7 -0
- package/pennyfarthing-dist/commands/solo.md +411 -0
- package/pennyfarthing-dist/commands/sprint-planning.md +109 -0
- package/pennyfarthing-dist/commands/sprint.md +133 -0
- package/pennyfarthing-dist/commands/standalone.md +194 -0
- package/pennyfarthing-dist/commands/start-epic.md +168 -0
- package/pennyfarthing-dist/commands/sync-epic-to-jira.md +184 -0
- package/pennyfarthing-dist/commands/sync-work-with-sprint.md +373 -0
- package/pennyfarthing-dist/commands/tea.md +7 -0
- package/pennyfarthing-dist/commands/tech-writer.md +7 -0
- package/pennyfarthing-dist/commands/theme-maker.md +676 -0
- package/pennyfarthing-dist/commands/update-domain-docs.md +83 -0
- package/pennyfarthing-dist/commands/ux-designer.md +7 -0
- package/pennyfarthing-dist/commands/work.md +122 -0
- package/pennyfarthing-dist/commands/workflow.md +21 -0
- package/pennyfarthing-dist/guides/AGENT-COORDINATION.md +480 -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/XML-TAGS.md +156 -0
- package/pennyfarthing-dist/guides/agent-behavior.md +264 -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/measurement-framework.md +210 -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/workflow-schema.md +257 -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 +337 -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 +373 -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 +349 -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 +337 -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 +372 -0
- package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +298 -0
- package/pennyfarthing-dist/personas/themes/princess-bride.yaml +350 -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 +366 -0
- package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +334 -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 +338 -0
- package/pennyfarthing-dist/personas/themes/ted-lasso.yaml +366 -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 +343 -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/README.md +68 -0
- package/pennyfarthing-dist/scripts/core/README.md +26 -0
- package/pennyfarthing-dist/scripts/core/agent-session.sh +378 -0
- package/pennyfarthing-dist/scripts/core/check-context.sh +260 -0
- package/pennyfarthing-dist/scripts/core/handoff-marker.sh +90 -0
- package/pennyfarthing-dist/scripts/core/phase-check-start.sh +95 -0
- package/pennyfarthing-dist/scripts/core/prime.sh +136 -0
- package/pennyfarthing-dist/scripts/core/run.sh +75 -0
- package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +21 -0
- package/pennyfarthing-dist/scripts/git/README.md +25 -0
- package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +226 -0
- package/pennyfarthing-dist/scripts/git/git-status-all.sh +127 -0
- package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +91 -0
- package/pennyfarthing-dist/scripts/git/release.sh +199 -0
- package/pennyfarthing-dist/scripts/git/worktree-manager.sh +494 -0
- package/pennyfarthing-dist/scripts/health/drift-detection.sh +162 -0
- package/pennyfarthing-dist/scripts/hooks/README.md +32 -0
- package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +87 -0
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +60 -0
- package/pennyfarthing-dist/scripts/hooks/context-warning.sh +65 -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 +97 -0
- package/pennyfarthing-dist/scripts/hooks/session-stop.sh +58 -0
- package/pennyfarthing-dist/scripts/jira/README.md +33 -0
- package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +101 -0
- package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +97 -0
- package/pennyfarthing-dist/scripts/jira/jira-bidirectional-sync.mjs +327 -0
- package/pennyfarthing-dist/scripts/jira/jira-bidirectional-sync.test.mjs +503 -0
- package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +164 -0
- package/pennyfarthing-dist/scripts/jira/jira-lib.mjs +443 -0
- package/pennyfarthing-dist/scripts/jira/jira-lib.sh +464 -0
- package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +266 -0
- package/pennyfarthing-dist/scripts/jira/jira-sync-story.mjs +208 -0
- package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +8 -0
- package/pennyfarthing-dist/scripts/jira/jira-sync.mjs +198 -0
- package/pennyfarthing-dist/scripts/jira/jira-sync.sh +8 -0
- package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +104 -0
- package/pennyfarthing-dist/scripts/jira/sync-epic-to-jira.sh +16 -0
- package/pennyfarthing-dist/scripts/lib/README.md +29 -0
- package/pennyfarthing-dist/scripts/lib/background-tasks.sh +177 -0
- package/pennyfarthing-dist/scripts/lib/checkpoint.sh +136 -0
- package/pennyfarthing-dist/scripts/lib/common.sh +157 -0
- package/pennyfarthing-dist/scripts/lib/file-lock.sh +269 -0
- package/pennyfarthing-dist/scripts/lib/find-root.sh +35 -0
- package/pennyfarthing-dist/scripts/lib/logging.sh +186 -0
- package/pennyfarthing-dist/scripts/lib/retry.sh +76 -0
- package/pennyfarthing-dist/scripts/misc/README.md +44 -0
- package/pennyfarthing-dist/scripts/misc/add-short-names.mjs +264 -0
- package/pennyfarthing-dist/scripts/misc/backlog.sh +91 -0
- package/pennyfarthing-dist/scripts/misc/check-status.sh +247 -0
- package/pennyfarthing-dist/scripts/misc/deploy.sh +284 -0
- package/pennyfarthing-dist/scripts/misc/doctor-dogfood.sh +392 -0
- package/pennyfarthing-dist/scripts/misc/find-related-work.sh +231 -0
- package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +110 -0
- package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +74 -0
- package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.mjs +474 -0
- package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +9 -0
- package/pennyfarthing-dist/scripts/misc/repo-scan.sh +141 -0
- package/pennyfarthing-dist/scripts/misc/repo-utils.sh +778 -0
- package/pennyfarthing-dist/scripts/misc/run-ci.sh +219 -0
- package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +7 -0
- package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +319 -0
- package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +193 -0
- package/pennyfarthing-dist/scripts/misc/statusline.sh +252 -0
- package/pennyfarthing-dist/scripts/misc/uninstall.sh +270 -0
- package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +160 -0
- package/pennyfarthing-dist/scripts/sprint/README.md +29 -0
- package/pennyfarthing-dist/scripts/sprint/archive-story.sh +135 -0
- package/pennyfarthing-dist/scripts/sprint/available-stories.sh +97 -0
- package/pennyfarthing-dist/scripts/sprint/check-story.sh +164 -0
- package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +58 -0
- package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +69 -0
- package/pennyfarthing-dist/scripts/sprint/import-epic-to-future.mjs +377 -0
- package/pennyfarthing-dist/scripts/sprint/import-epic-to-future.sh +9 -0
- package/pennyfarthing-dist/scripts/sprint/list-future.sh +151 -0
- package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +116 -0
- package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +164 -0
- package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +421 -0
- package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +39 -0
- package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +241 -0
- package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +134 -0
- package/pennyfarthing-dist/scripts/story/README.md +23 -0
- package/pennyfarthing-dist/scripts/story/create-story.sh +159 -0
- package/pennyfarthing-dist/scripts/story/size-story.sh +198 -0
- package/pennyfarthing-dist/scripts/story/story-template.sh +162 -0
- package/pennyfarthing-dist/scripts/test/README.md +23 -0
- package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +289 -0
- package/pennyfarthing-dist/scripts/test/swebench-judge.py +400 -0
- package/pennyfarthing-dist/scripts/test/test-cache.sh +165 -0
- package/pennyfarthing-dist/scripts/test/test-setup.sh +337 -0
- package/pennyfarthing-dist/scripts/tests/check.test.sh +582 -0
- package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +515 -0
- package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +599 -0
- package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +332 -0
- package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +573 -0
- package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +859 -0
- package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +662 -0
- package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +589 -0
- package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +105 -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/tests/ux-design-workflow-import.test.sh +647 -0
- package/pennyfarthing-dist/scripts/theme/README.md +22 -0
- package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.js +492 -0
- package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +11 -0
- package/pennyfarthing-dist/scripts/theme/list-themes.sh +73 -0
- package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +97 -0
- package/pennyfarthing-dist/scripts/workflow/README.md +28 -0
- package/pennyfarthing-dist/scripts/workflow/check.sh +497 -0
- package/pennyfarthing-dist/scripts/workflow/finish-story.sh +159 -0
- package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +228 -0
- package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +124 -0
- package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +40 -0
- package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +163 -0
- package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +138 -0
- package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +256 -0
- package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +167 -0
- package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +242 -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 +274 -0
- package/pennyfarthing-dist/skills/cyclist/SKILL.md +88 -0
- package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +437 -0
- package/pennyfarthing-dist/skills/finalize-run/SKILL.md +258 -0
- package/pennyfarthing-dist/skills/jira/SKILL.md +484 -0
- package/pennyfarthing-dist/skills/judge/SKILL.md +579 -0
- package/pennyfarthing-dist/skills/just/SKILL.md +403 -0
- package/pennyfarthing-dist/skills/mermaid/SKILL.md +240 -0
- package/pennyfarthing-dist/skills/otel/skill.md +223 -0
- package/pennyfarthing-dist/skills/permissions/skill.md +172 -0
- package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +178 -0
- package/pennyfarthing-dist/skills/skill-registry.schema.json +107 -0
- package/pennyfarthing-dist/skills/skill-registry.yaml +357 -0
- package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +101 -0
- package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +97 -0
- package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +164 -0
- package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +101 -0
- package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +116 -0
- package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +164 -0
- package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +39 -0
- package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +147 -0
- package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +104 -0
- package/pennyfarthing-dist/skills/sprint/skill.md +465 -0
- package/pennyfarthing-dist/skills/story/scripts/create-story.sh +159 -0
- package/pennyfarthing-dist/skills/story/scripts/size-story.sh +198 -0
- package/pennyfarthing-dist/skills/story/scripts/story-template.sh +162 -0
- package/pennyfarthing-dist/skills/story/skill.md +219 -0
- package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +390 -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 +174 -0
- package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +91 -0
- package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +163 -0
- package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +138 -0
- package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +273 -0
- package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +167 -0
- package/pennyfarthing-dist/skills/workflow/skill.md +337 -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/architecture/steps/step-01-initialize.md +101 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +93 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +115 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +133 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +138 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +133 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +142 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +160 -0
- package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +102 -0
- package/pennyfarthing-dist/workflows/architecture.yaml +65 -0
- package/pennyfarthing-dist/workflows/bdd.yaml +60 -0
- package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +62 -0
- package/pennyfarthing-dist/workflows/brainstorming/checklist.md +44 -0
- package/pennyfarthing-dist/workflows/brainstorming/instructions.md +736 -0
- package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +49 -0
- package/pennyfarthing-dist/workflows/code-review/checklist.md +23 -0
- package/pennyfarthing-dist/workflows/code-review/instructions.md +234 -0
- package/pennyfarthing-dist/workflows/code-review/workflow.yaml +51 -0
- package/pennyfarthing-dist/workflows/dev-story/checklist.md +80 -0
- package/pennyfarthing-dist/workflows/dev-story/instructions.xml +410 -0
- package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +50 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +256 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +233 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +272 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +153 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +122 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +57 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +28 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +190 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +178 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +139 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +133 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +4 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +40 -0
- package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +13 -0
- package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +197 -0
- package/pennyfarthing-dist/workflows/prd/data/project-types.csv +11 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +191 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +153 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +224 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +226 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +213 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +207 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +226 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +237 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +228 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +231 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +242 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +217 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +180 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +247 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +249 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +253 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +168 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +218 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +232 -0
- package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +10 -0
- package/pennyfarthing-dist/workflows/prd/workflow.yaml +42 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +177 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +161 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +199 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +202 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +205 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +219 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +194 -0
- package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +10 -0
- package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +31 -0
- package/pennyfarthing-dist/workflows/project-context/project-context-template.md +21 -0
- package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +184 -0
- package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +318 -0
- package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +278 -0
- package/pennyfarthing-dist/workflows/project-context/workflow.yaml +27 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +156 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +120 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +113 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +113 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +106 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +140 -0
- package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +27 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +189 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +144 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +128 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +191 -0
- package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +74 -0
- package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +27 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +137 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +229 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +238 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +206 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +234 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +443 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +182 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +237 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +200 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +249 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +259 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +177 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +475 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +137 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +239 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +248 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +202 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +239 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +486 -0
- package/pennyfarthing-dist/workflows/research/templates/research.template.md +29 -0
- package/pennyfarthing-dist/workflows/research/workflow.yaml +45 -0
- package/pennyfarthing-dist/workflows/retrospective/checklist.md +31 -0
- package/pennyfarthing-dist/workflows/retrospective/instructions.md +1443 -0
- package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +50 -0
- package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +33 -0
- package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +55 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +54 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +44 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +64 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +73 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +56 -0
- package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +34 -0
- package/pennyfarthing-dist/workflows/tdd.yaml +50 -0
- package/pennyfarthing-dist/workflows/trivial.yaml +40 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +135 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +127 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +190 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +216 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +219 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +234 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +252 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +254 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +224 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +224 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +241 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +248 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +237 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +264 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +228 -0
- package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +13 -0
- package/pennyfarthing-dist/workflows/ux-design/workflow.yaml +41 -0
- package/dist/cli/utils/files.js +0 -179
- package/dist/cli/utils/manifest.js +0 -93
- package/dist/cli/utils/version.js +0 -70
- package/dist/index.js +0 -48
- package/dist/permissions/index.js +0 -16
- package/dist/scripts/job-fair-aggregator.js +0 -690
- package/dist/workflow/index.js +0 -31
- /package/{bin → packages/core/bin}/pennyfarthing.js +0 -0
|
@@ -0,0 +1,676 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Interactive wizard for creating custom persona themes
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Theme Maker
|
|
6
|
+
|
|
7
|
+
Interactive wizard for creating custom persona themes. Unlike `/create-theme` which uses CLI flags, this command walks you through the theme creation process interactively.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
/theme-maker
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Flow
|
|
16
|
+
|
|
17
|
+
### Step 1: Theme Name
|
|
18
|
+
|
|
19
|
+
Ask the user for a theme name. They provide it as free text.
|
|
20
|
+
|
|
21
|
+
**Validation rules:**
|
|
22
|
+
- Lowercase letters only
|
|
23
|
+
- Must start with a letter
|
|
24
|
+
- Hyphens allowed (no underscores or spaces)
|
|
25
|
+
- No conflicts with existing themes
|
|
26
|
+
|
|
27
|
+
If invalid, explain the rules and ask again.
|
|
28
|
+
|
|
29
|
+
### Step 2: Mode Selection
|
|
30
|
+
|
|
31
|
+
Use `AskUserQuestion` to let the user choose their creation mode:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
questions:
|
|
35
|
+
- question: "How would you like to create your theme?"
|
|
36
|
+
header: "Mode"
|
|
37
|
+
options:
|
|
38
|
+
- label: "AI-Driven (Recommended)"
|
|
39
|
+
description: "Describe a concept or universe, I generate all 10 agent personas"
|
|
40
|
+
- label: "Guided"
|
|
41
|
+
description: "I suggest character options per agent, you pick"
|
|
42
|
+
- label: "Manual"
|
|
43
|
+
description: "You specify character, style, and quote for each agent"
|
|
44
|
+
multiSelect: false
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Step 3: Dispatch to Mode Handler
|
|
48
|
+
|
|
49
|
+
Based on selection:
|
|
50
|
+
- **AI-Driven** → Follow AI-Driven mode instructions (Story 6-2)
|
|
51
|
+
- **Guided** → Follow Guided mode instructions (Story 6-3)
|
|
52
|
+
- **Manual** → Follow Manual mode instructions (Story 6-4)
|
|
53
|
+
|
|
54
|
+
For now (Story 6-1 skeleton), just acknowledge the selection and create a skeleton.
|
|
55
|
+
|
|
56
|
+
### Step 4: Create Theme
|
|
57
|
+
|
|
58
|
+
1. Create theme directory if missing:
|
|
59
|
+
```
|
|
60
|
+
.claude/pennyfarthing/themes/
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
2. Write skeleton theme file to `.claude/pennyfarthing/themes/{name}.yaml`:
|
|
64
|
+
|
|
65
|
+
**Important:** Read the current version from the `VERSION` file at project root to set `pennyfarthing_version`.
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
# Custom theme: {name}
|
|
69
|
+
# Created by /theme-maker
|
|
70
|
+
|
|
71
|
+
theme:
|
|
72
|
+
name: {Name}
|
|
73
|
+
description: "Custom theme - edit to customize"
|
|
74
|
+
pennyfarthing_version: "{current version from VERSION file}"
|
|
75
|
+
created: {date}
|
|
76
|
+
|
|
77
|
+
agents:
|
|
78
|
+
# Mode handler will populate these (Stories 6-2, 6-3, 6-4)
|
|
79
|
+
orchestrator:
|
|
80
|
+
character: Coordinator
|
|
81
|
+
shortName: Coordinator
|
|
82
|
+
style: Placeholder - run mode handler to customize
|
|
83
|
+
sm:
|
|
84
|
+
character: Coordinator
|
|
85
|
+
shortName: Coordinator
|
|
86
|
+
style: Placeholder - run mode handler to customize
|
|
87
|
+
tea:
|
|
88
|
+
character: Tester
|
|
89
|
+
shortName: Tester
|
|
90
|
+
style: Placeholder - run mode handler to customize
|
|
91
|
+
dev:
|
|
92
|
+
character: Developer
|
|
93
|
+
shortName: Developer
|
|
94
|
+
style: Placeholder - run mode handler to customize
|
|
95
|
+
reviewer:
|
|
96
|
+
character: Reviewer
|
|
97
|
+
shortName: Reviewer
|
|
98
|
+
style: Placeholder - run mode handler to customize
|
|
99
|
+
architect:
|
|
100
|
+
character: Architect
|
|
101
|
+
shortName: Architect
|
|
102
|
+
style: Placeholder - run mode handler to customize
|
|
103
|
+
pm:
|
|
104
|
+
character: Manager
|
|
105
|
+
shortName: Manager
|
|
106
|
+
style: Placeholder - run mode handler to customize
|
|
107
|
+
tech-writer:
|
|
108
|
+
character: Writer
|
|
109
|
+
shortName: Writer
|
|
110
|
+
style: Placeholder - run mode handler to customize
|
|
111
|
+
ux-designer:
|
|
112
|
+
character: Designer
|
|
113
|
+
shortName: Designer
|
|
114
|
+
style: Placeholder - run mode handler to customize
|
|
115
|
+
devops:
|
|
116
|
+
character: Operator
|
|
117
|
+
shortName: Operator
|
|
118
|
+
style: Placeholder - run mode handler to customize
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Step 5: Next Steps
|
|
122
|
+
|
|
123
|
+
After creating the skeleton, tell the user:
|
|
124
|
+
|
|
125
|
+
1. Theme file created at `.claude/pennyfarthing/themes/{name}.yaml`
|
|
126
|
+
2. To activate: `/set-theme {name}`
|
|
127
|
+
3. To customize: Edit the YAML file or run mode handler when available
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## AI-Driven Mode
|
|
132
|
+
|
|
133
|
+
When the user selects AI-Driven mode, generate all 10 agent personas from a single concept description.
|
|
134
|
+
|
|
135
|
+
### Step 1: Get Universe Description
|
|
136
|
+
|
|
137
|
+
Ask the user to describe their theme concept as free-text input:
|
|
138
|
+
|
|
139
|
+
> "Describe your theme universe or concept. Examples: 'noir detective', 'pirates', 'ancient Rome', 'cyberpunk', 'medieval fantasy'"
|
|
140
|
+
|
|
141
|
+
Accept any creative concept - the AI will generate appropriate characters.
|
|
142
|
+
|
|
143
|
+
### Step 2: Generate All Agents
|
|
144
|
+
|
|
145
|
+
Based on the universe description, generate personas for all 10 agents:
|
|
146
|
+
|
|
147
|
+
| Agent | Role to Fill | Character Should Be |
|
|
148
|
+
|-------|--------------|---------------------|
|
|
149
|
+
| orchestrator | Meta-coordinator | Pattern-seer, guide, overseer |
|
|
150
|
+
| sm | Scrum Master | Leader, coordinator, keeps team together |
|
|
151
|
+
| tea | Test Engineer | Analyst, detail-oriented, finds flaws |
|
|
152
|
+
| dev | Developer | Builder, practical, gets things done |
|
|
153
|
+
| reviewer | Code Reviewer | Critical, honest, high standards |
|
|
154
|
+
| architect | System Architect | Big-picture thinker, systems designer |
|
|
155
|
+
| pm | Product Manager | Strategic, stakeholder manager |
|
|
156
|
+
| tech-writer | Documentation | Clear communicator, precise |
|
|
157
|
+
| ux-designer | UX Design | User advocate, feels the experience |
|
|
158
|
+
| devops | Infrastructure | Reliable, keeps systems running |
|
|
159
|
+
|
|
160
|
+
For each agent, generate:
|
|
161
|
+
- `character`: Name fitting the universe
|
|
162
|
+
- `shortName`: Display name for UI (see Short Name Generation below)
|
|
163
|
+
- `visual`: Visual description for portrait generation (see Visual Descriptions below)
|
|
164
|
+
- `ocean`: OCEAN personality profile (see Role-Appropriate OCEAN Profiles below)
|
|
165
|
+
- `style`: 1-2 sentence communication style
|
|
166
|
+
- `expertise`: Areas of expertise in the universe context
|
|
167
|
+
- `role`: Role description within the universe
|
|
168
|
+
- `trait`: Character traits
|
|
169
|
+
- `quote`: Signature quote that captures their personality
|
|
170
|
+
- `emoji`: Single emoji representing them
|
|
171
|
+
- `helper`: Assistant with name and communication style
|
|
172
|
+
|
|
173
|
+
#### Short Name Generation
|
|
174
|
+
|
|
175
|
+
The `shortName` is a concise display name for portrait labels. Follow this priority:
|
|
176
|
+
|
|
177
|
+
1. **Quoted nicknames first**: If character has a quoted nickname like "Hannibal" or "Starbuck", use it
|
|
178
|
+
2. **Unique first name**: If first name is unique among all characters in the theme
|
|
179
|
+
3. **Unique surname**: If surname distinguishes the character
|
|
180
|
+
4. **First + Last**: If needed for disambiguation
|
|
181
|
+
5. **Iconic names**: Keep full for iconic two-word names (e.g., "Big Brother", "Sun Tzu")
|
|
182
|
+
|
|
183
|
+
Skip titles like "Dr.", "Captain", "President" when extracting shortName.
|
|
184
|
+
|
|
185
|
+
Examples:
|
|
186
|
+
- `Colonel John "Hannibal" Smith` → `Hannibal`
|
|
187
|
+
- `Kara "Starbuck" Thrace` → `Starbuck`
|
|
188
|
+
- `President Josiah Bartlet` → `Josiah`
|
|
189
|
+
- `Big Brother` → `Big Brother` (iconic, keep full)
|
|
190
|
+
|
|
191
|
+
#### Visual Descriptions
|
|
192
|
+
|
|
193
|
+
The `visual` field provides a portrait prompt for image generation. These descriptions are used by `./scripts/generate-portraits.sh` to create woodcut-style portraits.
|
|
194
|
+
|
|
195
|
+
**Guidelines:**
|
|
196
|
+
- Focus on physical appearance, distinctive features, and visual props
|
|
197
|
+
- Include clothing, expression, and setting elements
|
|
198
|
+
- Be specific and visual - describe what a portrait would show
|
|
199
|
+
- Avoid abstract concepts - translate personality to visual cues
|
|
200
|
+
|
|
201
|
+
**Examples:**
|
|
202
|
+
- `"Stout sea captain in blue shirt and captain's hat, frustrated but caring expression"`
|
|
203
|
+
- `"Scholarly man with glasses, surrounded by coconut-based inventions, explaining something"`
|
|
204
|
+
- `"Massive bound wolf with fierce eyes, chains visible, barely contained power"`
|
|
205
|
+
- `"Elegant socialite with pearls, perfectly coiffed hair, holding documentation"`
|
|
206
|
+
|
|
207
|
+
**For non-character entities** (like objects or places used as personas):
|
|
208
|
+
- Describe them visually as if they were a character
|
|
209
|
+
- `"Bamboo and coconut radio receiver with antenna, static crackling"` (for The Radio)
|
|
210
|
+
- `"Crystal clear tropical lagoon surrounded by palm trees, naturally inviting"` (for The Lagoon)
|
|
211
|
+
|
|
212
|
+
#### Role-Appropriate OCEAN Profiles
|
|
213
|
+
|
|
214
|
+
When generating OCEAN scores, balance character personality with role requirements. Each dimension uses a 1-5 scale. Include a brief rationale comment for each score.
|
|
215
|
+
|
|
216
|
+
| Agent | Recommended Profile | Rationale |
|
|
217
|
+
|-------|---------------------|-----------|
|
|
218
|
+
| orchestrator | High O (4-5), Moderate C (3-4) | Pattern-seer needs openness to possibilities |
|
|
219
|
+
| sm | High A (4-5), Moderate C (3-4) | Coordination requires agreeableness |
|
|
220
|
+
| tea | High C (4-5), High O (4-5) | Testing needs conscientiousness + creativity |
|
|
221
|
+
| dev | High C (4-5), Moderate O (3-4) | Building needs discipline + problem-solving |
|
|
222
|
+
| reviewer | High C (4-5), Low A (2-3) | Critical review prioritizes standards over harmony |
|
|
223
|
+
| architect | High O (4-5), High C (4-5) | Design needs vision + structure |
|
|
224
|
+
| pm | High E (4-5), High A (4-5) | Stakeholder mgmt needs sociability |
|
|
225
|
+
| tech-writer | High C (4-5), Low N (1-2) | Documentation needs precision + calm |
|
|
226
|
+
| ux-designer | High A (4-5), High O (4-5) | User advocacy needs empathy + creativity |
|
|
227
|
+
| devops | High C (4-5), Low N (1-2) | Operations needs reliability + stability |
|
|
228
|
+
|
|
229
|
+
Reference `OCEAN-BENCHMARKING.md` for detailed guidance on personality-to-role mapping.
|
|
230
|
+
|
|
231
|
+
### Step 3: Preview Generated Theme
|
|
232
|
+
|
|
233
|
+
Display a preview of all generated agents before confirming:
|
|
234
|
+
|
|
235
|
+
```
|
|
236
|
+
## Theme Preview: {name}
|
|
237
|
+
|
|
238
|
+
**Universe:** {user's concept}
|
|
239
|
+
|
|
240
|
+
| Agent | Character | Short | Style |
|
|
241
|
+
|-------|-----------|-------|-------|
|
|
242
|
+
| orchestrator | {name} | {shortName} | {style summary} |
|
|
243
|
+
| sm | {name} | {shortName} | {style summary} |
|
|
244
|
+
| tea | {name} | {shortName} | {style summary} |
|
|
245
|
+
| dev | {name} | {shortName} | {style summary} |
|
|
246
|
+
| reviewer | {name} | {shortName} | {style summary} |
|
|
247
|
+
| architect | {name} | {shortName} | {style summary} |
|
|
248
|
+
| pm | {name} | {shortName} | {style summary} |
|
|
249
|
+
| tech-writer | {name} | {shortName} | {style summary} |
|
|
250
|
+
| ux-designer | {name} | {shortName} | {style summary} |
|
|
251
|
+
| devops | {name} | {shortName} | {style summary} |
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Step 4: Confirm or Regenerate
|
|
255
|
+
|
|
256
|
+
Use `AskUserQuestion` to let the user decide:
|
|
257
|
+
|
|
258
|
+
```yaml
|
|
259
|
+
questions:
|
|
260
|
+
- question: "How does this theme look?"
|
|
261
|
+
header: "Confirm"
|
|
262
|
+
options:
|
|
263
|
+
- label: "Looks great, save it!"
|
|
264
|
+
description: "Write the theme file and activate it"
|
|
265
|
+
- label: "Regenerate"
|
|
266
|
+
description: "Generate a fresh set of characters from the same concept"
|
|
267
|
+
- label: "Try different concept"
|
|
268
|
+
description: "Go back and describe a different universe"
|
|
269
|
+
multiSelect: false
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
If **Regenerate**: Generate a completely new set of characters and return to Step 3.
|
|
273
|
+
|
|
274
|
+
If **Confirm**: Write the complete theme file and proceed to Step 5.
|
|
275
|
+
|
|
276
|
+
### Step 5: Write Theme File
|
|
277
|
+
|
|
278
|
+
Write the complete theme to `.claude/pennyfarthing/themes/{name}.yaml` with full YAML structure.
|
|
279
|
+
|
|
280
|
+
**Important:** Read the current version from the `VERSION` file at project root to set `pennyfarthing_version`.
|
|
281
|
+
|
|
282
|
+
```yaml
|
|
283
|
+
# Custom theme: {name}
|
|
284
|
+
# Created by /theme-maker AI-Driven mode
|
|
285
|
+
# Universe: {user's concept}
|
|
286
|
+
|
|
287
|
+
theme:
|
|
288
|
+
name: {Name}
|
|
289
|
+
description: "{Generated description based on concept}"
|
|
290
|
+
source: "AI-generated from: {concept}"
|
|
291
|
+
default_emoji_use: minimal
|
|
292
|
+
default_humor: enabled
|
|
293
|
+
character_immersion: high
|
|
294
|
+
user_title: {Appropriate title}
|
|
295
|
+
pennyfarthing_version: "{current version from VERSION file}"
|
|
296
|
+
created: {date}
|
|
297
|
+
|
|
298
|
+
agents:
|
|
299
|
+
orchestrator:
|
|
300
|
+
character: {generated}
|
|
301
|
+
shortName: {generated - see Short Name Generation}
|
|
302
|
+
visual: "{generated - see Visual Descriptions}"
|
|
303
|
+
ocean:
|
|
304
|
+
O: {1-5} # {rationale - e.g., "Cosmic awareness"}
|
|
305
|
+
C: {1-5} # {rationale}
|
|
306
|
+
E: {1-5} # {rationale}
|
|
307
|
+
A: {1-5} # {rationale}
|
|
308
|
+
N: {1-5} # {rationale}
|
|
309
|
+
style: {generated}
|
|
310
|
+
expertise: {generated}
|
|
311
|
+
role: {generated}
|
|
312
|
+
trait: {generated}
|
|
313
|
+
quote: "{generated}"
|
|
314
|
+
emoji: "{generated}"
|
|
315
|
+
helper:
|
|
316
|
+
name: {generated}
|
|
317
|
+
style: "{generated}"
|
|
318
|
+
# ... all 10 agents with complete definitions including ocean blocks, shortName, and visual
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
**OCEAN Validation:** Before writing the theme file, verify all OCEAN profiles are complete and valid:
|
|
322
|
+
- All 10 agents have `ocean:` blocks with O, C, E, A, N keys
|
|
323
|
+
- All scores are integers 1-5
|
|
324
|
+
- Each score has a rationale comment
|
|
325
|
+
|
|
326
|
+
Use `validateThemeSchema()` from `src/cli/utils/themes.ts` to verify the generated theme is valid before writing.
|
|
327
|
+
|
|
328
|
+
### Step 6: Generate Portraits (Optional)
|
|
329
|
+
|
|
330
|
+
After writing the theme file, offer to generate portraits:
|
|
331
|
+
|
|
332
|
+
```yaml
|
|
333
|
+
questions:
|
|
334
|
+
- question: "Would you like to generate portraits for this theme?"
|
|
335
|
+
header: "Portraits"
|
|
336
|
+
options:
|
|
337
|
+
- label: "Yes, generate portraits"
|
|
338
|
+
description: "Run portrait generator using Stable Diffusion SDXL (requires GPU/MPS)"
|
|
339
|
+
- label: "No, skip portraits"
|
|
340
|
+
description: "Theme file is ready, portraits can be generated later"
|
|
341
|
+
multiSelect: false
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
**If Yes:** Run the portrait generator:
|
|
345
|
+
|
|
346
|
+
```bash
|
|
347
|
+
./scripts/generate-portraits.sh --theme {theme-name}
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
**Generate a single agent's portrait:**
|
|
351
|
+
```bash
|
|
352
|
+
./scripts/generate-portraits.sh --theme {theme-name} --role {role}
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
**Requirements:**
|
|
356
|
+
- Python 3 venv at `.venv/` with: `pip install diffusers transformers accelerate torch pillow pyyaml tqdm`
|
|
357
|
+
- Apple Silicon Mac (MPS) or NVIDIA GPU (CUDA)
|
|
358
|
+
- First run downloads ~6.5GB SDXL model
|
|
359
|
+
|
|
360
|
+
**Dry run first:** To preview what will be generated:
|
|
361
|
+
```bash
|
|
362
|
+
./scripts/generate-portraits.sh --theme {theme-name} --dry-run
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**Output:** `pennyfarthing-dist/personas/portraits/{theme}/{shortName}-{OCEAN}.png`
|
|
366
|
+
|
|
367
|
+
**If generation fails:** The theme file is still valid - portraits can be generated later manually.
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## Guided Mode
|
|
372
|
+
|
|
373
|
+
When the user selects Guided mode, walk through each agent and suggest 3-4 character options for them to pick.
|
|
374
|
+
|
|
375
|
+
### Step 1: Get Universe Description
|
|
376
|
+
|
|
377
|
+
Same as AI-Driven mode - ask for the theme concept:
|
|
378
|
+
|
|
379
|
+
> "Describe your theme universe or concept."
|
|
380
|
+
|
|
381
|
+
### Step 2: Generate Options for Each Agent
|
|
382
|
+
|
|
383
|
+
For each agent type, generate 3-4 fitting character suggestions based on the universe. Present options using `AskUserQuestion`:
|
|
384
|
+
|
|
385
|
+
```yaml
|
|
386
|
+
questions:
|
|
387
|
+
- question: "Who should be your SM (Scrum Master - team leader)?"
|
|
388
|
+
header: "SM"
|
|
389
|
+
options:
|
|
390
|
+
- label: "{Character 1}"
|
|
391
|
+
description: "{Brief description fitting the universe}"
|
|
392
|
+
- label: "{Character 2}"
|
|
393
|
+
description: "{Brief description}"
|
|
394
|
+
- label: "{Character 3}"
|
|
395
|
+
description: "{Brief description}"
|
|
396
|
+
- label: "Other"
|
|
397
|
+
description: "Enter a custom character name"
|
|
398
|
+
multiSelect: false
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
If user selects "Other", prompt for custom character name as free text.
|
|
402
|
+
|
|
403
|
+
**Agent Order:**
|
|
404
|
+
1. orchestrator
|
|
405
|
+
2. sm
|
|
406
|
+
3. tea
|
|
407
|
+
4. dev
|
|
408
|
+
5. reviewer
|
|
409
|
+
6. architect
|
|
410
|
+
7. pm
|
|
411
|
+
8. tech-writer
|
|
412
|
+
9. ux-designer
|
|
413
|
+
10. devops
|
|
414
|
+
|
|
415
|
+
### Step 3: Generate Details and OCEAN Profiles
|
|
416
|
+
|
|
417
|
+
After the user picks a character for each agent, generate the remaining fields:
|
|
418
|
+
- `ocean`: OCEAN personality profile (see AI-Driven mode for role-appropriate profiles)
|
|
419
|
+
- `style`: Communication style fitting the character
|
|
420
|
+
- `trait`: Key personality traits
|
|
421
|
+
- `quote`: Signature quote
|
|
422
|
+
- `emoji`: Representative emoji
|
|
423
|
+
- `helper`: Assistant name and style
|
|
424
|
+
|
|
425
|
+
The AI fills in these details based on the selected character and universe context.
|
|
426
|
+
|
|
427
|
+
#### OCEAN Generation for Selected Characters
|
|
428
|
+
|
|
429
|
+
When generating OCEAN profiles in Guided mode:
|
|
430
|
+
1. Consider the selected character's known personality traits
|
|
431
|
+
2. Balance character personality with agent role requirements (see Role-Appropriate OCEAN Profiles in AI-Driven mode)
|
|
432
|
+
3. Show reasoning to the user, e.g.:
|
|
433
|
+
> "**OCEAN Profile for Kirk (SM):** High E (5) for charismatic command, High A (4) for crew devotion, High C (4) for Starfleet discipline..."
|
|
434
|
+
4. Include rationale comments in the YAML output
|
|
435
|
+
|
|
436
|
+
### Step 4: Preview Theme with OCEAN Profiles
|
|
437
|
+
|
|
438
|
+
Show a preview of the complete theme before confirming. Include OCEAN scores for each agent:
|
|
439
|
+
|
|
440
|
+
```
|
|
441
|
+
### Theme Preview: {name}
|
|
442
|
+
|
|
443
|
+
**Universe:** {concept}
|
|
444
|
+
|
|
445
|
+
| Agent | Character | Short | Style | OCEAN |
|
|
446
|
+
|-------|-----------|-------|-------|-------|
|
|
447
|
+
| orchestrator | {selected} | {shortName} | {generated style} | O:{n} C:{n} E:{n} A:{n} N:{n} |
|
|
448
|
+
| sm | {selected} | {shortName} | {generated style} | O:{n} C:{n} E:{n} A:{n} N:{n} |
|
|
449
|
+
| tea | {selected} | {shortName} | {generated style} | O:{n} C:{n} E:{n} A:{n} N:{n} |
|
|
450
|
+
| dev | {selected} | {shortName} | {generated style} | O:{n} C:{n} E:{n} A:{n} N:{n} |
|
|
451
|
+
| reviewer | {selected} | {shortName} | {generated style} | O:{n} C:{n} E:{n} A:{n} N:{n} |
|
|
452
|
+
| architect | {selected} | {shortName} | {generated style} | O:{n} C:{n} E:{n} A:{n} N:{n} |
|
|
453
|
+
| pm | {selected} | {shortName} | {generated style} | O:{n} C:{n} E:{n} A:{n} N:{n} |
|
|
454
|
+
| tech-writer | {selected} | {shortName} | {generated style} | O:{n} C:{n} E:{n} A:{n} N:{n} |
|
|
455
|
+
| ux-designer | {selected} | {shortName} | {generated style} | O:{n} C:{n} E:{n} A:{n} N:{n} |
|
|
456
|
+
| devops | {selected} | {shortName} | {generated style} | O:{n} C:{n} E:{n} A:{n} N:{n} |
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
### Step 5: Confirm or Edit
|
|
460
|
+
|
|
461
|
+
Use `AskUserQuestion` to let the user decide:
|
|
462
|
+
|
|
463
|
+
```yaml
|
|
464
|
+
questions:
|
|
465
|
+
- question: "How does this theme look?"
|
|
466
|
+
header: "Confirm"
|
|
467
|
+
options:
|
|
468
|
+
- label: "Looks great, save it!"
|
|
469
|
+
description: "Write the theme file"
|
|
470
|
+
- label: "Go back and change selections"
|
|
471
|
+
description: "Edit previous character choices"
|
|
472
|
+
- label: "Start over"
|
|
473
|
+
description: "Return to universe description"
|
|
474
|
+
multiSelect: false
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
If **Go back**: Allow editing previous selections by showing the agent list and letting user pick which to change.
|
|
478
|
+
|
|
479
|
+
If **Confirm**: Write the complete theme file using the same format as AI-Driven mode, including OCEAN blocks with rationale comments for all 10 agents.
|
|
480
|
+
|
|
481
|
+
**OCEAN Validation:** Before writing, verify all OCEAN profiles are complete (see AI-Driven mode validation checklist).
|
|
482
|
+
|
|
483
|
+
### Navigation
|
|
484
|
+
|
|
485
|
+
Users can go back to change previous selections at any point during the agent selection process. Track selections and allow revisiting any agent before final confirmation.
|
|
486
|
+
|
|
487
|
+
---
|
|
488
|
+
|
|
489
|
+
## Manual Mode
|
|
490
|
+
|
|
491
|
+
When the user selects Manual mode, they specify character, style, and quote for each agent directly. No AI suggestions - full control.
|
|
492
|
+
|
|
493
|
+
### Step 1: Get Theme Description
|
|
494
|
+
|
|
495
|
+
Ask the user to describe their theme for the metadata:
|
|
496
|
+
|
|
497
|
+
> "Provide a brief description for your theme (1-2 sentences). This appears in theme listings."
|
|
498
|
+
|
|
499
|
+
Example: "Characters from 1940s noir detective fiction"
|
|
500
|
+
|
|
501
|
+
### Step 2: Collect Agent Details
|
|
502
|
+
|
|
503
|
+
For each agent, collect three pieces of information. Use free-text prompts (not AskUserQuestion with options).
|
|
504
|
+
|
|
505
|
+
**Agent Order:**
|
|
506
|
+
1. sm
|
|
507
|
+
2. tea
|
|
508
|
+
3. dev
|
|
509
|
+
4. reviewer
|
|
510
|
+
5. architect
|
|
511
|
+
6. pm
|
|
512
|
+
7. tech-writer
|
|
513
|
+
8. ux-designer
|
|
514
|
+
9. devops
|
|
515
|
+
10. orchestrator
|
|
516
|
+
|
|
517
|
+
For each agent, ask:
|
|
518
|
+
|
|
519
|
+
> "**{Agent} ({role description})**"
|
|
520
|
+
> "Character name (or 'skip' to use default):"
|
|
521
|
+
|
|
522
|
+
If not skipped, continue:
|
|
523
|
+
> "Communication style (1-2 sentences):"
|
|
524
|
+
> "Signature quote:"
|
|
525
|
+
|
|
526
|
+
**Skip Handling:**
|
|
527
|
+
If user types "skip", use these defaults:
|
|
528
|
+
- character: Generic role name (e.g., "Coordinator" for sm)
|
|
529
|
+
- style: "Professional and direct"
|
|
530
|
+
- quote: (leave empty)
|
|
531
|
+
|
|
532
|
+
**Role Descriptions for Prompts:**
|
|
533
|
+
|
|
534
|
+
| Agent | Role Description |
|
|
535
|
+
|-------|------------------|
|
|
536
|
+
| sm | Scrum Master - team leader, coordinator |
|
|
537
|
+
| tea | Test Engineer - analyst, finds flaws |
|
|
538
|
+
| dev | Developer - builder, practical |
|
|
539
|
+
| reviewer | Code Reviewer - critical, high standards |
|
|
540
|
+
| architect | System Architect - big-picture designer |
|
|
541
|
+
| pm | Product Manager - strategic planner |
|
|
542
|
+
| tech-writer | Technical Writer - clear communicator |
|
|
543
|
+
| ux-designer | UX Designer - user advocate |
|
|
544
|
+
| devops | DevOps Engineer - infrastructure, reliability |
|
|
545
|
+
| orchestrator | Orchestrator - meta-coordinator, pattern-seer |
|
|
546
|
+
|
|
547
|
+
### Step 3: OCEAN Profile Option
|
|
548
|
+
|
|
549
|
+
After collecting character details, offer the user a choice for OCEAN profiles:
|
|
550
|
+
|
|
551
|
+
```yaml
|
|
552
|
+
questions:
|
|
553
|
+
- question: "How would you like to handle OCEAN personality profiles?"
|
|
554
|
+
header: "OCEAN"
|
|
555
|
+
options:
|
|
556
|
+
- label: "Auto-generate (Recommended)"
|
|
557
|
+
description: "Generate OCEAN scores based on character traits and agent roles"
|
|
558
|
+
- label: "Specify manually"
|
|
559
|
+
description: "Enter O/C/E/A/N scores (1-5) for each agent"
|
|
560
|
+
multiSelect: false
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
**If Auto-generate:** Generate OCEAN profiles based on:
|
|
564
|
+
1. Character personality derived from their style and quotes
|
|
565
|
+
2. Agent role requirements (see Role-Appropriate OCEAN Profiles in AI-Driven mode)
|
|
566
|
+
3. Show generated profiles to user before finalizing
|
|
567
|
+
|
|
568
|
+
**If Specify manually:** For each agent, prompt:
|
|
569
|
+
> "**OCEAN for {character} ({agent})** - Enter scores 1-5 for each dimension:"
|
|
570
|
+
> "O (Openness): "
|
|
571
|
+
> "C (Conscientiousness): "
|
|
572
|
+
> "E (Extraversion): "
|
|
573
|
+
> "A (Agreeableness): "
|
|
574
|
+
> "N (Neuroticism): "
|
|
575
|
+
> "Brief rationale (optional): "
|
|
576
|
+
|
|
577
|
+
### Step 4: Generate Remaining Fields
|
|
578
|
+
|
|
579
|
+
After OCEAN profiles are determined, generate the remaining fields for each agent:
|
|
580
|
+
- `expertise`: Areas of expertise based on character and role
|
|
581
|
+
- `role`: Role description within the theme context
|
|
582
|
+
- `trait`: Key personality traits derived from style
|
|
583
|
+
- `emoji`: Single representative emoji
|
|
584
|
+
- `helper`: Assistant name and style fitting the character
|
|
585
|
+
|
|
586
|
+
### Step 5: Preview Theme with OCEAN
|
|
587
|
+
|
|
588
|
+
Show a preview of the complete theme including OCEAN profiles:
|
|
589
|
+
|
|
590
|
+
```
|
|
591
|
+
## Theme Preview: {name}
|
|
592
|
+
|
|
593
|
+
**Description:** {user's description}
|
|
594
|
+
|
|
595
|
+
| Agent | Character | Short | Style | OCEAN | Quote |
|
|
596
|
+
|-------|-----------|-------|-------|-------|-------|
|
|
597
|
+
| sm | {provided} | {shortName} | {provided} | O:{n} C:{n} E:{n} A:{n} N:{n} | {provided} |
|
|
598
|
+
| tea | {provided} | {shortName} | {provided} | O:{n} C:{n} E:{n} A:{n} N:{n} | {provided} |
|
|
599
|
+
| dev | {provided} | {shortName} | {provided} | O:{n} C:{n} E:{n} A:{n} N:{n} | {provided} |
|
|
600
|
+
| reviewer | {provided} | {shortName} | {provided} | O:{n} C:{n} E:{n} A:{n} N:{n} | {provided} |
|
|
601
|
+
| architect | {provided} | {shortName} | {provided} | O:{n} C:{n} E:{n} A:{n} N:{n} | {provided} |
|
|
602
|
+
| pm | {provided} | {shortName} | {provided} | O:{n} C:{n} E:{n} A:{n} N:{n} | {provided} |
|
|
603
|
+
| tech-writer | {provided} | {shortName} | {provided} | O:{n} C:{n} E:{n} A:{n} N:{n} | {provided} |
|
|
604
|
+
| ux-designer | {provided} | {shortName} | {provided} | O:{n} C:{n} E:{n} A:{n} N:{n} | {provided} |
|
|
605
|
+
| devops | {provided} | {shortName} | {provided} | O:{n} C:{n} E:{n} A:{n} N:{n} | {provided} |
|
|
606
|
+
| orchestrator | {provided} | {shortName} | {provided} | O:{n} C:{n} E:{n} A:{n} N:{n} | {provided} |
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
### Step 6: Confirm or Edit
|
|
610
|
+
|
|
611
|
+
Use `AskUserQuestion` to let the user decide:
|
|
612
|
+
|
|
613
|
+
```yaml
|
|
614
|
+
questions:
|
|
615
|
+
- question: "How does this theme look?"
|
|
616
|
+
header: "Confirm"
|
|
617
|
+
options:
|
|
618
|
+
- label: "Looks great, save it!"
|
|
619
|
+
description: "Write the theme file"
|
|
620
|
+
- label: "Edit an agent"
|
|
621
|
+
description: "Change details for a specific agent"
|
|
622
|
+
- label: "Start over"
|
|
623
|
+
description: "Begin from scratch"
|
|
624
|
+
multiSelect: false
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
If **Edit an agent**: Ask which agent to edit, then re-prompt for that agent's details only. Also offer to edit OCEAN scores.
|
|
628
|
+
|
|
629
|
+
If **Confirm**: Write the complete theme file using the same format as AI-Driven mode, including OCEAN blocks.
|
|
630
|
+
|
|
631
|
+
### Theme File Output
|
|
632
|
+
|
|
633
|
+
Write to `.claude/pennyfarthing/themes/{name}.yaml`:
|
|
634
|
+
|
|
635
|
+
```yaml
|
|
636
|
+
# Custom theme: {name}
|
|
637
|
+
# Created by /theme-maker Manual mode
|
|
638
|
+
|
|
639
|
+
theme:
|
|
640
|
+
name: {Name}
|
|
641
|
+
description: "{user's description}"
|
|
642
|
+
source: "Manually created"
|
|
643
|
+
default_emoji_use: minimal
|
|
644
|
+
default_humor: enabled
|
|
645
|
+
character_immersion: high
|
|
646
|
+
pennyfarthing_version: "{current version from VERSION file}"
|
|
647
|
+
created: {date}
|
|
648
|
+
|
|
649
|
+
agents:
|
|
650
|
+
sm:
|
|
651
|
+
character: {user provided}
|
|
652
|
+
shortName: {generated - see Short Name Generation}
|
|
653
|
+
ocean:
|
|
654
|
+
O: {1-5} # {rationale}
|
|
655
|
+
C: {1-5} # {rationale}
|
|
656
|
+
E: {1-5} # {rationale}
|
|
657
|
+
A: {1-5} # {rationale}
|
|
658
|
+
N: {1-5} # {rationale}
|
|
659
|
+
style: {user provided}
|
|
660
|
+
expertise: {AI generated}
|
|
661
|
+
role: {AI generated}
|
|
662
|
+
trait: {AI generated from style}
|
|
663
|
+
quote: "{user provided}"
|
|
664
|
+
emoji: "{AI generated}"
|
|
665
|
+
helper:
|
|
666
|
+
name: {AI generated}
|
|
667
|
+
style: "{AI generated}"
|
|
668
|
+
# ... all 10 agents with ocean blocks
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
**OCEAN Validation:** Before writing, verify all OCEAN profiles are complete:
|
|
672
|
+
- All 10 agents have `ocean:` blocks with O, C, E, A, N keys
|
|
673
|
+
- All scores are integers 1-5
|
|
674
|
+
- Each score has a rationale comment
|
|
675
|
+
|
|
676
|
+
Use `validateThemeSchema()` from `src/cli/utils/themes.ts` to verify the theme is valid before writing.
|