@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
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# BMAD Retrospective Workflow - Imported for BMAD Compatibility
|
|
2
|
+
#
|
|
3
|
+
# This is a reference workflow imported from BMAD for compatibility with
|
|
4
|
+
# BMAD-based projects. It provides structured retrospective ceremonies with
|
|
5
|
+
# epic review and next epic preparation.
|
|
6
|
+
#
|
|
7
|
+
# Key features:
|
|
8
|
+
# - Single-agent execution (Scrum Master facilitation)
|
|
9
|
+
# - Party mode protocol with named agent roles
|
|
10
|
+
# - Two-part format: Epic Review + Next Epic Preparation
|
|
11
|
+
# - Deep story analysis and lesson extraction
|
|
12
|
+
# - Previous retrospective integration for continuity
|
|
13
|
+
#
|
|
14
|
+
# For Pennyfarthing projects, the /retro skill provides a simpler
|
|
15
|
+
# retrospective experience without the full BMAD ceremony format.
|
|
16
|
+
#
|
|
17
|
+
# Source: BMAD-METHOD/src/modules/bmm/workflows/4-implementation/retrospective/
|
|
18
|
+
# Migrated: 2026-01-22
|
|
19
|
+
|
|
20
|
+
workflow:
|
|
21
|
+
name: retrospective
|
|
22
|
+
description: |
|
|
23
|
+
BMAD reference workflow: Run after epic completion to review overall success,
|
|
24
|
+
extract lessons learned, and explore if new information emerged that might
|
|
25
|
+
impact the next epic. This is imported for BMAD compatibility.
|
|
26
|
+
version: "1.0.0"
|
|
27
|
+
type: procedural
|
|
28
|
+
author: BMad
|
|
29
|
+
|
|
30
|
+
# Primary agent for this workflow
|
|
31
|
+
agent: sm
|
|
32
|
+
|
|
33
|
+
# Instructions and validation files
|
|
34
|
+
instructions: ./instructions.md
|
|
35
|
+
checklist: ./checklist.md
|
|
36
|
+
|
|
37
|
+
# Variables available in instruction files
|
|
38
|
+
variables:
|
|
39
|
+
project_root: .
|
|
40
|
+
config_source: "./_bmad/bmm/config.yaml"
|
|
41
|
+
planning_artifacts: ./artifacts/planning
|
|
42
|
+
implementation_artifacts: ./artifacts
|
|
43
|
+
sprint_status_file: ./artifacts/sprint-status.yaml
|
|
44
|
+
story_directory: ./artifacts/stories
|
|
45
|
+
retrospectives_folder: ./artifacts
|
|
46
|
+
|
|
47
|
+
# Triggers - when to suggest this workflow
|
|
48
|
+
triggers:
|
|
49
|
+
types: [bmad-retro, bmad-retrospective, epic-completion]
|
|
50
|
+
tags: [bmad, reference, procedural, retrospective]
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Sprint Planning Validation Checklist
|
|
2
|
+
|
|
3
|
+
## Core Validation
|
|
4
|
+
|
|
5
|
+
### Complete Coverage Check
|
|
6
|
+
|
|
7
|
+
- [ ] Every epic found in epic\*.md files appears in sprint-status.yaml
|
|
8
|
+
- [ ] Every story found in epic\*.md files appears in sprint-status.yaml
|
|
9
|
+
- [ ] Every epic has a corresponding retrospective entry
|
|
10
|
+
- [ ] No items in sprint-status.yaml that don't exist in epic files
|
|
11
|
+
|
|
12
|
+
### Parsing Verification
|
|
13
|
+
|
|
14
|
+
Compare epic files against generated sprint-status.yaml:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
Epic Files Contains: Sprint Status Contains:
|
|
18
|
+
✓ Epic 1 ✓ epic-1: [status]
|
|
19
|
+
✓ Story 1.1: User Auth ✓ 1-1-user-auth: [status]
|
|
20
|
+
✓ Story 1.2: Account Mgmt ✓ 1-2-account-mgmt: [status]
|
|
21
|
+
✓ Story 1.3: Plant Naming ✓ 1-3-plant-naming: [status]
|
|
22
|
+
✓ epic-1-retrospective: [status]
|
|
23
|
+
✓ Epic 2 ✓ epic-2: [status]
|
|
24
|
+
✓ Story 2.1: Personality Model ✓ 2-1-personality-model: [status]
|
|
25
|
+
✓ Story 2.2: Chat Interface ✓ 2-2-chat-interface: [status]
|
|
26
|
+
✓ epic-2-retrospective: [status]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Final Check
|
|
30
|
+
|
|
31
|
+
- [ ] Total count of epics matches
|
|
32
|
+
- [ ] Total count of stories matches
|
|
33
|
+
- [ ] All items are in the expected order (epic, stories, retrospective)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Sprint Status Template
|
|
2
|
+
# This is an EXAMPLE showing the expected format
|
|
3
|
+
# The actual file will be generated with all epics/stories from your epic files
|
|
4
|
+
|
|
5
|
+
# generated: {date}
|
|
6
|
+
# project: {project_name}
|
|
7
|
+
# project_key: {project_key}
|
|
8
|
+
# tracking_system: {tracking_system}
|
|
9
|
+
# story_location: {story_location}
|
|
10
|
+
|
|
11
|
+
# STATUS DEFINITIONS:
|
|
12
|
+
# ==================
|
|
13
|
+
# Epic Status:
|
|
14
|
+
# - backlog: Epic not yet started
|
|
15
|
+
# - in-progress: Epic actively being worked on
|
|
16
|
+
# - done: All stories in epic completed
|
|
17
|
+
#
|
|
18
|
+
# Story Status:
|
|
19
|
+
# - backlog: Story only exists in epic file
|
|
20
|
+
# - ready-for-dev: Story file created, ready for development
|
|
21
|
+
# - in-progress: Developer actively working on implementation
|
|
22
|
+
# - review: Implementation complete, ready for review
|
|
23
|
+
# - done: Story completed
|
|
24
|
+
#
|
|
25
|
+
# Retrospective Status:
|
|
26
|
+
# - optional: Can be completed but not required
|
|
27
|
+
# - done: Retrospective has been completed
|
|
28
|
+
#
|
|
29
|
+
# WORKFLOW NOTES:
|
|
30
|
+
# ===============
|
|
31
|
+
# - Mark epic as 'in-progress' when starting work on its first story
|
|
32
|
+
# - SM typically creates next story ONLY after previous one is 'done' to incorporate learnings
|
|
33
|
+
# - Dev moves story to 'review', then Dev runs code-review (fresh context, ideally different LLM)
|
|
34
|
+
|
|
35
|
+
# EXAMPLE STRUCTURE (your actual epics/stories will replace these):
|
|
36
|
+
|
|
37
|
+
generated: 05-06-2-2025 21:30
|
|
38
|
+
project: My Awesome Project
|
|
39
|
+
project_key: jira-1234
|
|
40
|
+
tracking_system: file-system
|
|
41
|
+
story_location: "{story_location}"
|
|
42
|
+
|
|
43
|
+
development_status:
|
|
44
|
+
epic-1: backlog
|
|
45
|
+
1-1-user-authentication: done
|
|
46
|
+
1-2-account-management: ready-for-dev
|
|
47
|
+
1-3-plant-data-model: backlog
|
|
48
|
+
1-4-add-plant-manual: backlog
|
|
49
|
+
epic-1-retrospective: optional
|
|
50
|
+
|
|
51
|
+
epic-2: backlog
|
|
52
|
+
2-1-personality-system: backlog
|
|
53
|
+
2-2-chat-interface: backlog
|
|
54
|
+
2-3-llm-integration: backlog
|
|
55
|
+
epic-2-retrospective: optional
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-01-parse-epic-files'
|
|
3
|
+
description: 'Parse epic files and extract all work items for sprint status tracking'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project_root}/.pennyfarthing/workflows/sprint-planning'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: './step-01-parse-epic-files.md'
|
|
10
|
+
nextStepFile: './step-02-build-sprint-status.md'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Step 1: Parse Epic Files and Extract All Work Items
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Parse epic files and extract all work items for sprint status tracking.
|
|
18
|
+
|
|
19
|
+
## Actions
|
|
20
|
+
|
|
21
|
+
1. Look for all files matching `{epics_pattern}` in `{epics_location}`
|
|
22
|
+
- Could be a single `epics.md` file or multiple `epic-1.md`, `epic-2.md` files
|
|
23
|
+
|
|
24
|
+
2. For each epic file found, extract:
|
|
25
|
+
- Epic numbers from headers like `## Epic 1:` or `## Epic 2:`
|
|
26
|
+
- Story IDs and titles from patterns like `### Story 1.1: User Authentication`
|
|
27
|
+
- Convert story format from `Epic.Story: Title` to kebab-case key: `epic-story-title`
|
|
28
|
+
|
|
29
|
+
## Story ID Conversion Rules
|
|
30
|
+
|
|
31
|
+
- Original: `### Story 1.1: User Authentication`
|
|
32
|
+
- Replace period with dash: `1-1`
|
|
33
|
+
- Convert title to kebab-case: `user-authentication`
|
|
34
|
+
- Final key: `1-1-user-authentication`
|
|
35
|
+
|
|
36
|
+
## Output
|
|
37
|
+
|
|
38
|
+
Build complete inventory of all epics and stories from all epic files.
|
|
39
|
+
|
|
40
|
+
## Document Discovery
|
|
41
|
+
|
|
42
|
+
**Strategy**: Sprint planning needs ALL epics and stories to build complete status tracking.
|
|
43
|
+
|
|
44
|
+
**Epic Discovery Process:**
|
|
45
|
+
|
|
46
|
+
1. **Search for whole document first** - Look for `epics.md`, `bmm-epics.md`, or any `*epic*.md` file
|
|
47
|
+
2. **Check for sharded version** - If whole document not found, look for `epics/index.md`
|
|
48
|
+
3. **If sharded version found**:
|
|
49
|
+
- Read `index.md` to understand the document structure
|
|
50
|
+
- Read ALL epic section files listed in the index (e.g., `epic-1.md`, `epic-2.md`, etc.)
|
|
51
|
+
- Process all epics and their stories from the combined content
|
|
52
|
+
4. **Priority**: If both whole and sharded versions exist, use the whole document
|
|
53
|
+
|
|
54
|
+
**Fuzzy matching**: Be flexible with document names - users may use variations like `epics.md`, `bmm-epics.md`, `user-stories.md`, etc.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-02-build-sprint-status'
|
|
3
|
+
description: 'Build sprint status structure from parsed epic and story data'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project_root}/.pennyfarthing/workflows/sprint-planning'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: './step-02-build-sprint-status.md'
|
|
10
|
+
nextStepFile: './step-03-status-detection.md'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Step 2: Build Sprint Status Structure
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Build sprint status structure from parsed epic and story data.
|
|
18
|
+
|
|
19
|
+
## Actions
|
|
20
|
+
|
|
21
|
+
For each epic found, create entries in this order:
|
|
22
|
+
|
|
23
|
+
1. **Epic entry** - Key: `epic-{num}`, Default status: `backlog`
|
|
24
|
+
2. **Story entries** - Key: `{epic}-{story}-{title}`, Default status: `backlog`
|
|
25
|
+
3. **Retrospective entry** - Key: `epic-{num}-retrospective`, Default status: `optional`
|
|
26
|
+
|
|
27
|
+
## Example Structure
|
|
28
|
+
|
|
29
|
+
```yaml
|
|
30
|
+
development_status:
|
|
31
|
+
epic-1: backlog
|
|
32
|
+
1-1-user-authentication: backlog
|
|
33
|
+
1-2-account-management: backlog
|
|
34
|
+
epic-1-retrospective: optional
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Ordering
|
|
38
|
+
|
|
39
|
+
Ensure items are grouped by epic:
|
|
40
|
+
- Epic N entry
|
|
41
|
+
- All stories for Epic N
|
|
42
|
+
- Retrospective for Epic N
|
|
43
|
+
- Epic N+1 entry
|
|
44
|
+
- etc.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-03-status-detection'
|
|
3
|
+
description: 'Apply intelligent status detection based on file existence and existing status'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project_root}/.pennyfarthing/workflows/sprint-planning'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: './step-03-status-detection.md'
|
|
10
|
+
nextStepFile: './step-04-generate-status-file.md'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Step 3: Apply Intelligent Status Detection
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Apply intelligent status detection based on file existence and existing status.
|
|
18
|
+
|
|
19
|
+
## Actions
|
|
20
|
+
|
|
21
|
+
For each story, detect current status by checking files:
|
|
22
|
+
|
|
23
|
+
### Story File Detection
|
|
24
|
+
|
|
25
|
+
- Check: `{story_location}/{story-key}.md` (e.g., `stories/1-1-user-authentication.md`)
|
|
26
|
+
- If exists → upgrade status to at least `ready-for-dev`
|
|
27
|
+
|
|
28
|
+
### Preservation Rule
|
|
29
|
+
|
|
30
|
+
- If existing `{status_file}` exists and has more advanced status, preserve it
|
|
31
|
+
- Never downgrade status (e.g., don't change `done` to `ready-for-dev`)
|
|
32
|
+
|
|
33
|
+
## Status Flow Reference
|
|
34
|
+
|
|
35
|
+
### Epic Status
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
backlog → in-progress → done
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
- **backlog**: Epic not yet started
|
|
42
|
+
- **in-progress**: Epic actively being worked on (stories being created/implemented)
|
|
43
|
+
- **done**: All stories in epic completed
|
|
44
|
+
|
|
45
|
+
### Story Status
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
backlog → ready-for-dev → in-progress → review → done
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
- **backlog**: Story only exists in epic file
|
|
52
|
+
- **ready-for-dev**: Story file created (e.g., `stories/1-3-plant-naming.md`)
|
|
53
|
+
- **in-progress**: Developer actively working
|
|
54
|
+
- **review**: Ready for code review
|
|
55
|
+
- **done**: Completed
|
|
56
|
+
|
|
57
|
+
### Retrospective Status
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
optional ↔ done
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
- **optional**: Ready to be conducted but not required
|
|
64
|
+
- **done**: Finished
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-04-generate-status-file'
|
|
3
|
+
description: 'Generate the sprint status YAML file with all epics, stories, and retrospectives'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project_root}/.pennyfarthing/workflows/sprint-planning'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: './step-04-generate-status-file.md'
|
|
10
|
+
nextStepFile: './step-05-validate-and-report.md'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Step 4: Generate Sprint Status File
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Generate the sprint status YAML file with all epics, stories, and retrospectives.
|
|
18
|
+
|
|
19
|
+
## Actions
|
|
20
|
+
|
|
21
|
+
Create or update `{status_file}` with the following structure:
|
|
22
|
+
|
|
23
|
+
## File Structure
|
|
24
|
+
|
|
25
|
+
```yaml
|
|
26
|
+
# generated: {date}
|
|
27
|
+
# project: {project_name}
|
|
28
|
+
# tracking_system: file-system
|
|
29
|
+
# story_location: {story_location}
|
|
30
|
+
|
|
31
|
+
# STATUS DEFINITIONS:
|
|
32
|
+
# ==================
|
|
33
|
+
# Epic Status:
|
|
34
|
+
# - backlog: Epic not yet started
|
|
35
|
+
# - in-progress: Epic actively being worked on
|
|
36
|
+
# - done: All stories in epic completed
|
|
37
|
+
#
|
|
38
|
+
# Epic Status Transitions:
|
|
39
|
+
# - backlog → in-progress: Automatically when first story is created
|
|
40
|
+
# - in-progress → done: Manually when all stories reach 'done' status
|
|
41
|
+
#
|
|
42
|
+
# Story Status:
|
|
43
|
+
# - backlog: Story only exists in epic file
|
|
44
|
+
# - ready-for-dev: Story file created in stories folder
|
|
45
|
+
# - in-progress: Developer actively working on implementation
|
|
46
|
+
# - review: Ready for code review
|
|
47
|
+
# - done: Story completed
|
|
48
|
+
#
|
|
49
|
+
# Retrospective Status:
|
|
50
|
+
# - optional: Can be completed but not required
|
|
51
|
+
# - done: Retrospective has been completed
|
|
52
|
+
#
|
|
53
|
+
# WORKFLOW NOTES:
|
|
54
|
+
# ===============
|
|
55
|
+
# - Epic transitions to 'in-progress' automatically when first story is created
|
|
56
|
+
# - Stories can be worked in parallel if team capacity allows
|
|
57
|
+
# - SM typically creates next story after previous one is 'done' to incorporate learnings
|
|
58
|
+
# - Dev moves story to 'review', then runs code-review
|
|
59
|
+
|
|
60
|
+
generated: {date}
|
|
61
|
+
project: {project_name}
|
|
62
|
+
tracking_system: file-system
|
|
63
|
+
story_location: {story_location}
|
|
64
|
+
|
|
65
|
+
development_status:
|
|
66
|
+
# All epics, stories, and retrospectives in order
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Critical Notes
|
|
70
|
+
|
|
71
|
+
- **CRITICAL**: Metadata appears TWICE - once as comments (#) for documentation, once as YAML key:value fields for parsing
|
|
72
|
+
- Ensure all items are ordered: epic, its stories, its retrospective, next epic...
|
|
73
|
+
- Write the complete sprint status YAML to `{status_file}`
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-05-validate-and-report'
|
|
3
|
+
description: 'Validate the generated sprint status file and report results'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project_root}/.pennyfarthing/workflows/sprint-planning'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: './step-05-validate-and-report.md'
|
|
10
|
+
nextStepFile: null
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Step 5: Validate and Report
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Validate the generated sprint status file and report results.
|
|
18
|
+
|
|
19
|
+
## Validation Checks
|
|
20
|
+
|
|
21
|
+
Perform the following validation checks:
|
|
22
|
+
|
|
23
|
+
- [ ] Every epic in epic files appears in `{status_file}`
|
|
24
|
+
- [ ] Every story in epic files appears in `{status_file}`
|
|
25
|
+
- [ ] Every epic has a corresponding retrospective entry
|
|
26
|
+
- [ ] No items in `{status_file}` that don't exist in epic files
|
|
27
|
+
- [ ] All status values are legal (match state machine definitions)
|
|
28
|
+
- [ ] File is valid YAML syntax
|
|
29
|
+
|
|
30
|
+
## Count Totals
|
|
31
|
+
|
|
32
|
+
Calculate and report:
|
|
33
|
+
|
|
34
|
+
- Total epics: `{epic_count}`
|
|
35
|
+
- Total stories: `{story_count}`
|
|
36
|
+
- Epics in-progress: `{in_progress_count}`
|
|
37
|
+
- Stories done: `{done_count}`
|
|
38
|
+
|
|
39
|
+
## Completion Summary
|
|
40
|
+
|
|
41
|
+
Display to user:
|
|
42
|
+
|
|
43
|
+
**Sprint Status Generated Successfully**
|
|
44
|
+
|
|
45
|
+
- **File Location:** `{status_file}`
|
|
46
|
+
- **Total Epics:** `{epic_count}`
|
|
47
|
+
- **Total Stories:** `{story_count}`
|
|
48
|
+
- **Epics In Progress:** `{epics_in_progress_count}`
|
|
49
|
+
- **Stories Completed:** `{done_count}`
|
|
50
|
+
|
|
51
|
+
## Next Steps
|
|
52
|
+
|
|
53
|
+
1. Review the generated `{status_file}`
|
|
54
|
+
2. Use this file to track development progress
|
|
55
|
+
3. Agents will update statuses as they work
|
|
56
|
+
4. Re-run this workflow to refresh auto-detected statuses
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# sprint-planning Workflow - Migrated from BMAD format
|
|
2
|
+
# Manual migration (source used workflow.yaml + instructions.md format)
|
|
3
|
+
|
|
4
|
+
workflow:
|
|
5
|
+
name: sprint-planning
|
|
6
|
+
description: Generate and manage the sprint status tracking file for Phase 4 implementation, extracting all epics and stories from epic files and tracking their status through the development lifecycle.
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
type: stepped
|
|
9
|
+
|
|
10
|
+
# Step configuration
|
|
11
|
+
steps:
|
|
12
|
+
path: ./steps/
|
|
13
|
+
pattern: step-*.md
|
|
14
|
+
|
|
15
|
+
# Variables available in step files
|
|
16
|
+
variables:
|
|
17
|
+
project_root: .
|
|
18
|
+
planning_artifacts: ./artifacts
|
|
19
|
+
implementation_artifacts: ./artifacts
|
|
20
|
+
epics_location: ./artifacts
|
|
21
|
+
epics_pattern: "epic*.md"
|
|
22
|
+
status_file: artifacts/sprint-status.yaml
|
|
23
|
+
output_file: artifacts/sprint-status.yaml
|
|
24
|
+
|
|
25
|
+
# Agent assignment - SM handles sprint planning
|
|
26
|
+
agent: sm
|
|
27
|
+
|
|
28
|
+
# Triggers - when to suggest this workflow
|
|
29
|
+
triggers:
|
|
30
|
+
types: [sprint-planning, sprint-status]
|
|
31
|
+
tags: [sprint-planning, implementation, stepped]
|
|
32
|
+
|
|
33
|
+
# Standalone workflow (not part of TDD cycle)
|
|
34
|
+
standalone: true
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Step 1: UX Design Workflow Initialization
|
|
2
|
+
|
|
3
|
+
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
4
|
+
|
|
5
|
+
- 🛑 NEVER generate content without user input
|
|
6
|
+
|
|
7
|
+
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
|
8
|
+
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
|
9
|
+
- ✅ ALWAYS treat this as collaborative discovery between UX facilitator and stakeholder
|
|
10
|
+
- 📋 YOU ARE A UX FACILITATOR, not a content generator
|
|
11
|
+
- 💬 FOCUS on initialization and setup only - don't look ahead to future steps
|
|
12
|
+
- 🚪 DETECT existing workflow state and handle continuation properly
|
|
13
|
+
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
|
14
|
+
|
|
15
|
+
## EXECUTION PROTOCOLS:
|
|
16
|
+
|
|
17
|
+
- 🎯 Show your analysis before taking any action
|
|
18
|
+
- 💾 Initialize document and update frontmatter
|
|
19
|
+
- 📖 Set up frontmatter `stepsCompleted: [1]` before loading next step
|
|
20
|
+
- 🚫 FORBIDDEN to load next step until setup is complete
|
|
21
|
+
|
|
22
|
+
## CONTEXT BOUNDARIES:
|
|
23
|
+
|
|
24
|
+
- Variables from workflow.md are available in memory
|
|
25
|
+
- Previous context = what's in output document + frontmatter
|
|
26
|
+
- Don't assume knowledge from other steps
|
|
27
|
+
- Input document discovery happens in this step
|
|
28
|
+
|
|
29
|
+
## YOUR TASK:
|
|
30
|
+
|
|
31
|
+
Initialize the UX design workflow by detecting continuation state and setting up the design specification document.
|
|
32
|
+
|
|
33
|
+
## INITIALIZATION SEQUENCE:
|
|
34
|
+
|
|
35
|
+
### 1. Check for Existing Workflow
|
|
36
|
+
|
|
37
|
+
First, check if the output document already exists:
|
|
38
|
+
|
|
39
|
+
- Look for file at `{planning_artifacts}/*ux-design-specification*.md`
|
|
40
|
+
- If exists, read the complete file including frontmatter
|
|
41
|
+
- If not exists, this is a fresh workflow
|
|
42
|
+
|
|
43
|
+
### 2. Handle Continuation (If Document Exists)
|
|
44
|
+
|
|
45
|
+
If the document exists and has frontmatter with `stepsCompleted`:
|
|
46
|
+
|
|
47
|
+
- **STOP here** and load `./step-01b-continue.md` immediately
|
|
48
|
+
- Do not proceed with any initialization tasks
|
|
49
|
+
- Let step-01b handle the continuation logic
|
|
50
|
+
|
|
51
|
+
### 3. Fresh Workflow Setup (If No Document)
|
|
52
|
+
|
|
53
|
+
If no document exists or no `stepsCompleted` in frontmatter:
|
|
54
|
+
|
|
55
|
+
#### A. Input Document Discovery
|
|
56
|
+
|
|
57
|
+
Discover and load context documents using smart discovery. Documents can be in the following locations:
|
|
58
|
+
- {planning_artifacts}/**
|
|
59
|
+
- {output_folder}/**
|
|
60
|
+
- {product_knowledge}/**
|
|
61
|
+
- docs/**
|
|
62
|
+
|
|
63
|
+
Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content)
|
|
64
|
+
|
|
65
|
+
Try to discover the following:
|
|
66
|
+
- Product Brief (`*brief*.md`)
|
|
67
|
+
- Research Documents (`*prd*.md`)
|
|
68
|
+
- Project Documentation (generally multiple documents might be found for this in the `{product_knowledge}` or `docs` folder.)
|
|
69
|
+
- Project Context (`**/project-context.md`)
|
|
70
|
+
|
|
71
|
+
<critical>Confirm what you have found with the user, along with asking if the user wants to provide anything else. Only after this confirmation will you proceed to follow the loading rules</critical>
|
|
72
|
+
|
|
73
|
+
**Loading Rules:**
|
|
74
|
+
|
|
75
|
+
- Load ALL discovered files completely that the user confirmed or provided (no offset/limit)
|
|
76
|
+
- If there is a project context, whatever is relevant should try to be biased in the remainder of this whole workflow process
|
|
77
|
+
- For sharded folders, load ALL files to get complete picture, using the index first to potentially know the potential of each document
|
|
78
|
+
- index.md is a guide to what's relevant whenever available
|
|
79
|
+
- Track all successfully loaded files in frontmatter `inputDocuments` array
|
|
80
|
+
|
|
81
|
+
#### B. Create Initial Document
|
|
82
|
+
|
|
83
|
+
Copy the template from `{installed_path}/ux-design-template.md` to `{planning_artifacts}/ux-design-specification.md`
|
|
84
|
+
Initialize frontmatter in the template.
|
|
85
|
+
|
|
86
|
+
#### C. Complete Initialization and Report
|
|
87
|
+
|
|
88
|
+
Complete setup and report to user:
|
|
89
|
+
|
|
90
|
+
**Document Setup:**
|
|
91
|
+
|
|
92
|
+
- Created: `{planning_artifacts}/ux-design-specification.md` from template
|
|
93
|
+
- Initialized frontmatter with workflow state
|
|
94
|
+
|
|
95
|
+
**Input Documents Discovered:**
|
|
96
|
+
Report what was found:
|
|
97
|
+
"Welcome {{user_name}}! I've set up your UX design workspace for {{project_name}}.
|
|
98
|
+
|
|
99
|
+
**Documents Found:**
|
|
100
|
+
|
|
101
|
+
- PRD: {number of PRD files loaded or "None found"}
|
|
102
|
+
- Product brief: {number of brief files loaded or "None found"}
|
|
103
|
+
- Other context: {number of other files loaded or "None found"}
|
|
104
|
+
|
|
105
|
+
**Files loaded:** {list of specific file names or "No additional documents found"}
|
|
106
|
+
|
|
107
|
+
Do you have any other documents you'd like me to include, or shall we continue to the next step?
|
|
108
|
+
|
|
109
|
+
[C] Continue to UX discovery"
|
|
110
|
+
|
|
111
|
+
## NEXT STEP:
|
|
112
|
+
|
|
113
|
+
After user selects [C] to continue, ensure the file `{planning_artifacts}/ux-design-specification.md` has been created and saved, and then load `./step-02-discovery.md` to begin the UX discovery phase.
|
|
114
|
+
|
|
115
|
+
Remember: Do NOT proceed to step-02 until output file has been updated and user explicitly selects [C] to continue!
|
|
116
|
+
|
|
117
|
+
## SUCCESS METRICS:
|
|
118
|
+
|
|
119
|
+
✅ Existing workflow detected and handed off to step-01b correctly
|
|
120
|
+
✅ Fresh workflow initialized with template and frontmatter
|
|
121
|
+
✅ Input documents discovered and loaded using sharded-first logic
|
|
122
|
+
✅ All discovered files tracked in frontmatter `inputDocuments`
|
|
123
|
+
✅ User confirmed document setup and can proceed
|
|
124
|
+
|
|
125
|
+
## FAILURE MODES:
|
|
126
|
+
|
|
127
|
+
❌ Proceeding with fresh initialization when existing workflow exists
|
|
128
|
+
❌ Not updating frontmatter with discovered input documents
|
|
129
|
+
❌ Creating document without proper template
|
|
130
|
+
❌ Not checking sharded folders first before whole files
|
|
131
|
+
❌ Not reporting what documents were found to user
|
|
132
|
+
|
|
133
|
+
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
|
134
|
+
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
|
135
|
+
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|