@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
|
@@ -1,146 +1,340 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jira
|
|
3
3
|
description: Jira CLI commands for sprint management. Use when viewing, assigning, or updating Jira issues from the command line.
|
|
4
|
+
args: "[view|claim|move|assign|create|sync|reconcile|link|search|sprint]"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
|
-
# Jira
|
|
7
|
+
# /jira - Jira Issue Management
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
<critical>
|
|
10
|
+
Never fabricate or guess Jira IDs. Valid Jira keys follow the pattern `MSSCI-XXXXX`. Old-style IDs like `31-18` are local sprint YAML placeholders, NOT valid Jira keys.
|
|
11
|
+
</critical>
|
|
9
12
|
|
|
10
|
-
|
|
13
|
+
## Commands
|
|
11
14
|
|
|
12
|
-
|
|
15
|
+
### `/jira` or `/jira view <issue-key>`
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
# Install jira
|
|
16
|
-
brew install ankitpokhrel/jira/jira
|
|
17
|
+
View details of a Jira issue.
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
jira
|
|
19
|
+
<run>
|
|
20
|
+
jira issue view MSSCI-XXXXX
|
|
21
|
+
</run>
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
```
|
|
23
|
+
<when>
|
|
24
|
+
You need to see issue details: summary, status, assignee, description, linked issues.
|
|
25
|
+
</when>
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
<example>
|
|
28
|
+
# Standard view
|
|
29
|
+
jira issue view MSSCI-12038
|
|
27
30
|
|
|
28
|
-
|
|
31
|
+
# JSON output for scripting
|
|
32
|
+
jira issue view MSSCI-12038 --raw
|
|
33
|
+
</example>
|
|
29
34
|
|
|
30
|
-
|
|
31
|
-
export JIRA_PROJECT_KEY="MSSCI" # Your Jira project key
|
|
32
|
-
export PROJECT_LABEL="conductor" # Label for filtering issues (defaults to PROJECT_NAME)
|
|
33
|
-
```
|
|
35
|
+
---
|
|
34
36
|
|
|
35
|
-
|
|
37
|
+
### `/jira claim <issue-key> [--claim]`
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
- **Project Key:** `MSSCI`
|
|
39
|
-
- **Label:** `$PROJECT_LABEL` (or `$PROJECT_NAME` if not set)
|
|
40
|
-
- **Config file:** `~/.config/.jira/.config.yml`
|
|
39
|
+
Check availability and claim a story for work.
|
|
41
40
|
|
|
42
|
-
|
|
41
|
+
<run>
|
|
42
|
+
.pennyfarthing/scripts/core/run.sh jira/jira-claim-story.sh <issue-key> [--claim]
|
|
43
|
+
</run>
|
|
43
44
|
|
|
44
|
-
|
|
45
|
+
<args>
|
|
46
|
+
| Arg | Required | Description |
|
|
47
|
+
|-----|----------|-------------|
|
|
48
|
+
| `issue-key` | Yes | Jira key `MSSCI-XXXXX` or story key `35-7-name` |
|
|
49
|
+
| `--claim` | No | Actually claim (assign + move to In Progress) |
|
|
50
|
+
</args>
|
|
45
51
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
52
|
+
<exit-codes>
|
|
53
|
+
| Code | Meaning |
|
|
54
|
+
|------|---------|
|
|
55
|
+
| `0` | Available or successfully claimed |
|
|
56
|
+
| `1` | Assigned to someone else |
|
|
57
|
+
| `2` | Not found or not synced |
|
|
58
|
+
| `3` | Error (CLI not installed, etc.) |
|
|
59
|
+
</exit-codes>
|
|
49
60
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
61
|
+
<example>
|
|
62
|
+
# Check if available
|
|
63
|
+
.pennyfarthing/scripts/core/run.sh jira/jira-claim-story.sh MSSCI-12038
|
|
53
64
|
|
|
54
|
-
|
|
65
|
+
# Claim it (assign to self + In Progress)
|
|
66
|
+
.pennyfarthing/scripts/core/run.sh jira/jira-claim-story.sh MSSCI-12038 --claim
|
|
67
|
+
</example>
|
|
55
68
|
|
|
56
|
-
|
|
69
|
+
---
|
|
57
70
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
jira issue assign -pMSSCI MSSCI-10988 "Keith Avery"
|
|
71
|
+
### `/jira move <issue-key> <status>`
|
|
72
|
+
|
|
73
|
+
Transition a Jira issue to a new status.
|
|
62
74
|
|
|
75
|
+
<run>
|
|
76
|
+
jira issue move MSSCI-XXXXX "<status>" --project MSSCI
|
|
77
|
+
</run>
|
|
78
|
+
|
|
79
|
+
<args>
|
|
80
|
+
| Arg | Required | Description |
|
|
81
|
+
|-----|----------|-------------|
|
|
82
|
+
| `issue-key` | Yes | Jira key `MSSCI-XXXXX` |
|
|
83
|
+
| `status` | Yes | Target status (see table below) |
|
|
84
|
+
</args>
|
|
85
|
+
|
|
86
|
+
<output>
|
|
87
|
+
| Status | Description |
|
|
88
|
+
|--------|-------------|
|
|
89
|
+
| `To Do` | Not started |
|
|
90
|
+
| `In Progress` | Actively working |
|
|
91
|
+
| `Done` | Completed |
|
|
92
|
+
</output>
|
|
93
|
+
|
|
94
|
+
<example>
|
|
95
|
+
jira issue move MSSCI-12038 "In Progress" --project MSSCI
|
|
96
|
+
jira issue move MSSCI-12038 "Done" --project MSSCI
|
|
97
|
+
</example>
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### `/jira assign <issue-key> <user>`
|
|
102
|
+
|
|
103
|
+
Assign an issue to a user.
|
|
104
|
+
|
|
105
|
+
<run>
|
|
106
|
+
jira issue assign MSSCI-XXXXX "<user>" --project MSSCI
|
|
107
|
+
</run>
|
|
108
|
+
|
|
109
|
+
<args>
|
|
110
|
+
| Arg | Required | Description |
|
|
111
|
+
|-----|----------|-------------|
|
|
112
|
+
| `issue-key` | Yes | Jira key `MSSCI-XXXXX` |
|
|
113
|
+
| `user` | Yes | Email, display name, or `x` to unassign |
|
|
114
|
+
</args>
|
|
115
|
+
|
|
116
|
+
<critical>
|
|
117
|
+
The `--project` flag is required even though the key contains the project prefix.
|
|
118
|
+
</critical>
|
|
119
|
+
|
|
120
|
+
<example>
|
|
63
121
|
# Assign to self
|
|
64
|
-
jira issue assign
|
|
122
|
+
jira issue assign MSSCI-12038 "$(jira me)" --project MSSCI
|
|
123
|
+
|
|
124
|
+
# Assign by name
|
|
125
|
+
jira issue assign MSSCI-12038 "Keith Avery" --project MSSCI
|
|
65
126
|
|
|
66
127
|
# Unassign
|
|
67
|
-
jira issue assign
|
|
68
|
-
|
|
128
|
+
jira issue assign MSSCI-12038 x --project MSSCI
|
|
129
|
+
</example>
|
|
69
130
|
|
|
70
|
-
|
|
131
|
+
---
|
|
71
132
|
|
|
72
|
-
|
|
73
|
-
# Move to In Progress
|
|
74
|
-
jira issue move MSSCI-10988 "In Progress" --project MSSCI
|
|
133
|
+
### `/jira create story <epic-key> <story-id>`
|
|
75
134
|
|
|
76
|
-
|
|
77
|
-
jira issue move MSSCI-10988 "Done" --project MSSCI
|
|
78
|
-
```
|
|
135
|
+
Create a single Jira story under an epic from sprint YAML.
|
|
79
136
|
|
|
80
|
-
|
|
137
|
+
<run>
|
|
138
|
+
.pennyfarthing/scripts/core/run.sh jira/create-jira-story.sh <epic-key> <story-id>
|
|
139
|
+
</run>
|
|
81
140
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
--body "Description" \
|
|
89
|
-
--label $PROJECT_LABEL \
|
|
90
|
-
--no-input
|
|
91
|
-
|
|
92
|
-
# Create a story under an epic (--parent links it to the epic)
|
|
93
|
-
jira issue create \
|
|
94
|
-
-pMSSCI \
|
|
95
|
-
-tStory \
|
|
96
|
-
-s"Story Title" \
|
|
97
|
-
-b"Description" \
|
|
98
|
-
--parent MSSCI-10980 \
|
|
99
|
-
-yHigh \
|
|
100
|
-
-l pennyfarthing \
|
|
101
|
-
--no-input
|
|
102
|
-
```
|
|
141
|
+
<args>
|
|
142
|
+
| Arg | Required | Description |
|
|
143
|
+
|-----|----------|-------------|
|
|
144
|
+
| `epic-key` | Yes | Parent epic Jira key |
|
|
145
|
+
| `story-id` | Yes | Story ID from sprint YAML |
|
|
146
|
+
</args>
|
|
103
147
|
|
|
104
|
-
|
|
148
|
+
<when>
|
|
149
|
+
Creating a single story that's missing from Jira but exists in sprint YAML.
|
|
150
|
+
</when>
|
|
105
151
|
|
|
106
|
-
|
|
152
|
+
<example>
|
|
153
|
+
.pennyfarthing/scripts/core/run.sh jira/create-jira-story.sh MSSCI-12077 MSSCI-12066
|
|
154
|
+
</example>
|
|
107
155
|
|
|
108
|
-
|
|
109
|
-
|
|
156
|
+
<output>
|
|
157
|
+
1. Reads story from sprint YAML
|
|
158
|
+
2. Creates story in Jira with title, description, priority
|
|
159
|
+
3. Links to parent epic
|
|
160
|
+
4. Sets story points
|
|
161
|
+
5. Adds to current sprint
|
|
162
|
+
6. Updates sprint YAML with Jira key
|
|
163
|
+
</output>
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
### `/jira create epic <epic-id> [--dry-run]`
|
|
168
|
+
|
|
169
|
+
Create a Jira epic and all its child stories from sprint YAML.
|
|
170
|
+
|
|
171
|
+
<run>
|
|
172
|
+
.pennyfarthing/scripts/core/run.sh jira/create-jira-epic.sh <epic-id> [--dry-run]
|
|
173
|
+
</run>
|
|
174
|
+
|
|
175
|
+
<args>
|
|
176
|
+
| Arg | Required | Description |
|
|
177
|
+
|-----|----------|-------------|
|
|
178
|
+
| `epic-id` | Yes | Epic ID from sprint YAML (e.g., `epic-41` or `MSSCI-11952`) |
|
|
179
|
+
| `--dry-run` | No | Preview without creating issues |
|
|
180
|
+
</args>
|
|
181
|
+
|
|
182
|
+
<example>
|
|
183
|
+
# Preview what would be created
|
|
184
|
+
.pennyfarthing/scripts/core/run.sh jira/create-jira-epic.sh epic-41 --dry-run
|
|
185
|
+
|
|
186
|
+
# Create epic and stories
|
|
187
|
+
.pennyfarthing/scripts/core/run.sh jira/create-jira-epic.sh epic-41
|
|
188
|
+
</example>
|
|
189
|
+
|
|
190
|
+
<output>
|
|
191
|
+
1. Creates Jira epic if no `jira:` field exists
|
|
192
|
+
2. Creates all child stories linked to the epic
|
|
193
|
+
3. Sets story points and priority in Jira
|
|
194
|
+
4. Adds stories to current sprint (if jira_sprint_id set)
|
|
195
|
+
5. Updates sprint YAML with Jira keys
|
|
196
|
+
</output>
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
### `/jira sync <epic-id> [options]`
|
|
201
|
+
|
|
202
|
+
Sync an epic and its stories from sprint YAML to Jira.
|
|
203
|
+
|
|
204
|
+
<run>
|
|
205
|
+
.pennyfarthing/scripts/core/run.sh jira/sync-epic-jira.sh <epic-id> [options]
|
|
206
|
+
</run>
|
|
207
|
+
|
|
208
|
+
<args>
|
|
209
|
+
| Arg | Required | Description |
|
|
210
|
+
|-----|----------|-------------|
|
|
211
|
+
| `epic-id` | Yes | Epic Jira key (e.g., `MSSCI-11952`) |
|
|
212
|
+
| `--dry-run` | No | Preview without making changes |
|
|
213
|
+
| `--transition` | No | Transition Jira issues to match YAML status |
|
|
214
|
+
| `--points` | No | Sync story points from YAML to Jira |
|
|
215
|
+
| `--all` | No | Equivalent to `--transition --points` |
|
|
216
|
+
</args>
|
|
217
|
+
|
|
218
|
+
<example>
|
|
219
|
+
# Show sync status
|
|
220
|
+
.pennyfarthing/scripts/core/run.sh jira/sync-epic-jira.sh MSSCI-11952
|
|
221
|
+
|
|
222
|
+
# Preview changes
|
|
223
|
+
.pennyfarthing/scripts/core/run.sh jira/sync-epic-jira.sh MSSCI-11952 --dry-run
|
|
224
|
+
|
|
225
|
+
# Full sync
|
|
226
|
+
.pennyfarthing/scripts/core/run.sh jira/sync-epic-jira.sh MSSCI-11952 --all
|
|
227
|
+
</example>
|
|
228
|
+
|
|
229
|
+
<output>
|
|
230
|
+
1. Compares sprint YAML status with Jira status
|
|
231
|
+
2. Optionally transitions Jira issues to match
|
|
232
|
+
3. Optionally syncs story points to Jira
|
|
233
|
+
4. Reports sync summary
|
|
234
|
+
</output>
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
### `/jira reconcile [--fix]`
|
|
239
|
+
|
|
240
|
+
Generate a reconciliation report comparing sprint YAML against Jira.
|
|
241
|
+
|
|
242
|
+
<run>
|
|
243
|
+
.pennyfarthing/scripts/core/run.sh jira/jira-reconcile.sh [--fix]
|
|
244
|
+
</run>
|
|
245
|
+
|
|
246
|
+
<args>
|
|
247
|
+
| Arg | Required | Description |
|
|
248
|
+
|-----|----------|-------------|
|
|
249
|
+
| `--fix` | No | Apply automatic fixes where safe |
|
|
250
|
+
</args>
|
|
251
|
+
|
|
252
|
+
<example>
|
|
253
|
+
# Report only
|
|
254
|
+
.pennyfarthing/scripts/core/run.sh jira/jira-reconcile.sh
|
|
255
|
+
|
|
256
|
+
# Report and fix
|
|
257
|
+
.pennyfarthing/scripts/core/run.sh jira/jira-reconcile.sh --fix
|
|
258
|
+
</example>
|
|
259
|
+
|
|
260
|
+
<output>
|
|
261
|
+
Checks performed:
|
|
262
|
+
1. **Status mismatches** - YAML status vs Jira status
|
|
263
|
+
2. **Missing Jira keys** - YAML stories without jira: field
|
|
264
|
+
3. **Orphan issues** - In Jira sprint but not in YAML
|
|
265
|
+
4. **Sprint membership** - YAML stories not in Jira sprint
|
|
266
|
+
5. **Epic sync** - Epic ID/jira field alignment
|
|
267
|
+
</output>
|
|
268
|
+
|
|
269
|
+
<when>
|
|
270
|
+
Use `--fix` to:
|
|
271
|
+
- Add YAML stories to Jira sprint if missing
|
|
272
|
+
|
|
273
|
+
Does NOT auto-fix (requires human decision):
|
|
274
|
+
- Status mismatches
|
|
275
|
+
- Missing Jira issues
|
|
276
|
+
</when>
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
### `/jira link <parent> <child> <type>`
|
|
281
|
+
|
|
282
|
+
Link two Jira issues.
|
|
283
|
+
|
|
284
|
+
<run>
|
|
285
|
+
jira issue link <parent-key> <child-key> "<link-type>"
|
|
286
|
+
</run>
|
|
287
|
+
|
|
288
|
+
<critical>
|
|
289
|
+
Argument order matters! First issue becomes the PARENT, second becomes the CHILD.
|
|
290
|
+
</critical>
|
|
291
|
+
|
|
292
|
+
<args>
|
|
293
|
+
| Arg | Required | Description |
|
|
294
|
+
|-----|----------|-------------|
|
|
295
|
+
| `parent-key` | Yes | Parent issue Jira key |
|
|
296
|
+
| `child-key` | Yes | Child issue Jira key |
|
|
297
|
+
| `link-type` | Yes | Link type (see table below) |
|
|
298
|
+
</args>
|
|
299
|
+
|
|
300
|
+
<output>
|
|
301
|
+
| Type | Description |
|
|
302
|
+
|------|-------------|
|
|
303
|
+
| `Parent-Child` | For epic/story hierarchy |
|
|
304
|
+
| `Blocks` | For dependencies |
|
|
305
|
+
| `Relates` | For general relationships |
|
|
306
|
+
| `Duplicate` | For duplicate issues |
|
|
307
|
+
</output>
|
|
308
|
+
|
|
309
|
+
<example>
|
|
310
|
+
# Link epic to story (epic is parent)
|
|
110
311
|
jira issue link MSSCI-11494 MSSCI-11390 "Parent-Child"
|
|
111
|
-
# Result: Epic "IS PARENT OF" Story ✓
|
|
112
312
|
|
|
113
|
-
#
|
|
114
|
-
jira issue
|
|
115
|
-
# Result: Story "IS PARENT OF" Epic ✗
|
|
116
|
-
```
|
|
313
|
+
# Unlink
|
|
314
|
+
jira issue unlink MSSCI-11494 MSSCI-11390
|
|
117
315
|
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
# Check what an issue is linked to
|
|
316
|
+
# Verify link direction
|
|
121
317
|
jira issue view MSSCI-11494 --plain | grep -A5 "Linked Issues"
|
|
122
|
-
|
|
123
|
-
```
|
|
318
|
+
</example>
|
|
124
319
|
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
# Remove the bad link
|
|
128
|
-
jira issue unlink MSSCI-11390 MSSCI-11494
|
|
320
|
+
---
|
|
129
321
|
|
|
130
|
-
|
|
131
|
-
jira issue link MSSCI-11494 MSSCI-11390 "Parent-Child"
|
|
132
|
-
```
|
|
322
|
+
### `/jira search <jql>`
|
|
133
323
|
|
|
134
|
-
|
|
135
|
-
- `Parent-Child` - For epic/story hierarchy
|
|
136
|
-
- `Blocks` - For dependencies
|
|
137
|
-
- `Relates` - For general relationships
|
|
138
|
-
- `Duplicate` - For duplicate issues
|
|
324
|
+
Search for issues using JQL.
|
|
139
325
|
|
|
140
|
-
|
|
326
|
+
<run>
|
|
327
|
+
jira issue list --jql "<jql-query>" --plain
|
|
328
|
+
</run>
|
|
141
329
|
|
|
142
|
-
|
|
143
|
-
|
|
330
|
+
<args>
|
|
331
|
+
| Arg | Required | Description |
|
|
332
|
+
|-----|----------|-------------|
|
|
333
|
+
| `jql-query` | Yes | JQL query string |
|
|
334
|
+
</args>
|
|
335
|
+
|
|
336
|
+
<example>
|
|
337
|
+
# Find all epics
|
|
144
338
|
jira issue list --jql "project=MSSCI AND type=Epic" --plain
|
|
145
339
|
|
|
146
340
|
# Find stories in an epic
|
|
@@ -148,80 +342,102 @@ jira issue list --jql "project=MSSCI AND type=Story AND parent=MSSCI-10980" --pl
|
|
|
148
342
|
|
|
149
343
|
# Find by summary
|
|
150
344
|
jira issue list --jql "project=MSSCI AND summary~'feedback rules'" --plain
|
|
151
|
-
```
|
|
152
345
|
|
|
153
|
-
|
|
346
|
+
# Active sprint issues
|
|
347
|
+
jira issue list --project MSSCI -q "sprint in openSprints()" --plain
|
|
154
348
|
|
|
155
|
-
|
|
349
|
+
# Future sprint issues
|
|
350
|
+
jira issue list --project MSSCI -q "sprint in futureSprints()" --plain
|
|
351
|
+
</example>
|
|
156
352
|
|
|
157
|
-
|
|
158
|
-
# Pattern: ./.pennyfarthing/scripts/run.sh <script-name> [args]
|
|
159
|
-
# Or if scripts are in PATH: ./scripts/run.sh <script-name> [args]
|
|
160
|
-
```
|
|
353
|
+
---
|
|
161
354
|
|
|
162
|
-
###
|
|
355
|
+
### `/jira sprint add <sprint-id> <issue-key>`
|
|
163
356
|
|
|
164
|
-
|
|
357
|
+
Add an issue to a sprint.
|
|
165
358
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
359
|
+
<run>
|
|
360
|
+
jira sprint add <sprint-id> <issue-key>
|
|
361
|
+
</run>
|
|
169
362
|
|
|
170
|
-
|
|
171
|
-
|
|
363
|
+
<args>
|
|
364
|
+
| Arg | Required | Description |
|
|
365
|
+
|-----|----------|-------------|
|
|
366
|
+
| `sprint-id` | Yes | Numeric sprint ID |
|
|
367
|
+
| `issue-key` | Yes | Jira key `MSSCI-XXXXX` |
|
|
368
|
+
</args>
|
|
172
369
|
|
|
173
|
-
|
|
174
|
-
|
|
370
|
+
<example>
|
|
371
|
+
jira sprint add 276 MSSCI-11999
|
|
372
|
+
</example>
|
|
175
373
|
|
|
176
|
-
|
|
177
|
-
|
|
374
|
+
<when>
|
|
375
|
+
Get sprint ID from an issue:
|
|
376
|
+
```bash
|
|
377
|
+
jira issue view MSSCI-XXXXX --raw | jq '.fields.customfield_10020[] | select(.state == "active") | .id'
|
|
178
378
|
```
|
|
379
|
+
</when>
|
|
179
380
|
|
|
180
|
-
|
|
381
|
+
---
|
|
181
382
|
|
|
182
|
-
|
|
383
|
+
### `/jira sprint info`
|
|
183
384
|
|
|
184
|
-
|
|
185
|
-
# Show story status in Jira
|
|
186
|
-
./.pennyfarthing/scripts/run.sh jira-sync-story.sh 24-1
|
|
385
|
+
Get sprint information from Jira.
|
|
187
386
|
|
|
188
|
-
|
|
189
|
-
|
|
387
|
+
<run>
|
|
388
|
+
jira issue view MSSCI-XXXXX --raw | jq '.fields.customfield_10020[] | select(.state == "active")'
|
|
389
|
+
</run>
|
|
190
390
|
|
|
191
|
-
|
|
192
|
-
|
|
391
|
+
<output>
|
|
392
|
+
Sprint field reference:
|
|
393
|
+
- Sprint data is in custom field `customfield_10020` (array of sprint objects)
|
|
394
|
+
- Each sprint object contains: `id`, `name`, `state`, `boardId`, `startDate`, `endDate`
|
|
395
|
+
- States: `active`, `future`, `closed`
|
|
396
|
+
</output>
|
|
193
397
|
|
|
194
|
-
|
|
195
|
-
./.pennyfarthing/scripts/run.sh jira-sync-story.sh 24-1 --comment "Started development"
|
|
196
|
-
```
|
|
398
|
+
---
|
|
197
399
|
|
|
198
|
-
|
|
400
|
+
## Quick Reference
|
|
199
401
|
|
|
200
|
-
|
|
402
|
+
| Command | Script/Action |
|
|
403
|
+
|---------|---------------|
|
|
404
|
+
| `/jira view MSSCI-XXX` | `jira issue view MSSCI-XXX` |
|
|
405
|
+
| `/jira claim MSSCI-XXX` | `jira-claim-story.sh MSSCI-XXX` |
|
|
406
|
+
| `/jira claim MSSCI-XXX --claim` | `jira-claim-story.sh MSSCI-XXX --claim` |
|
|
407
|
+
| `/jira move MSSCI-XXX "Done"` | `jira issue move MSSCI-XXX "Done" -p MSSCI` |
|
|
408
|
+
| `/jira assign MSSCI-XXX "user"` | `jira issue assign MSSCI-XXX "user" -p MSSCI` |
|
|
409
|
+
| `/jira create story E-KEY S-ID` | `create-jira-story.sh E-KEY S-ID` |
|
|
410
|
+
| `/jira create epic epic-41` | `create-jira-epic.sh epic-41` |
|
|
411
|
+
| `/jira sync MSSCI-XXX` | `sync-epic-jira.sh MSSCI-XXX` |
|
|
412
|
+
| `/jira sync MSSCI-XXX --all` | `sync-epic-jira.sh MSSCI-XXX --all` |
|
|
413
|
+
| `/jira reconcile` | `jira-reconcile.sh` |
|
|
414
|
+
| `/jira reconcile --fix` | `jira-reconcile.sh --fix` |
|
|
415
|
+
| `/jira link P-KEY C-KEY "Type"` | `jira issue link P-KEY C-KEY "Type"` |
|
|
416
|
+
| `/jira search "jql"` | `jira issue list --jql "jql"` |
|
|
417
|
+
| `/jira sprint add ID KEY` | `jira sprint add ID KEY` |
|
|
201
418
|
|
|
202
|
-
|
|
203
|
-
# Check if story is available
|
|
204
|
-
./.pennyfarthing/scripts/run.sh jira-claim-story.sh MSSCI-10988
|
|
419
|
+
---
|
|
205
420
|
|
|
206
|
-
|
|
207
|
-
./.pennyfarthing/scripts/run.sh jira-claim-story.sh MSSCI-10988 --claim
|
|
421
|
+
## Prerequisites
|
|
208
422
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
423
|
+
<run>
|
|
424
|
+
# Install jira CLI
|
|
425
|
+
brew install ankitpokhrel/jira/jira
|
|
426
|
+
|
|
427
|
+
# Initialize (one-time)
|
|
428
|
+
jira init
|
|
212
429
|
|
|
213
|
-
|
|
430
|
+
# Set API token (required)
|
|
431
|
+
export JIRA_API_TOKEN='your-token'
|
|
432
|
+
</run>
|
|
214
433
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
| `jira-sync-story.sh` | Sync a single story to Jira |
|
|
219
|
-
| `jira-claim-story.sh` | Claim a story (assign + move to In Progress) |
|
|
220
|
-
| `sync-epic-to-jira.sh` | Alias for `jira-sync.sh` |
|
|
434
|
+
<when>
|
|
435
|
+
Create token at: https://id.atlassian.com/manage-profile/security/api-tokens
|
|
436
|
+
</when>
|
|
221
437
|
|
|
222
|
-
|
|
438
|
+
---
|
|
223
439
|
|
|
224
|
-
|
|
440
|
+
## GitHub to Jira User Mapping
|
|
225
441
|
|
|
226
442
|
| GitHub Username | Jira Email |
|
|
227
443
|
|-----------------|------------|
|
|
@@ -231,51 +447,38 @@ When assigning issues based on PR authors:
|
|
|
231
447
|
| Zious11 | jared.richards@1898andco.io |
|
|
232
448
|
| drbothen | joshua.magady@1898andco.io |
|
|
233
449
|
|
|
450
|
+
---
|
|
451
|
+
|
|
234
452
|
## Troubleshooting
|
|
235
453
|
|
|
236
454
|
### "400 Bad Request" on assign
|
|
237
455
|
|
|
456
|
+
<critical>
|
|
238
457
|
The `--project` flag is required:
|
|
239
|
-
|
|
458
|
+
</critical>
|
|
459
|
+
|
|
460
|
+
<example>
|
|
240
461
|
# WRONG
|
|
241
462
|
jira issue assign MSSCI-10988 "user@email.com"
|
|
242
463
|
|
|
243
464
|
# CORRECT
|
|
244
|
-
jira issue assign
|
|
245
|
-
|
|
465
|
+
jira issue assign MSSCI-10988 "user@email.com" --project MSSCI
|
|
466
|
+
</example>
|
|
246
467
|
|
|
247
468
|
### "User not found"
|
|
248
469
|
|
|
249
|
-
Use either the exact email address or exact display name from Jira
|
|
250
|
-
```bash
|
|
251
|
-
# Both work - display name or email
|
|
252
|
-
jira issue assign -pMSSCI MSSCI-10988 "Keith Avery"
|
|
253
|
-
jira issue assign -pMSSCI MSSCI-10988 "keith.avery@1898andco.io"
|
|
254
|
-
```
|
|
470
|
+
Use either the exact email address or exact display name from Jira.
|
|
255
471
|
|
|
256
472
|
### Interactive prompts blocking scripts
|
|
257
473
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
### Token expired
|
|
474
|
+
<run>
|
|
475
|
+
echo "" | jira issue create --project MSSCI --type Story --summary "Title" --no-input
|
|
476
|
+
</run>
|
|
264
477
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
```
|
|
478
|
+
<when>
|
|
479
|
+
Always use `--no-input` flag and pipe empty input to prevent blocking.
|
|
480
|
+
</when>
|
|
269
481
|
|
|
270
|
-
|
|
482
|
+
### Token expired
|
|
271
483
|
|
|
272
|
-
|
|
273
|
-
|--------|---------|
|
|
274
|
-
| View issue | `jira issue view MSSCI-XXX` |
|
|
275
|
-
| Assign | `jira issue assign --project MSSCI MSSCI-XXX "email@1898andco.io"` |
|
|
276
|
-
| Move status | `jira issue move MSSCI-XXX "In Progress" --project MSSCI` |
|
|
277
|
-
| Link parent→child | `jira issue link MSSCI-PARENT MSSCI-CHILD "Parent-Child"` |
|
|
278
|
-
| Unlink issues | `jira issue unlink MSSCI-XXX MSSCI-YYY` |
|
|
279
|
-
| Get my username | `jira me` |
|
|
280
|
-
| List issues | `jira issue list --jql "project=MSSCI"` |
|
|
281
|
-
| Claim story | `./scripts/jira-claim-story.sh MSSCI-XXX --claim` |
|
|
484
|
+
Regenerate at https://id.atlassian.com/manage-profile/security/api-tokens
|