@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,228 @@
|
|
|
1
|
+
# Step 14: Workflow Completion
|
|
2
|
+
|
|
3
|
+
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
4
|
+
|
|
5
|
+
- ✅ THIS IS A FINAL STEP - Workflow completion required
|
|
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
|
+
- 🛑 NO content generation - this is a wrap-up step
|
|
10
|
+
- 📋 FINALIZE document and update workflow status
|
|
11
|
+
- 💬 FOCUS on completion, validation, and next steps
|
|
12
|
+
- 🎯 UPDATE workflow status files with completion information
|
|
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
|
+
- 💾 Update the main workflow status file with completion information
|
|
19
|
+
- 📖 Suggest potential next workflow steps for the user
|
|
20
|
+
- 🚫 DO NOT load additional steps after this one
|
|
21
|
+
|
|
22
|
+
## TERMINATION STEP PROTOCOLS:
|
|
23
|
+
|
|
24
|
+
- This is a FINAL step - workflow completion required
|
|
25
|
+
- 📖 Update output file frontmatter, adding this step to the end of the list of stepsCompleted to indicate all is finished..
|
|
26
|
+
- Output completion summary and next step guidance
|
|
27
|
+
- Update the main workflow status file with finalized document
|
|
28
|
+
- Suggest potential next workflow steps for the user
|
|
29
|
+
- Mark workflow as complete in status tracking
|
|
30
|
+
|
|
31
|
+
## CONTEXT BOUNDARIES:
|
|
32
|
+
|
|
33
|
+
- Complete UX design specification is available from all previous steps
|
|
34
|
+
- Workflow frontmatter shows all completed steps
|
|
35
|
+
- All collaborative content has been generated and saved
|
|
36
|
+
- Focus on completion, validation, and next steps
|
|
37
|
+
|
|
38
|
+
## YOUR TASK:
|
|
39
|
+
|
|
40
|
+
Complete the UX design workflow, update status files, and suggest next steps for the project.
|
|
41
|
+
|
|
42
|
+
## WORKFLOW COMPLETION SEQUENCE:
|
|
43
|
+
|
|
44
|
+
### 1. Announce Workflow Completion
|
|
45
|
+
|
|
46
|
+
Inform user that the UX design is complete:
|
|
47
|
+
"🎉 **UX Design Complete, {{user_name}}!**
|
|
48
|
+
|
|
49
|
+
I've successfully collaborated with you to create a comprehensive UX design specification for {{project_name}}.
|
|
50
|
+
|
|
51
|
+
**What we've accomplished:**
|
|
52
|
+
|
|
53
|
+
- ✅ Project understanding and user insights
|
|
54
|
+
- ✅ Core experience and emotional response definition
|
|
55
|
+
- ✅ UX pattern analysis and inspiration
|
|
56
|
+
- ✅ Design system choice and implementation strategy
|
|
57
|
+
- ✅ Core interaction definition and experience mechanics
|
|
58
|
+
- ✅ Visual design foundation (colors, typography, spacing)
|
|
59
|
+
- ✅ Design direction mockups and visual explorations
|
|
60
|
+
- ✅ User journey flows and interaction design
|
|
61
|
+
- ✅ Component strategy and custom component specifications
|
|
62
|
+
- ✅ UX consistency patterns for common interactions
|
|
63
|
+
- ✅ Responsive design and accessibility strategy
|
|
64
|
+
|
|
65
|
+
**The complete UX design specification is now available at:** `{planning_artifacts}/ux-design-specification.md`
|
|
66
|
+
|
|
67
|
+
**Supporting Visual Assets:**
|
|
68
|
+
|
|
69
|
+
- Color themes visualizer: `{planning_artifacts}/ux-color-themes.html`
|
|
70
|
+
- Design directions mockups: `{planning_artifacts}/ux-design-directions.html`
|
|
71
|
+
|
|
72
|
+
This specification is now ready to guide visual design, implementation, and development."
|
|
73
|
+
|
|
74
|
+
### 2. Workflow Status Update
|
|
75
|
+
|
|
76
|
+
Update the main workflow status file:
|
|
77
|
+
|
|
78
|
+
- Load `{status_file}` from workflow configuration (if exists)
|
|
79
|
+
- Update workflow_status["create-ux-design"] = "{default_output_file}"
|
|
80
|
+
- Save file, preserving all comments and structure
|
|
81
|
+
- Mark current timestamp as completion time
|
|
82
|
+
|
|
83
|
+
### 3. Suggest Next Steps
|
|
84
|
+
|
|
85
|
+
Provide guidance on logical next workflows:
|
|
86
|
+
|
|
87
|
+
**Typical Next Workflows:**
|
|
88
|
+
|
|
89
|
+
**Immediate Next Steps:**
|
|
90
|
+
|
|
91
|
+
1. **Wireframe Generation** - Create detailed wireframes based on UX specification
|
|
92
|
+
2. **Interactive Prototype** - Build clickable prototypes for user testing
|
|
93
|
+
3. **Solution Architecture** - Technical architecture design with UX context
|
|
94
|
+
4. **Figma Design** - High-fidelity visual design implementation
|
|
95
|
+
|
|
96
|
+
**Visual Design Workflows:**
|
|
97
|
+
|
|
98
|
+
- Wireframe Generation → Interactive Prototype → Figma Design
|
|
99
|
+
- Component Showcase → AI Frontend Prompt → Design System Implementation
|
|
100
|
+
|
|
101
|
+
**Development Workflows:**
|
|
102
|
+
|
|
103
|
+
- Solution Architecture → Epic Creation → Development Sprints
|
|
104
|
+
|
|
105
|
+
**What would be most valuable to tackle next?**
|
|
106
|
+
|
|
107
|
+
### 4. Document Quality Check
|
|
108
|
+
|
|
109
|
+
Perform final validation of the UX design:
|
|
110
|
+
|
|
111
|
+
**Completeness Check:**
|
|
112
|
+
|
|
113
|
+
- Does the specification clearly communicate the design vision?
|
|
114
|
+
- Are user journeys thoroughly documented?
|
|
115
|
+
- Are all critical components specified?
|
|
116
|
+
- Are responsive and accessibility requirements comprehensive?
|
|
117
|
+
- Is there clear guidance for implementation?
|
|
118
|
+
|
|
119
|
+
**Consistency Check:**
|
|
120
|
+
|
|
121
|
+
- Do all sections align with the emotional goals?
|
|
122
|
+
- Is design system integration clearly defined?
|
|
123
|
+
- Are patterns consistent across all user flows?
|
|
124
|
+
- Does visual direction match established foundation?
|
|
125
|
+
|
|
126
|
+
### 5. Final Completion Confirmation
|
|
127
|
+
|
|
128
|
+
Confirm completion with user:
|
|
129
|
+
"**Your UX Design Specification for {{project_name}} is now complete and ready for implementation!**
|
|
130
|
+
|
|
131
|
+
**The specification contains everything needed to:**
|
|
132
|
+
|
|
133
|
+
- Guide visual designers in creating the final interfaces
|
|
134
|
+
- Inform developers of all UX requirements and patterns
|
|
135
|
+
- Ensure consistency across all user interactions
|
|
136
|
+
- Maintain accessibility and responsive design standards
|
|
137
|
+
- Provide a foundation for user testing and iteration
|
|
138
|
+
|
|
139
|
+
**Ready to continue with:**
|
|
140
|
+
|
|
141
|
+
- Wireframe generation for detailed layouts?
|
|
142
|
+
- Interactive prototype for user testing?
|
|
143
|
+
- Solution architecture for technical planning?
|
|
144
|
+
- Visual design implementation?
|
|
145
|
+
|
|
146
|
+
**Or would you like to review the complete specification first?**
|
|
147
|
+
|
|
148
|
+
[UX Design Workflow Complete]"
|
|
149
|
+
|
|
150
|
+
## SUCCESS METRICS:
|
|
151
|
+
|
|
152
|
+
✅ UX design specification contains all required sections
|
|
153
|
+
✅ All collaborative content properly saved to document
|
|
154
|
+
✅ Workflow status file updated with completion information
|
|
155
|
+
✅ Clear next step guidance provided to user
|
|
156
|
+
✅ Document quality validation completed
|
|
157
|
+
✅ User acknowledges completion and understands next options
|
|
158
|
+
|
|
159
|
+
## FAILURE MODES:
|
|
160
|
+
|
|
161
|
+
❌ Not updating workflow status file with completion information
|
|
162
|
+
❌ Missing clear next step guidance for user
|
|
163
|
+
❌ Not confirming document completeness with user
|
|
164
|
+
❌ Workflow not properly marked as complete in status tracking
|
|
165
|
+
❌ User unclear about what happens next
|
|
166
|
+
|
|
167
|
+
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
|
168
|
+
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
|
169
|
+
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
|
170
|
+
|
|
171
|
+
## WORKFLOW COMPLETION CHECKLIST:
|
|
172
|
+
|
|
173
|
+
### Design Specification Complete:
|
|
174
|
+
|
|
175
|
+
- [ ] Executive summary and project understanding
|
|
176
|
+
- [ ] Core experience and emotional response definition
|
|
177
|
+
- [ ] UX pattern analysis and inspiration
|
|
178
|
+
- [ ] Design system choice and strategy
|
|
179
|
+
- [ ] Core interaction mechanics definition
|
|
180
|
+
- [ ] Visual design foundation (colors, typography, spacing)
|
|
181
|
+
- [ ] Design direction decisions and mockups
|
|
182
|
+
- [ ] User journey flows and interaction design
|
|
183
|
+
- [ ] Component strategy and specifications
|
|
184
|
+
- [ ] UX consistency patterns documentation
|
|
185
|
+
- [ ] Responsive design and accessibility strategy
|
|
186
|
+
|
|
187
|
+
### Process Complete:
|
|
188
|
+
|
|
189
|
+
- [ ] All steps completed with user confirmation
|
|
190
|
+
- [ ] All content saved to specification document
|
|
191
|
+
- [ ] Frontmatter properly updated with all steps
|
|
192
|
+
- [ ] Workflow status file updated with completion
|
|
193
|
+
- [ ] Next steps clearly communicated
|
|
194
|
+
|
|
195
|
+
## NEXT STEPS GUIDANCE:
|
|
196
|
+
|
|
197
|
+
**Immediate Options:**
|
|
198
|
+
|
|
199
|
+
1. **Wireframe Generation** - Create low-fidelity layouts based on UX spec
|
|
200
|
+
2. **Interactive Prototype** - Build clickable prototypes for testing
|
|
201
|
+
3. **Solution Architecture** - Technical design with UX context
|
|
202
|
+
4. **Figma Visual Design** - High-fidelity UI implementation
|
|
203
|
+
5. **Epic Creation** - Break down UX requirements for development
|
|
204
|
+
|
|
205
|
+
**Recommended Sequence:**
|
|
206
|
+
For design-focused teams: Wireframes → Prototypes → Figma Design → Development
|
|
207
|
+
For technical teams: Architecture → Epic Creation → Development
|
|
208
|
+
|
|
209
|
+
Consider team capacity, timeline, and whether user validation is needed before implementation.
|
|
210
|
+
|
|
211
|
+
## WORKFLOW FINALIZATION:
|
|
212
|
+
|
|
213
|
+
- Set `lastStep = 14` in document frontmatter
|
|
214
|
+
- Update workflow status file with completion timestamp
|
|
215
|
+
- Provide completion summary to user
|
|
216
|
+
- Do NOT load any additional steps
|
|
217
|
+
|
|
218
|
+
## FINAL REMINDER:
|
|
219
|
+
|
|
220
|
+
This UX design workflow is now complete. The specification serves as the foundation for all visual and development work. All design decisions, patterns, and requirements are documented to ensure consistent, accessible, and user-centered implementation.
|
|
221
|
+
|
|
222
|
+
**Congratulations on completing the UX Design Specification for {{project_name}}!** 🎉
|
|
223
|
+
|
|
224
|
+
**Core Deliverables:**
|
|
225
|
+
|
|
226
|
+
- ✅ UX Design Specification: `{planning_artifacts}/ux-design-specification.md`
|
|
227
|
+
- ✅ Color Themes Visualizer: `{planning_artifacts}/ux-color-themes.html`
|
|
228
|
+
- ✅ Design Directions: `{planning_artifacts}/ux-design-directions.html`
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
stepsCompleted: []
|
|
3
|
+
inputDocuments: []
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# UX Design Specification {{project_name}}
|
|
7
|
+
|
|
8
|
+
**Author:** {{user_name}}
|
|
9
|
+
**Date:** {{date}}
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<!-- UX design content will be appended sequentially through collaborative workflow steps -->
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# UX Design Workflow - Imported for BMAD Compatibility
|
|
2
|
+
#
|
|
3
|
+
# This is a stepped workflow imported from BMAD that guides users through
|
|
4
|
+
# comprehensive UX design planning with the UX Designer agent.
|
|
5
|
+
# Single-mode workflow with 14 sequential steps covering discovery,
|
|
6
|
+
# visual design, component strategy, and accessibility.
|
|
7
|
+
#
|
|
8
|
+
# Purpose: Create comprehensive UX design specifications
|
|
9
|
+
# Role: UX facilitator working with product stakeholder
|
|
10
|
+
# Output: UX design specification document
|
|
11
|
+
#
|
|
12
|
+
# Source: BMAD-METHOD/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/
|
|
13
|
+
# Migrated: 2026-01-22
|
|
14
|
+
|
|
15
|
+
workflow:
|
|
16
|
+
name: ux-design
|
|
17
|
+
description: |
|
|
18
|
+
BMAD reference workflow: Work with a peer UX Design expert to plan your
|
|
19
|
+
application's UX patterns, look and feel. Covers discovery, emotional design,
|
|
20
|
+
visual foundation, user journeys, component strategy, and accessibility.
|
|
21
|
+
version: "1.0.0"
|
|
22
|
+
type: stepped
|
|
23
|
+
|
|
24
|
+
# Step configuration
|
|
25
|
+
steps:
|
|
26
|
+
path: ./steps/
|
|
27
|
+
pattern: step-*.md
|
|
28
|
+
|
|
29
|
+
# Variables available in step files
|
|
30
|
+
variables:
|
|
31
|
+
project_root: .
|
|
32
|
+
planning_artifacts: ./artifacts
|
|
33
|
+
output_file: artifacts/ux-design-specification.md
|
|
34
|
+
|
|
35
|
+
# Agent assignment - UX Designer for visual design workflow
|
|
36
|
+
agent: ux-designer
|
|
37
|
+
|
|
38
|
+
# Triggers - when to suggest this workflow
|
|
39
|
+
triggers:
|
|
40
|
+
types: [ux-design, create-ux-design, on_demand]
|
|
41
|
+
tags: [bmad, ux, design, visual, accessibility]
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Batch Chernoff Face Generator
|
|
3
|
-
*
|
|
4
|
-
* Story 11-4: Generate anchor theme faces + markdown report
|
|
5
|
-
* Story 11-6: Generate full 630-face matrix with index
|
|
6
|
-
*
|
|
7
|
-
* Generates SVG faces for all themes and creates markdown indices.
|
|
8
|
-
*/
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=generate-all-faces.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-all-faces.d.ts","sourceRoot":"","sources":["../../src/scripts/generate-all-faces.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Batch Chernoff Face Generator
|
|
3
|
-
*
|
|
4
|
-
* Story 11-4: Generate anchor theme faces + markdown report
|
|
5
|
-
* Story 11-6: Generate full 630-face matrix with index
|
|
6
|
-
*
|
|
7
|
-
* Generates SVG faces for all themes and creates markdown indices.
|
|
8
|
-
*/
|
|
9
|
-
import { writeFileSync, mkdirSync, existsSync, readdirSync, readFileSync } from 'fs';
|
|
10
|
-
import { join, dirname } from 'path';
|
|
11
|
-
import { fileURLToPath } from 'url';
|
|
12
|
-
import { parse as parseYaml } from 'yaml';
|
|
13
|
-
import { generateFace } from './generate-face.js';
|
|
14
|
-
import { findMonorepoRoot } from '../cli/utils/files.js';
|
|
15
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
16
|
-
const __dirname = dirname(__filename);
|
|
17
|
-
// Find monorepo root by walking up from current directory
|
|
18
|
-
const projectRoot = findMonorepoRoot(__dirname);
|
|
19
|
-
const facesDir = join(projectRoot, 'pennyfarthing-dist', 'personas', 'faces');
|
|
20
|
-
const themesDir = join(projectRoot, 'pennyfarthing-dist', 'personas', 'themes');
|
|
21
|
-
// Dynamically load all themes from the themes directory
|
|
22
|
-
function getAllThemes() {
|
|
23
|
-
const files = readdirSync(themesDir).filter((f) => f.endsWith('.yaml'));
|
|
24
|
-
return files.map((f) => f.replace('.yaml', '')).sort();
|
|
25
|
-
}
|
|
26
|
-
const THEMES = getAllThemes();
|
|
27
|
-
// 10 agents per theme
|
|
28
|
-
const AGENTS = [
|
|
29
|
-
'orchestrator',
|
|
30
|
-
'sm',
|
|
31
|
-
'tea',
|
|
32
|
-
'dev',
|
|
33
|
-
'reviewer',
|
|
34
|
-
'architect',
|
|
35
|
-
'pm',
|
|
36
|
-
'tech-writer',
|
|
37
|
-
'ux-designer',
|
|
38
|
-
'devops',
|
|
39
|
-
];
|
|
40
|
-
// Human-readable agent names for markdown (fallback when character name not available)
|
|
41
|
-
const AGENT_NAMES = {
|
|
42
|
-
orchestrator: 'Orchestrator',
|
|
43
|
-
sm: 'Scrum Master',
|
|
44
|
-
tea: 'Test Engineer',
|
|
45
|
-
dev: 'Developer',
|
|
46
|
-
reviewer: 'Reviewer',
|
|
47
|
-
architect: 'Architect',
|
|
48
|
-
pm: 'Product Manager',
|
|
49
|
-
'tech-writer': 'Tech Writer',
|
|
50
|
-
'ux-designer': 'UX Designer',
|
|
51
|
-
devops: 'DevOps',
|
|
52
|
-
};
|
|
53
|
-
const themeCache = new Map();
|
|
54
|
-
// Convert name to URL-safe slug (lowercase kebab-case)
|
|
55
|
-
function toSlug(name) {
|
|
56
|
-
return name
|
|
57
|
-
.toLowerCase()
|
|
58
|
-
.replace(/[^a-z0-9]+/g, '-')
|
|
59
|
-
.replace(/^-|-$/g, '');
|
|
60
|
-
}
|
|
61
|
-
// Generate OCEAN suffix from scores
|
|
62
|
-
function oceanSuffix(ocean) {
|
|
63
|
-
return `${ocean.O}${ocean.C}${ocean.E}${ocean.A}${ocean.N}`;
|
|
64
|
-
}
|
|
65
|
-
// Load agent data for all agents in a theme
|
|
66
|
-
function getAgentData(theme) {
|
|
67
|
-
if (themeCache.has(theme)) {
|
|
68
|
-
return themeCache.get(theme);
|
|
69
|
-
}
|
|
70
|
-
const themePath = join(themesDir, `${theme}.yaml`);
|
|
71
|
-
const content = readFileSync(themePath, 'utf-8');
|
|
72
|
-
const data = parseYaml(content);
|
|
73
|
-
const agents = {};
|
|
74
|
-
if (data?.agents) {
|
|
75
|
-
for (const agent of AGENTS) {
|
|
76
|
-
const agentInfo = data.agents[agent];
|
|
77
|
-
if (agentInfo) {
|
|
78
|
-
const character = agentInfo.character || AGENT_NAMES[agent];
|
|
79
|
-
const shortName = agentInfo.shortName || character.split(' ')[0];
|
|
80
|
-
const baseSlug = toSlug(shortName);
|
|
81
|
-
const ocean = agentInfo.ocean || { O: 3, C: 3, E: 3, A: 3, N: 3 };
|
|
82
|
-
const slug = `${baseSlug}-${oceanSuffix(ocean)}`;
|
|
83
|
-
agents[agent] = { character, shortName, slug };
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
agents[agent] = {
|
|
87
|
-
character: AGENT_NAMES[agent],
|
|
88
|
-
shortName: AGENT_NAMES[agent],
|
|
89
|
-
slug: agent,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
themeCache.set(theme, agents);
|
|
95
|
-
return agents;
|
|
96
|
-
}
|
|
97
|
-
// Load character names for all agents in a theme (backward compat)
|
|
98
|
-
function getCharacterNames(theme) {
|
|
99
|
-
const agents = getAgentData(theme);
|
|
100
|
-
const names = {};
|
|
101
|
-
for (const agent of AGENTS) {
|
|
102
|
-
names[agent] = agents[agent]?.character || AGENT_NAMES[agent];
|
|
103
|
-
}
|
|
104
|
-
return names;
|
|
105
|
-
}
|
|
106
|
-
// Get a specific character name
|
|
107
|
-
function getCharacterName(theme, agent) {
|
|
108
|
-
const names = getCharacterNames(theme);
|
|
109
|
-
return names[agent] || AGENT_NAMES[agent];
|
|
110
|
-
}
|
|
111
|
-
// Escape quotes for use in HTML attributes
|
|
112
|
-
function escapeForAttr(str) {
|
|
113
|
-
return str.replace(/"/g, '"');
|
|
114
|
-
}
|
|
115
|
-
// Escape quotes for use in markdown text (replace with single quotes)
|
|
116
|
-
function escapeForMarkdown(str) {
|
|
117
|
-
return str.replace(/"/g, "'");
|
|
118
|
-
}
|
|
119
|
-
// Format theme name for display
|
|
120
|
-
function formatTheme(theme) {
|
|
121
|
-
return theme
|
|
122
|
-
.split('-')
|
|
123
|
-
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
124
|
-
.join(' ');
|
|
125
|
-
}
|
|
126
|
-
function ensureDir(dir) {
|
|
127
|
-
if (!existsSync(dir)) {
|
|
128
|
-
mkdirSync(dir, { recursive: true });
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
function generateSvgFiles() {
|
|
132
|
-
console.log('Generating SVG files...');
|
|
133
|
-
const byThemeDir = join(facesDir, 'by-theme');
|
|
134
|
-
const byRoleDir = join(facesDir, 'by-role');
|
|
135
|
-
// Create directory structure
|
|
136
|
-
ensureDir(byThemeDir);
|
|
137
|
-
ensureDir(byRoleDir);
|
|
138
|
-
for (const theme of THEMES) {
|
|
139
|
-
ensureDir(join(byThemeDir, theme));
|
|
140
|
-
}
|
|
141
|
-
for (const agent of AGENTS) {
|
|
142
|
-
ensureDir(join(byRoleDir, agent));
|
|
143
|
-
}
|
|
144
|
-
// Generate faces
|
|
145
|
-
let count = 0;
|
|
146
|
-
for (const theme of THEMES) {
|
|
147
|
-
const agentData = getAgentData(theme);
|
|
148
|
-
for (const agent of AGENTS) {
|
|
149
|
-
const svg = generateFace(theme, agent);
|
|
150
|
-
const slug = agentData[agent]?.slug || agent;
|
|
151
|
-
// Write to by-theme directory using slug-based naming
|
|
152
|
-
const themeFilePath = join(byThemeDir, theme, `${slug}.svg`);
|
|
153
|
-
writeFileSync(themeFilePath, svg);
|
|
154
|
-
// Write to by-role directory (keeps role-based for cross-theme comparison)
|
|
155
|
-
const roleFilePath = join(byRoleDir, agent, `${theme}.svg`);
|
|
156
|
-
writeFileSync(roleFilePath, svg);
|
|
157
|
-
count++;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
console.log(`Generated ${count} SVG files.`);
|
|
161
|
-
}
|
|
162
|
-
// Fixed image size for consistent display
|
|
163
|
-
const IMG_SIZE = 80;
|
|
164
|
-
function imgTag(src, alt) {
|
|
165
|
-
return `<img src="${src}" alt="${escapeForAttr(alt)}" width="${IMG_SIZE}" height="${IMG_SIZE}">`;
|
|
166
|
-
}
|
|
167
|
-
const LEGEND = `## Reading the Faces
|
|
168
|
-
|
|
169
|
-
Each face visualizes OCEAN personality scores through facial features:
|
|
170
|
-
|
|
171
|
-
| Trait | Feature | Low (1) | High (5) |
|
|
172
|
-
|-------|---------|---------|----------|
|
|
173
|
-
| **O**penness | Eye size | Small eyes | Large eyes |
|
|
174
|
-
| **C**onscientiousness | Face shape | Wide & round | Narrow & angular |
|
|
175
|
-
| **E**xtraversion | Mouth | Small frown | Wide smile |
|
|
176
|
-
| **A**greeableness | Eyebrows | Angled down (stern) | Arched up (friendly) |
|
|
177
|
-
| **N**euroticism | Line weight | Thin strokes | Thick strokes |
|
|
178
|
-
|
|
179
|
-
Background colors indicate agent role.
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
`;
|
|
184
|
-
// Generate image tag with character name caption (reserved for future use)
|
|
185
|
-
function _imgWithName(src, characterName, agentRole) {
|
|
186
|
-
const safeName = escapeForMarkdown(characterName);
|
|
187
|
-
return `${imgTag(src, characterName)}<br/>**${safeName}**<br/><small>${agentRole}</small>`;
|
|
188
|
-
}
|
|
189
|
-
function generateTeamPhotos() {
|
|
190
|
-
console.log('Generating team-photos.md...');
|
|
191
|
-
let md = `# Team Photos
|
|
192
|
-
|
|
193
|
-
Chernoff faces for each theme's agent team. Vertical layout for easy visual comparison.
|
|
194
|
-
|
|
195
|
-
${LEGEND}`;
|
|
196
|
-
for (const theme of THEMES) {
|
|
197
|
-
const themeTitle = formatTheme(theme);
|
|
198
|
-
const charNames = getCharacterNames(theme);
|
|
199
|
-
md += `## ${themeTitle}\n\n`;
|
|
200
|
-
// Vertical list: one agent per row for easy comparison
|
|
201
|
-
md += '| Role | Face | Character |\n';
|
|
202
|
-
md += '|:-----|:----:|:----------|\n';
|
|
203
|
-
const agentData = getAgentData(theme);
|
|
204
|
-
for (const agent of AGENTS) {
|
|
205
|
-
const charName = escapeForMarkdown(charNames[agent]);
|
|
206
|
-
const slug = agentData[agent]?.slug || agent;
|
|
207
|
-
const imgSrc = `by-theme/${theme}/${slug}.svg`;
|
|
208
|
-
md += `| ${AGENT_NAMES[agent]} | ${imgTag(imgSrc, charNames[agent])} | **${charName}** |\n`;
|
|
209
|
-
}
|
|
210
|
-
md += '\n';
|
|
211
|
-
}
|
|
212
|
-
writeFileSync(join(facesDir, 'team-photos.md'), md);
|
|
213
|
-
console.log('Generated team-photos.md');
|
|
214
|
-
}
|
|
215
|
-
// Generate image tag with character name for role gallery (reserved for future use)
|
|
216
|
-
function _imgWithCharacter(src, theme, agent) {
|
|
217
|
-
const charName = getCharacterName(theme, agent);
|
|
218
|
-
const safeName = escapeForMarkdown(charName);
|
|
219
|
-
return `${imgTag(src, charName)}<br/>**${safeName}**`;
|
|
220
|
-
}
|
|
221
|
-
function generateRoleGallery() {
|
|
222
|
-
console.log('Generating role-gallery.md...');
|
|
223
|
-
let md = `# Role Gallery
|
|
224
|
-
|
|
225
|
-
Each agent role across all ${THEMES.length} themes. Vertical layout for easy visual comparison of how personality profiles vary.
|
|
226
|
-
|
|
227
|
-
${LEGEND}`;
|
|
228
|
-
for (const agent of AGENTS) {
|
|
229
|
-
const agentName = AGENT_NAMES[agent];
|
|
230
|
-
md += `## ${agentName}\n\n`;
|
|
231
|
-
// Vertical list: one theme per row for easy comparison
|
|
232
|
-
md += '| Theme | Face | Character |\n';
|
|
233
|
-
md += '|:------|:----:|:----------|\n';
|
|
234
|
-
for (const theme of THEMES) {
|
|
235
|
-
const charName = escapeForMarkdown(getCharacterName(theme, agent));
|
|
236
|
-
const imgSrc = `by-role/${agent}/${theme}.svg`;
|
|
237
|
-
md += `| ${formatTheme(theme)} | ${imgTag(imgSrc, charName)} | **${charName}** |\n`;
|
|
238
|
-
}
|
|
239
|
-
md += '\n';
|
|
240
|
-
}
|
|
241
|
-
writeFileSync(join(facesDir, 'role-gallery.md'), md);
|
|
242
|
-
console.log('Generated role-gallery.md');
|
|
243
|
-
}
|
|
244
|
-
// Main execution
|
|
245
|
-
console.log('=== Batch Chernoff Face Generator ===');
|
|
246
|
-
console.log(`Output directory: ${facesDir}`);
|
|
247
|
-
console.log(`Themes: ${THEMES.length}`);
|
|
248
|
-
console.log(`Agents: ${AGENTS.length}`);
|
|
249
|
-
console.log(`Total faces: ${THEMES.length * AGENTS.length}`);
|
|
250
|
-
console.log('');
|
|
251
|
-
generateSvgFiles();
|
|
252
|
-
generateTeamPhotos();
|
|
253
|
-
generateRoleGallery();
|
|
254
|
-
console.log('');
|
|
255
|
-
console.log('Done!');
|
|
256
|
-
//# sourceMappingURL=generate-all-faces.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-all-faces.js","sourceRoot":"","sources":["../../src/scripts/generate-all-faces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for Story 11-6: Generate full 630-face matrix with index
|
|
3
|
-
*
|
|
4
|
-
* SKIPPED: The faces/ directory was never created.
|
|
5
|
-
* Story 11-6 was planned but not implemented. These tests are retained
|
|
6
|
-
* for when the feature is implemented, but skipped to avoid false failures.
|
|
7
|
-
*
|
|
8
|
-
* These tests verify:
|
|
9
|
-
* AC1: 630 SVG faces in pennyfarthing-dist/personas/faces/
|
|
10
|
-
* AC2: Master matrix viewable (HTML or markdown)
|
|
11
|
-
* AC3: Navigation by theme, role, or OCEAN profile
|
|
12
|
-
* AC4: File size and load time acceptable
|
|
13
|
-
*
|
|
14
|
-
* Run with: npm test
|
|
15
|
-
*/
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=generate-all-faces.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-all-faces.test.d.ts","sourceRoot":"","sources":["../../src/scripts/generate-all-faces.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|