@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,338 @@
|
|
|
1
|
+
# Prompt Patterns Guide
|
|
2
|
+
|
|
3
|
+
This document describes the prompt engineering patterns used in Pennyfarthing, based on [Anthropic's official documentation](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview).
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Why XML Tags?
|
|
8
|
+
|
|
9
|
+
From [Anthropic's documentation](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/use-xml-tags):
|
|
10
|
+
|
|
11
|
+
> When your prompts involve multiple components like context, instructions, and examples, XML tags can be a game-changer. They help Claude parse your prompts more accurately, leading to higher-quality outputs.
|
|
12
|
+
|
|
13
|
+
**Benefits:**
|
|
14
|
+
- **Clarity:** Clearly separate different parts of your prompt
|
|
15
|
+
- **Accuracy:** Reduce errors caused by Claude misinterpreting parts of your prompt
|
|
16
|
+
- **Flexibility:** Easily find, add, remove, or modify parts without rewriting everything
|
|
17
|
+
- **Parseability:** Makes it easier to extract specific parts of Claude's response
|
|
18
|
+
|
|
19
|
+
**Key insight from Anthropic:**
|
|
20
|
+
> There are no canonical "best" XML tags that Claude has been trained with in particular, although we recommend that your tag names make sense with the information they surround.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Anthropic's Best Practices
|
|
25
|
+
|
|
26
|
+
### 1. Be Consistent
|
|
27
|
+
|
|
28
|
+
Use the same tag names throughout your prompts, and refer to those tag names when talking about the content:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Using the contract in <contract> tags, analyze the liability clauses.
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 2. Nest Tags for Hierarchy
|
|
35
|
+
|
|
36
|
+
```xml
|
|
37
|
+
<outer>
|
|
38
|
+
<inner>
|
|
39
|
+
Content here
|
|
40
|
+
</inner>
|
|
41
|
+
</outer>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 3. Combine with Other Techniques
|
|
45
|
+
|
|
46
|
+
Combine XML tags with:
|
|
47
|
+
- **Multishot prompting:** `<examples>`
|
|
48
|
+
- **Chain of thought:** `<thinking>`, `<answer>`
|
|
49
|
+
- **Role prompting:** System message for role, XML for structure
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Pennyfarthing Tag Conventions
|
|
54
|
+
|
|
55
|
+
### Agent Lifecycle Tags
|
|
56
|
+
|
|
57
|
+
| Tag | Purpose | When Applied |
|
|
58
|
+
|-----|---------|--------------|
|
|
59
|
+
| `<agent-activation>` | Step-by-step activation sequence | On agent start |
|
|
60
|
+
| `<agent-exit>` | Cleanup steps when leaving | On "exit" or switch |
|
|
61
|
+
| `<persona-loading>` | Instructions for loading character | Before activation |
|
|
62
|
+
|
|
63
|
+
### Guidance Tags
|
|
64
|
+
|
|
65
|
+
| Tag | Purpose | Used By |
|
|
66
|
+
|-----|---------|---------|
|
|
67
|
+
| `<blessed-path-guidance>` | Explains the primary workflow | Tactical agents |
|
|
68
|
+
| `<support-agent-guidance>` | Clarifies this is a support agent | PM, Architect, etc. |
|
|
69
|
+
|
|
70
|
+
### Attribute Patterns
|
|
71
|
+
|
|
72
|
+
Use attributes to signal importance or provide metadata:
|
|
73
|
+
|
|
74
|
+
```xml
|
|
75
|
+
<agent-activation CRITICAL="TRUE">
|
|
76
|
+
These steps MUST be followed exactly.
|
|
77
|
+
</agent-activation>
|
|
78
|
+
|
|
79
|
+
<persona-loading agent="dev">
|
|
80
|
+
Load the dev agent's persona.
|
|
81
|
+
</persona-loading>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Tag Reference
|
|
87
|
+
|
|
88
|
+
### `<agent-activation CRITICAL="TRUE">`
|
|
89
|
+
|
|
90
|
+
The core activation sequence for every agent. The `CRITICAL="TRUE"` attribute signals this must be followed exactly.
|
|
91
|
+
|
|
92
|
+
**Structure:**
|
|
93
|
+
```xml
|
|
94
|
+
<agent-activation CRITICAL="TRUE">
|
|
95
|
+
1. LOAD shared behavior from .pennyfarthing/guides/agent-behavior.md
|
|
96
|
+
2. LOAD the FULL agent file from .pennyfarthing/agents/{agent}.md
|
|
97
|
+
3. READ its entire contents
|
|
98
|
+
4. LOAD SIDECAR MEMORY:
|
|
99
|
+
```bash
|
|
100
|
+
SIDECAR="$CLAUDE_PROJECT_DIR/.claude/project/agents/{agent}-sidecar"
|
|
101
|
+
[ -d "$SIDECAR" ] && cat "$SIDECAR"/*.md 2>/dev/null | head -150
|
|
102
|
+
```
|
|
103
|
+
5. Execute ALL activation steps exactly as written
|
|
104
|
+
6. Apply the loaded persona throughout the session
|
|
105
|
+
7. Stay in character until exit
|
|
106
|
+
</agent-activation>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### `<agent-exit>`
|
|
110
|
+
|
|
111
|
+
Cleanup steps when the agent exits or switches.
|
|
112
|
+
|
|
113
|
+
**Structure:**
|
|
114
|
+
```xml
|
|
115
|
+
<agent-exit>
|
|
116
|
+
When the user says "exit", "switch agent", or ends the session:
|
|
117
|
+
1. CAPTURE LEARNINGS: Ask yourself - any patterns, gotchas, or decisions to save?
|
|
118
|
+
If yes, append to `.claude/project/agents/{agent}-sidecar/{patterns|gotchas|decisions}.md`
|
|
119
|
+
2. Run: [session stop command]
|
|
120
|
+
3. Confirm session closed.
|
|
121
|
+
</agent-exit>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### `<persona-loading agent="X">`
|
|
125
|
+
|
|
126
|
+
Instructions for loading the agent's character from the theme system.
|
|
127
|
+
|
|
128
|
+
**Structure:**
|
|
129
|
+
```xml
|
|
130
|
+
<persona-loading agent="dev">
|
|
131
|
+
Load this agent's persona before activation:
|
|
132
|
+
1. Read `.pennyfarthing/config.local.yaml`
|
|
133
|
+
2. Get `theme` value (default: "discworld")
|
|
134
|
+
3. Read `.pennyfarthing/personas/themes/{theme}.yaml`
|
|
135
|
+
4. Extract `agents.{agent}` section (character, style, helper, etc.)
|
|
136
|
+
5. Apply `attributes` from config (verbosity, formality, humor, emoji_use)
|
|
137
|
+
</persona-loading>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### `<blessed-path-guidance>`
|
|
141
|
+
|
|
142
|
+
Explains the primary "happy path" workflow for tactical agents.
|
|
143
|
+
|
|
144
|
+
**Purpose:** Guides users to use `/new-work` rather than invoking agents directly.
|
|
145
|
+
|
|
146
|
+
**Structure:**
|
|
147
|
+
```xml
|
|
148
|
+
<blessed-path-guidance>
|
|
149
|
+
## The Blessed Path
|
|
150
|
+
|
|
151
|
+
**For story-based development work:**
|
|
152
|
+
|
|
153
|
+
| Command | When to Use |
|
|
154
|
+
|---------|-------------|
|
|
155
|
+
| `/new-work` | Start a NEW story from the backlog |
|
|
156
|
+
|
|
157
|
+
**The TDD Flow:** `/new-work` -> SM -> TEA -> Dev -> Reviewer -> SM (finish)
|
|
158
|
+
|
|
159
|
+
**Other commands exist** but are not part of the main dev loop.
|
|
160
|
+
</blessed-path-guidance>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### `<support-agent-guidance>`
|
|
164
|
+
|
|
165
|
+
Clarifies that an agent is outside the core TDD loop.
|
|
166
|
+
|
|
167
|
+
**Structure:**
|
|
168
|
+
```xml
|
|
169
|
+
<support-agent-guidance>
|
|
170
|
+
## About This Agent
|
|
171
|
+
|
|
172
|
+
This agent supports the development process but is **not part of the core TDD loop**.
|
|
173
|
+
|
|
174
|
+
**The Core TDD Loop:** `/new-work` -> SM -> TEA -> Dev -> Reviewer -> SM
|
|
175
|
+
|
|
176
|
+
**When to use {Agent}:**
|
|
177
|
+
- {Use case 1}
|
|
178
|
+
- {Use case 2}
|
|
179
|
+
|
|
180
|
+
**To start story-based development work,** use `/new-work` instead.
|
|
181
|
+
</support-agent-guidance>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Role Prompting
|
|
187
|
+
|
|
188
|
+
From [Anthropic's documentation](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/system-prompts):
|
|
189
|
+
|
|
190
|
+
> When using Claude, you can dramatically improve its performance by using the `system` parameter to give it a role. This technique, known as role prompting, is the most powerful way to use system prompts with Claude.
|
|
191
|
+
|
|
192
|
+
**Benefits:**
|
|
193
|
+
- **Enhanced accuracy:** In complex scenarios, role prompting significantly boosts performance
|
|
194
|
+
- **Tailored tone:** Adjusts Claude's communication style
|
|
195
|
+
- **Improved focus:** Keeps Claude within task-specific requirements
|
|
196
|
+
|
|
197
|
+
### Pennyfarthing's Approach
|
|
198
|
+
|
|
199
|
+
We use the **persona system** for role prompting:
|
|
200
|
+
|
|
201
|
+
1. **Theme files** define characters (e.g., Discworld theme)
|
|
202
|
+
2. **Persona-loading** instructions tell Claude to adopt the character
|
|
203
|
+
3. **Agent files** provide the role's expertise and workflows
|
|
204
|
+
|
|
205
|
+
This separates:
|
|
206
|
+
- **Who you are** (persona) from
|
|
207
|
+
- **What you do** (agent instructions) from
|
|
208
|
+
- **How you do it** (shared behavior)
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Common Patterns
|
|
213
|
+
|
|
214
|
+
### Conditional Behavior Blocks
|
|
215
|
+
|
|
216
|
+
Use tags to define behavior for specific situations:
|
|
217
|
+
|
|
218
|
+
```xml
|
|
219
|
+
<when-tests-fail>
|
|
220
|
+
If tests are failing:
|
|
221
|
+
1. Read the error output
|
|
222
|
+
2. Identify the root cause
|
|
223
|
+
3. Fix the issue
|
|
224
|
+
4. Re-run tests
|
|
225
|
+
</when-tests-fail>
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Instruction Blocks
|
|
229
|
+
|
|
230
|
+
Use tags to group related instructions:
|
|
231
|
+
|
|
232
|
+
```xml
|
|
233
|
+
<instructions>
|
|
234
|
+
1. First, do X
|
|
235
|
+
2. Then, do Y
|
|
236
|
+
3. Finally, do Z
|
|
237
|
+
</instructions>
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Context Blocks
|
|
241
|
+
|
|
242
|
+
Use tags to separate context from instructions:
|
|
243
|
+
|
|
244
|
+
```xml
|
|
245
|
+
<context>
|
|
246
|
+
This project uses Go for the backend and React for the frontend.
|
|
247
|
+
The API follows REST conventions.
|
|
248
|
+
</context>
|
|
249
|
+
|
|
250
|
+
<task>
|
|
251
|
+
Implement a new endpoint for user authentication.
|
|
252
|
+
</task>
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### Example Blocks
|
|
256
|
+
|
|
257
|
+
Use tags to provide examples:
|
|
258
|
+
|
|
259
|
+
```xml
|
|
260
|
+
<example>
|
|
261
|
+
Input: "hello world"
|
|
262
|
+
Output: "HELLO WORLD"
|
|
263
|
+
</example>
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Chain of Thought
|
|
269
|
+
|
|
270
|
+
For complex reasoning, use thinking tags:
|
|
271
|
+
|
|
272
|
+
```xml
|
|
273
|
+
<thinking>
|
|
274
|
+
Let me work through this step by step...
|
|
275
|
+
1. First, I need to understand the problem
|
|
276
|
+
2. Then, identify possible solutions
|
|
277
|
+
3. Finally, choose the best approach
|
|
278
|
+
</thinking>
|
|
279
|
+
|
|
280
|
+
<answer>
|
|
281
|
+
The best solution is X because...
|
|
282
|
+
</answer>
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Pennyfarthing uses this in the **Reasoning Mode** (verbose mode) for tactical agents.
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Anti-Patterns
|
|
290
|
+
|
|
291
|
+
### Don't: Use Tags for Everything
|
|
292
|
+
|
|
293
|
+
Tags are for **structure**, not emphasis. Use markdown for emphasis:
|
|
294
|
+
|
|
295
|
+
```markdown
|
|
296
|
+
**IMPORTANT:** This is critical. <!-- Good -->
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
```xml
|
|
300
|
+
<important>This is critical.</important> <!-- Overkill -->
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### Don't: Invent Unparseable Tags
|
|
304
|
+
|
|
305
|
+
If you need to extract content programmatically, use consistent, simple tags:
|
|
306
|
+
|
|
307
|
+
```xml
|
|
308
|
+
<output>Result here</output> <!-- Easy to parse -->
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
```xml
|
|
312
|
+
<the-final-output-of-the-analysis>Result</the-final-output-of-the-analysis> <!-- Hard to parse -->
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### Don't: Mix Instruction Styles
|
|
316
|
+
|
|
317
|
+
Be consistent. Don't mix XML tags with other delimiters:
|
|
318
|
+
|
|
319
|
+
```xml
|
|
320
|
+
<!-- Good: Consistent -->
|
|
321
|
+
<instructions>Do X</instructions>
|
|
322
|
+
<context>Background info</context>
|
|
323
|
+
|
|
324
|
+
<!-- Bad: Mixed styles -->
|
|
325
|
+
<instructions>Do X</instructions>
|
|
326
|
+
---CONTEXT---
|
|
327
|
+
Background info
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## Further Reading
|
|
333
|
+
|
|
334
|
+
- [Anthropic: Use XML tags](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/use-xml-tags)
|
|
335
|
+
- [Anthropic: Prompt engineering overview](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview)
|
|
336
|
+
- [Anthropic: System prompts and roles](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/system-prompts)
|
|
337
|
+
- [GitHub: Anthropic prompt engineering tutorial](https://github.com/anthropics/prompt-eng-interactive-tutorial)
|
|
338
|
+
- [Google Sheets: Interactive prompting tutorial](https://docs.google.com/spreadsheets/d/19jzLgRruG9kjUQNKtCg1ZjdD6l6weA6qRXG5zLIAhC8)
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# Session Artifacts Naming Convention
|
|
2
|
+
|
|
3
|
+
This guide defines the standard naming patterns for all files in `.session/`.
|
|
4
|
+
|
|
5
|
+
## Why This Matters
|
|
6
|
+
|
|
7
|
+
Consistent naming enables:
|
|
8
|
+
1. **Predictable cleanup** - Scripts can reliably find and remove artifacts
|
|
9
|
+
2. **Easy debugging** - Quickly identify what story/agent created a file
|
|
10
|
+
3. **No accumulation** - Story-specific cleanup catches everything
|
|
11
|
+
|
|
12
|
+
## File Categories
|
|
13
|
+
|
|
14
|
+
| Category | Purpose | Lifecycle |
|
|
15
|
+
|----------|---------|-----------|
|
|
16
|
+
| `session` | Active work session file | Archived on story completion |
|
|
17
|
+
| `context` | Technical context (story/epic) | Archived on completion |
|
|
18
|
+
| `test` | Test execution output | Cleaned after 1 day or story completion |
|
|
19
|
+
| `lint` | Lint execution output | Cleaned after 1 day or story completion |
|
|
20
|
+
| `handoff` | Agent-to-agent transition data | Cleaned on story completion |
|
|
21
|
+
|
|
22
|
+
## Naming Patterns
|
|
23
|
+
|
|
24
|
+
### Session Files (Canonical)
|
|
25
|
+
|
|
26
|
+
The primary work session file. One per active story.
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
{STORY_ID}-session.md
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Examples:**
|
|
33
|
+
- `36-2-session.md`
|
|
34
|
+
- `10-15-session.md`
|
|
35
|
+
|
|
36
|
+
**Created by:** `sm-setup MODE=setup`
|
|
37
|
+
**Archived by:** `sm-finish PHASE=execute` → `sprint/archive/story-{STORY_ID}-{DATE}.md`
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### Context Files
|
|
42
|
+
|
|
43
|
+
Technical context for stories and epics.
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
context-story-{STORY_ID}.md
|
|
47
|
+
context-epic-{EPIC_NUM}.md
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Examples:**
|
|
51
|
+
- `context-story-36-2.md`
|
|
52
|
+
- `context-epic-10.md`
|
|
53
|
+
|
|
54
|
+
**Created by:** SM (epic-tech-context task)
|
|
55
|
+
**Archived by:** `sm-finish PHASE=execute` (story), `/start-epic` or `/retro` (epic)
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### Test Output Files
|
|
60
|
+
|
|
61
|
+
Test execution logs and reports.
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
test-{STORY_ID}-{AGENT}-{PHASE}.log
|
|
65
|
+
test-{STORY_ID}-{AGENT}-{PHASE}.md
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Components:**
|
|
69
|
+
- `{STORY_ID}` - e.g., `36-2`
|
|
70
|
+
- `{AGENT}` - `tea`, `dev`, `reviewer`
|
|
71
|
+
- `{PHASE}` - `red`, `green`, `verify`
|
|
72
|
+
|
|
73
|
+
**Examples:**
|
|
74
|
+
- `test-36-2-tea-red.log`
|
|
75
|
+
- `test-36-2-dev-green.md`
|
|
76
|
+
- `test-36-2-reviewer-verify.log`
|
|
77
|
+
|
|
78
|
+
**Created by:** `handoff`, `reviewer-preflight`, `testing-runner`
|
|
79
|
+
**Cleaned by:** `session-cleanup.sh --story {STORY_ID}` or 1-day retention
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### Lint Output Files
|
|
84
|
+
|
|
85
|
+
Lint execution logs.
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
lint-{STORY_ID}-{REPO}.log
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Examples:**
|
|
92
|
+
- `lint-36-2-api.log`
|
|
93
|
+
- `lint-36-2-ui.log`
|
|
94
|
+
|
|
95
|
+
**Created by:** `reviewer-preflight`
|
|
96
|
+
**Cleaned by:** `session-cleanup.sh --story {STORY_ID}` or 1-day retention
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
### Handoff Files
|
|
101
|
+
|
|
102
|
+
Agent-to-agent transition data for structured handoffs.
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
handoff-{STORY_ID}-{FROM_AGENT}.md
|
|
106
|
+
handoff-{STORY_ID}-{FROM_AGENT}.json
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Examples:**
|
|
110
|
+
- `handoff-36-2-tea.md` (TEA → Dev)
|
|
111
|
+
- `handoff-36-2-dev.json` (Dev → Reviewer)
|
|
112
|
+
- `handoff-36-2-reviewer.md` (Reviewer → SM)
|
|
113
|
+
|
|
114
|
+
**Created by:** Handoff subagents (`tea-handoff`, `dev-handoff`, `reviewer-handoff-*`)
|
|
115
|
+
**Cleaned by:** `session-cleanup.sh --story {STORY_ID}`
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## System Files
|
|
120
|
+
|
|
121
|
+
These are managed automatically and should not be manually created.
|
|
122
|
+
|
|
123
|
+
| File | Purpose | Management |
|
|
124
|
+
|------|---------|------------|
|
|
125
|
+
| `.gitkeep` | Keeps directory in git | Never delete |
|
|
126
|
+
| `session-log.txt` | Session activity log | Rotated to 1000 lines by cleanup |
|
|
127
|
+
| `agents/` | Agent session state (UUIDs) | Cleaned after 1 day |
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Cleanup Patterns
|
|
132
|
+
|
|
133
|
+
The `session-cleanup.sh` script uses these patterns:
|
|
134
|
+
|
|
135
|
+
### Story-specific cleanup (`--story {ID}`)
|
|
136
|
+
```bash
|
|
137
|
+
test-{STORY_ID}-*.log
|
|
138
|
+
test-{STORY_ID}-*.md
|
|
139
|
+
lint-{STORY_ID}-*.log
|
|
140
|
+
handoff-{STORY_ID}-*.md
|
|
141
|
+
handoff-{STORY_ID}-*.json
|
|
142
|
+
context-story-{STORY_ID}.md
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Time-based cleanup (default: 1 day retention)
|
|
146
|
+
```bash
|
|
147
|
+
test-*.log
|
|
148
|
+
test-*.md
|
|
149
|
+
lint-*.log
|
|
150
|
+
handoff-*.md
|
|
151
|
+
handoff-*.json
|
|
152
|
+
context-story-*.md
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Aggressive cleanup (`--aggressive`)
|
|
156
|
+
```bash
|
|
157
|
+
context-epic-*.md # Only for completed epics
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Migration from Old Patterns
|
|
163
|
+
|
|
164
|
+
Old patterns that should no longer be used:
|
|
165
|
+
|
|
166
|
+
| Old Pattern | New Pattern |
|
|
167
|
+
|-------------|-------------|
|
|
168
|
+
| `story-{ID}-context.md` | `context-story-{ID}.md` |
|
|
169
|
+
| `epic-{N}-context.md` | `context-epic-{N}.md` |
|
|
170
|
+
| `test-results-{repo}-{ID}.log` | `test-{ID}-{agent}-{phase}.log` |
|
|
171
|
+
| `tea-{ID}-red-check-results.md` | `test-{ID}-tea-red.md` |
|
|
172
|
+
| `dev-{ID}-red-verify-report.md` | `test-{ID}-dev-red.md` |
|
|
173
|
+
| `{ID}-handoff-summary.md` | `handoff-{ID}-{agent}.md` |
|
|
174
|
+
| `lint-results-{repo}-{ID}.log` | `lint-{ID}-{repo}.log` |
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Quick Reference
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
.session/
|
|
182
|
+
├── .gitkeep # Git placeholder
|
|
183
|
+
├── session-log.txt # Activity log (auto-rotated)
|
|
184
|
+
├── agents/ # Agent session state
|
|
185
|
+
│ └── {uuid}.md # Per-session state
|
|
186
|
+
├── 36-2-session.md # Active story session
|
|
187
|
+
├── context-story-36-2.md # Story technical context
|
|
188
|
+
├── context-epic-10.md # Epic technical context
|
|
189
|
+
├── test-36-2-tea-red.log # TEA test output
|
|
190
|
+
├── test-36-2-dev-green.md # Dev test report
|
|
191
|
+
├── lint-36-2-api.log # Lint output
|
|
192
|
+
└── handoff-36-2-tea.md # TEA → Dev handoff
|
|
193
|
+
```
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# XML Tag Taxonomy
|
|
2
|
+
|
|
3
|
+
Pennyfarthing uses XML-style tags to structure agent definitions and skill documentation. These tags help LLMs identify and prioritize different types of content.
|
|
4
|
+
|
|
5
|
+
## Priority Tags
|
|
6
|
+
|
|
7
|
+
Tags that affect LLM behavior and attention.
|
|
8
|
+
|
|
9
|
+
### `<critical>`
|
|
10
|
+
|
|
11
|
+
**Purpose:** Non-negotiable rules that MUST be followed. LLMs should treat these as hard constraints.
|
|
12
|
+
|
|
13
|
+
**Usage:** Gates, invariants, protocol requirements, things that break the system if ignored.
|
|
14
|
+
|
|
15
|
+
```markdown
|
|
16
|
+
<critical>
|
|
17
|
+
**Never edit sprint YAML directly.** Use scripts.
|
|
18
|
+
</critical>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Examples:**
|
|
22
|
+
- "Subagent output is NOT visible to Cyclist"
|
|
23
|
+
- "NEVER mark acceptance criteria as complete" (for subagents)
|
|
24
|
+
- "Write assessment BEFORE spawning handoff subagent"
|
|
25
|
+
|
|
26
|
+
### `<gate>`
|
|
27
|
+
|
|
28
|
+
**Purpose:** Prerequisites that MUST be verified before proceeding. Checklist-style validation.
|
|
29
|
+
|
|
30
|
+
**Usage:** Entry/exit conditions for workflows, handoff requirements, quality gates.
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
<gate>
|
|
34
|
+
## Handoff Checklist
|
|
35
|
+
1. Session file exists
|
|
36
|
+
2. Acceptance criteria defined
|
|
37
|
+
3. Feature branches created
|
|
38
|
+
</gate>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Difference from `<critical>`:** Gates are procedural checkpoints; critical items are invariant rules.
|
|
42
|
+
|
|
43
|
+
### `<info>`
|
|
44
|
+
|
|
45
|
+
**Purpose:** Contextual information that helps but doesn't constrain. Reference material.
|
|
46
|
+
|
|
47
|
+
**Usage:** Background context, defaults, file locations, tips.
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
<info>
|
|
51
|
+
**Workflow:** SM → TEA → Dev → Reviewer → SM
|
|
52
|
+
**Skills:** `/sprint`, `/jira`, `/testing`
|
|
53
|
+
</info>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Identity Tags
|
|
57
|
+
|
|
58
|
+
Tags that define agent personality and role.
|
|
59
|
+
|
|
60
|
+
### `<persona>`
|
|
61
|
+
|
|
62
|
+
**Purpose:** Character personality from the active theme. Loaded at agent activation.
|
|
63
|
+
|
|
64
|
+
**Usage:** Top of agent files, sets tone and style.
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
<persona>
|
|
68
|
+
Auto-loaded by `agent-session.sh start` from theme config.
|
|
69
|
+
**Fallback if not loaded:** Supportive, methodical, detail-oriented
|
|
70
|
+
</persona>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### `<role>`
|
|
74
|
+
|
|
75
|
+
**Purpose:** Agent's position in the workflow and primary responsibility.
|
|
76
|
+
|
|
77
|
+
**Usage:** Brief statement of what the agent does and when it's invoked.
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
<role>
|
|
81
|
+
Test specification, RED phase execution, handoff to Dev
|
|
82
|
+
</role>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Structure Tags
|
|
86
|
+
|
|
87
|
+
Tags that organize agent content.
|
|
88
|
+
|
|
89
|
+
### `<helpers>`
|
|
90
|
+
|
|
91
|
+
**Purpose:** Describes Haiku subagents and their invocation pattern.
|
|
92
|
+
|
|
93
|
+
**Usage:** Lists subagents, their purposes, and how to spawn them.
|
|
94
|
+
|
|
95
|
+
### `<responsibilities>`
|
|
96
|
+
|
|
97
|
+
**Purpose:** Bullet list of what this agent does vs delegates.
|
|
98
|
+
|
|
99
|
+
### `<skills>`
|
|
100
|
+
|
|
101
|
+
**Purpose:** Slash commands this agent commonly uses.
|
|
102
|
+
|
|
103
|
+
### `<context>`
|
|
104
|
+
|
|
105
|
+
**Purpose:** Guide files and sidecars to reference.
|
|
106
|
+
|
|
107
|
+
### `<reasoning-mode>`
|
|
108
|
+
|
|
109
|
+
**Purpose:** Verbose/quiet toggle for showing thought process.
|
|
110
|
+
|
|
111
|
+
### `<on-activation>`
|
|
112
|
+
|
|
113
|
+
**Purpose:** Startup checklist - what to do when agent is invoked.
|
|
114
|
+
|
|
115
|
+
### `<exit>`
|
|
116
|
+
|
|
117
|
+
**Purpose:** How to leave agent mode and cleanup.
|
|
118
|
+
|
|
119
|
+
## Usage Guidelines
|
|
120
|
+
|
|
121
|
+
1. **`<critical>` sparingly** - If everything is critical, nothing is. Reserve for true invariants.
|
|
122
|
+
|
|
123
|
+
2. **`<gate>` for checkpoints** - Use when there's a clear pass/fail condition.
|
|
124
|
+
|
|
125
|
+
3. **`<info>` generously** - Helpful context improves agent performance.
|
|
126
|
+
|
|
127
|
+
4. **Order matters:**
|
|
128
|
+
```
|
|
129
|
+
<persona> # Who am I?
|
|
130
|
+
<role> # What do I do?
|
|
131
|
+
<helpers> # Who helps me?
|
|
132
|
+
<critical> # What must I never violate?
|
|
133
|
+
<gate> # What must I check?
|
|
134
|
+
<info> # What's helpful to know?
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
5. **Close your tags** - Always use `</tag>` even though markdown parsers are lenient.
|
|
138
|
+
|
|
139
|
+
## Tag Locations
|
|
140
|
+
|
|
141
|
+
| Tag | Typical Location |
|
|
142
|
+
|-----|------------------|
|
|
143
|
+
| `<critical>` | Agent files, skill files, workflow instructions |
|
|
144
|
+
| `<gate>` | Subagent files (handoff, finish, setup) |
|
|
145
|
+
| `<info>` | Agent files, guide files |
|
|
146
|
+
| `<persona>` | Agent files (top) |
|
|
147
|
+
| `<role>` | Agent files (after persona) |
|
|
148
|
+
|
|
149
|
+
## Adding New Tags
|
|
150
|
+
|
|
151
|
+
Before adding a new tag type:
|
|
152
|
+
|
|
153
|
+
1. Check if existing tags cover the use case
|
|
154
|
+
2. Document the tag's purpose and priority level
|
|
155
|
+
3. Update this file
|
|
156
|
+
4. Be consistent across all files using the tag
|