@pennyfarthing/core 7.4.1 → 7.5.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/{packages/core/dist → dist}/cli/utils/files.d.ts +0 -1
- package/dist/cli/utils/files.js +179 -0
- package/{packages/core/dist → dist}/cli/utils/manifest.d.ts +0 -1
- package/dist/cli/utils/manifest.js +93 -0
- package/{packages/core/dist → dist}/cli/utils/version.d.ts +0 -1
- package/dist/cli/utils/version.js +70 -0
- package/{packages/core/dist → dist}/index.d.ts +0 -1
- package/dist/index.js +48 -0
- package/{packages/core/dist → dist}/permissions/index.d.ts +0 -1
- package/dist/permissions/index.js +16 -0
- package/{packages/core/dist → dist}/permissions/permission-schema.d.ts +0 -1
- package/{packages/core/dist → dist}/permissions/permission-schema.js +13 -9
- package/{packages/core/dist → dist}/scripts/job-fair-aggregator.d.ts +0 -1
- package/dist/scripts/job-fair-aggregator.js +690 -0
- package/{packages/core/dist → dist}/workflow/index.d.ts +0 -1
- package/dist/workflow/index.js +31 -0
- package/{packages/core/dist → dist}/workflow/workflow-loader.d.ts +0 -1
- package/{packages/core/dist → dist}/workflow/workflow-loader.js +40 -34
- package/{packages/core/dist → dist}/workflow/workflow-permissions.d.ts +0 -1
- package/{packages/core/dist → dist}/workflow/workflow-permissions.js +14 -8
- package/{packages/core/dist → dist}/workflow/workflow-router.d.ts +0 -1
- package/{packages/core/dist → dist}/workflow/workflow-router.js +70 -51
- package/{packages/core/dist → dist}/workflow/workflow-schema.d.ts +0 -1
- package/{packages/core/dist → dist}/workflow/workflow-schema.js +62 -59
- package/package.json +36 -31
- package/LICENSE +0 -14
- package/README.md +0 -301
- package/packages/core/dist/bmad/context-reader.d.ts +0 -71
- package/packages/core/dist/bmad/context-reader.d.ts.map +0 -1
- package/packages/core/dist/bmad/context-reader.js +0 -369
- package/packages/core/dist/bmad/context-reader.js.map +0 -1
- package/packages/core/dist/bmad/context-reader.test.d.ts +0 -71
- package/packages/core/dist/bmad/context-reader.test.d.ts.map +0 -1
- package/packages/core/dist/bmad/context-reader.test.js +0 -878
- package/packages/core/dist/bmad/context-reader.test.js.map +0 -1
- package/packages/core/dist/bmad/epics-parser.d.ts +0 -61
- package/packages/core/dist/bmad/epics-parser.d.ts.map +0 -1
- package/packages/core/dist/bmad/epics-parser.js +0 -331
- package/packages/core/dist/bmad/epics-parser.js.map +0 -1
- package/packages/core/dist/bmad/epics-parser.test.d.ts +0 -7
- package/packages/core/dist/bmad/epics-parser.test.d.ts.map +0 -1
- package/packages/core/dist/bmad/epics-parser.test.js +0 -449
- package/packages/core/dist/bmad/epics-parser.test.js.map +0 -1
- package/packages/core/dist/bmad/index.d.ts +0 -11
- package/packages/core/dist/bmad/index.d.ts.map +0 -1
- package/packages/core/dist/bmad/index.js +0 -24
- package/packages/core/dist/bmad/index.js.map +0 -1
- package/packages/core/dist/bmad/status-sync.d.ts +0 -173
- package/packages/core/dist/bmad/status-sync.d.ts.map +0 -1
- package/packages/core/dist/bmad/status-sync.js +0 -463
- package/packages/core/dist/bmad/status-sync.js.map +0 -1
- package/packages/core/dist/bmad/status-sync.test.d.ts +0 -7
- package/packages/core/dist/bmad/status-sync.test.d.ts.map +0 -1
- package/packages/core/dist/bmad/status-sync.test.js +0 -702
- package/packages/core/dist/bmad/status-sync.test.js.map +0 -1
- package/packages/core/dist/bmad/story-exporter.d.ts +0 -55
- package/packages/core/dist/bmad/story-exporter.d.ts.map +0 -1
- package/packages/core/dist/bmad/story-exporter.js +0 -170
- package/packages/core/dist/bmad/story-exporter.js.map +0 -1
- package/packages/core/dist/bmad/story-exporter.test.d.ts +0 -51
- package/packages/core/dist/bmad/story-exporter.test.d.ts.map +0 -1
- package/packages/core/dist/bmad/story-exporter.test.js +0 -603
- package/packages/core/dist/bmad/story-exporter.test.js.map +0 -1
- package/packages/core/dist/bmad/story-parser.d.ts +0 -44
- package/packages/core/dist/bmad/story-parser.d.ts.map +0 -1
- package/packages/core/dist/bmad/story-parser.js +0 -307
- package/packages/core/dist/bmad/story-parser.js.map +0 -1
- package/packages/core/dist/bmad/story-parser.test.d.ts +0 -44
- package/packages/core/dist/bmad/story-parser.test.d.ts.map +0 -1
- package/packages/core/dist/bmad/story-parser.test.js +0 -693
- package/packages/core/dist/bmad/story-parser.test.js.map +0 -1
- package/packages/core/dist/cli/commands/command.d.ts +0 -28
- package/packages/core/dist/cli/commands/command.d.ts.map +0 -1
- package/packages/core/dist/cli/commands/command.js +0 -399
- package/packages/core/dist/cli/commands/command.js.map +0 -1
- package/packages/core/dist/cli/commands/cyclist.d.ts +0 -46
- package/packages/core/dist/cli/commands/cyclist.d.ts.map +0 -1
- package/packages/core/dist/cli/commands/cyclist.js +0 -196
- package/packages/core/dist/cli/commands/cyclist.js.map +0 -1
- package/packages/core/dist/cli/commands/cyclist.test.d.ts +0 -13
- package/packages/core/dist/cli/commands/cyclist.test.d.ts.map +0 -1
- package/packages/core/dist/cli/commands/cyclist.test.js +0 -245
- package/packages/core/dist/cli/commands/cyclist.test.js.map +0 -1
- package/packages/core/dist/cli/commands/doctor.d.ts +0 -9
- package/packages/core/dist/cli/commands/doctor.d.ts.map +0 -1
- package/packages/core/dist/cli/commands/doctor.js +0 -652
- package/packages/core/dist/cli/commands/doctor.js.map +0 -1
- package/packages/core/dist/cli/commands/init.d.ts +0 -8
- package/packages/core/dist/cli/commands/init.d.ts.map +0 -1
- package/packages/core/dist/cli/commands/init.js +0 -525
- package/packages/core/dist/cli/commands/init.js.map +0 -1
- package/packages/core/dist/cli/commands/skill.d.ts +0 -28
- package/packages/core/dist/cli/commands/skill.d.ts.map +0 -1
- package/packages/core/dist/cli/commands/skill.js +0 -416
- package/packages/core/dist/cli/commands/skill.js.map +0 -1
- package/packages/core/dist/cli/commands/theme.d.ts +0 -21
- package/packages/core/dist/cli/commands/theme.d.ts.map +0 -1
- package/packages/core/dist/cli/commands/theme.js +0 -201
- package/packages/core/dist/cli/commands/theme.js.map +0 -1
- package/packages/core/dist/cli/commands/uninstall.d.ts +0 -8
- package/packages/core/dist/cli/commands/uninstall.d.ts.map +0 -1
- package/packages/core/dist/cli/commands/uninstall.js +0 -237
- package/packages/core/dist/cli/commands/uninstall.js.map +0 -1
- package/packages/core/dist/cli/commands/update.d.ts +0 -9
- package/packages/core/dist/cli/commands/update.d.ts.map +0 -1
- package/packages/core/dist/cli/commands/update.js +0 -421
- package/packages/core/dist/cli/commands/update.js.map +0 -1
- package/packages/core/dist/cli/commands/version.d.ts +0 -2
- package/packages/core/dist/cli/commands/version.d.ts.map +0 -1
- package/packages/core/dist/cli/commands/version.js +0 -28
- package/packages/core/dist/cli/commands/version.js.map +0 -1
- package/packages/core/dist/cli/customization.test.d.ts +0 -12
- package/packages/core/dist/cli/customization.test.d.ts.map +0 -1
- package/packages/core/dist/cli/customization.test.js +0 -84
- package/packages/core/dist/cli/customization.test.js.map +0 -1
- package/packages/core/dist/cli/cyclist-migration.test.d.ts +0 -16
- package/packages/core/dist/cli/cyclist-migration.test.d.ts.map +0 -1
- package/packages/core/dist/cli/cyclist-migration.test.js +0 -225
- package/packages/core/dist/cli/cyclist-migration.test.js.map +0 -1
- package/packages/core/dist/cli/index.d.ts +0 -3
- package/packages/core/dist/cli/index.d.ts.map +0 -1
- package/packages/core/dist/cli/index.js +0 -174
- package/packages/core/dist/cli/index.js.map +0 -1
- package/packages/core/dist/cli/ocean-profiles.test.d.ts +0 -13
- package/packages/core/dist/cli/ocean-profiles.test.d.ts.map +0 -1
- package/packages/core/dist/cli/ocean-profiles.test.js +0 -134
- package/packages/core/dist/cli/ocean-profiles.test.js.map +0 -1
- package/packages/core/dist/cli/theme-maker.test.d.ts +0 -11
- package/packages/core/dist/cli/theme-maker.test.d.ts.map +0 -1
- package/packages/core/dist/cli/theme-maker.test.js +0 -356
- package/packages/core/dist/cli/theme-maker.test.js.map +0 -1
- package/packages/core/dist/cli/utils/constants.d.ts +0 -66
- package/packages/core/dist/cli/utils/constants.d.ts.map +0 -1
- package/packages/core/dist/cli/utils/constants.js +0 -54
- package/packages/core/dist/cli/utils/constants.js.map +0 -1
- package/packages/core/dist/cli/utils/files.d.ts.map +0 -1
- package/packages/core/dist/cli/utils/files.js +0 -162
- package/packages/core/dist/cli/utils/files.js.map +0 -1
- package/packages/core/dist/cli/utils/logger.d.ts +0 -26
- package/packages/core/dist/cli/utils/logger.d.ts.map +0 -1
- package/packages/core/dist/cli/utils/logger.js +0 -88
- package/packages/core/dist/cli/utils/logger.js.map +0 -1
- package/packages/core/dist/cli/utils/manifest.d.ts.map +0 -1
- package/packages/core/dist/cli/utils/manifest.js +0 -90
- package/packages/core/dist/cli/utils/manifest.js.map +0 -1
- package/packages/core/dist/cli/utils/node-modules.d.ts +0 -6
- package/packages/core/dist/cli/utils/node-modules.d.ts.map +0 -1
- package/packages/core/dist/cli/utils/node-modules.js +0 -32
- package/packages/core/dist/cli/utils/node-modules.js.map +0 -1
- package/packages/core/dist/cli/utils/prompts.d.ts +0 -34
- package/packages/core/dist/cli/utils/prompts.d.ts.map +0 -1
- package/packages/core/dist/cli/utils/prompts.js +0 -93
- package/packages/core/dist/cli/utils/prompts.js.map +0 -1
- package/packages/core/dist/cli/utils/symlinks.d.ts +0 -29
- package/packages/core/dist/cli/utils/symlinks.d.ts.map +0 -1
- package/packages/core/dist/cli/utils/symlinks.js +0 -181
- package/packages/core/dist/cli/utils/symlinks.js.map +0 -1
- package/packages/core/dist/cli/utils/themes.d.ts +0 -101
- package/packages/core/dist/cli/utils/themes.d.ts.map +0 -1
- package/packages/core/dist/cli/utils/themes.js +0 -373
- package/packages/core/dist/cli/utils/themes.js.map +0 -1
- package/packages/core/dist/cli/utils/themes.test.d.ts +0 -12
- package/packages/core/dist/cli/utils/themes.test.d.ts.map +0 -1
- package/packages/core/dist/cli/utils/themes.test.js +0 -147
- package/packages/core/dist/cli/utils/themes.test.js.map +0 -1
- package/packages/core/dist/cli/utils/version.d.ts.map +0 -1
- package/packages/core/dist/cli/utils/version.js +0 -64
- package/packages/core/dist/cli/utils/version.js.map +0 -1
- package/packages/core/dist/cli/workspace.test.d.ts +0 -8
- package/packages/core/dist/cli/workspace.test.d.ts.map +0 -1
- package/packages/core/dist/cli/workspace.test.js +0 -156
- package/packages/core/dist/cli/workspace.test.js.map +0 -1
- package/packages/core/dist/index.d.ts.map +0 -1
- package/packages/core/dist/index.js +0 -20
- package/packages/core/dist/index.js.map +0 -1
- package/packages/core/dist/jira/jira-epic-creation.d.ts +0 -109
- package/packages/core/dist/jira/jira-epic-creation.d.ts.map +0 -1
- package/packages/core/dist/jira/jira-epic-creation.js +0 -253
- package/packages/core/dist/jira/jira-epic-creation.js.map +0 -1
- package/packages/core/dist/jira/jira-epic-creation.test.d.ts +0 -16
- package/packages/core/dist/jira/jira-epic-creation.test.d.ts.map +0 -1
- package/packages/core/dist/jira/jira-epic-creation.test.js +0 -387
- package/packages/core/dist/jira/jira-epic-creation.test.js.map +0 -1
- package/packages/core/dist/jira/jira-sprint-sync.d.ts +0 -247
- package/packages/core/dist/jira/jira-sprint-sync.d.ts.map +0 -1
- package/packages/core/dist/jira/jira-sprint-sync.js +0 -670
- package/packages/core/dist/jira/jira-sprint-sync.js.map +0 -1
- package/packages/core/dist/jira/jira-sprint-sync.test.d.ts +0 -16
- package/packages/core/dist/jira/jira-sprint-sync.test.d.ts.map +0 -1
- package/packages/core/dist/jira/jira-sprint-sync.test.js +0 -845
- package/packages/core/dist/jira/jira-sprint-sync.test.js.map +0 -1
- package/packages/core/dist/permissions/index.d.ts.map +0 -1
- package/packages/core/dist/permissions/index.js +0 -13
- package/packages/core/dist/permissions/index.js.map +0 -1
- package/packages/core/dist/permissions/permission-schema.d.ts.map +0 -1
- package/packages/core/dist/permissions/permission-schema.js.map +0 -1
- package/packages/core/dist/permissions/permission-schema.test.d.ts +0 -40
- package/packages/core/dist/permissions/permission-schema.test.d.ts.map +0 -1
- package/packages/core/dist/permissions/permission-schema.test.js +0 -367
- package/packages/core/dist/permissions/permission-schema.test.js.map +0 -1
- package/packages/core/dist/scripts/add-ocean-profiles.d.ts +0 -9
- package/packages/core/dist/scripts/add-ocean-profiles.d.ts.map +0 -1
- package/packages/core/dist/scripts/add-ocean-profiles.js +0 -695
- package/packages/core/dist/scripts/add-ocean-profiles.js.map +0 -1
- package/packages/core/dist/scripts/benchmark-integration.d.ts +0 -182
- package/packages/core/dist/scripts/benchmark-integration.d.ts.map +0 -1
- package/packages/core/dist/scripts/benchmark-integration.js +0 -691
- package/packages/core/dist/scripts/benchmark-integration.js.map +0 -1
- package/packages/core/dist/scripts/benchmark-integration.test.d.ts +0 -13
- package/packages/core/dist/scripts/benchmark-integration.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/benchmark-integration.test.js +0 -680
- package/packages/core/dist/scripts/benchmark-integration.test.js.map +0 -1
- package/packages/core/dist/scripts/debugging-scenarios.test.d.ts +0 -18
- package/packages/core/dist/scripts/debugging-scenarios.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/debugging-scenarios.test.js +0 -317
- package/packages/core/dist/scripts/debugging-scenarios.test.js.map +0 -1
- package/packages/core/dist/scripts/generate-all-spiders.d.ts +0 -10
- package/packages/core/dist/scripts/generate-all-spiders.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-all-spiders.js +0 -306
- package/packages/core/dist/scripts/generate-all-spiders.js.map +0 -1
- package/packages/core/dist/scripts/generate-report.d.ts +0 -65
- package/packages/core/dist/scripts/generate-report.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-report.js +0 -378
- package/packages/core/dist/scripts/generate-report.js.map +0 -1
- package/packages/core/dist/scripts/generate-report.test.d.ts +0 -13
- package/packages/core/dist/scripts/generate-report.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-report.test.js +0 -363
- package/packages/core/dist/scripts/generate-report.test.js.map +0 -1
- package/packages/core/dist/scripts/generate-spider-report.d.ts +0 -65
- package/packages/core/dist/scripts/generate-spider-report.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-spider-report.js +0 -366
- package/packages/core/dist/scripts/generate-spider-report.js.map +0 -1
- package/packages/core/dist/scripts/generate-spider-report.test.d.ts +0 -13
- package/packages/core/dist/scripts/generate-spider-report.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-spider-report.test.js +0 -367
- package/packages/core/dist/scripts/generate-spider-report.test.js.map +0 -1
- package/packages/core/dist/scripts/generate-spider.d.ts +0 -47
- package/packages/core/dist/scripts/generate-spider.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-spider.js +0 -338
- package/packages/core/dist/scripts/generate-spider.js.map +0 -1
- package/packages/core/dist/scripts/generate-spider.test.d.ts +0 -14
- package/packages/core/dist/scripts/generate-spider.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-spider.test.js +0 -271
- package/packages/core/dist/scripts/generate-spider.test.js.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.d.ts.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.js +0 -547
- package/packages/core/dist/scripts/job-fair-aggregator.js.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.test.d.ts +0 -14
- package/packages/core/dist/scripts/job-fair-aggregator.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.test.js +0 -616
- package/packages/core/dist/scripts/job-fair-aggregator.test.js.map +0 -1
- package/packages/core/dist/scripts/run-ci.test.d.ts +0 -20
- package/packages/core/dist/scripts/run-ci.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/run-ci.test.js +0 -127
- package/packages/core/dist/scripts/run-ci.test.js.map +0 -1
- package/packages/core/dist/scripts/theme-detail.test.d.ts +0 -10
- package/packages/core/dist/scripts/theme-detail.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/theme-detail.test.js +0 -199
- package/packages/core/dist/scripts/theme-detail.test.js.map +0 -1
- package/packages/core/dist/scripts/validate-ocean-profiles.d.ts +0 -9
- package/packages/core/dist/scripts/validate-ocean-profiles.d.ts.map +0 -1
- package/packages/core/dist/scripts/validate-ocean-profiles.js +0 -130
- package/packages/core/dist/scripts/validate-ocean-profiles.js.map +0 -1
- package/packages/core/dist/workflow/gate-handler.d.ts +0 -94
- package/packages/core/dist/workflow/gate-handler.d.ts.map +0 -1
- package/packages/core/dist/workflow/gate-handler.js +0 -189
- package/packages/core/dist/workflow/gate-handler.js.map +0 -1
- package/packages/core/dist/workflow/gate-handler.test.d.ts +0 -14
- package/packages/core/dist/workflow/gate-handler.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/gate-handler.test.js +0 -543
- package/packages/core/dist/workflow/gate-handler.test.js.map +0 -1
- package/packages/core/dist/workflow/generic-handoff.d.ts +0 -281
- package/packages/core/dist/workflow/generic-handoff.d.ts.map +0 -1
- package/packages/core/dist/workflow/generic-handoff.js +0 -411
- package/packages/core/dist/workflow/generic-handoff.js.map +0 -1
- package/packages/core/dist/workflow/generic-handoff.test.d.ts +0 -21
- package/packages/core/dist/workflow/generic-handoff.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/generic-handoff.test.js +0 -499
- package/packages/core/dist/workflow/generic-handoff.test.js.map +0 -1
- package/packages/core/dist/workflow/generic-sm-finish.d.ts +0 -89
- package/packages/core/dist/workflow/generic-sm-finish.d.ts.map +0 -1
- package/packages/core/dist/workflow/generic-sm-finish.js +0 -157
- package/packages/core/dist/workflow/generic-sm-finish.js.map +0 -1
- package/packages/core/dist/workflow/generic-sm-setup.d.ts +0 -138
- package/packages/core/dist/workflow/generic-sm-setup.d.ts.map +0 -1
- package/packages/core/dist/workflow/generic-sm-setup.js +0 -382
- package/packages/core/dist/workflow/generic-sm-setup.js.map +0 -1
- package/packages/core/dist/workflow/handoff.d.ts +0 -281
- package/packages/core/dist/workflow/handoff.d.ts.map +0 -1
- package/packages/core/dist/workflow/handoff.js +0 -411
- package/packages/core/dist/workflow/handoff.js.map +0 -1
- package/packages/core/dist/workflow/handoff.test.d.ts +0 -21
- package/packages/core/dist/workflow/handoff.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/handoff.test.js +0 -499
- package/packages/core/dist/workflow/handoff.test.js.map +0 -1
- package/packages/core/dist/workflow/index.d.ts.map +0 -1
- package/packages/core/dist/workflow/index.js +0 -24
- package/packages/core/dist/workflow/index.js.map +0 -1
- package/packages/core/dist/workflow/session-state.d.ts +0 -92
- package/packages/core/dist/workflow/session-state.d.ts.map +0 -1
- package/packages/core/dist/workflow/session-state.js +0 -198
- package/packages/core/dist/workflow/session-state.js.map +0 -1
- package/packages/core/dist/workflow/session-state.test.d.ts +0 -8
- package/packages/core/dist/workflow/session-state.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/session-state.test.js +0 -551
- package/packages/core/dist/workflow/session-state.test.js.map +0 -1
- package/packages/core/dist/workflow/sm-subagents.test.d.ts +0 -23
- package/packages/core/dist/workflow/sm-subagents.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/sm-subagents.test.js +0 -727
- package/packages/core/dist/workflow/sm-subagents.test.js.map +0 -1
- package/packages/core/dist/workflow/step-parser.d.ts +0 -45
- package/packages/core/dist/workflow/step-parser.d.ts.map +0 -1
- package/packages/core/dist/workflow/step-parser.js +0 -147
- package/packages/core/dist/workflow/step-parser.js.map +0 -1
- package/packages/core/dist/workflow/step-parser.test.d.ts +0 -14
- package/packages/core/dist/workflow/step-parser.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/step-parser.test.js +0 -470
- package/packages/core/dist/workflow/step-parser.test.js.map +0 -1
- package/packages/core/dist/workflow/story-workflow-routing.test.d.ts +0 -17
- package/packages/core/dist/workflow/story-workflow-routing.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/story-workflow-routing.test.js +0 -559
- package/packages/core/dist/workflow/story-workflow-routing.test.js.map +0 -1
- package/packages/core/dist/workflow/test-cache.d.ts +0 -131
- package/packages/core/dist/workflow/test-cache.d.ts.map +0 -1
- package/packages/core/dist/workflow/test-cache.js +0 -226
- package/packages/core/dist/workflow/test-cache.js.map +0 -1
- package/packages/core/dist/workflow/test-cache.test.d.ts +0 -17
- package/packages/core/dist/workflow/test-cache.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/test-cache.test.js +0 -438
- package/packages/core/dist/workflow/test-cache.test.js.map +0 -1
- package/packages/core/dist/workflow/trimodal.d.ts +0 -86
- package/packages/core/dist/workflow/trimodal.d.ts.map +0 -1
- package/packages/core/dist/workflow/trimodal.js +0 -118
- package/packages/core/dist/workflow/trimodal.js.map +0 -1
- package/packages/core/dist/workflow/trimodal.test.d.ts +0 -11
- package/packages/core/dist/workflow/trimodal.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/trimodal.test.js +0 -395
- package/packages/core/dist/workflow/trimodal.test.js.map +0 -1
- package/packages/core/dist/workflow/variable-resolver.d.ts +0 -67
- package/packages/core/dist/workflow/variable-resolver.d.ts.map +0 -1
- package/packages/core/dist/workflow/variable-resolver.js +0 -156
- package/packages/core/dist/workflow/variable-resolver.js.map +0 -1
- package/packages/core/dist/workflow/variable-resolver.test.d.ts +0 -14
- package/packages/core/dist/workflow/variable-resolver.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/variable-resolver.test.js +0 -400
- package/packages/core/dist/workflow/variable-resolver.test.js.map +0 -1
- package/packages/core/dist/workflow/workflow-executor.d.ts +0 -163
- package/packages/core/dist/workflow/workflow-executor.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-executor.js +0 -197
- package/packages/core/dist/workflow/workflow-executor.js.map +0 -1
- package/packages/core/dist/workflow/workflow-executor.test.d.ts +0 -8
- package/packages/core/dist/workflow/workflow-executor.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-executor.test.js +0 -444
- package/packages/core/dist/workflow/workflow-executor.test.js.map +0 -1
- package/packages/core/dist/workflow/workflow-loader.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-loader.js.map +0 -1
- package/packages/core/dist/workflow/workflow-loader.test.d.ts +0 -15
- package/packages/core/dist/workflow/workflow-loader.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-loader.test.js +0 -354
- package/packages/core/dist/workflow/workflow-loader.test.js.map +0 -1
- package/packages/core/dist/workflow/workflow-migration.test.d.ts +0 -17
- package/packages/core/dist/workflow/workflow-migration.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-migration.test.js +0 -371
- package/packages/core/dist/workflow/workflow-migration.test.js.map +0 -1
- package/packages/core/dist/workflow/workflow-permissions.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-permissions.js.map +0 -1
- package/packages/core/dist/workflow/workflow-permissions.test.d.ts +0 -15
- package/packages/core/dist/workflow/workflow-permissions.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-permissions.test.js +0 -301
- package/packages/core/dist/workflow/workflow-permissions.test.js.map +0 -1
- package/packages/core/dist/workflow/workflow-router.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-router.js.map +0 -1
- package/packages/core/dist/workflow/workflow-router.test.d.ts +0 -20
- package/packages/core/dist/workflow/workflow-router.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-router.test.js +0 -607
- package/packages/core/dist/workflow/workflow-router.test.js.map +0 -1
- package/packages/core/dist/workflow/workflow-schema.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-schema.js.map +0 -1
- package/packages/core/dist/workflow/workflow-schema.test.d.ts +0 -45
- package/packages/core/dist/workflow/workflow-schema.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-schema.test.js +0 -512
- package/packages/core/dist/workflow/workflow-schema.test.js.map +0 -1
- package/packages/core/dist/workflow/workflow-stepped-schema.test.d.ts +0 -18
- package/packages/core/dist/workflow/workflow-stepped-schema.test.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-stepped-schema.test.js +0 -608
- package/packages/core/dist/workflow/workflow-stepped-schema.test.js.map +0 -1
- package/pennyfarthing-dist/agents/README.md +0 -340
- package/pennyfarthing-dist/agents/architect.md +0 -193
- package/pennyfarthing-dist/agents/dev.md +0 -254
- package/pennyfarthing-dist/agents/devops.md +0 -206
- package/pennyfarthing-dist/agents/handoff.md +0 -289
- package/pennyfarthing-dist/agents/orchestrator.md +0 -355
- package/pennyfarthing-dist/agents/pm.md +0 -169
- package/pennyfarthing-dist/agents/reviewer-preflight.md +0 -96
- package/pennyfarthing-dist/agents/reviewer.md +0 -382
- package/pennyfarthing-dist/agents/sm-file-summary.md +0 -58
- package/pennyfarthing-dist/agents/sm-finish.md +0 -61
- package/pennyfarthing-dist/agents/sm-handoff.md +0 -145
- package/pennyfarthing-dist/agents/sm-setup.md +0 -174
- package/pennyfarthing-dist/agents/sm.md +0 -632
- package/pennyfarthing-dist/agents/tea.md +0 -213
- package/pennyfarthing-dist/agents/tech-writer.md +0 -216
- package/pennyfarthing-dist/agents/testing-runner.md +0 -141
- package/pennyfarthing-dist/agents/ux-designer.md +0 -231
- package/pennyfarthing-dist/agents/workflow-status-check.md +0 -68
- package/pennyfarthing-dist/commands/architect.md +0 -62
- package/pennyfarthing-dist/commands/benchmark-control.md +0 -69
- package/pennyfarthing-dist/commands/benchmark.md +0 -467
- package/pennyfarthing-dist/commands/brainstorming.md +0 -91
- package/pennyfarthing-dist/commands/check.md +0 -156
- package/pennyfarthing-dist/commands/chore.md +0 -178
- package/pennyfarthing-dist/commands/close-epic.md +0 -139
- package/pennyfarthing-dist/commands/continue-session.md +0 -184
- package/pennyfarthing-dist/commands/create-branches-from-story.md +0 -358
- package/pennyfarthing-dist/commands/create-theme.md +0 -29
- package/pennyfarthing-dist/commands/dev.md +0 -60
- package/pennyfarthing-dist/commands/devops.md +0 -59
- package/pennyfarthing-dist/commands/git-cleanup.md +0 -340
- package/pennyfarthing-dist/commands/health-check.md +0 -108
- package/pennyfarthing-dist/commands/help.md +0 -264
- package/pennyfarthing-dist/commands/job-fair.md +0 -102
- package/pennyfarthing-dist/commands/list-themes.md +0 -21
- package/pennyfarthing-dist/commands/orchestrator.md +0 -56
- package/pennyfarthing-dist/commands/parallel-work.md +0 -71
- package/pennyfarthing-dist/commands/party-mode.md +0 -67
- package/pennyfarthing-dist/commands/permissions.md +0 -193
- package/pennyfarthing-dist/commands/pm.md +0 -60
- package/pennyfarthing-dist/commands/prime.md +0 -140
- package/pennyfarthing-dist/commands/release.md +0 -58
- package/pennyfarthing-dist/commands/repo-status.md +0 -49
- package/pennyfarthing-dist/commands/retro.md +0 -200
- package/pennyfarthing-dist/commands/reviewer.md +0 -64
- package/pennyfarthing-dist/commands/run-ci.md +0 -116
- package/pennyfarthing-dist/commands/set-theme.md +0 -56
- package/pennyfarthing-dist/commands/show-theme.md +0 -21
- package/pennyfarthing-dist/commands/sm.md +0 -70
- package/pennyfarthing-dist/commands/solo.md +0 -411
- package/pennyfarthing-dist/commands/sprint-planning.md +0 -109
- package/pennyfarthing-dist/commands/start-epic.md +0 -168
- package/pennyfarthing-dist/commands/sync-epic-to-jira.md +0 -184
- package/pennyfarthing-dist/commands/sync-work-with-sprint.md +0 -373
- package/pennyfarthing-dist/commands/tea.md +0 -63
- package/pennyfarthing-dist/commands/tech-writer.md +0 -53
- package/pennyfarthing-dist/commands/theme-maker.md +0 -671
- package/pennyfarthing-dist/commands/update-domain-docs.md +0 -83
- package/pennyfarthing-dist/commands/ux-designer.md +0 -62
- package/pennyfarthing-dist/commands/work.md +0 -122
- package/pennyfarthing-dist/commands/workflow.md +0 -21
- package/pennyfarthing-dist/guides/AGENT-COORDINATION.md +0 -480
- package/pennyfarthing-dist/guides/HOOKS.md +0 -230
- package/pennyfarthing-dist/guides/PROMPT-PATTERNS.md +0 -338
- package/pennyfarthing-dist/guides/SESSION-ARTIFACTS.md +0 -193
- package/pennyfarthing-dist/guides/agent-behavior.md +0 -238
- package/pennyfarthing-dist/guides/agent-template-strategic.md +0 -148
- package/pennyfarthing-dist/guides/agent-template-tactical.md +0 -162
- package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +0 -746
- package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +0 -574
- package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +0 -488
- package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +0 -402
- package/pennyfarthing-dist/guides/permission-protocol.md +0 -188
- package/pennyfarthing-dist/guides/persona-loading.md +0 -46
- package/pennyfarthing-dist/guides/workflow-schema.md +0 -257
- package/pennyfarthing-dist/guides/worktree-mode.md +0 -113
- package/pennyfarthing-dist/output-styles/teaching.md +0 -33
- package/pennyfarthing-dist/output-styles/terse.md +0 -20
- package/pennyfarthing-dist/output-styles/verbose.md +0 -28
- package/pennyfarthing-dist/personas/themes/1984.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/a-team.yaml +0 -207
- package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +0 -330
- package/pennyfarthing-dist/personas/themes/all-stars.yaml +0 -332
- package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +0 -306
- package/pennyfarthing-dist/personas/themes/arcane.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +0 -331
- package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/babylon-5.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/black-sails.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/blade-runner.yaml +0 -295
- package/pennyfarthing-dist/personas/themes/bobiverse.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +0 -327
- package/pennyfarthing-dist/personas/themes/catch-22.yaml +0 -316
- package/pennyfarthing-dist/personas/themes/classical-composers.yaml +0 -310
- package/pennyfarthing-dist/personas/themes/control.yaml +0 -197
- package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +0 -323
- package/pennyfarthing-dist/personas/themes/deadwood.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/dickens.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/discworld.yaml +0 -332
- package/pennyfarthing-dist/personas/themes/doctor-who.yaml +0 -290
- package/pennyfarthing-dist/personas/themes/don-quixote.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/dune.yaml +0 -307
- package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/fargo.yaml +0 -330
- package/pennyfarthing-dist/personas/themes/film-auteurs.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/firefly.yaml +0 -328
- package/pennyfarthing-dist/personas/themes/foundation.yaml +0 -290
- package/pennyfarthing-dist/personas/themes/futurama.yaml +0 -321
- package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +0 -290
- package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +0 -243
- package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +0 -308
- package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +0 -308
- package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +0 -330
- package/pennyfarthing-dist/personas/themes/hannibal.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/harry-potter.yaml +0 -324
- package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +0 -291
- package/pennyfarthing-dist/personas/themes/historical-figures.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +0 -331
- package/pennyfarthing-dist/personas/themes/house-md.yaml +0 -321
- package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +0 -289
- package/pennyfarthing-dist/personas/themes/inspector-morse.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/jane-austen.yaml +0 -287
- package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/justified.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +0 -219
- package/pennyfarthing-dist/personas/themes/les-miserables.yaml +0 -299
- package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +0 -334
- package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +0 -334
- package/pennyfarthing-dist/personas/themes/mad-max.yaml +0 -355
- package/pennyfarthing-dist/personas/themes/mad-men.yaml +0 -289
- package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/mash.yaml +0 -337
- package/pennyfarthing-dist/personas/themes/mass-effect.yaml +0 -289
- package/pennyfarthing-dist/personas/themes/military-commanders.yaml +0 -306
- package/pennyfarthing-dist/personas/themes/moby-dick.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/monty-python.yaml +0 -303
- package/pennyfarthing-dist/personas/themes/neuromancer.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +0 -329
- package/pennyfarthing-dist/personas/themes/parks-and-rec.yaml +0 -242
- package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +0 -298
- package/pennyfarthing-dist/personas/themes/princess-bride.yaml +0 -220
- package/pennyfarthing-dist/personas/themes/renaissance-masters.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/rome.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/russian-masters.yaml +0 -318
- package/pennyfarthing-dist/personas/themes/sandman.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/scientific-revolutionaries.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/shakespeare.yaml +0 -301
- package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +0 -289
- package/pennyfarthing-dist/personas/themes/snow-crash.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +0 -230
- package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +0 -210
- package/pennyfarthing-dist/personas/themes/star-wars.yaml +0 -303
- package/pennyfarthing-dist/personas/themes/succession.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/superfriends.yaml +0 -208
- package/pennyfarthing-dist/personas/themes/ted-lasso.yaml +0 -236
- package/pennyfarthing-dist/personas/themes/the-americans.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/the-crown.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/the-expanse.yaml +0 -213
- package/pennyfarthing-dist/personas/themes/the-good-place.yaml +0 -322
- package/pennyfarthing-dist/personas/themes/the-matrix.yaml +0 -353
- package/pennyfarthing-dist/personas/themes/the-odyssey.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/the-office.yaml +0 -330
- package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +0 -308
- package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/the-wire.yaml +0 -311
- package/pennyfarthing-dist/personas/themes/the-witcher.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/twin-peaks.yaml +0 -302
- package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/watchmen.yaml +0 -291
- package/pennyfarthing-dist/personas/themes/west-wing.yaml +0 -291
- package/pennyfarthing-dist/personas/themes/world-explorers.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +0 -307
- package/pennyfarthing-dist/personas/themes/x-files.yaml +0 -302
- package/pennyfarthing-dist/scripts/README.md +0 -68
- package/pennyfarthing-dist/scripts/core/README.md +0 -26
- package/pennyfarthing-dist/scripts/core/agent-session.sh +0 -378
- package/pennyfarthing-dist/scripts/core/check-context.sh +0 -243
- package/pennyfarthing-dist/scripts/core/handoff-marker.sh +0 -90
- package/pennyfarthing-dist/scripts/core/prime.sh +0 -136
- package/pennyfarthing-dist/scripts/core/run.sh +0 -75
- package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +0 -21
- package/pennyfarthing-dist/scripts/git/README.md +0 -25
- package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +0 -226
- package/pennyfarthing-dist/scripts/git/git-status-all.sh +0 -127
- package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +0 -91
- package/pennyfarthing-dist/scripts/git/release.sh +0 -198
- package/pennyfarthing-dist/scripts/git/worktree-manager.sh +0 -494
- package/pennyfarthing-dist/scripts/hooks/README.md +0 -32
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +0 -60
- package/pennyfarthing-dist/scripts/hooks/context-warning.sh +0 -65
- package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -35
- package/pennyfarthing-dist/scripts/hooks/post-merge.sh +0 -166
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +0 -50
- package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -71
- package/pennyfarthing-dist/scripts/hooks/pre-push.sh +0 -54
- package/pennyfarthing-dist/scripts/hooks/session-start.sh +0 -97
- package/pennyfarthing-dist/scripts/hooks/session-stop.sh +0 -58
- package/pennyfarthing-dist/scripts/jira/README.md +0 -33
- package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +0 -101
- package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +0 -97
- package/pennyfarthing-dist/scripts/jira/jira-bidirectional-sync.mjs +0 -327
- package/pennyfarthing-dist/scripts/jira/jira-bidirectional-sync.test.mjs +0 -503
- package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +0 -164
- package/pennyfarthing-dist/scripts/jira/jira-lib.mjs +0 -443
- package/pennyfarthing-dist/scripts/jira/jira-lib.sh +0 -464
- package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +0 -266
- package/pennyfarthing-dist/scripts/jira/jira-sync-story.mjs +0 -208
- package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +0 -8
- package/pennyfarthing-dist/scripts/jira/jira-sync.mjs +0 -198
- package/pennyfarthing-dist/scripts/jira/jira-sync.sh +0 -8
- package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +0 -104
- package/pennyfarthing-dist/scripts/jira/sync-epic-to-jira.sh +0 -16
- package/pennyfarthing-dist/scripts/lib/README.md +0 -29
- package/pennyfarthing-dist/scripts/lib/background-tasks.sh +0 -177
- package/pennyfarthing-dist/scripts/lib/checkpoint.sh +0 -136
- package/pennyfarthing-dist/scripts/lib/common.sh +0 -157
- package/pennyfarthing-dist/scripts/lib/file-lock.sh +0 -269
- package/pennyfarthing-dist/scripts/lib/find-root.sh +0 -35
- package/pennyfarthing-dist/scripts/lib/logging.sh +0 -186
- package/pennyfarthing-dist/scripts/lib/retry.sh +0 -76
- package/pennyfarthing-dist/scripts/misc/README.md +0 -44
- package/pennyfarthing-dist/scripts/misc/add-short-names.mjs +0 -264
- package/pennyfarthing-dist/scripts/misc/backlog.sh +0 -91
- package/pennyfarthing-dist/scripts/misc/check-status.sh +0 -247
- package/pennyfarthing-dist/scripts/misc/deploy.sh +0 -284
- package/pennyfarthing-dist/scripts/misc/doctor-dogfood.sh +0 -392
- package/pennyfarthing-dist/scripts/misc/find-related-work.sh +0 -231
- package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +0 -110
- package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +0 -74
- package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.mjs +0 -474
- package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +0 -9
- package/pennyfarthing-dist/scripts/misc/repo-scan.sh +0 -141
- package/pennyfarthing-dist/scripts/misc/repo-utils.sh +0 -778
- package/pennyfarthing-dist/scripts/misc/run-ci.sh +0 -219
- package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +0 -7
- package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +0 -319
- package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +0 -193
- package/pennyfarthing-dist/scripts/misc/statusline.sh +0 -259
- package/pennyfarthing-dist/scripts/misc/uninstall.sh +0 -270
- package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +0 -160
- package/pennyfarthing-dist/scripts/sprint/README.md +0 -29
- package/pennyfarthing-dist/scripts/sprint/archive-story.sh +0 -135
- package/pennyfarthing-dist/scripts/sprint/available-stories.sh +0 -97
- package/pennyfarthing-dist/scripts/sprint/check-story.sh +0 -164
- package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +0 -58
- package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +0 -69
- package/pennyfarthing-dist/scripts/sprint/list-future.sh +0 -151
- package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +0 -116
- package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +0 -164
- package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +0 -421
- package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +0 -39
- package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +0 -241
- package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +0 -134
- package/pennyfarthing-dist/scripts/story/README.md +0 -23
- package/pennyfarthing-dist/scripts/story/create-story.sh +0 -159
- package/pennyfarthing-dist/scripts/story/size-story.sh +0 -198
- package/pennyfarthing-dist/scripts/story/story-template.sh +0 -162
- package/pennyfarthing-dist/scripts/test/README.md +0 -23
- package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +0 -289
- package/pennyfarthing-dist/scripts/test/swebench-judge.py +0 -400
- package/pennyfarthing-dist/scripts/test/test-cache.sh +0 -165
- package/pennyfarthing-dist/scripts/test/test-setup.sh +0 -337
- package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -582
- package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +0 -515
- package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +0 -599
- package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +0 -332
- package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +0 -573
- package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +0 -859
- package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +0 -662
- package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +0 -589
- package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +0 -105
- package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +0 -597
- package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +0 -514
- package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +0 -517
- package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -331
- package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +0 -647
- package/pennyfarthing-dist/scripts/theme/README.md +0 -22
- package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +0 -203
- package/pennyfarthing-dist/scripts/theme/list-themes.sh +0 -73
- package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +0 -97
- package/pennyfarthing-dist/scripts/workflow/README.md +0 -28
- package/pennyfarthing-dist/scripts/workflow/check.sh +0 -497
- package/pennyfarthing-dist/scripts/workflow/finish-story.sh +0 -159
- package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +0 -228
- package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +0 -91
- package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +0 -163
- package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +0 -138
- package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +0 -256
- package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +0 -167
- package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +0 -242
- package/pennyfarthing-dist/skills/changelog/SKILL.md +0 -367
- package/pennyfarthing-dist/skills/code-review/SKILL.md +0 -168
- package/pennyfarthing-dist/skills/context-engineering/SKILL.md +0 -274
- package/pennyfarthing-dist/skills/cyclist/SKILL.md +0 -88
- package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +0 -437
- package/pennyfarthing-dist/skills/finalize-run/SKILL.md +0 -258
- package/pennyfarthing-dist/skills/jira/SKILL.md +0 -484
- package/pennyfarthing-dist/skills/judge/SKILL.md +0 -579
- package/pennyfarthing-dist/skills/just/SKILL.md +0 -403
- package/pennyfarthing-dist/skills/mermaid/SKILL.md +0 -240
- package/pennyfarthing-dist/skills/otel/skill.md +0 -223
- package/pennyfarthing-dist/skills/permissions/skill.md +0 -172
- package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +0 -178
- package/pennyfarthing-dist/skills/skill-registry.schema.json +0 -107
- package/pennyfarthing-dist/skills/skill-registry.yaml +0 -357
- package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +0 -101
- package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +0 -97
- package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +0 -164
- package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +0 -101
- package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +0 -116
- package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +0 -164
- package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +0 -39
- package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +0 -147
- package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +0 -104
- package/pennyfarthing-dist/skills/sprint/skill.md +0 -465
- package/pennyfarthing-dist/skills/story/scripts/create-story.sh +0 -159
- package/pennyfarthing-dist/skills/story/scripts/size-story.sh +0 -198
- package/pennyfarthing-dist/skills/story/scripts/story-template.sh +0 -162
- package/pennyfarthing-dist/skills/story/skill.md +0 -219
- package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +0 -390
- package/pennyfarthing-dist/skills/testing/SKILL.md +0 -99
- package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +0 -124
- package/pennyfarthing-dist/skills/theme/skill.md +0 -129
- package/pennyfarthing-dist/skills/theme-creation/SKILL.md +0 -169
- package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +0 -91
- package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +0 -163
- package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +0 -138
- package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +0 -273
- package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +0 -167
- package/pennyfarthing-dist/skills/workflow/skill.md +0 -337
- package/pennyfarthing-dist/skills/yq/SKILL.md +0 -264
- package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +0 -187
- package/pennyfarthing-dist/templates/LEADERBOARD.template.md +0 -59
- package/pennyfarthing-dist/templates/agent-scopes.yaml.template +0 -276
- package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +0 -61
- package/pennyfarthing-dist/templates/persona-config.yaml.template +0 -22
- package/pennyfarthing-dist/templates/preferences.yaml.template +0 -15
- package/pennyfarthing-dist/templates/settings.local.json.template +0 -90
- package/pennyfarthing-dist/templates/setup-env.sh.template +0 -18
- package/pennyfarthing-dist/templates/shared-context.md.template +0 -70
- package/pennyfarthing-dist/templates/sidecar/decisions.md.template +0 -40
- package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +0 -37
- package/pennyfarthing-dist/templates/sidecar/patterns.md.template +0 -34
- package/pennyfarthing-dist/workflows/agent-docs.yaml +0 -70
- package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +0 -101
- package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +0 -93
- package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +0 -115
- package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +0 -133
- package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +0 -138
- package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +0 -133
- package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +0 -142
- package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +0 -160
- package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +0 -102
- package/pennyfarthing-dist/workflows/architecture.yaml +0 -65
- package/pennyfarthing-dist/workflows/bdd.yaml +0 -60
- package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +0 -62
- package/pennyfarthing-dist/workflows/brainstorming/checklist.md +0 -44
- package/pennyfarthing-dist/workflows/brainstorming/instructions.md +0 -736
- package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +0 -49
- package/pennyfarthing-dist/workflows/code-review/checklist.md +0 -23
- package/pennyfarthing-dist/workflows/code-review/instructions.md +0 -234
- package/pennyfarthing-dist/workflows/code-review/workflow.yaml +0 -51
- package/pennyfarthing-dist/workflows/dev-story/checklist.md +0 -80
- package/pennyfarthing-dist/workflows/dev-story/instructions.xml +0 -410
- package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +0 -50
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +0 -256
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +0 -233
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +0 -272
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +0 -145
- package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +0 -57
- package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +0 -27
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +0 -190
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +0 -178
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -179
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +0 -139
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +0 -252
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +0 -133
- package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +0 -4
- package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +0 -40
- package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +0 -13
- package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +0 -197
- package/pennyfarthing-dist/workflows/prd/data/project-types.csv +0 -11
- package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +0 -191
- package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +0 -153
- package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +0 -224
- package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +0 -226
- package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +0 -213
- package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +0 -207
- package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +0 -226
- package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +0 -237
- package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +0 -228
- package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +0 -231
- package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +0 -242
- package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +0 -217
- package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +0 -180
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +0 -247
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +0 -208
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +0 -249
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +0 -253
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +0 -168
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +0 -218
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +0 -191
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +0 -209
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +0 -174
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +0 -214
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +0 -228
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +0 -217
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -205
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +0 -243
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +0 -263
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +0 -209
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +0 -264
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +0 -242
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +0 -232
- package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +0 -10
- package/pennyfarthing-dist/workflows/prd/workflow.yaml +0 -42
- package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +0 -177
- package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +0 -161
- package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +0 -199
- package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +0 -202
- package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +0 -205
- package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +0 -219
- package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +0 -194
- package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +0 -10
- package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +0 -31
- package/pennyfarthing-dist/workflows/project-context/project-context-template.md +0 -21
- package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +0 -184
- package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +0 -318
- package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +0 -278
- package/pennyfarthing-dist/workflows/project-context/workflow.yaml +0 -27
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +0 -156
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +0 -120
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +0 -113
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +0 -113
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +0 -106
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +0 -140
- package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +0 -27
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +0 -189
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +0 -144
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +0 -128
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +0 -191
- package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +0 -74
- package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +0 -27
- package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +0 -137
- package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +0 -229
- package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +0 -238
- package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +0 -206
- package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +0 -234
- package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +0 -443
- package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +0 -182
- package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +0 -237
- package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +0 -200
- package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +0 -249
- package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +0 -259
- package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +0 -177
- package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +0 -475
- package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +0 -137
- package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +0 -239
- package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +0 -248
- package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +0 -202
- package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +0 -239
- package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +0 -486
- package/pennyfarthing-dist/workflows/research/templates/research.template.md +0 -29
- package/pennyfarthing-dist/workflows/research/workflow.yaml +0 -45
- package/pennyfarthing-dist/workflows/retrospective/checklist.md +0 -31
- package/pennyfarthing-dist/workflows/retrospective/instructions.md +0 -1443
- package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +0 -50
- package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +0 -33
- package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +0 -55
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +0 -54
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +0 -44
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +0 -64
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +0 -73
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +0 -56
- package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +0 -34
- package/pennyfarthing-dist/workflows/tdd.yaml +0 -50
- package/pennyfarthing-dist/workflows/trivial.yaml +0 -40
- package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +0 -135
- package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +0 -127
- package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +0 -190
- package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +0 -216
- package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +0 -219
- package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +0 -234
- package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +0 -252
- package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +0 -254
- package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +0 -224
- package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +0 -224
- package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +0 -241
- package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +0 -248
- package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +0 -237
- package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +0 -264
- package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +0 -228
- package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +0 -13
- package/pennyfarthing-dist/workflows/ux-design/workflow.yaml +0 -41
- /package/{packages/core/bin → bin}/pennyfarthing.js +0 -0
|
@@ -1,746 +0,0 @@
|
|
|
1
|
-
# Approval Gates Pattern
|
|
2
|
-
|
|
3
|
-
**Pattern Type:** Human-in-the-Loop Verification
|
|
4
|
-
**Agents Involved:** Any agent requiring external validation
|
|
5
|
-
**Coordination Mechanism:** Assessment-first protocol with verdict-based routing
|
|
6
|
-
|
|
7
|
-
## Problem Statement
|
|
8
|
-
|
|
9
|
-
Autonomous agent workflows need controlled decision points to ensure quality and maintain human oversight:
|
|
10
|
-
|
|
11
|
-
1. **Quality Escapes:** Without explicit gates, flawed work may proceed unchecked through the workflow
|
|
12
|
-
2. **Lost Accountability:** Decisions made without human awareness create auditability gaps
|
|
13
|
-
3. **Uncontrolled Progression:** Workflows advance even when conditions for success aren't met
|
|
14
|
-
4. **Context Loss:** State changes happen silently, making recovery and debugging difficult
|
|
15
|
-
|
|
16
|
-
Without approval gates, workflows may:
|
|
17
|
-
- Ship broken code that tests don't catch
|
|
18
|
-
- Make irreversible changes without confirmation
|
|
19
|
-
- Skip critical verification steps under time pressure
|
|
20
|
-
- Lose human oversight of important decisions
|
|
21
|
-
|
|
22
|
-
## Solution
|
|
23
|
-
|
|
24
|
-
Implement **explicit verification points** where workflow progression requires passing a gate condition. Gates can be automated (tests must pass), require human review (Reviewer approval), or request user decisions (AskUserQuestion).
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
Workflow Stage
|
|
28
|
-
│
|
|
29
|
-
▼
|
|
30
|
-
┌─────────────────┐
|
|
31
|
-
│ APPROVAL GATE │
|
|
32
|
-
│ (verification) │
|
|
33
|
-
└────────┬────────┘
|
|
34
|
-
│
|
|
35
|
-
┌────┴────┐
|
|
36
|
-
│ │
|
|
37
|
-
PASS FAIL
|
|
38
|
-
│ │
|
|
39
|
-
▼ ▼
|
|
40
|
-
Continue Block/Route
|
|
41
|
-
Workflow Back
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
The key insight: **Make workflow progression conditional on explicit verification** rather than allowing autonomous advancement.
|
|
45
|
-
|
|
46
|
-
### Four Gate Types
|
|
47
|
-
|
|
48
|
-
1. **Automated Gates** - Mechanical checks that must pass (tests, lint, pre-flight)
|
|
49
|
-
2. **Human Review Gates** - Expert judgment required before proceeding
|
|
50
|
-
3. **User Decision Gates** - Interactive choices via AskUserQuestion
|
|
51
|
-
4. **Plan Approval Gates** - Confirmation of proposed approach via EnterPlanMode
|
|
52
|
-
|
|
53
|
-
## State Diagram
|
|
54
|
-
|
|
55
|
-
```mermaid
|
|
56
|
-
stateDiagram-v2
|
|
57
|
-
[*] --> WORK_IN_PROGRESS: Agent working
|
|
58
|
-
|
|
59
|
-
WORK_IN_PROGRESS --> GATE_CHECK: Work complete
|
|
60
|
-
|
|
61
|
-
state GATE_CHECK {
|
|
62
|
-
[*] --> AUTOMATED: Pre-flight checks
|
|
63
|
-
AUTOMATED --> REVIEW: Checks pass
|
|
64
|
-
AUTOMATED --> BLOCKED: Checks fail
|
|
65
|
-
REVIEW --> DECISION: Reviewer verdict
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
DECISION --> APPROVED: Pass
|
|
69
|
-
DECISION --> REJECTED: Fail
|
|
70
|
-
|
|
71
|
-
APPROVED --> NEXT_STAGE: Continue workflow
|
|
72
|
-
REJECTED --> WORK_IN_PROGRESS: Fix and retry
|
|
73
|
-
BLOCKED --> WORK_IN_PROGRESS: Address failures
|
|
74
|
-
|
|
75
|
-
NEXT_STAGE --> [*]: Workflow proceeds
|
|
76
|
-
|
|
77
|
-
note right of AUTOMATED: Tests, lint, pre-flight
|
|
78
|
-
note right of REVIEW: Human judgment
|
|
79
|
-
note right of DECISION: APPROVE or REJECT
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### ASCII Alternative
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
┌─────────────────────────────────────────────────────────────────────────┐
|
|
86
|
-
│ APPROVAL GATES PATTERN │
|
|
87
|
-
└─────────────────────────────────────────────────────────────────────────┘
|
|
88
|
-
|
|
89
|
-
┌───────────────────┐
|
|
90
|
-
│ WORK_IN_PROGRESS │
|
|
91
|
-
│ (agent works) │
|
|
92
|
-
└─────────┬─────────┘
|
|
93
|
-
│
|
|
94
|
-
│ Work complete, assessment written
|
|
95
|
-
│
|
|
96
|
-
▼
|
|
97
|
-
┌───────────────────┐
|
|
98
|
-
│ AUTOMATED GATE │◄─── Tests, lint, pre-flight checks
|
|
99
|
-
│ (mechanical) │
|
|
100
|
-
└─────────┬─────────┘
|
|
101
|
-
│
|
|
102
|
-
┌────┴────┐
|
|
103
|
-
│ │
|
|
104
|
-
PASS FAIL
|
|
105
|
-
│ │
|
|
106
|
-
▼ └──────────────────────────────┐
|
|
107
|
-
┌───────────────────┐ │
|
|
108
|
-
│ HUMAN REVIEW │◄─── Reviewer analyzes │
|
|
109
|
-
│ (judgment) │ code/docs │
|
|
110
|
-
└─────────┬─────────┘ │
|
|
111
|
-
│ │
|
|
112
|
-
┌────┴────┐ │
|
|
113
|
-
│ │ │
|
|
114
|
-
APPROVE REJECT │
|
|
115
|
-
│ │ │
|
|
116
|
-
▼ └──────────────────────────────┤
|
|
117
|
-
┌───────────────────┐ │
|
|
118
|
-
│ NEXT STAGE │ │
|
|
119
|
-
│ (continues) │ │
|
|
120
|
-
└───────────────────┘ │
|
|
121
|
-
│
|
|
122
|
-
┌─────────────────────────────────────────────┘
|
|
123
|
-
│
|
|
124
|
-
▼
|
|
125
|
-
┌───────────────────┐
|
|
126
|
-
│ WORK_IN_PROGRESS │◄─── Fix issues, retry gate
|
|
127
|
-
│ (fix & retry) │
|
|
128
|
-
└───────────────────┘
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### The Rejection Loop
|
|
132
|
-
|
|
133
|
-
```
|
|
134
|
-
┌─────────────────────────────────────────────────────────────────────────┐
|
|
135
|
-
│ REJECTION LOOP │
|
|
136
|
-
└─────────────────────────────────────────────────────────────────────────┘
|
|
137
|
-
|
|
138
|
-
Attempt 1 Attempt 2
|
|
139
|
-
┌─────────────────────┐ ┌─────────────────────┐
|
|
140
|
-
│ │ │ │
|
|
141
|
-
│ Dev implements │ │ Dev fixes issues │
|
|
142
|
-
│ ↓ │ │ ↓ │
|
|
143
|
-
│ Tests GREEN │ │ Tests GREEN │
|
|
144
|
-
│ ↓ │ │ ↓ │
|
|
145
|
-
│ Reviewer reviews │ │ Reviewer reviews │
|
|
146
|
-
│ ↓ │ │ ↓ │
|
|
147
|
-
│ REJECTED (3 issues)│─────►│ APPROVED │
|
|
148
|
-
│ │ │ ↓ │
|
|
149
|
-
└─────────────────────┘ │ Continue to SM │
|
|
150
|
-
│ │
|
|
151
|
-
└─────────────────────┘
|
|
152
|
-
|
|
153
|
-
The loop continues until:
|
|
154
|
-
- All Critical/Major issues resolved
|
|
155
|
-
- Reviewer approves
|
|
156
|
-
- Maximum retry limit (organizational choice)
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
## Implementation
|
|
160
|
-
|
|
161
|
-
### Gate Type 1: Automated Gates
|
|
162
|
-
|
|
163
|
-
Mechanical checks that must pass before human review begins.
|
|
164
|
-
|
|
165
|
-
**Example: Reviewer Pre-flight**
|
|
166
|
-
|
|
167
|
-
```yaml
|
|
168
|
-
# Reviewer spawns pre-flight check before analysis
|
|
169
|
-
Task:
|
|
170
|
-
subagent_type: "reviewer-preflight"
|
|
171
|
-
description: "Gather pre-flight data"
|
|
172
|
-
prompt: |
|
|
173
|
-
STORY_ID: 5-2
|
|
174
|
-
REPOS: api,frontend
|
|
175
|
-
BRANCH: feature/5-2-implement-feature
|
|
176
|
-
PR_NUMBER: 42
|
|
177
|
-
|
|
178
|
-
# Pre-flight returns:
|
|
179
|
-
# - Test results (must be GREEN)
|
|
180
|
-
# - Lint results (must be clean or documented exceptions)
|
|
181
|
-
# - Code smell analysis
|
|
182
|
-
# - Diff statistics
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
**Gate Condition:** Pre-flight checks pass. If tests fail or critical lint issues exist, gate blocks progression.
|
|
186
|
-
|
|
187
|
-
**Example: TEA RED Verification**
|
|
188
|
-
|
|
189
|
-
```yaml
|
|
190
|
-
# TEA handoff verifies tests are RED (failing)
|
|
191
|
-
# From tea-handoff.md L42-76
|
|
192
|
-
|
|
193
|
-
1. Spawn testing-runner subagent
|
|
194
|
-
2. Verify tests FAIL as expected
|
|
195
|
-
3. If all GREEN → BLOCKED (tests don't exercise new code)
|
|
196
|
-
4. If RED → PASS (ready for Dev)
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
### Gate Type 2: Human Review Gates
|
|
200
|
-
|
|
201
|
-
Require expert judgment from a designated reviewer agent.
|
|
202
|
-
|
|
203
|
-
**Example: Reviewer Approval/Rejection**
|
|
204
|
-
|
|
205
|
-
The Reviewer agent implements an adversarial review gate:
|
|
206
|
-
|
|
207
|
-
```markdown
|
|
208
|
-
## Reviewer Assessment
|
|
209
|
-
|
|
210
|
-
**PR:** #42
|
|
211
|
-
**Verdict:** APPROVED | REJECTED
|
|
212
|
-
|
|
213
|
-
**Code Review Evidence:**
|
|
214
|
-
- **Data flow traced:** userId from handler.go:47 → repo.go:89 (parameterized, safe)
|
|
215
|
-
- **Pattern observed:** Proper mutex usage in mock_client.go:45-60
|
|
216
|
-
- **Error handling:** API failures caught at service.go:112
|
|
217
|
-
|
|
218
|
-
**Issues Found:** (if REJECTED)
|
|
219
|
-
| Severity | Issue | Location | Fix Required |
|
|
220
|
-
|----------|-------|----------|--------------|
|
|
221
|
-
| Critical | SQL injection | query.go:23 | Use parameterized query |
|
|
222
|
-
| Major | Missing null check | handler.go:55 | Add validation |
|
|
223
|
-
|
|
224
|
-
**Handoff:** To SM for finish (APPROVED) | Back to Dev (REJECTED)
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
**Gate Condition:** Reviewer verdict is APPROVED. If REJECTED, workflow returns to Dev with documented issues.
|
|
228
|
-
|
|
229
|
-
### Gate Type 3: User Decision Gates
|
|
230
|
-
|
|
231
|
-
Interactive prompts that pause workflow for user input.
|
|
232
|
-
|
|
233
|
-
**Example: AskUserQuestion for Story Selection**
|
|
234
|
-
|
|
235
|
-
```yaml
|
|
236
|
-
# SM presents story options to user
|
|
237
|
-
AskUserQuestion:
|
|
238
|
-
questions:
|
|
239
|
-
- question: "Which story shall we work on?"
|
|
240
|
-
header: "Story"
|
|
241
|
-
multiSelect: false
|
|
242
|
-
options:
|
|
243
|
-
- label: "5-2: Implement feature X (3 pts)"
|
|
244
|
-
description: "Add new capability to API"
|
|
245
|
-
- label: "5-3: Fix bug Y (2 pts)"
|
|
246
|
-
description: "Address reported issue"
|
|
247
|
-
- label: "5-4: Refactor Z (5 pts)"
|
|
248
|
-
description: "Technical debt reduction"
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
**Gate Condition:** User selects an option. Workflow pauses until response received.
|
|
252
|
-
|
|
253
|
-
**Example: Confirmation Before Destructive Action**
|
|
254
|
-
|
|
255
|
-
```yaml
|
|
256
|
-
# Before Jira claim or branch deletion
|
|
257
|
-
AskUserQuestion:
|
|
258
|
-
questions:
|
|
259
|
-
- question: "Confirm claiming MSSCI-11374 and creating branch?"
|
|
260
|
-
header: "Confirm"
|
|
261
|
-
multiSelect: false
|
|
262
|
-
options:
|
|
263
|
-
- label: "Yes, proceed"
|
|
264
|
-
description: "Claim ticket and create feature branch"
|
|
265
|
-
- label: "No, cancel"
|
|
266
|
-
description: "Abort setup and return to story selection"
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
### Gate Type 4: Plan Approval Gates
|
|
270
|
-
|
|
271
|
-
Present proposed approach for user confirmation before execution.
|
|
272
|
-
|
|
273
|
-
**Example: EnterPlanMode for Complex Work**
|
|
274
|
-
|
|
275
|
-
```yaml
|
|
276
|
-
# Agent enters plan mode for non-trivial implementation
|
|
277
|
-
EnterPlanMode:
|
|
278
|
-
# Triggers transition to planning state
|
|
279
|
-
# Agent then:
|
|
280
|
-
# 1. Explores codebase
|
|
281
|
-
# 2. Designs approach
|
|
282
|
-
# 3. Writes plan to designated file
|
|
283
|
-
# 4. Calls ExitPlanMode for user approval
|
|
284
|
-
|
|
285
|
-
# In plan mode, agent writes:
|
|
286
|
-
## Implementation Plan
|
|
287
|
-
|
|
288
|
-
### Approach
|
|
289
|
-
1. Create new service layer component
|
|
290
|
-
2. Add repository methods for data access
|
|
291
|
-
3. Wire up HTTP handlers
|
|
292
|
-
4. Add comprehensive tests
|
|
293
|
-
|
|
294
|
-
### Files to Modify
|
|
295
|
-
- internal/service/feature.go (new)
|
|
296
|
-
- internal/repository/feature.go (new)
|
|
297
|
-
- internal/handler/feature.go (new)
|
|
298
|
-
- internal/handler/routes.go (modify)
|
|
299
|
-
|
|
300
|
-
### Risks
|
|
301
|
-
- May require database migration
|
|
302
|
-
- Performance impact on existing queries
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
**Gate Condition:** User approves plan via ExitPlanMode acceptance. If rejected, agent revises approach.
|
|
306
|
-
|
|
307
|
-
### The Assessment-First Protocol
|
|
308
|
-
|
|
309
|
-
**Critical Pattern:** All agents must write their assessment BEFORE spawning the handoff subagent.
|
|
310
|
-
|
|
311
|
-
```
|
|
312
|
-
┌─────────────────────────────────────────────────────────────────────────┐
|
|
313
|
-
│ ASSESSMENT-FIRST PROTOCOL │
|
|
314
|
-
└─────────────────────────────────────────────────────────────────────────┘
|
|
315
|
-
|
|
316
|
-
CORRECT SEQUENCE:
|
|
317
|
-
|
|
318
|
-
┌─────────────────┐
|
|
319
|
-
│ Agent works │
|
|
320
|
-
└────────┬────────┘
|
|
321
|
-
│
|
|
322
|
-
▼
|
|
323
|
-
┌─────────────────┐
|
|
324
|
-
│ Write Assessment│◄─── Agent writes to session file FIRST
|
|
325
|
-
│ to session file │
|
|
326
|
-
└────────┬────────┘
|
|
327
|
-
│
|
|
328
|
-
▼
|
|
329
|
-
┌─────────────────┐
|
|
330
|
-
│ Spawn handoff │◄─── Then spawns subagent
|
|
331
|
-
│ subagent │
|
|
332
|
-
└────────┬────────┘
|
|
333
|
-
│
|
|
334
|
-
▼
|
|
335
|
-
┌─────────────────┐
|
|
336
|
-
│ Subagent verifies│◄─── Subagent checks assessment exists
|
|
337
|
-
│ assessment exists│ (grep "## {Agent} Assessment")
|
|
338
|
-
└────────┬────────┘
|
|
339
|
-
│
|
|
340
|
-
▼
|
|
341
|
-
┌─────────────────┐
|
|
342
|
-
│ Subagent routes │◄─── Routes based on verdict
|
|
343
|
-
│ based on verdict│
|
|
344
|
-
└─────────────────┘
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
WRONG (Anti-pattern):
|
|
348
|
-
|
|
349
|
-
Agent → Spawn subagent → Subagent writes assessment
|
|
350
|
-
|
|
351
|
-
This fails because:
|
|
352
|
-
- Subagent may miss critical context
|
|
353
|
-
- No verification step
|
|
354
|
-
- Assessment quality suffers
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
**Verification Code** (from handoff subagents):
|
|
358
|
-
|
|
359
|
-
```bash
|
|
360
|
-
# Step 0: Verify assessment exists
|
|
361
|
-
grep -q "## Reviewer Assessment" .session/{STORY_ID}-session.md
|
|
362
|
-
|
|
363
|
-
# If NOT found: STOP and escalate
|
|
364
|
-
# If found: Continue with routing
|
|
365
|
-
```
|
|
366
|
-
|
|
367
|
-
### Verdict Verification
|
|
368
|
-
|
|
369
|
-
Handoff subagents verify they were called with the correct verdict:
|
|
370
|
-
|
|
371
|
-
```yaml
|
|
372
|
-
# reviewer-handoff-approve.md L35-36
|
|
373
|
-
Step 2: Verify verdict is "APPROVED"
|
|
374
|
-
- Read assessment section
|
|
375
|
-
- Confirm verdict field says "APPROVED"
|
|
376
|
-
- If "REJECTED": STOP - wrong subagent called, escalate
|
|
377
|
-
|
|
378
|
-
# reviewer-handoff-reject.md L39
|
|
379
|
-
Step 2: Verify verdict is "REJECTED"
|
|
380
|
-
- Read assessment section
|
|
381
|
-
- Confirm verdict field says "REJECTED"
|
|
382
|
-
- If "APPROVED": STOP - wrong subagent called, escalate
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
### Context-Aware Routing
|
|
386
|
-
|
|
387
|
-
After gate passage, check context usage before invoking next agent:
|
|
388
|
-
|
|
389
|
-
```bash
|
|
390
|
-
# Check context usage
|
|
391
|
-
$CLAUDE_PROJECT_DIR/scripts/core/check-context.sh --human
|
|
392
|
-
|
|
393
|
-
# Routing decision:
|
|
394
|
-
# If < 60%: Invoke next agent directly in this session
|
|
395
|
-
# If > 60%: Tell user to start fresh session with next agent
|
|
396
|
-
```
|
|
397
|
-
|
|
398
|
-
This prevents context overflow in long sessions by creating natural break points.
|
|
399
|
-
|
|
400
|
-
## When to Use
|
|
401
|
-
|
|
402
|
-
### Ideal Scenarios
|
|
403
|
-
|
|
404
|
-
| Scenario | Gate Type | Why |
|
|
405
|
-
|----------|-----------|-----|
|
|
406
|
-
| Before merging code | Human Review | Expert judgment on quality |
|
|
407
|
-
| Before destructive operations | User Decision | Confirmation prevents accidents |
|
|
408
|
-
| Complex multi-file changes | Plan Approval | Validate approach before execution |
|
|
409
|
-
| Before production deployment | Automated + Human | Multiple verification layers |
|
|
410
|
-
| Story point estimation | User Decision | Human judgment on complexity |
|
|
411
|
-
|
|
412
|
-
### Decision Heuristic
|
|
413
|
-
|
|
414
|
-
```
|
|
415
|
-
Does the action...
|
|
416
|
-
├── Affect production data or systems?
|
|
417
|
-
│ └── YES → Automated + Human Review gates
|
|
418
|
-
├── Involve irreversible changes?
|
|
419
|
-
│ └── YES → User Decision gate (confirmation)
|
|
420
|
-
├── Require choosing between approaches?
|
|
421
|
-
│ └── YES → Plan Approval or User Decision gate
|
|
422
|
-
├── Need expert judgment on quality?
|
|
423
|
-
│ └── YES → Human Review gate
|
|
424
|
-
└── Have mechanical pass/fail criteria?
|
|
425
|
-
└── YES → Automated gate (tests, lint)
|
|
426
|
-
```
|
|
427
|
-
|
|
428
|
-
### Gate Placement in TDD Flow
|
|
429
|
-
|
|
430
|
-
```
|
|
431
|
-
┌─────────────────────────────────────────────────────────────────────────┐
|
|
432
|
-
│ GATES IN TDD FLOW │
|
|
433
|
-
└─────────────────────────────────────────────────────────────────────────┘
|
|
434
|
-
|
|
435
|
-
SM (setup)
|
|
436
|
-
│
|
|
437
|
-
├── [User Decision Gate] Story selection
|
|
438
|
-
├── [User Decision Gate] Confirm Jira claim
|
|
439
|
-
│
|
|
440
|
-
▼
|
|
441
|
-
TEA (RED)
|
|
442
|
-
│
|
|
443
|
-
├── [Automated Gate] Tests must be RED (failing)
|
|
444
|
-
│
|
|
445
|
-
▼
|
|
446
|
-
Dev (GREEN)
|
|
447
|
-
│
|
|
448
|
-
├── [Automated Gate] Tests must be GREEN (passing)
|
|
449
|
-
├── [Automated Gate] Lint must pass
|
|
450
|
-
│
|
|
451
|
-
▼
|
|
452
|
-
Reviewer
|
|
453
|
-
│
|
|
454
|
-
├── [Automated Gate] Pre-flight checks
|
|
455
|
-
├── [Human Review Gate] Code review verdict
|
|
456
|
-
│ │
|
|
457
|
-
│ ┌────┴────┐
|
|
458
|
-
│ APPROVE REJECT
|
|
459
|
-
│ │ │
|
|
460
|
-
│ ▼ └──► Back to Dev (loop)
|
|
461
|
-
│
|
|
462
|
-
▼
|
|
463
|
-
SM (finish)
|
|
464
|
-
│
|
|
465
|
-
├── [User Decision Gate] Confirm archive
|
|
466
|
-
│
|
|
467
|
-
▼
|
|
468
|
-
DONE
|
|
469
|
-
```
|
|
470
|
-
|
|
471
|
-
## Error Recovery
|
|
472
|
-
|
|
473
|
-
### Retry Pattern
|
|
474
|
-
|
|
475
|
-
All handoff subagents follow this pattern:
|
|
476
|
-
|
|
477
|
-
```
|
|
478
|
-
1. Log the failure
|
|
479
|
-
- What step failed
|
|
480
|
-
- Error message
|
|
481
|
-
- Current state
|
|
482
|
-
|
|
483
|
-
2. Diagnose
|
|
484
|
-
- What specifically went wrong?
|
|
485
|
-
- Is this retryable?
|
|
486
|
-
|
|
487
|
-
3. Adjust (max 2 retries)
|
|
488
|
-
- Try alternative approach
|
|
489
|
-
- Use fallback path
|
|
490
|
-
|
|
491
|
-
4. Escalate
|
|
492
|
-
- Report structured error
|
|
493
|
-
- Let calling agent decide
|
|
494
|
-
```
|
|
495
|
-
|
|
496
|
-
### Escalation Format
|
|
497
|
-
|
|
498
|
-
When gates cannot be passed:
|
|
499
|
-
|
|
500
|
-
```markdown
|
|
501
|
-
GATE BLOCKED
|
|
502
|
-
|
|
503
|
-
Gate: [which gate]
|
|
504
|
-
Step failed: [step number and name]
|
|
505
|
-
Error: [error message]
|
|
506
|
-
Diagnosis: [what went wrong]
|
|
507
|
-
|
|
508
|
-
Current state:
|
|
509
|
-
- Session: .session/{STORY_ID}-session.md
|
|
510
|
-
- Phase: [current phase]
|
|
511
|
-
- Last successful step: [step]
|
|
512
|
-
|
|
513
|
-
Recommended action: [what calling agent should do]
|
|
514
|
-
```
|
|
515
|
-
|
|
516
|
-
### Common Failures
|
|
517
|
-
|
|
518
|
-
| Failure | Gate | Recovery |
|
|
519
|
-
|---------|------|----------|
|
|
520
|
-
| Assessment missing | Any handoff | Agent must write assessment first |
|
|
521
|
-
| Wrong verdict | Reviewer handoff | Call correct subagent (approve vs reject) |
|
|
522
|
-
| Tests all GREEN | TEA handoff | TEA must verify tests exercise new code |
|
|
523
|
-
| No issues documented | Rejection handoff | Reviewer must document specific issues |
|
|
524
|
-
| Context overflow | Any routing | Start fresh session |
|
|
525
|
-
| Jira unavailable | SM setup | Proceed without Jira, document for later |
|
|
526
|
-
|
|
527
|
-
### Partial Gate Passage
|
|
528
|
-
|
|
529
|
-
When some checks pass but others fail:
|
|
530
|
-
|
|
531
|
-
```markdown
|
|
532
|
-
## Gate Results
|
|
533
|
-
|
|
534
|
-
### Passed (2/3)
|
|
535
|
-
- Tests: GREEN (all passing)
|
|
536
|
-
- Lint: CLEAN (no issues)
|
|
537
|
-
|
|
538
|
-
### Failed (1/3)
|
|
539
|
-
- Pre-flight security scan: BLOCKED
|
|
540
|
-
- Issue: Hardcoded credentials detected
|
|
541
|
-
- Location: config/secrets.go:23
|
|
542
|
-
- Action: Remove and use environment variables
|
|
543
|
-
|
|
544
|
-
### Decision
|
|
545
|
-
Gate BLOCKED. Address security issue before proceeding.
|
|
546
|
-
```
|
|
547
|
-
|
|
548
|
-
## Anti-Patterns
|
|
549
|
-
|
|
550
|
-
### Skipping the Assessment Step
|
|
551
|
-
|
|
552
|
-
**Wrong:**
|
|
553
|
-
```
|
|
554
|
-
Agent completes work
|
|
555
|
-
↓
|
|
556
|
-
Spawns handoff subagent immediately
|
|
557
|
-
↓
|
|
558
|
-
Subagent has no assessment to verify
|
|
559
|
-
↓
|
|
560
|
-
Gate is effectively bypassed
|
|
561
|
-
```
|
|
562
|
-
|
|
563
|
-
**Correct:**
|
|
564
|
-
```
|
|
565
|
-
Agent completes work
|
|
566
|
-
↓
|
|
567
|
-
Writes assessment to session file
|
|
568
|
-
↓
|
|
569
|
-
Spawns handoff subagent
|
|
570
|
-
↓
|
|
571
|
-
Subagent verifies assessment exists
|
|
572
|
-
↓
|
|
573
|
-
Gate functions properly
|
|
574
|
-
```
|
|
575
|
-
|
|
576
|
-
### Rubber-Stamp Approvals
|
|
577
|
-
|
|
578
|
-
**Wrong:**
|
|
579
|
-
```markdown
|
|
580
|
-
## Reviewer Assessment
|
|
581
|
-
|
|
582
|
-
**Verdict:** APPROVED
|
|
583
|
-
|
|
584
|
-
Tests pass, looks fine.
|
|
585
|
-
```
|
|
586
|
-
|
|
587
|
-
No evidence of actual review. Gate provides false confidence.
|
|
588
|
-
|
|
589
|
-
**Correct:**
|
|
590
|
-
```markdown
|
|
591
|
-
## Reviewer Assessment
|
|
592
|
-
|
|
593
|
-
**Verdict:** APPROVED
|
|
594
|
-
|
|
595
|
-
**Evidence:**
|
|
596
|
-
- Traced userId from handler.go:47 through to repo.go:89 (parameterized query, safe)
|
|
597
|
-
- Verified error handling at service.go:112 catches API failures
|
|
598
|
-
- Checked null guards at handler.go:55-60
|
|
599
|
-
|
|
600
|
-
**Security:** Auth check at handler.go:47 verifies admin role.
|
|
601
|
-
**Performance:** Single query at repo.go:89, no N+1 issues.
|
|
602
|
-
```
|
|
603
|
-
|
|
604
|
-
### Silent Rejections
|
|
605
|
-
|
|
606
|
-
**Wrong:**
|
|
607
|
-
```markdown
|
|
608
|
-
## Reviewer Assessment
|
|
609
|
-
|
|
610
|
-
**Verdict:** REJECTED
|
|
611
|
-
|
|
612
|
-
Code needs work.
|
|
613
|
-
```
|
|
614
|
-
|
|
615
|
-
No actionable information for Dev to fix issues.
|
|
616
|
-
|
|
617
|
-
**Correct:**
|
|
618
|
-
```markdown
|
|
619
|
-
## Reviewer Assessment
|
|
620
|
-
|
|
621
|
-
**Verdict:** REJECTED
|
|
622
|
-
|
|
623
|
-
**Issues Found:**
|
|
624
|
-
|
|
625
|
-
| Severity | Issue | Location | Fix Required |
|
|
626
|
-
|----------|-------|----------|--------------|
|
|
627
|
-
| Critical | SQL injection vulnerability | query.go:23 | Use parameterized query |
|
|
628
|
-
| Major | Missing error handling | service.go:45 | Add try-catch block |
|
|
629
|
-
| Minor | Inconsistent naming | model.go:12 | Rename to camelCase |
|
|
630
|
-
|
|
631
|
-
**What Passed:**
|
|
632
|
-
- Test coverage adequate
|
|
633
|
-
- Performance acceptable
|
|
634
|
-
```
|
|
635
|
-
|
|
636
|
-
### Bypassing Gates Under Pressure
|
|
637
|
-
|
|
638
|
-
**Wrong:**
|
|
639
|
-
```
|
|
640
|
-
"We need to ship today, skip the review"
|
|
641
|
-
↓
|
|
642
|
-
Gate bypassed
|
|
643
|
-
↓
|
|
644
|
-
Bug ships to production
|
|
645
|
-
↓
|
|
646
|
-
3am incident response
|
|
647
|
-
```
|
|
648
|
-
|
|
649
|
-
**Correct:**
|
|
650
|
-
```
|
|
651
|
-
"We need to ship today"
|
|
652
|
-
↓
|
|
653
|
-
Expedited review (still goes through gate)
|
|
654
|
-
↓
|
|
655
|
-
Reviewer prioritizes critical checks
|
|
656
|
-
↓
|
|
657
|
-
Gate passes or blocks appropriately
|
|
658
|
-
↓
|
|
659
|
-
Quality maintained
|
|
660
|
-
```
|
|
661
|
-
|
|
662
|
-
### No Rejection Loop Limit
|
|
663
|
-
|
|
664
|
-
**Wrong:**
|
|
665
|
-
```
|
|
666
|
-
Rejection #1 → Dev fixes → Rejection #2 → Dev fixes →
|
|
667
|
-
Rejection #3 → Dev fixes → Rejection #4 → Dev fixes →
|
|
668
|
-
(infinite loop, no escalation)
|
|
669
|
-
```
|
|
670
|
-
|
|
671
|
-
**Correct:**
|
|
672
|
-
```
|
|
673
|
-
Rejection #1 → Dev fixes → Rejection #2 → Dev fixes →
|
|
674
|
-
Rejection #3 → ESCALATE to Architect/SM for design review
|
|
675
|
-
```
|
|
676
|
-
|
|
677
|
-
Set organizational policy for maximum rejection loops (typically 2-3).
|
|
678
|
-
|
|
679
|
-
## Comparison with Related Patterns
|
|
680
|
-
|
|
681
|
-
| Pattern | Use When | Key Difference |
|
|
682
|
-
|---------|----------|----------------|
|
|
683
|
-
| **TDD Flow** | Sequential workflow | Approval gates ARE the transitions |
|
|
684
|
-
| **Helper Delegation** | Mechanical work | Subagents execute gate checks |
|
|
685
|
-
| **Fan-out/Fan-in** | Parallel work | Gates sync parallel results |
|
|
686
|
-
| **Approval Gates** | Decision points | Explicit pass/fail verification |
|
|
687
|
-
|
|
688
|
-
### Pattern Integration
|
|
689
|
-
|
|
690
|
-
Approval gates integrate with other patterns:
|
|
691
|
-
|
|
692
|
-
```
|
|
693
|
-
TDD Flow uses approval gates at each transition:
|
|
694
|
-
SM ──[gate]──► TEA ──[gate]──► Dev ──[gate]──► Reviewer ──[gate]──► SM
|
|
695
|
-
|
|
696
|
-
Helper delegation executes gate checks:
|
|
697
|
-
Reviewer (Opus) ──► reviewer-preflight (Haiku) ──► returns gate status
|
|
698
|
-
|
|
699
|
-
Fan-out aggregation triggers approval gate:
|
|
700
|
-
[Parallel checks] ──► Aggregate ──[gate]──► Continue if all pass
|
|
701
|
-
```
|
|
702
|
-
|
|
703
|
-
## Implementation Checklist
|
|
704
|
-
|
|
705
|
-
When implementing approval gates:
|
|
706
|
-
|
|
707
|
-
- [ ] Identify decision points requiring verification
|
|
708
|
-
- [ ] Choose appropriate gate type (automated, human, user, plan)
|
|
709
|
-
- [ ] Implement assessment-first protocol
|
|
710
|
-
- [ ] Add verdict verification in handoff subagents
|
|
711
|
-
- [ ] Define pass/fail criteria clearly
|
|
712
|
-
- [ ] Document rejection reasons (for human gates)
|
|
713
|
-
- [ ] Implement retry pattern with escalation
|
|
714
|
-
- [ ] Set maximum rejection loop limit
|
|
715
|
-
- [ ] Add context-aware routing after gates
|
|
716
|
-
- [ ] Test gate blocking behavior
|
|
717
|
-
|
|
718
|
-
## Related Patterns
|
|
719
|
-
|
|
720
|
-
- **TDD Flow Pattern** (`tdd-flow-pattern.md`): Sequential workflow that uses gates at each transition
|
|
721
|
-
- **Helper Delegation Pattern** (`helper-delegation-pattern.md`): Subagents that execute gate checks
|
|
722
|
-
- **Fan-out/Fan-in Pattern** (`fan-out-fan-in-pattern.md`): Parallel execution that aggregates through gates
|
|
723
|
-
|
|
724
|
-
## References
|
|
725
|
-
|
|
726
|
-
### Agent Definitions (Gate Implementers)
|
|
727
|
-
- Reviewer: `agents/reviewer.md` - Primary approval gate (L9-25 adversarial mindset, L188-228 assessment templates)
|
|
728
|
-
- SM: `agents/sm.md` - Status gates and scale routing (L82-93, L359-365)
|
|
729
|
-
- Dev: `agents/dev.md` - Self-review checklist (L137-144)
|
|
730
|
-
- TEA: `agents/tea.md` - Chore bypass criteria (L96-104)
|
|
731
|
-
|
|
732
|
-
### Handoff Subagents (Gate Executors)
|
|
733
|
-
- Approval routing: `agents/reviewer-handoff-approve.md` (L26-39)
|
|
734
|
-
- Rejection routing: `agents/reviewer-handoff-reject.md` (L30-43)
|
|
735
|
-
- RED verification: `agents/tea-handoff.md` (L42-76)
|
|
736
|
-
- GREEN verification: `agents/dev-handoff.md`
|
|
737
|
-
|
|
738
|
-
### Claude Code Tools
|
|
739
|
-
- `AskUserQuestion`: Interactive user decision gates
|
|
740
|
-
- `EnterPlanMode` / `ExitPlanMode`: Plan approval gates
|
|
741
|
-
- `Task` with `subagent_type`: Delegated gate execution
|
|
742
|
-
|
|
743
|
-
---
|
|
744
|
-
|
|
745
|
-
*Last verified: 2026-01-06*
|
|
746
|
-
*Pennyfarthing v4.0.0*
|