@pennyfarthing/core 7.0.2 → 7.4.1
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 +2 -2
- package/package.json +11 -10
- package/packages/core/dist/cli/commands/cyclist.d.ts +2 -2
- package/packages/core/dist/cli/commands/cyclist.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/cyclist.js +8 -9
- package/packages/core/dist/cli/commands/cyclist.js.map +1 -1
- package/packages/core/dist/cli/commands/cyclist.test.js +6 -4
- package/packages/core/dist/cli/commands/cyclist.test.js.map +1 -1
- package/packages/core/dist/cli/commands/init.js +4 -3
- package/packages/core/dist/cli/commands/init.js.map +1 -1
- package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/update.js +15 -139
- package/packages/core/dist/cli/commands/update.js.map +1 -1
- package/packages/core/dist/cli/cyclist-migration.test.js +4 -3
- package/packages/core/dist/cli/cyclist-migration.test.js.map +1 -1
- package/packages/core/dist/cli/utils/constants.d.ts +7 -1
- package/packages/core/dist/cli/utils/constants.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/constants.js +4 -2
- package/packages/core/dist/cli/utils/constants.js.map +1 -1
- package/packages/core/dist/cli/utils/node-modules.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/node-modules.js +2 -1
- package/packages/core/dist/cli/utils/node-modules.js.map +1 -1
- package/packages/core/dist/cli/utils/themes.d.ts +1 -4
- package/packages/core/dist/cli/utils/themes.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/themes.js +2 -22
- package/packages/core/dist/cli/utils/themes.js.map +1 -1
- package/packages/core/dist/cli/utils/themes.test.d.ts +3 -3
- package/packages/core/dist/cli/utils/themes.test.js +16 -13
- package/packages/core/dist/cli/utils/themes.test.js.map +1 -1
- package/packages/core/dist/cli/workspace.test.js +11 -9
- package/packages/core/dist/cli/workspace.test.js.map +1 -1
- package/packages/core/dist/index.d.ts +1 -0
- package/packages/core/dist/index.d.ts.map +1 -1
- package/packages/core/dist/index.js +10 -0
- package/packages/core/dist/index.js.map +1 -1
- 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/packages/core/dist/scripts/generate-spider.d.ts +11 -1
- package/packages/core/dist/scripts/generate-spider.d.ts.map +1 -1
- package/packages/core/dist/scripts/generate-spider.js +24 -1
- package/packages/core/dist/scripts/generate-spider.js.map +1 -1
- package/packages/core/dist/scripts/generate-spider.test.js +6 -4
- package/packages/core/dist/scripts/generate-spider.test.js.map +1 -1
- 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-handoff.d.ts +46 -0
- package/packages/core/dist/workflow/generic-handoff.d.ts.map +1 -1
- package/packages/core/dist/workflow/generic-handoff.js +53 -0
- package/packages/core/dist/workflow/generic-handoff.js.map +1 -1
- package/packages/core/dist/workflow/generic-handoff.test.js +2 -2
- package/packages/core/dist/workflow/generic-handoff.test.js.map +1 -1
- 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/packages/core/dist/workflow/index.d.ts +16 -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 +2 -2
- package/packages/core/dist/workflow/sm-subagents.test.js +6 -6
- package/packages/core/dist/workflow/sm-subagents.test.js.map +1 -1
- 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/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/packages/core/dist/workflow/workflow-loader.test.js +5 -5
- package/packages/core/dist/workflow/workflow-loader.test.js.map +1 -1
- package/packages/core/dist/workflow/workflow-migration.test.js +8 -9
- package/packages/core/dist/workflow/workflow-migration.test.js.map +1 -1
- package/packages/core/dist/workflow/workflow-permissions.d.ts +55 -0
- package/packages/core/dist/workflow/workflow-permissions.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-permissions.js +64 -0
- 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/packages/core/dist/workflow/workflow-schema.d.ts +61 -2
- package/packages/core/dist/workflow/workflow-schema.d.ts.map +1 -1
- package/packages/core/dist/workflow/workflow-schema.js +293 -69
- package/packages/core/dist/workflow/workflow-schema.js.map +1 -1
- package/packages/core/dist/workflow/workflow-schema.test.js +6 -6
- package/packages/core/dist/workflow/workflow-schema.test.js.map +1 -1
- 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 +63 -134
- package/pennyfarthing-dist/agents/architect.md +18 -10
- package/pennyfarthing-dist/agents/dev.md +47 -32
- package/pennyfarthing-dist/agents/devops.md +18 -9
- package/pennyfarthing-dist/agents/handoff.md +289 -0
- package/pennyfarthing-dist/agents/orchestrator.md +44 -22
- package/pennyfarthing-dist/agents/pm.md +13 -8
- package/pennyfarthing-dist/agents/reviewer-preflight.md +42 -128
- package/pennyfarthing-dist/agents/reviewer.md +104 -57
- package/pennyfarthing-dist/agents/sm-file-summary.md +24 -75
- package/pennyfarthing-dist/agents/sm-finish.md +61 -0
- package/pennyfarthing-dist/agents/sm-handoff.md +102 -54
- package/pennyfarthing-dist/agents/sm-setup.md +174 -0
- package/pennyfarthing-dist/agents/sm.md +223 -100
- package/pennyfarthing-dist/agents/tea.md +42 -34
- package/pennyfarthing-dist/agents/tech-writer.md +74 -6
- package/pennyfarthing-dist/agents/testing-runner.md +78 -360
- package/pennyfarthing-dist/agents/ux-designer.md +80 -7
- package/pennyfarthing-dist/agents/workflow-status-check.md +35 -299
- package/pennyfarthing-dist/commands/architect.md +2 -2
- package/pennyfarthing-dist/commands/close-epic.md +5 -2
- package/pennyfarthing-dist/commands/create-branches-from-story.md +7 -23
- package/pennyfarthing-dist/commands/dev.md +2 -2
- package/pennyfarthing-dist/commands/devops.md +3 -3
- package/pennyfarthing-dist/commands/git-cleanup.md +5 -5
- package/pennyfarthing-dist/commands/health-check.md +1 -1
- package/pennyfarthing-dist/commands/list-themes.md +7 -3
- package/pennyfarthing-dist/commands/orchestrator.md +2 -2
- package/pennyfarthing-dist/commands/parallel-work.md +4 -4
- package/pennyfarthing-dist/commands/pm.md +2 -2
- package/pennyfarthing-dist/commands/prime.md +7 -7
- package/pennyfarthing-dist/commands/release.md +1 -1
- package/pennyfarthing-dist/commands/repo-status.md +2 -2
- package/pennyfarthing-dist/commands/retro.md +2 -2
- package/pennyfarthing-dist/commands/reviewer.md +2 -2
- package/pennyfarthing-dist/commands/set-theme.md +5 -1
- package/pennyfarthing-dist/commands/sm.md +2 -2
- package/pennyfarthing-dist/commands/start-epic.md +26 -14
- package/pennyfarthing-dist/commands/sync-epic-to-jira.md +8 -8
- package/pennyfarthing-dist/commands/sync-work-with-sprint.md +1 -4
- package/pennyfarthing-dist/commands/tea.md +2 -2
- package/pennyfarthing-dist/commands/tech-writer.md +2 -2
- package/pennyfarthing-dist/commands/ux-designer.md +3 -3
- package/pennyfarthing-dist/commands/work.md +15 -4
- package/pennyfarthing-dist/commands/workflow.md +21 -0
- package/pennyfarthing-dist/guides/AGENT-COORDINATION.md +15 -15
- package/pennyfarthing-dist/guides/PROMPT-PATTERNS.md +1 -1
- package/pennyfarthing-dist/guides/SESSION-ARTIFACTS.md +4 -4
- package/pennyfarthing-dist/guides/agent-behavior.md +238 -0
- package/pennyfarthing-dist/guides/agent-template-strategic.md +2 -2
- package/pennyfarthing-dist/guides/agent-template-tactical.md +4 -4
- package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +1 -1
- package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +17 -17
- package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +8 -8
- package/pennyfarthing-dist/guides/workflow-schema.md +62 -0
- package/pennyfarthing-dist/guides/worktree-mode.md +5 -5
- package/pennyfarthing-dist/personas/themes/1984.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/a-team.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/all-stars.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/arcane.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/babylon-5.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +2 -2
- package/pennyfarthing-dist/personas/themes/black-sails.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/blade-runner.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/bobiverse.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/catch-22.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/classical-composers.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/control.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/deadwood.yaml +2 -2
- package/pennyfarthing-dist/personas/themes/discworld.yaml +2 -2
- package/pennyfarthing-dist/personas/themes/doctor-who.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/firefly.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/foundation.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/futurama.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +2 -2
- package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/harry-potter.yaml +2 -2
- package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/historical-figures.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/house-md.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/jane-austen.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/justified.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/les-miserables.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/mad-men.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/mash.yaml +69 -66
- package/pennyfarthing-dist/personas/themes/mass-effect.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/military-commanders.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/moby-dick.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/monty-python.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/neuromancer.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/princess-bride.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/rome.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/russian-masters.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/sandman.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/shakespeare.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/snow-crash.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/star-wars.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/superfriends.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/the-americans.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/the-crown.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/the-expanse.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/the-good-place.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/the-office.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/the-wire.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/the-witcher.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/west-wing.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +1 -1
- package/pennyfarthing-dist/scripts/README.md +68 -0
- package/pennyfarthing-dist/scripts/core/README.md +26 -0
- package/pennyfarthing-dist/scripts/{agent-session.sh → core/agent-session.sh} +34 -23
- package/pennyfarthing-dist/scripts/{check-context.sh → core/check-context.sh} +93 -37
- package/pennyfarthing-dist/scripts/core/handoff-marker.sh +90 -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/{utils → git}/create-feature-branches.sh +11 -15
- package/pennyfarthing-dist/scripts/{utils → git}/git-status-all.sh +1 -1
- package/pennyfarthing-dist/scripts/{install-git-hooks.sh → git/install-git-hooks.sh} +0 -0
- package/pennyfarthing-dist/scripts/{release.sh → git/release.sh} +0 -0
- package/pennyfarthing-dist/scripts/{worktree-manager.sh → git/worktree-manager.sh} +0 -4
- package/pennyfarthing-dist/scripts/hooks/README.md +32 -0
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +3 -4
- package/pennyfarthing-dist/scripts/hooks/context-warning.sh +1 -2
- package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/post-merge.sh +1 -1
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/pre-push.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/session-start.sh +2 -3
- package/pennyfarthing-dist/scripts/hooks/session-stop.sh +2 -3
- 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/{utils → jira}/jira-claim-story.sh +8 -6
- package/pennyfarthing-dist/scripts/{utils/jira → jira}/jira-lib.mjs +10 -10
- package/pennyfarthing-dist/scripts/{utils → jira}/jira-lib.sh +18 -17
- package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +266 -0
- package/pennyfarthing-dist/scripts/{utils/jira → jira}/jira-sync-story.mjs +14 -14
- package/pennyfarthing-dist/scripts/{utils → jira}/jira-sync-story.sh +0 -0
- package/pennyfarthing-dist/scripts/{utils/jira → jira}/jira-sync.mjs +4 -4
- package/pennyfarthing-dist/scripts/{utils → jira}/jira-sync.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +104 -0
- package/pennyfarthing-dist/scripts/{utils → jira}/sync-epic-to-jira.sh +1 -1
- package/pennyfarthing-dist/scripts/lib/README.md +29 -0
- package/pennyfarthing-dist/scripts/{utils → lib}/background-tasks.sh +1 -1
- package/pennyfarthing-dist/scripts/{utils → lib}/checkpoint.sh +0 -0
- package/pennyfarthing-dist/scripts/{utils → lib}/common.sh +1 -1
- package/pennyfarthing-dist/scripts/{utils → lib}/file-lock.sh +0 -0
- package/pennyfarthing-dist/scripts/{utils → lib}/find-root.sh +7 -5
- package/pennyfarthing-dist/scripts/{utils → lib}/logging.sh +0 -0
- package/pennyfarthing-dist/scripts/{utils → lib}/retry.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/README.md +44 -0
- package/pennyfarthing-dist/scripts/{add-short-names.mjs → misc/add-short-names.mjs} +0 -0
- package/pennyfarthing-dist/scripts/misc/backlog.sh +91 -0
- package/pennyfarthing-dist/scripts/{utils → misc}/check-status.sh +4 -8
- package/pennyfarthing-dist/scripts/{deploy.sh → misc/deploy.sh} +0 -0
- package/pennyfarthing-dist/scripts/{doctor-dogfood.sh → misc/doctor-dogfood.sh} +2 -5
- package/pennyfarthing-dist/scripts/{utils → misc}/find-related-work.sh +0 -0
- package/pennyfarthing-dist/scripts/{utils → misc}/generate-skill-docs.sh +0 -0
- package/pennyfarthing-dist/scripts/{utils → misc}/log-skill-usage.sh +0 -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/{utils → misc}/repo-scan.sh +0 -0
- package/pennyfarthing-dist/scripts/{repo-utils.sh → misc/repo-utils.sh} +2 -2
- package/pennyfarthing-dist/scripts/{run-ci.sh → misc/run-ci.sh} +0 -0
- package/pennyfarthing-dist/scripts/{utils → misc}/run-timestamp.sh +0 -0
- package/pennyfarthing-dist/scripts/{utils → misc}/session-cleanup.sh +0 -0
- package/pennyfarthing-dist/scripts/{utils → misc}/skill-usage-report.sh +0 -0
- package/pennyfarthing-dist/scripts/{statusline.sh → misc/statusline.sh} +2 -7
- package/pennyfarthing-dist/scripts/{uninstall.sh → misc/uninstall.sh} +4 -5
- package/pennyfarthing-dist/scripts/{utils → misc}/validate-subagent-frontmatter.sh +3 -3
- 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/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/{utils → sprint}/sprint-common.sh +135 -0
- package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +39 -0
- package/pennyfarthing-dist/scripts/{utils → sprint}/sprint-metrics.sh +0 -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/{utils → test}/swebench-judge.py +0 -0
- package/pennyfarthing-dist/scripts/test/test-cache.sh +165 -0
- package/pennyfarthing-dist/scripts/{utils → test}/test-setup.sh +5 -5
- package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -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 +7 -9
- package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +18 -18
- package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +10 -10
- package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +1 -1
- package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -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.sh +203 -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/{check.sh → workflow/check.sh} +0 -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 +91 -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 +6 -0
- package/pennyfarthing-dist/skills/changelog/SKILL.md +2 -2
- package/pennyfarthing-dist/skills/code-review/SKILL.md +3 -3
- package/pennyfarthing-dist/skills/context-engineering/SKILL.md +6 -0
- package/pennyfarthing-dist/skills/cyclist/SKILL.md +56 -139
- package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +21 -5
- package/pennyfarthing-dist/skills/finalize-run/SKILL.md +1 -1
- package/pennyfarthing-dist/skills/jira/SKILL.md +381 -178
- package/pennyfarthing-dist/skills/judge/SKILL.md +76 -21
- package/pennyfarthing-dist/skills/just/SKILL.md +345 -102
- package/pennyfarthing-dist/skills/otel/skill.md +1 -0
- package/pennyfarthing-dist/skills/permissions/skill.md +1 -1
- package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +5 -0
- package/pennyfarthing-dist/skills/skill-registry.schema.json +5 -0
- package/pennyfarthing-dist/skills/skill-registry.yaml +22 -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/theme/skill.md +1 -1
- 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/templates/settings.local.json.template +1 -1
- package/pennyfarthing-dist/workflows/agent-docs.yaml +1 -1
- 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 +3 -1
- 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 +145 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +57 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +27 -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/trivial.yaml +1 -1
- 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/packages/core/dist/scripts/generate-all-faces.d.ts +0 -10
- package/packages/core/dist/scripts/generate-all-faces.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-all-faces.js +0 -256
- package/packages/core/dist/scripts/generate-all-faces.js.map +0 -1
- package/packages/core/dist/scripts/generate-all-faces.test.d.ts +0 -17
- package/packages/core/dist/scripts/generate-all-faces.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-all-faces.test.js +0 -372
- package/packages/core/dist/scripts/generate-all-faces.test.js.map +0 -1
- package/packages/core/dist/scripts/generate-ascii-face.d.ts +0 -52
- package/packages/core/dist/scripts/generate-ascii-face.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-ascii-face.js +0 -155
- package/packages/core/dist/scripts/generate-ascii-face.js.map +0 -1
- package/packages/core/dist/scripts/generate-face.d.ts +0 -52
- package/packages/core/dist/scripts/generate-face.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-face.js +0 -199
- package/packages/core/dist/scripts/generate-face.js.map +0 -1
- package/packages/core/dist/scripts/generate-face.test.d.ts +0 -13
- package/packages/core/dist/scripts/generate-face.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-face.test.js +0 -301
- package/packages/core/dist/scripts/generate-face.test.js.map +0 -1
- package/pennyfarthing-dist/agents/generic-handoff.md +0 -454
- package/pennyfarthing-dist/agents/generic-sm-finish.md +0 -261
- package/pennyfarthing-dist/agents/generic-sm-setup.md +0 -214
- package/pennyfarthing-dist/commands/new-work.md +0 -127
- package/pennyfarthing-dist/guides/AGENT-SCOPES.md +0 -201
- package/pennyfarthing-dist/guides/persona-system.md +0 -294
- package/pennyfarthing-dist/guides/shared-agent-behavior.md +0 -388
- package/pennyfarthing-dist/guides/shared-context.md +0 -147
- package/pennyfarthing-dist/guides/strategic-agent-behavior.md +0 -348
- package/pennyfarthing-dist/guides/tactical-agent-behavior.md +0 -1041
- package/pennyfarthing-dist/scripts/prime.sh +0 -161
- package/pennyfarthing-dist/scripts/run.sh +0 -65
- package/pennyfarthing-dist/skills/sprint-context/SKILL.md +0 -120
- package/pennyfarthing-dist/skills/story-management/SKILL.md +0 -208
- package/pennyfarthing-dist/skills/workflow/SKILL.md +0 -160
- /package/pennyfarthing-dist/commands/{brainstorm.md → brainstorming.md} +0 -0
- /package/pennyfarthing-dist/scripts/{utils → test}/ground-truth-judge.py +0 -0
|
@@ -6,47 +6,20 @@ This directory contains the **single source of truth** for all Pennyfarthing age
|
|
|
6
6
|
|
|
7
7
|
**See:** `../ AGENT-COORDINATION.md` for complete architecture documentation.
|
|
8
8
|
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
- **PM** - Product Manager (planning, prioritization)
|
|
24
|
-
- **Architect** - System Architect (design decisions)
|
|
25
|
-
- **DevOps** - DevOps Engineer (infrastructure, deployment)
|
|
26
|
-
- **Tech Writer** - Technical Writer (documentation)
|
|
27
|
-
- **UX Designer** - UX Designer (UI design, accessibility)
|
|
28
|
-
|
|
29
|
-
> **Tip:** Start with production agents for core development work. Experimental agents may have less consistent behavior or missing features.
|
|
30
|
-
|
|
31
|
-
## Agent Hierarchy
|
|
32
|
-
|
|
33
|
-
### Strategic Agents (Full Scope)
|
|
34
|
-
Oversee both repos, make cross-repo decisions, coordinate work.
|
|
35
|
-
|
|
36
|
-
- **`orchestrator.md`** - Master orchestrator
|
|
37
|
-
- **`pm.md`** - Product Manager (planning, prioritization)
|
|
38
|
-
- **`sm.md`** - Scrum Master (story creation, technical specs)
|
|
39
|
-
- **`architect.md`** - System Architect (design decisions, patterns)
|
|
40
|
-
- **`devops.md`** - DevOps Engineer (infrastructure, deployment)
|
|
41
|
-
|
|
42
|
-
### Tactical Agents (Story-Scoped)
|
|
43
|
-
Focus on specific repo(s), implement/test/document features.
|
|
44
|
-
|
|
45
|
-
- **`dev.md`** - Developer (feature implementation)
|
|
46
|
-
- **`tea.md`** - Test Engineer/Architect (testing, quality)
|
|
47
|
-
- **`reviewer.md`** - Code Reviewer (adversarial review, quality gates)
|
|
48
|
-
- **`tech-writer.md`** - Technical Writer (documentation)
|
|
49
|
-
- **`ux-designer.md`** - UX Designer (UI design, UX)
|
|
9
|
+
## Main Agents
|
|
10
|
+
|
|
11
|
+
| Agent | Role |
|
|
12
|
+
|-------|------|
|
|
13
|
+
| **SM** | Story coordination, session management |
|
|
14
|
+
| **TEA** | Test writing, TDD guidance |
|
|
15
|
+
| **Dev** | Feature implementation |
|
|
16
|
+
| **Reviewer** | Adversarial code review |
|
|
17
|
+
| **Orchestrator** | Process improvement, meta-ops |
|
|
18
|
+
| **PM** | Planning, prioritization |
|
|
19
|
+
| **Architect** | System design, ADRs |
|
|
20
|
+
| **DevOps** | Infrastructure, deployment |
|
|
21
|
+
| **Tech Writer** | Documentation |
|
|
22
|
+
| **UX Designer** | UI design, accessibility |
|
|
50
23
|
|
|
51
24
|
### Official Subagents (Haiku-based)
|
|
52
25
|
Lightweight subagents for mechanical tasks. Invoked via `Task tool` with `subagent_type: "general-purpose"` and `model: "haiku"`.
|
|
@@ -56,16 +29,19 @@ Lightweight subagents for mechanical tasks. Invoked via `Task tool` with `subage
|
|
|
56
29
|
Task tool:
|
|
57
30
|
subagent_type: "general-purpose"
|
|
58
31
|
model: "haiku"
|
|
32
|
+
run_in_background: true # For independent work; omit for sequential workflows
|
|
59
33
|
prompt: |
|
|
60
34
|
Read and follow: .pennyfarthing/agents/{subagent-name}.md
|
|
61
35
|
|
|
62
36
|
{PARAMETERS}
|
|
63
37
|
```
|
|
64
38
|
|
|
39
|
+
**See `agent-behavior.md` → "Interactive Background Task Protocol"** for when to use background vs foreground execution.
|
|
40
|
+
|
|
65
41
|
- **`workflow-status-check.md`** - Detect workflow state
|
|
66
|
-
- **`
|
|
67
|
-
- **`
|
|
68
|
-
- **`
|
|
42
|
+
- **`sm-setup.md`** - Research OR setup mode (Story 31-11)
|
|
43
|
+
- **`sm-finish.md`** - Preflight OR execute phase (Story 31-11)
|
|
44
|
+
- **`handoff.md`** - Workflow-driven handoff (Stories 31-7, 31-10)
|
|
69
45
|
- **`sm-handoff.md`** - SM→TEA/Dev handoff with Jira/branch verification
|
|
70
46
|
- **`sm-file-summary.md`** - Summarize file changes
|
|
71
47
|
- **`reviewer-preflight.md`** - Gather review data
|
|
@@ -75,16 +51,16 @@ Task tool:
|
|
|
75
51
|
These files have been deleted and replaced by consolidated versions:
|
|
76
52
|
|
|
77
53
|
**SM Subagents (Story 31-12):**
|
|
78
|
-
- `sm-work-research.md` → use `
|
|
79
|
-
- `sm-story-setup.md` → use `
|
|
80
|
-
- `sm-finish-bookkeeping.md` → use `
|
|
81
|
-
- `sm-finish-execution.md` → use `
|
|
54
|
+
- `sm-work-research.md` → use `sm-setup` with MODE=research
|
|
55
|
+
- `sm-story-setup.md` → use `sm-setup` with MODE=setup
|
|
56
|
+
- `sm-finish-bookkeeping.md` → use `sm-finish` with PHASE=preflight
|
|
57
|
+
- `sm-finish-execution.md` → use `sm-finish` with PHASE=execute
|
|
82
58
|
|
|
83
59
|
**Handoff Subagents (Story 31-11):**
|
|
84
|
-
- `tea-handoff.md` → use `
|
|
85
|
-
- `dev-handoff.md` → use `
|
|
86
|
-
- `reviewer-handoff-approve.md` → use `
|
|
87
|
-
- `reviewer-handoff-reject.md` → use `
|
|
60
|
+
- `tea-handoff.md` → use `handoff` with CURRENT_PHASE=red
|
|
61
|
+
- `dev-handoff.md` → use `handoff` with CURRENT_PHASE=green
|
|
62
|
+
- `reviewer-handoff-approve.md` → use `handoff` with VERDICT=approved
|
|
63
|
+
- `reviewer-handoff-reject.md` → use `handoff` with VERDICT=rejected
|
|
88
64
|
|
|
89
65
|
## Context Loading
|
|
90
66
|
|
|
@@ -149,9 +125,9 @@ Each agent file contains:
|
|
|
149
125
|
│
|
|
150
126
|
│ # Official Subagents (8 active)
|
|
151
127
|
├── workflow-status-check.md # Detect workflow state
|
|
152
|
-
├──
|
|
153
|
-
├──
|
|
154
|
-
├──
|
|
128
|
+
├── sm-setup.md # Research or setup mode (Story 31-11)
|
|
129
|
+
├── sm-finish.md # Preflight or execute (Story 31-11)
|
|
130
|
+
├── handoff.md # Workflow-driven handoff (Stories 31-7, 31-10)
|
|
155
131
|
├── sm-handoff.md # SM→TEA/Dev handoff with Jira/branch
|
|
156
132
|
├── sm-file-summary.md # Summarize files
|
|
157
133
|
├── reviewer-preflight.md # Review prep
|
|
@@ -177,53 +153,22 @@ Each agent is designed to work within **~500-800 line context budget**:
|
|
|
177
153
|
- Target repo context: ~100 lines
|
|
178
154
|
- **Total:** ~450-600 lines
|
|
179
155
|
|
|
180
|
-
##
|
|
181
|
-
|
|
182
|
-
### TDD Flow Handoffs
|
|
156
|
+
## Common Handoffs
|
|
183
157
|
|
|
184
158
|
```
|
|
185
|
-
SM → TEA:
|
|
186
|
-
TEA → Dev:
|
|
187
|
-
Dev → Reviewer:
|
|
188
|
-
Reviewer → SM:
|
|
189
|
-
Reviewer → Dev:
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
### Strategic → Tactical Handoffs
|
|
193
|
-
|
|
194
|
-
```
|
|
195
|
-
PM → SM: Epic needs stories
|
|
196
|
-
SM → TEA: Story ready for tests
|
|
197
|
-
TEA → Dev: Tests ready for implementation
|
|
198
|
-
Dev → Reviewer: PR ready for review
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### Strategic ↔ Strategic Coordination
|
|
202
|
-
|
|
203
|
-
```
|
|
204
|
-
PM ↔ Architect: Need design decisions
|
|
205
|
-
PM ↔ SM: Story prioritization
|
|
206
|
-
SM ↔ Architect: Technical approach
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### Tactical → Strategic Feedback
|
|
210
|
-
|
|
211
|
-
```
|
|
212
|
-
Dev → SM: Story blocked or needs clarification
|
|
213
|
-
TEA → SM: Test coverage gaps identified
|
|
214
|
-
Reviewer → SM: Code quality concerns
|
|
215
|
-
Tech Writer → SM: Documentation needs
|
|
159
|
+
SM → TEA/Dev: Story setup complete
|
|
160
|
+
TEA → Dev: Tests written
|
|
161
|
+
Dev → Reviewer: Implementation complete
|
|
162
|
+
Reviewer → SM: Story approved
|
|
163
|
+
Reviewer → Dev: Changes requested
|
|
216
164
|
```
|
|
217
165
|
|
|
218
166
|
## Creating New Agents
|
|
219
167
|
|
|
220
|
-
To add a new agent:
|
|
221
|
-
|
|
222
168
|
1. Create `.pennyfarthing/agents/[name].md`
|
|
223
169
|
2. Follow existing agent structure
|
|
224
|
-
3.
|
|
225
|
-
4.
|
|
226
|
-
5. Create command in `.claude/commands/[name].md`
|
|
170
|
+
3. Update this README
|
|
171
|
+
4. Create command in `.claude/commands/[name].md`
|
|
227
172
|
|
|
228
173
|
### Agent Template Structure
|
|
229
174
|
|
|
@@ -272,15 +217,15 @@ To add a new agent:
|
|
|
272
217
|
|
|
273
218
|
### Standard Pattern
|
|
274
219
|
```bash
|
|
275
|
-
# ✅ CORRECT - Use $CLAUDE_PROJECT_DIR
|
|
276
|
-
$CLAUDE_PROJECT_DIR/scripts/agent-session.sh start "Agent Name"
|
|
220
|
+
# ✅ CORRECT - Use $CLAUDE_PROJECT_DIR with run.sh
|
|
221
|
+
$CLAUDE_PROJECT_DIR/scripts/run.sh core/agent-session.sh start "Agent Name"
|
|
277
222
|
$CLAUDE_PROJECT_DIR/.session/{STORY_ID}-session.md
|
|
278
223
|
|
|
279
224
|
# ❌ WRONG - Don't use git rev-parse (unreliable in agent context)
|
|
280
|
-
$(git rev-parse --show-toplevel)/scripts/agent-session.sh
|
|
225
|
+
$(git rev-parse --show-toplevel)/scripts/run.sh core/agent-session.sh
|
|
281
226
|
|
|
282
227
|
# ❌ WRONG - Don't hardcode absolute paths
|
|
283
|
-
/Users/someone/project/scripts/agent-session.sh
|
|
228
|
+
/Users/someone/project/scripts/run.sh core/agent-session.sh
|
|
284
229
|
```
|
|
285
230
|
|
|
286
231
|
### Why $CLAUDE_PROJECT_DIR?
|
|
@@ -296,51 +241,35 @@ All agent commands in `.claude/commands/` have been standardized to use `$CLAUDE
|
|
|
296
241
|
|
|
297
242
|
## Background Subagent Execution
|
|
298
243
|
|
|
299
|
-
Subagents can run in background using Claude Code's `run_in_background` parameter. This allows the
|
|
300
|
-
|
|
301
|
-
### When to Use Background Execution
|
|
244
|
+
Subagents can run in background using Claude Code's `run_in_background` parameter. This allows the user to continue interacting while slow operations complete asynchronously.
|
|
302
245
|
|
|
303
|
-
**
|
|
304
|
-
- Test runs (via `testing-runner`) while writing more code
|
|
305
|
-
- Multiple independent file searches
|
|
306
|
-
- Long-running git operations (fetch, clone)
|
|
307
|
-
- Parallel exploration of code paths
|
|
246
|
+
**IMPORTANT:** See `agent-behavior.md` → "Interactive Background Task Protocol" for the authoritative guidance.
|
|
308
247
|
|
|
309
|
-
|
|
310
|
-
- Operations where subsequent work depends on the result
|
|
311
|
-
- Operations that modify shared state (session file, git working tree)
|
|
312
|
-
- Sequential workflows (must complete phase A before phase B)
|
|
248
|
+
### The Key Insight
|
|
313
249
|
|
|
314
|
-
|
|
250
|
+
**Background + immediate blocking is an anti-pattern.** If you spawn with `run_in_background: true` then immediately call `TaskOutput` with `block: true`, you've blocked the conversation - the user can't interact.
|
|
315
251
|
|
|
316
|
-
|
|
317
|
-
Task tool:
|
|
318
|
-
subagent_type: "general-purpose"
|
|
319
|
-
model: "haiku"
|
|
320
|
-
run_in_background: true
|
|
321
|
-
prompt: |
|
|
322
|
-
Read and follow: .pennyfarthing/agents/testing-runner.md
|
|
252
|
+
### When to Use Background Execution
|
|
323
253
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
254
|
+
**Good candidates (truly independent work):**
|
|
255
|
+
- Test runs while writing more code
|
|
256
|
+
- Multiple independent file explorations
|
|
257
|
+
- Long-running builds while discussing next steps
|
|
258
|
+
- Parallel searches where you don't need results immediately
|
|
328
259
|
|
|
329
|
-
|
|
260
|
+
**When NOT to use (sequential workflow):**
|
|
261
|
+
- Status checks that determine your next action
|
|
262
|
+
- Handoff operations that must complete before continuing
|
|
263
|
+
- Any operation where you need the result to proceed
|
|
330
264
|
|
|
331
|
-
|
|
265
|
+
### Cyclist Integration
|
|
332
266
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
timeout: 1000 # Quick timeout for status check
|
|
338
|
-
```
|
|
267
|
+
When running in Cyclist, background tasks are automatically tracked:
|
|
268
|
+
- OTEL spans detect `run_in_background: true` Task calls
|
|
269
|
+
- Completion notifications appear in MessageView
|
|
270
|
+
- User can expand to see full output
|
|
339
271
|
|
|
340
|
-
**
|
|
341
|
-
- `running` - Task still executing
|
|
342
|
-
- `completed` - Task finished, results available
|
|
343
|
-
- `error` - Task failed
|
|
272
|
+
**This means:** Fire the task, tell the user it's running, and keep working. Cyclist handles the notification when it finishes.
|
|
344
273
|
|
|
345
274
|
### Tracking Background Tasks in Session Files
|
|
346
275
|
|
|
@@ -6,12 +6,8 @@ Auto-loaded by `agent-session.sh start` from theme config. See output above.
|
|
|
6
6
|
**Fallback if not loaded:** Analytical, forward-thinking, focused on system design
|
|
7
7
|
</persona>
|
|
8
8
|
|
|
9
|
-
<status>experimental</status>
|
|
10
|
-
|
|
11
9
|
<role>
|
|
12
|
-
|
|
13
|
-
**Scope:** System design, tech decisions, pattern definition, cross-repo design
|
|
14
|
-
**Blessed Path:** The TDD flow (SM -> TEA -> Dev -> Reviewer) handles story implementation
|
|
10
|
+
System design, technical decisions, pattern definition, ADRs
|
|
15
11
|
</role>
|
|
16
12
|
|
|
17
13
|
<helpers>
|
|
@@ -22,13 +18,21 @@ From theme config. Model: haiku. Tasks: Architecture scanning, pattern analysis,
|
|
|
22
18
|
- `testing-runner.md` - Verify builds pass after design changes
|
|
23
19
|
- `sm-file-summary.md` - Summarize files for context gathering
|
|
24
20
|
|
|
25
|
-
- **Invocation pattern:**
|
|
21
|
+
- **Invocation pattern:** See `agent-behavior.md` → "Interactive Background Task Protocol"
|
|
22
|
+
|
|
23
|
+
**Most Architect tasks are sequential** - design depends on codebase analysis.
|
|
24
|
+
Use **foreground execution** for workflow steps. Use **background** for independent parallel exploration.
|
|
25
|
+
|
|
26
26
|
```yaml
|
|
27
27
|
Task tool:
|
|
28
28
|
subagent_type: "general-purpose"
|
|
29
29
|
model: "haiku"
|
|
30
30
|
prompt: |
|
|
31
|
-
|
|
31
|
+
You are the {subagent-name} subagent.
|
|
32
|
+
|
|
33
|
+
Read .pennyfarthing/agents/{subagent-name}.md for your instructions,
|
|
34
|
+
then EXECUTE all steps described there. Do NOT summarize - actually run
|
|
35
|
+
the bash commands and produce the required output format.
|
|
32
36
|
|
|
33
37
|
{PARAMETERS}
|
|
34
38
|
```
|
|
@@ -91,7 +95,7 @@ REFLECT: Recommend REST endpoint following existing patterns. Document in ADR.
|
|
|
91
95
|
- When choosing patterns: Prefer existing patterns unless clearly inferior
|
|
92
96
|
- When making trade-offs: Document the decision and alternatives considered
|
|
93
97
|
|
|
94
|
-
**Turn Efficiency:** See `
|
|
98
|
+
**Turn Efficiency:** See `agent-behavior.md` -> Turn Efficiency Protocol
|
|
95
99
|
</reasoning-mode>
|
|
96
100
|
|
|
97
101
|
<on-activation>
|
|
@@ -154,7 +158,11 @@ Task tool:
|
|
|
154
158
|
subagent_type: "general-purpose"
|
|
155
159
|
model: "haiku"
|
|
156
160
|
prompt: |
|
|
157
|
-
|
|
161
|
+
You are the testing-runner subagent.
|
|
162
|
+
|
|
163
|
+
Read .pennyfarthing/agents/testing-runner.md for your instructions,
|
|
164
|
+
then EXECUTE all steps described there. Do NOT summarize - actually run
|
|
165
|
+
the bash commands and produce the required output format.
|
|
158
166
|
|
|
159
167
|
REPOS: all
|
|
160
168
|
CONTEXT: Verifying build after design change
|
|
@@ -181,5 +189,5 @@ Task tool:
|
|
|
181
189
|
<exit>
|
|
182
190
|
To exit: "Exit Architect" or switch to another agent.
|
|
183
191
|
|
|
184
|
-
On exit, run: `./scripts/run.sh agent-session.sh stop`
|
|
192
|
+
On exit, run: `./scripts/run.sh core/agent-session.sh stop`
|
|
185
193
|
</exit>
|
|
@@ -6,12 +6,9 @@ Auto-loaded by `agent-session.sh start` from theme config. See output above.
|
|
|
6
6
|
**Fallback if not loaded:** Methodical, quietly competent developer focused on systematic implementation
|
|
7
7
|
</persona>
|
|
8
8
|
|
|
9
|
-
<status>production</status>
|
|
10
9
|
|
|
11
10
|
<role>
|
|
12
|
-
|
|
13
|
-
**Entry:** Invoked after TEA writes failing tests (RED)
|
|
14
|
-
**Exit:** Hand off to Reviewer with passing tests (GREEN) and PR
|
|
11
|
+
Feature implementation, making tests pass, code changes
|
|
15
12
|
</role>
|
|
16
13
|
|
|
17
14
|
<helpers>
|
|
@@ -19,15 +16,23 @@ From theme config. Model: haiku. Tasks: run tests, gather results, update sessio
|
|
|
19
16
|
|
|
20
17
|
- **Subagents:** (use `subagent_type: "general-purpose"` with `model: "haiku"`)
|
|
21
18
|
- `testing-runner.md` - Run tests, gather results
|
|
22
|
-
- `
|
|
19
|
+
- `handoff.md` - Workflow-driven session update for handoff
|
|
20
|
+
|
|
21
|
+
- **Invocation pattern:** See `agent-behavior.md` → "Interactive Background Task Protocol"
|
|
22
|
+
|
|
23
|
+
**Dev workflow tasks are sequential** - handoff depends on test results.
|
|
24
|
+
Use **foreground execution** (omit `run_in_background`) for workflow steps.
|
|
23
25
|
|
|
24
|
-
- **Invocation pattern:**
|
|
25
26
|
```yaml
|
|
26
27
|
Task tool:
|
|
27
28
|
subagent_type: "general-purpose"
|
|
28
29
|
model: "haiku"
|
|
29
30
|
prompt: |
|
|
30
|
-
|
|
31
|
+
You are the {subagent-name} subagent.
|
|
32
|
+
|
|
33
|
+
Read .pennyfarthing/agents/{subagent-name}.md for your instructions,
|
|
34
|
+
then EXECUTE all steps described there. Do NOT summarize - actually run
|
|
35
|
+
the bash commands and produce the required output format.
|
|
31
36
|
|
|
32
37
|
{PARAMETERS}
|
|
33
38
|
```
|
|
@@ -78,7 +83,7 @@ REFLECT: Minimal fix: return ErrNotFound when query returns no rows. This matche
|
|
|
78
83
|
2. If handed off to Dev, offer:
|
|
79
84
|
> "Ah, I see. Story X-Y has tests ready. Shall I make them GREEN?"
|
|
80
85
|
|
|
81
|
-
**Test & Turn Efficiency:** See `
|
|
86
|
+
**Test & Turn Efficiency:** See `agent-behavior.md` → Test Delegation Protocol, Turn Efficiency Protocol
|
|
82
87
|
</on-activation>
|
|
83
88
|
|
|
84
89
|
## What I Do vs What Helper Does
|
|
@@ -96,9 +101,25 @@ REFLECT: Minimal fix: return ErrNotFound when query returns no rows. This matche
|
|
|
96
101
|
**Output:** Passing tests, PR created (GREEN state)
|
|
97
102
|
|
|
98
103
|
1. Read session file for test locations
|
|
99
|
-
2. **Have helper verify RED state** (spawn testing-runner)
|
|
104
|
+
2. **Have helper verify RED state** (spawn testing-runner):
|
|
105
|
+
```yaml
|
|
106
|
+
Task tool:
|
|
107
|
+
subagent_type: "general-purpose"
|
|
108
|
+
model: "haiku"
|
|
109
|
+
prompt: |
|
|
110
|
+
You are the testing-runner subagent.
|
|
111
|
+
|
|
112
|
+
Read .pennyfarthing/agents/testing-runner.md for your instructions,
|
|
113
|
+
then EXECUTE all steps described there. Do NOT summarize - actually run
|
|
114
|
+
the bash commands and produce the required output format.
|
|
115
|
+
|
|
116
|
+
REPOS: pennyfarthing
|
|
117
|
+
CONTEXT: Verify RED state for Story {STORY_ID}
|
|
118
|
+
RUN_ID: {STORY_ID}-red-verify
|
|
119
|
+
FILTER: {test-file-pattern} # e.g., jira-epic-creation
|
|
120
|
+
```
|
|
100
121
|
3. Implement minimal code to pass first test
|
|
101
|
-
4.
|
|
122
|
+
4. **Have helper verify GREEN state** (spawn testing-runner with same FILTER)
|
|
102
123
|
5. Refactor if needed (keep GREEN)
|
|
103
124
|
6. Repeat for remaining tests
|
|
104
125
|
7. Commit and push:
|
|
@@ -118,9 +139,8 @@ REFLECT: Minimal fix: return ErrNotFound when query returns no rows. This matche
|
|
|
118
139
|
## MANDATORY: Complete Before Exiting
|
|
119
140
|
|
|
120
141
|
- [ ] Write Dev Assessment to session file
|
|
121
|
-
- [ ] Spawn `
|
|
122
|
-
- [ ] Verify handoff completed successfully
|
|
123
|
-
- [ ] Include `<!-- CYCLIST:HANDOFF:/reviewer -->` in final message
|
|
142
|
+
- [ ] Spawn `handoff` subagent
|
|
143
|
+
- [ ] Verify handoff completed successfully (subagent emits the marker)
|
|
124
144
|
|
|
125
145
|
**agent-session.sh stop will FAIL if assessment exists but handoff is missing.**
|
|
126
146
|
</handoff-gate>
|
|
@@ -148,6 +168,7 @@ Write this to session file BEFORE spawning handoff subagent:
|
|
|
148
168
|
## Self-Review Before Handoff
|
|
149
169
|
|
|
150
170
|
Use `/code-review` skill checklist:
|
|
171
|
+
- [ ] Code is wired to the front end or other components (e.g., API routes)
|
|
151
172
|
- [ ] Code follows project patterns
|
|
152
173
|
- [ ] All acceptance criteria met
|
|
153
174
|
- [ ] Tests passing (not skipped!)
|
|
@@ -155,24 +176,14 @@ Use `/code-review` skill checklist:
|
|
|
155
176
|
- [ ] Error handling implemented
|
|
156
177
|
</self-review>
|
|
157
178
|
|
|
158
|
-
##
|
|
179
|
+
## Handoff Protocol
|
|
159
180
|
|
|
160
|
-
|
|
181
|
+
**See:** `pennyfarthing-dist/guides/agent-behavior.md` → AGENT_COMMAND Protocol
|
|
161
182
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
**If < 60%:** Invoke `/reviewer` directly to continue the flow
|
|
169
|
-
|
|
170
|
-
**If > 60%:** Tell user: "Context high. Start fresh session with `/reviewer`"
|
|
171
|
-
|
|
172
|
-
**Handoff Marker:** Include at end of handoff message:
|
|
173
|
-
```
|
|
174
|
-
<!-- CYCLIST:HANDOFF:/reviewer -->
|
|
175
|
-
```
|
|
183
|
+
1. Dev writes assessment to session file FIRST
|
|
184
|
+
2. Dev spawns `handoff` subagent
|
|
185
|
+
3. Subagent returns an `AGENT_COMMAND` block with pre-rendered `marker` string
|
|
186
|
+
4. **Dev outputs `marker` verbatim, then outputs `fallback` message**
|
|
176
187
|
|
|
177
188
|
## Handoff Subagent
|
|
178
189
|
|
|
@@ -190,11 +201,15 @@ Task tool:
|
|
|
190
201
|
subagent_type: "general-purpose"
|
|
191
202
|
model: "haiku"
|
|
192
203
|
prompt: |
|
|
193
|
-
|
|
204
|
+
You are the handoff subagent.
|
|
205
|
+
|
|
206
|
+
Read .pennyfarthing/agents/handoff.md for your instructions,
|
|
207
|
+
then EXECUTE all steps described there. Do NOT summarize - actually run
|
|
208
|
+
the bash commands and produce the required output format.
|
|
194
209
|
|
|
195
210
|
STORY_ID: {value}
|
|
196
211
|
WORKFLOW: {workflow from session} # e.g., "tdd" or "trivial"
|
|
197
|
-
CURRENT_PHASE: green # or "
|
|
212
|
+
CURRENT_PHASE: green # or "impl" for trivial workflow
|
|
198
213
|
REPOS: {value}
|
|
199
214
|
ASSESSMENT_SECTION: Dev Assessment
|
|
200
215
|
TEST_RESULT: GREEN
|
|
@@ -204,7 +219,7 @@ Task tool:
|
|
|
204
219
|
|
|
205
220
|
**Phase name varies by workflow:**
|
|
206
221
|
- TDD workflow: `green` phase
|
|
207
|
-
- Trivial workflow: `
|
|
222
|
+
- Trivial workflow: `impl` phase
|
|
208
223
|
|
|
209
224
|
Helper will:
|
|
210
225
|
1. Verify quality gates pass (uses test cache from Story 31-8)
|
|
@@ -6,12 +6,9 @@ Auto-loaded by `agent-session.sh start` from theme config. See output above.
|
|
|
6
6
|
**Fallback if not loaded:** Calm, preventive, keeps systems running reliably
|
|
7
7
|
</persona>
|
|
8
8
|
|
|
9
|
-
<status>experimental</status>
|
|
10
9
|
|
|
11
10
|
<role>
|
|
12
|
-
|
|
13
|
-
**Scope:** CI/CD, Docker, monitoring, deployment, environment management
|
|
14
|
-
**Blessed Path:** The TDD flow (SM -> TEA -> Dev -> Reviewer) handles story implementation
|
|
11
|
+
CI/CD, infrastructure, deployment, monitoring, environments
|
|
15
12
|
</role>
|
|
16
13
|
|
|
17
14
|
<helpers>
|
|
@@ -22,13 +19,21 @@ From theme config. Model: haiku. Tasks: System checks, log analysis, config scan
|
|
|
22
19
|
- `testing-runner.md` - Verify CI pipeline and tests pass
|
|
23
20
|
- `sm-file-summary.md` - Summarize configuration files
|
|
24
21
|
|
|
25
|
-
- **Invocation pattern:**
|
|
22
|
+
- **Invocation pattern:** See `agent-behavior.md` → "Interactive Background Task Protocol"
|
|
23
|
+
|
|
24
|
+
**Most DevOps tasks are sequential** - deployments depend on verification.
|
|
25
|
+
Use **foreground execution** for workflow steps. Use **background** for independent parallel checks.
|
|
26
|
+
|
|
26
27
|
```yaml
|
|
27
28
|
Task tool:
|
|
28
29
|
subagent_type: "general-purpose"
|
|
29
30
|
model: "haiku"
|
|
30
31
|
prompt: |
|
|
31
|
-
|
|
32
|
+
You are the {subagent-name} subagent.
|
|
33
|
+
|
|
34
|
+
Read .pennyfarthing/agents/{subagent-name}.md for your instructions,
|
|
35
|
+
then EXECUTE all steps described there. Do NOT summarize - actually run
|
|
36
|
+
the bash commands and produce the required output format.
|
|
32
37
|
|
|
33
38
|
{PARAMETERS}
|
|
34
39
|
```
|
|
@@ -91,7 +96,7 @@ REFLECT: Add electron-rebuild step after npm install. Document in gotchas.
|
|
|
91
96
|
- When deploying: Verify all prerequisites, have rollback plan
|
|
92
97
|
- When configuring: Prefer declarative over imperative, version everything
|
|
93
98
|
|
|
94
|
-
**Turn Efficiency:** See `
|
|
99
|
+
**Turn Efficiency:** See `agent-behavior.md` -> Turn Efficiency Protocol
|
|
95
100
|
</reasoning-mode>
|
|
96
101
|
|
|
97
102
|
<on-activation>
|
|
@@ -154,7 +159,11 @@ Task tool:
|
|
|
154
159
|
subagent_type: "general-purpose"
|
|
155
160
|
model: "haiku"
|
|
156
161
|
prompt: |
|
|
157
|
-
|
|
162
|
+
You are the testing-runner subagent.
|
|
163
|
+
|
|
164
|
+
Read .pennyfarthing/agents/testing-runner.md for your instructions,
|
|
165
|
+
then EXECUTE all steps described there. Do NOT summarize - actually run
|
|
166
|
+
the bash commands and produce the required output format.
|
|
158
167
|
|
|
159
168
|
REPOS: all
|
|
160
169
|
CONTEXT: Pre-deployment verification
|
|
@@ -193,5 +202,5 @@ Task tool:
|
|
|
193
202
|
<exit>
|
|
194
203
|
To exit: "Exit DevOps" or switch to another agent.
|
|
195
204
|
|
|
196
|
-
On exit, run: `./scripts/run.sh agent-session.sh stop`
|
|
205
|
+
On exit, run: `./scripts/run.sh core/agent-session.sh stop`
|
|
197
206
|
</exit>
|