@pennyfarthing/core 11.0.0 → 11.1.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/README.md +81 -23
- package/package.json +1 -1
- package/packages/core/dist/cli/utils/010-detect-remove-old-packages.test.d.ts +20 -0
- package/packages/core/dist/cli/utils/010-detect-remove-old-packages.test.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/010-detect-remove-old-packages.test.js +278 -0
- package/packages/core/dist/cli/utils/010-detect-remove-old-packages.test.js.map +1 -0
- package/packages/core/dist/cli/utils/constants.d.ts +8 -2
- package/packages/core/dist/cli/utils/constants.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/constants.js +4 -1
- package/packages/core/dist/cli/utils/constants.js.map +1 -1
- package/packages/core/dist/cli/utils/constants.test.d.ts +10 -0
- package/packages/core/dist/cli/utils/constants.test.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/constants.test.js +38 -0
- package/packages/core/dist/cli/utils/constants.test.js.map +1 -0
- package/packages/core/dist/consultation/consultation-protocol.d.ts +139 -0
- package/packages/core/dist/consultation/consultation-protocol.d.ts.map +1 -0
- package/packages/core/dist/consultation/consultation-protocol.js +178 -0
- package/packages/core/dist/consultation/consultation-protocol.js.map +1 -0
- package/packages/core/dist/consultation/consultation-protocol.test.d.ts +20 -0
- package/packages/core/dist/consultation/consultation-protocol.test.d.ts.map +1 -0
- package/packages/core/dist/consultation/consultation-protocol.test.js +474 -0
- package/packages/core/dist/consultation/consultation-protocol.test.js.map +1 -0
- package/packages/core/dist/consultation/dialogue-manager.d.ts +75 -0
- package/packages/core/dist/consultation/dialogue-manager.d.ts.map +1 -0
- package/packages/core/dist/consultation/dialogue-manager.js +334 -0
- package/packages/core/dist/consultation/dialogue-manager.js.map +1 -0
- package/packages/core/dist/consultation/dialogue-manager.test.d.ts +19 -0
- package/packages/core/dist/consultation/dialogue-manager.test.d.ts.map +1 -0
- package/packages/core/dist/consultation/dialogue-manager.test.js +444 -0
- package/packages/core/dist/consultation/dialogue-manager.test.js.map +1 -0
- package/packages/core/dist/public/js/react/react.js +3 -3
- package/packages/core/dist/scripts/theme-detail.test.d.ts +10 -0
- package/packages/core/dist/scripts/theme-detail.test.js +199 -0
- package/packages/core/dist/server/api/git.d.ts +13 -1
- package/packages/core/dist/server/api/git.d.ts.map +1 -1
- package/packages/core/dist/server/api/git.js +53 -34
- package/packages/core/dist/server/api/git.js.map +1 -1
- package/packages/core/dist/server/api/health-score.d.ts.map +1 -1
- package/packages/core/dist/server/api/health-score.js +25 -1
- package/packages/core/dist/server/api/health-score.js.map +1 -1
- package/packages/core/dist/server/api/settings.d.ts.map +1 -1
- package/packages/core/dist/server/api/settings.js +63 -1
- package/packages/core/dist/server/api/settings.js.map +1 -1
- package/packages/core/dist/server/api/theme-agents.d.ts.map +1 -1
- package/packages/core/dist/server/api/theme-agents.js +61 -0
- package/packages/core/dist/server/api/theme-agents.js.map +1 -1
- package/packages/core/dist/server/server.d.ts.map +1 -1
- package/packages/core/dist/server/server.js +17 -12
- package/packages/core/dist/server/server.js.map +1 -1
- package/packages/core/dist/shared/skill-search.test.js +2 -2
- package/packages/core/dist/workflow/gate-file-validation.d.ts +49 -0
- package/packages/core/dist/workflow/gate-file-validation.d.ts.map +1 -0
- package/packages/core/dist/workflow/gate-file-validation.js +157 -0
- package/packages/core/dist/workflow/gate-file-validation.js.map +1 -0
- package/packages/core/dist/workflow/gate-file-validation.test.d.ts +19 -0
- package/packages/core/dist/workflow/gate-file-validation.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/gate-file-validation.test.js +536 -0
- package/packages/core/dist/workflow/gate-file-validation.test.js.map +1 -0
- package/packages/core/dist/workflow/gate-schema-validation.test.d.ts +14 -0
- package/packages/core/dist/workflow/gate-schema-validation.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/gate-schema-validation.test.js +339 -0
- package/packages/core/dist/workflow/gate-schema-validation.test.js.map +1 -0
- package/packages/core/dist/workflow/handoff.js +2 -2
- package/packages/core/dist/workflow/handoff.js.map +1 -1
- package/packages/core/dist/workflow/handoff.test.js +16 -0
- package/packages/core/dist/workflow/handoff.test.js.map +1 -1
- package/packages/core/dist/workflow/workflow-schema.d.ts +4 -2
- package/packages/core/dist/workflow/workflow-schema.d.ts.map +1 -1
- package/packages/core/dist/workflow/workflow-schema.js +43 -8
- package/packages/core/dist/workflow/workflow-schema.js.map +1 -1
- package/pennyfarthing-dist/agents/README.md +6 -14
- package/pennyfarthing-dist/agents/architect.md +43 -29
- package/pennyfarthing-dist/agents/ba.md +30 -29
- package/pennyfarthing-dist/agents/dev.md +32 -43
- package/pennyfarthing-dist/agents/devops.md +57 -21
- package/pennyfarthing-dist/agents/orchestrator.md +3 -10
- package/pennyfarthing-dist/agents/pm.md +45 -31
- package/pennyfarthing-dist/agents/reviewer.md +20 -66
- package/pennyfarthing-dist/agents/sm-setup.md +2 -2
- package/pennyfarthing-dist/agents/sm.md +8 -30
- package/pennyfarthing-dist/agents/tea.md +25 -41
- package/pennyfarthing-dist/agents/tech-writer.md +33 -90
- package/pennyfarthing-dist/agents/ux-designer.md +39 -39
- package/pennyfarthing-dist/commands/benchmark-control.md +8 -64
- package/pennyfarthing-dist/commands/benchmark.md +8 -480
- package/pennyfarthing-dist/commands/job-fair.md +8 -97
- package/pennyfarthing-dist/commands/pf-benchmark-control.md +70 -0
- package/pennyfarthing-dist/commands/pf-benchmark.md +486 -0
- package/pennyfarthing-dist/commands/pf-chore.md +4 -4
- package/pennyfarthing-dist/commands/pf-ci.md +40 -0
- package/pennyfarthing-dist/commands/pf-close-epic.md +9 -27
- package/pennyfarthing-dist/commands/pf-continue-session.md +9 -213
- package/pennyfarthing-dist/commands/pf-create-branches-from-story.md +11 -353
- package/pennyfarthing-dist/commands/pf-docs.md +28 -0
- package/pennyfarthing-dist/commands/pf-epic.md +67 -0
- package/pennyfarthing-dist/commands/pf-git-cleanup.md +11 -52
- package/pennyfarthing-dist/commands/pf-git.md +75 -0
- package/pennyfarthing-dist/commands/pf-help.md +110 -128
- package/pennyfarthing-dist/commands/pf-job-fair.md +102 -0
- package/pennyfarthing-dist/commands/pf-new-work.md +9 -18
- package/pennyfarthing-dist/commands/pf-parallel-work.md +6 -66
- package/pennyfarthing-dist/commands/pf-release.md +11 -76
- package/pennyfarthing-dist/commands/pf-repo-status.md +11 -44
- package/pennyfarthing-dist/commands/pf-run-ci.md +8 -111
- package/pennyfarthing-dist/commands/pf-session.md +51 -0
- package/pennyfarthing-dist/commands/pf-solo.md +447 -0
- package/pennyfarthing-dist/commands/pf-sprint-planning.md +8 -104
- package/pennyfarthing-dist/commands/pf-standalone.md +1 -1
- package/pennyfarthing-dist/commands/pf-start-epic.md +9 -163
- package/pennyfarthing-dist/commands/pf-sync-epic-to-jira.md +8 -179
- package/pennyfarthing-dist/commands/pf-sync-work-with-sprint.md +8 -368
- package/pennyfarthing-dist/commands/pf-update-domain-docs.md +8 -78
- package/pennyfarthing-dist/commands/solo.md +8 -442
- package/pennyfarthing-dist/guides/agent-behavior.md +13 -13
- package/pennyfarthing-dist/guides/agent-coordination.md +7 -7
- package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +6 -5
- package/pennyfarthing-dist/guides/bikerack.md +128 -0
- package/pennyfarthing-dist/guides/brownfield-tools.md +133 -0
- package/pennyfarthing-dist/guides/command-tag-taxonomy.md +2 -2
- package/pennyfarthing-dist/guides/gate-schema.md +227 -0
- package/pennyfarthing-dist/guides/gates.md +120 -0
- package/pennyfarthing-dist/guides/handoff-cli.md +116 -0
- package/pennyfarthing-dist/guides/hooks.md +86 -4
- package/pennyfarthing-dist/guides/output-styles.md +65 -0
- package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +5 -5
- package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +4 -4
- package/pennyfarthing-dist/guides/prompt-patterns.md +5 -5
- package/pennyfarthing-dist/guides/reflector.md +4 -4
- package/pennyfarthing-dist/guides/session-artifacts.md +1 -1
- package/pennyfarthing-dist/guides/skill-schema.md +1 -1
- package/pennyfarthing-dist/guides/tandem-protocol.md +13 -1
- package/pennyfarthing-dist/guides/worktree-mode.md +3 -3
- package/pennyfarthing-dist/guides/xml-tags.md +5 -4
- package/pennyfarthing-dist/personas/themes/hogans-heroes.yaml +11 -22
- package/pennyfarthing-dist/personas/themes/stephen-king.yaml +13 -24
- package/pennyfarthing-dist/scripts/core/dialogue-manager.sh +322 -0
- package/pennyfarthing-dist/scripts/core/phase-check-start.sh +1 -1
- package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +19 -14
- package/pennyfarthing-dist/scripts/portraits/generate-portraits.py +191 -57
- package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +26 -10
- package/pennyfarthing-dist/skills/pf-changelog/SKILL.md +4 -4
- package/pennyfarthing-dist/skills/pf-sprint/skill.md +1 -1
- package/pennyfarthing-dist/skills/skill-registry.schema.json +4 -0
- package/pennyfarthing-dist/skills/skill-registry.yaml +5 -0
- package/pennyfarthing-dist/workflows/2party-tdd.yaml +11 -0
- package/pennyfarthing-dist/workflows/agent-docs.yaml +2 -0
- package/pennyfarthing-dist/workflows/bdd-tandem.yaml +4 -0
- package/pennyfarthing-dist/workflows/bdd.yaml +4 -0
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +1 -1
- package/pennyfarthing-dist/workflows/tdd-tandem.yaml +3 -0
- package/pennyfarthing-dist/workflows/tdd.yaml +3 -0
- package/pennyfarthing-dist/workflows/trivial.yaml +2 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/bellmode_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/context.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_bidirectional_sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/output.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/patch_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/pretooluse_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/session_start_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/focus.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/background_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/base_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/changed_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/debug_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/diffs_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/git_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/launcher.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/sprint_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/tui.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/ws_client.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/cli.py +10 -11
- package/pennyfarthing_scripts/bikerack/debug_panel.py +218 -0
- package/pennyfarthing_scripts/bikerack/diffs_panel.py +203 -27
- package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/cli.py +114 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/epic/__init__.py +0 -0
- package/pennyfarthing_scripts/epic/cli.py +64 -0
- package/pennyfarthing_scripts/gate/__init__.py +1 -0
- package/pennyfarthing_scripts/gate/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/gate/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/gate/__pycache__/validate.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/gate/cli.py +56 -0
- package/pennyfarthing_scripts/gate/validate.py +266 -0
- package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git_group/__init__.py +0 -0
- package/pennyfarthing_scripts/git_group/cli.py +100 -0
- package/pennyfarthing_scripts/handoff/__init__.py +1 -0
- package/pennyfarthing_scripts/handoff/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/complete_phase.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/gate_file.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/gate_runner.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/marker.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/resolve_gate.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/cli.py +120 -0
- package/pennyfarthing_scripts/handoff/complete_phase.py +155 -0
- package/pennyfarthing_scripts/handoff/gate_file.py +105 -0
- package/pennyfarthing_scripts/handoff/gate_runner.py +152 -0
- package/pennyfarthing_scripts/handoff/marker.py +109 -0
- package/pennyfarthing_scripts/handoff/resolve_gate.py +152 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/create.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/operations.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/reconcile.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/launch/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/launch/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/session.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/skill.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/step.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/validate.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/tiers.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/version_sentinel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/workflow.py +39 -0
- package/pennyfarthing_scripts/session/__init__.py +0 -0
- package/pennyfarthing_scripts/session/cli.py +87 -0
- package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/epic_add.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/epic_update.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/import_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_add.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/validate_cmd.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/yaml_io.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/story_finish.py +14 -0
- package/pennyfarthing_scripts/story/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/create.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/size.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/template.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_108_2_remove_handoff_fallback.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_archive_epic.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_bc.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_bikerack.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_cli_modules.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_cli_normalization.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_codemarkers.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_common.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_epic_shard_validation.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_gate_file_resolution.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_gate_runner.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_handoff_cli.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_handoff_e2e.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_healthscore.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_jira_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_package_structure.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_patch_mode.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_resolve_gate_file_field.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_panel.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_add.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_update.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tiers.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_token_counting.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_topology_loader.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tui_focus.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tui_panel_persistence.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_validate_cmd.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_version_sentinel.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/test_108_1_gate_migration.py +540 -0
- package/pennyfarthing_scripts/tests/test_108_2_remove_handoff_fallback.py +339 -0
- package/pennyfarthing_scripts/tests/test_confidence_sm_evaluation.py +253 -0
- package/pennyfarthing_scripts/tests/test_confidence_sm_gate.py +315 -0
- package/pennyfarthing_scripts/tests/test_gate_file_resolution.py +341 -0
- package/pennyfarthing_scripts/tests/test_gate_runner.py +620 -0
- package/pennyfarthing_scripts/tests/test_handoff_cli.py +929 -0
- package/pennyfarthing_scripts/tests/test_handoff_e2e.py +454 -0
- package/pennyfarthing_scripts/tests/test_resolve_gate_file_field.py +464 -0
- package/pennyfarthing_scripts/theme/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/theme/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/agent.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/schema.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/skill_command.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/sprint.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/skill_command.py +200 -0
- package/pennyfarthing_scripts/validate/adapters/workflow.py +64 -0
- package/pennyfarthing_scripts/validate/cli.py +15 -4
- package/packages/core/dist/scripts/benchmark-integration.d.ts +0 -182
- package/packages/core/dist/scripts/benchmark-integration.d.ts.map +0 -1
- package/packages/core/dist/scripts/benchmark-integration.js +0 -691
- package/packages/core/dist/scripts/benchmark-integration.js.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.d.ts +0 -150
- package/packages/core/dist/scripts/job-fair-aggregator.d.ts.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.js +0 -547
- package/packages/core/dist/scripts/job-fair-aggregator.js.map +0 -1
- package/pennyfarthing-dist/agents/handoff.md +0 -250
- package/pennyfarthing-dist/agents/sm-handoff.md +0 -152
- package/pennyfarthing-dist/scripts/core/handoff-marker.sh +0 -112
- package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_cli.cpython-314-pytest-9.0.2.pyc +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Epic lifecycle - start epics for development and close completed epics
|
|
3
|
+
args: "[start|close] <epic-id>"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Epic Management
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Manage epic lifecycle. Start an epic by moving it to the current sprint and generating tech context. Close an epic by verifying completion, updating status, and archiving context.
|
|
10
|
+
</purpose>
|
|
11
|
+
|
|
12
|
+
## Commands
|
|
13
|
+
|
|
14
|
+
### `/pf-epic start <epic-id>`
|
|
15
|
+
|
|
16
|
+
Start an epic — move to current sprint and generate technical context.
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pf epic start 79
|
|
20
|
+
pf epic start epic-79
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
<workflow>
|
|
24
|
+
1. Parse epic ID (strip `epic-` prefix if present)
|
|
25
|
+
2. Check epic location (current sprint or backlog)
|
|
26
|
+
3. Move to current sprint if needed, set status to `in-progress`
|
|
27
|
+
4. Invoke SM agent for `epic-tech-context` task
|
|
28
|
+
5. Generate tech context to `sprint/context/context-epic-{N}.md`
|
|
29
|
+
</workflow>
|
|
30
|
+
|
|
31
|
+
### `/pf-epic close <epic-id>`
|
|
32
|
+
|
|
33
|
+
Close an epic — verify completion, update status, and archive context.
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pf epic close 79
|
|
37
|
+
pf epic close epic-79
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
<workflow>
|
|
41
|
+
1. Parse epic ID
|
|
42
|
+
2. Verify all stories have `status: done`
|
|
43
|
+
3. Update epic: `status: done`, calculate `completed_points`
|
|
44
|
+
4. Recalculate sprint summary totals
|
|
45
|
+
5. Transition Jira epic to Done (if jira key exists)
|
|
46
|
+
6. Archive context file to `sprint/archive/`
|
|
47
|
+
7. Commit and push sprint changes
|
|
48
|
+
</workflow>
|
|
49
|
+
|
|
50
|
+
## Quick Reference
|
|
51
|
+
|
|
52
|
+
| Command | Description |
|
|
53
|
+
|---------|-------------|
|
|
54
|
+
| `/pf-epic start <id>` | Start epic for development |
|
|
55
|
+
| `/pf-epic close <id>` | Close completed epic |
|
|
56
|
+
|
|
57
|
+
## CLI Equivalent
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
pf epic start <epic-id>
|
|
61
|
+
pf epic close <epic-id>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Related
|
|
65
|
+
|
|
66
|
+
- `/pf-sprint` — Sprint management
|
|
67
|
+
- `/sm` — Scrum Master for epic tech context
|
|
@@ -1,57 +1,16 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
deprecated: true
|
|
3
|
+
redirect: pf-git
|
|
4
|
+
description: "DEPRECATED: Use /pf-git cleanup instead."
|
|
4
5
|
---
|
|
5
6
|
|
|
6
|
-
#
|
|
7
|
+
# /git-cleanup - DEPRECATED
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
Git commands have been consolidated into `/pf-git`. Use:
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
This workflow handles multiple repos defined in `.claude/project/pennyfarthing-settings.yaml`.
|
|
17
|
-
|
|
18
|
-
**CRITICAL:** Always use the multi-repo status script, not plain `git status`:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
.pennyfarthing/scripts/git/git-status-all.sh
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
For operations in a specific repo, use `git -C {repo_path}`:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
git -C pennyfarthing status --short
|
|
28
|
-
git -C pennyfarthing diff
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Workflow Steps
|
|
32
|
-
|
|
33
|
-
| Step | Name | Purpose |
|
|
34
|
-
|------|------|---------|
|
|
35
|
-
| 1 | Analyze | Gather status from ALL repos |
|
|
36
|
-
| 2 | Categorize | Group changes by initiative (may span repos) |
|
|
37
|
-
| 3 | Execute | Create branches, commit, merge in each repo |
|
|
38
|
-
| 4 | Verify | Confirm clean state across all repos |
|
|
39
|
-
| 5 | Complete | Push and summary |
|
|
40
|
-
|
|
41
|
-
## Critical Rules
|
|
42
|
-
|
|
43
|
-
- **NEVER** commit directly to develop (use branches)
|
|
44
|
-
- **NEVER** force push
|
|
45
|
-
- **ALWAYS** use `git -C {repo_path}` for subrepo operations
|
|
46
|
-
- **ALWAYS** check ALL repos, not just the orchestrator
|
|
47
|
-
|
|
48
|
-
## Commit Types
|
|
49
|
-
|
|
50
|
-
| Prefix | Use For |
|
|
51
|
-
|--------|---------|
|
|
52
|
-
| `feat:` | New features |
|
|
53
|
-
| `fix:` | Bug fixes |
|
|
54
|
-
| `chore:` | Maintenance |
|
|
55
|
-
| `docs:` | Documentation |
|
|
56
|
-
| `refactor:` | Code improvement |
|
|
57
|
-
| `test:` | Test changes |
|
|
11
|
+
| Old Command | New Command |
|
|
12
|
+
|-------------|-------------|
|
|
13
|
+
| `/repo-status` | `/pf-git status` |
|
|
14
|
+
| `/git-cleanup` | `/pf-git cleanup` |
|
|
15
|
+
| `/create-branches-from-story` | `/pf-git branches` |
|
|
16
|
+
| `/release` | `/pf-git release` |
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Repository operations - status, cleanup, branches, and release management
|
|
3
|
+
args: "[status|cleanup|branches|release] [args...]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Git Operations
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Manage git operations across all configured repos. Consolidates repository status, git cleanup, branch creation, and release management into a single resource group.
|
|
10
|
+
</purpose>
|
|
11
|
+
|
|
12
|
+
## Commands
|
|
13
|
+
|
|
14
|
+
### `/pf-git status`
|
|
15
|
+
|
|
16
|
+
Check git status of all project repos.
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pf git status [--brief]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Shows branch, uncommitted changes, and ahead/behind status for each configured repo.
|
|
23
|
+
|
|
24
|
+
### `/pf-git cleanup`
|
|
25
|
+
|
|
26
|
+
Organize uncommitted changes into proper commits and branches.
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pf git cleanup
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Starts the git-cleanup stepped workflow via BikeLane. Handles multiple repos.
|
|
33
|
+
|
|
34
|
+
### `/pf-git branches <story-id>`
|
|
35
|
+
|
|
36
|
+
Create feature branches in both repos from a story.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pf git branches 86-3
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### `/pf-git release`
|
|
43
|
+
|
|
44
|
+
Interactive release with verification gates.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
pf git release
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Starts the release stepped workflow — an 11-step process with gates at each stage.
|
|
51
|
+
|
|
52
|
+
## Quick Reference
|
|
53
|
+
|
|
54
|
+
| Command | Description |
|
|
55
|
+
|---------|-------------|
|
|
56
|
+
| `/pf-git status` | Check all repo status |
|
|
57
|
+
| `/pf-git cleanup` | Organize changes into commits/branches |
|
|
58
|
+
| `/pf-git branches <id>` | Create feature branches from story |
|
|
59
|
+
| `/pf-git release` | Interactive release workflow |
|
|
60
|
+
|
|
61
|
+
## CLI Equivalent
|
|
62
|
+
|
|
63
|
+
All commands are also available via `pf git`:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
pf git status
|
|
67
|
+
pf git cleanup
|
|
68
|
+
pf git branches 86-3
|
|
69
|
+
pf git release
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Related
|
|
73
|
+
|
|
74
|
+
- `/pf-chore` — Quick commit for small changes
|
|
75
|
+
- `/pf-standalone` — Wrap changes into standalone story + PR
|
|
@@ -7,23 +7,15 @@ Get help with Pennyfarthing commands, agents, themes, and workflows.
|
|
|
7
7
|
Provides quick-start guidance for new users and context-aware suggestions based on current work state.
|
|
8
8
|
</purpose>
|
|
9
9
|
|
|
10
|
-
<when-to-use>
|
|
11
|
-
- New to Pennyfarthing and need orientation
|
|
12
|
-
- Looking for a specific command or agent
|
|
13
|
-
- Want to understand the TDD workflow
|
|
14
|
-
- Need to check available themes
|
|
15
|
-
- Forgot what command to use next
|
|
16
|
-
</when-to-use>
|
|
17
|
-
|
|
18
10
|
<quick-start>
|
|
19
11
|
|
|
20
12
|
## New to Pennyfarthing?
|
|
21
13
|
|
|
22
14
|
Start here:
|
|
23
15
|
|
|
24
|
-
1. **`/work`** - Smart entry point (resumes existing work or starts new)
|
|
25
|
-
2. **`/new
|
|
26
|
-
3. **`/health-check`** - Verify your installation is working
|
|
16
|
+
1. **`/pf-work`** - Smart entry point (resumes existing work or starts new)
|
|
17
|
+
2. **`/pf-session new`** - Start a fresh work session from backlog
|
|
18
|
+
3. **`/pf-health-check`** - Verify your installation is working
|
|
27
19
|
|
|
28
20
|
### First Time Setup
|
|
29
21
|
|
|
@@ -52,120 +44,127 @@ SM → TEA → Dev → Reviewer → SM (finish)
|
|
|
52
44
|
| Review | Reviewer | `/reviewer` | Code review, quality enforcement |
|
|
53
45
|
| Finish | SM | `/sm` | Merge PR, archive session |
|
|
54
46
|
|
|
55
|
-
### Workflow Commands
|
|
56
|
-
|
|
57
|
-
| Command | Description |
|
|
58
|
-
|---------|-------------|
|
|
59
|
-
| `/new-work` | Start a new work session with Pennyfarthing |
|
|
60
|
-
| `/work` | Resume work or start new - smart entry point |
|
|
61
|
-
| `/sm` | Scrum Master - Story coordination and sprint management |
|
|
62
|
-
| `/tea` | Test Engineer/Architect - Test strategy and TDD |
|
|
63
|
-
| `/dev` | Developer - Feature implementation and coding |
|
|
64
|
-
| `/reviewer` | Code Reviewer - Critical code review and quality enforcement |
|
|
65
|
-
| `/check` | Run quality gates (lint, type check, tests) before handoff |
|
|
66
|
-
|
|
67
47
|
</workflow>
|
|
68
48
|
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
## All Agents (24)
|
|
72
|
-
|
|
73
|
-
### TDD Workflow Agents
|
|
74
|
-
|
|
75
|
-
| Agent | Command | Role |
|
|
76
|
-
|-------|---------|------|
|
|
77
|
-
| SM | `/sm` | Scrum Master - Story coordination, sprint management, workflow entry/exit |
|
|
78
|
-
| TEA | `/tea` | Test Engineer - Test strategy, TDD design, RED phase |
|
|
79
|
-
| Dev | `/dev` | Developer - Implementation, feature shipping, GREEN phase |
|
|
80
|
-
| Reviewer | `/reviewer` | Code Reviewer - Quality enforcement, adversarial review |
|
|
49
|
+
<commands>
|
|
81
50
|
|
|
82
|
-
|
|
51
|
+
## Resource Groups
|
|
83
52
|
|
|
84
|
-
|
|
85
|
-
|-------|---------|------|
|
|
86
|
-
| Architect | `/architect` | System Architect - Technical design and architecture |
|
|
87
|
-
| PM | `/pm` | Product Manager - Strategic planning and prioritization |
|
|
88
|
-
| DevOps | `/devops` | DevOps Engineer - Infrastructure and deployment automation |
|
|
89
|
-
| Tech-Writer | `/tech-writer` | Technical Writer - Documentation creation and maintenance |
|
|
90
|
-
| UX-Designer | `/ux-designer` | UX Designer - User experience design and UI patterns |
|
|
91
|
-
| Orchestrator | `/orchestrator` | Orchestrator - Coordinator of all agents and meta operations |
|
|
53
|
+
Commands are organized by resource. Each group is accessible via both slash commands and CLI.
|
|
92
54
|
|
|
93
|
-
|
|
55
|
+
### Sprint — `/pf-sprint` · `pf sprint`
|
|
94
56
|
|
|
95
|
-
|
|
57
|
+
| Command | Description |
|
|
58
|
+
|---------|-------------|
|
|
59
|
+
| `/pf-sprint` | Show sprint status |
|
|
60
|
+
| `/pf-sprint backlog` | Available stories |
|
|
61
|
+
| `/pf-sprint work [id\|next]` | Start work on a story |
|
|
62
|
+
| `/pf-sprint archive <id>` | Archive completed story |
|
|
63
|
+
| `/pf-sprint plan` | Sprint planning session |
|
|
64
|
+
| `/pf-sprint sync` | Sync work with sprint |
|
|
65
|
+
| `/pf-sprint story [show\|add\|update\|size\|finish]` | Story operations |
|
|
66
|
+
| `/pf-sprint epic [show\|add\|promote\|archive]` | Epic operations |
|
|
96
67
|
|
|
97
|
-
|
|
68
|
+
### Git — `/pf-git` · `pf git`
|
|
98
69
|
|
|
99
|
-
### TDD Workflow (7)
|
|
100
70
|
| Command | Description |
|
|
101
71
|
|---------|-------------|
|
|
102
|
-
| `/
|
|
103
|
-
| `/
|
|
104
|
-
| `/
|
|
105
|
-
| `/
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
### Specialist Agents (6)
|
|
72
|
+
| `/pf-git status` | Check all repo status |
|
|
73
|
+
| `/pf-git cleanup` | Organize changes into commits/branches |
|
|
74
|
+
| `/pf-git branches <id>` | Create feature branches from story |
|
|
75
|
+
| `/pf-git release` | Interactive release workflow |
|
|
76
|
+
|
|
77
|
+
### Session — `/pf-session` · `pf session`
|
|
78
|
+
|
|
111
79
|
| Command | Description |
|
|
112
80
|
|---------|-------------|
|
|
113
|
-
| `/
|
|
114
|
-
| `/
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
| `/orchestrator` | Orchestrator - Coordinator of all agents and meta operations |
|
|
119
|
-
|
|
120
|
-
### Sprint & Planning (5)
|
|
81
|
+
| `/pf-session new` | Start next available story |
|
|
82
|
+
| `/pf-session continue` | Resume from checkpoint |
|
|
83
|
+
|
|
84
|
+
### Epic — `/pf-epic` · `pf epic`
|
|
85
|
+
|
|
121
86
|
| Command | Description |
|
|
122
87
|
|---------|-------------|
|
|
123
|
-
| `/
|
|
124
|
-
| `/
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
| `/sync-epic-to-jira` | Sync Pennyfarthing epic to Jira MSSCI project |
|
|
88
|
+
| `/pf-epic start <id>` | Start epic for development |
|
|
89
|
+
| `/pf-epic close <id>` | Close completed epic |
|
|
90
|
+
|
|
91
|
+
### Jira — `/pf-jira` · `pf jira`
|
|
128
92
|
|
|
129
|
-
### Context & Loading (2)
|
|
130
93
|
| Command | Description |
|
|
131
94
|
|---------|-------------|
|
|
132
|
-
| `/
|
|
133
|
-
| `/
|
|
95
|
+
| `/pf-jira view <key>` | View issue details |
|
|
96
|
+
| `/pf-jira claim <key>` | Claim issue |
|
|
97
|
+
| `/pf-jira sync <epic-id>` | Sync YAML to Jira |
|
|
98
|
+
| `/pf-jira sync-epic` | Sync epic to Jira |
|
|
99
|
+
| `/pf-jira reconcile` | Report mismatches |
|
|
100
|
+
|
|
101
|
+
### Theme — `/pf-theme` · `pf theme`
|
|
134
102
|
|
|
135
|
-
### Theme Management (1)
|
|
136
103
|
| Command | Description |
|
|
137
104
|
|---------|-------------|
|
|
138
|
-
| `/theme
|
|
105
|
+
| `/pf-theme list` | List all themes |
|
|
106
|
+
| `/pf-theme show [name]` | Show theme details |
|
|
107
|
+
| `/pf-theme set <name>` | Set active theme |
|
|
108
|
+
| `/pf-theme create <name>` | Create custom theme |
|
|
109
|
+
| `/pf-theme maker` | Interactive theme wizard |
|
|
110
|
+
|
|
111
|
+
### Workflow — `/pf-workflow` · `pf workflow`
|
|
139
112
|
|
|
140
|
-
### Creative & Brainstorm (4)
|
|
141
113
|
| Command | Description |
|
|
142
114
|
|---------|-------------|
|
|
143
|
-
| `/
|
|
144
|
-
| `/
|
|
145
|
-
| `/
|
|
146
|
-
| `/
|
|
115
|
+
| `/pf-workflow` | List available workflows |
|
|
116
|
+
| `/pf-workflow show` | Current workflow details |
|
|
117
|
+
| `/pf-workflow start <name>` | Start stepped workflow |
|
|
118
|
+
| `/pf-workflow resume` | Resume workflow |
|
|
119
|
+
|
|
120
|
+
## Agents (11)
|
|
121
|
+
|
|
122
|
+
| Agent | Command | Role |
|
|
123
|
+
|-------|---------|------|
|
|
124
|
+
| SM | `/sm` | Scrum Master — Story coordination, sprint management |
|
|
125
|
+
| TEA | `/tea` | Test Engineer — Test strategy, TDD design |
|
|
126
|
+
| Dev | `/dev` | Developer — Implementation, feature shipping |
|
|
127
|
+
| Reviewer | `/reviewer` | Code Reviewer — Quality enforcement |
|
|
128
|
+
| Architect | `/architect` | System Architect — Technical design |
|
|
129
|
+
| PM | `/pm` | Product Manager — Strategic planning |
|
|
130
|
+
| DevOps | `/devops` | DevOps — Infrastructure and deployment |
|
|
131
|
+
| Tech-Writer | `/tech-writer` | Technical Writer — Documentation |
|
|
132
|
+
| UX-Designer | `/ux-designer` | UX Designer — User experience |
|
|
133
|
+
| Orchestrator | `/orchestrator` | Orchestrator — Multi-agent coordination |
|
|
134
|
+
| BA | `/ba` | Business Analyst — Requirements discovery |
|
|
135
|
+
|
|
136
|
+
## Utilities
|
|
147
137
|
|
|
148
|
-
### Benchmarking (2)
|
|
149
138
|
| Command | Description |
|
|
150
139
|
|---------|-------------|
|
|
151
|
-
| `/
|
|
152
|
-
| `/
|
|
140
|
+
| `/pf-work` | Smart entry point — resume or start new |
|
|
141
|
+
| `/pf-check` | Run quality gates before handoff |
|
|
142
|
+
| `/pf-prime` | Load project context at agent activation |
|
|
143
|
+
| `/pf-health-check` | Check installation health |
|
|
144
|
+
| `/pf-setup` | First-time project setup |
|
|
145
|
+
| `/pf-chore` | Quick commit for small changes |
|
|
146
|
+
| `/pf-patch` | Bug fix during active story work |
|
|
147
|
+
| `/pf-standalone` | Wrap changes into standalone story |
|
|
148
|
+
| `/pf-ci run` | Detect and run CI locally |
|
|
149
|
+
| `/pf-docs update` | Update domain documentation |
|
|
150
|
+
| `/pf-permissions` | Manage runtime permissions |
|
|
151
|
+
|
|
152
|
+
## Benchmarking
|
|
153
153
|
|
|
154
|
-
### Git & Repository (4)
|
|
155
154
|
| Command | Description |
|
|
156
155
|
|---------|-------------|
|
|
157
|
-
| `/
|
|
158
|
-
| `/
|
|
159
|
-
| `/
|
|
160
|
-
| `/
|
|
156
|
+
| `/pf-benchmark` | Compare performance against baseline |
|
|
157
|
+
| `/pf-benchmark-control` | Create control baseline |
|
|
158
|
+
| `/pf-job-fair` | Discover best characters per role |
|
|
159
|
+
| `/pf-solo` | Single agent rubric scoring |
|
|
160
|
+
|
|
161
|
+
## Creative
|
|
161
162
|
|
|
162
|
-
### Utility (4)
|
|
163
163
|
| Command | Description |
|
|
164
164
|
|---------|-------------|
|
|
165
|
-
| `/
|
|
166
|
-
| `/
|
|
167
|
-
| `/
|
|
168
|
-
| `/help` | This help command |
|
|
165
|
+
| `/pf-party-mode` | Creative brainstorming with all agents |
|
|
166
|
+
| `/pf-brainstorming` | Structured problem-solving session |
|
|
167
|
+
| `/pf-retro` | Sprint retrospective |
|
|
169
168
|
|
|
170
169
|
</commands>
|
|
171
170
|
|
|
@@ -188,24 +187,7 @@ Pennyfarthing agents adopt personas from themed character sets. There are **102
|
|
|
188
187
|
| `breaking-bad` | Breaking Bad characters |
|
|
189
188
|
| `battlestar-galactica` | Battlestar Galactica characters |
|
|
190
189
|
|
|
191
|
-
Run `/theme list` to see all 102 available themes.
|
|
192
|
-
|
|
193
|
-
### Theme Commands
|
|
194
|
-
|
|
195
|
-
| Command | Description |
|
|
196
|
-
|---------|-------------|
|
|
197
|
-
| `/theme list` | See all available themes |
|
|
198
|
-
| `/theme show [name]` | View current theme with character mappings |
|
|
199
|
-
| `/theme set <name>` | Change to a different theme |
|
|
200
|
-
| `/theme create <name>` | Create a custom theme |
|
|
201
|
-
| `/theme maker` | Interactive theme creation wizard |
|
|
202
|
-
|
|
203
|
-
### Current Theme
|
|
204
|
-
|
|
205
|
-
Check your current theme:
|
|
206
|
-
```bash
|
|
207
|
-
cat .pennyfarthing/config.local.yaml
|
|
208
|
-
```
|
|
190
|
+
Run `/pf-theme list` to see all 102 available themes.
|
|
209
191
|
|
|
210
192
|
</themes>
|
|
211
193
|
|
|
@@ -216,11 +198,11 @@ cat .pennyfarthing/config.local.yaml
|
|
|
216
198
|
Based on your current state, here's what you might need:
|
|
217
199
|
|
|
218
200
|
### No Active Session
|
|
219
|
-
- Use `/work` or `/new
|
|
220
|
-
- Check `/health-check` if first time
|
|
201
|
+
- Use `/pf-work` or `/pf-session new` to begin
|
|
202
|
+
- Check `/pf-health-check` if first time
|
|
221
203
|
|
|
222
204
|
### In Dev Phase
|
|
223
|
-
- Run `/check` before handoff
|
|
205
|
+
- Run `/pf-check` before handoff
|
|
224
206
|
- Then `/reviewer` for code review
|
|
225
207
|
|
|
226
208
|
### In Review Phase
|
|
@@ -228,13 +210,24 @@ Based on your current state, here's what you might need:
|
|
|
228
210
|
- Then `/sm` to finish the story
|
|
229
211
|
|
|
230
212
|
### Between Stories
|
|
231
|
-
- `/work` to pick up next story
|
|
232
|
-
- `/sprint
|
|
213
|
+
- `/pf-work` to pick up next story
|
|
214
|
+
- `/pf-sprint plan` for planning session
|
|
233
215
|
|
|
234
216
|
</context-aware>
|
|
235
217
|
|
|
236
218
|
<reference>
|
|
237
219
|
|
|
220
|
+
## CLI Help
|
|
221
|
+
|
|
222
|
+
For detailed help on any command group:
|
|
223
|
+
```bash
|
|
224
|
+
pf help # Overview of all groups
|
|
225
|
+
pf help sprint # Sprint commands
|
|
226
|
+
pf help git # Git commands
|
|
227
|
+
pf help session # Session commands
|
|
228
|
+
pf help epic # Epic commands
|
|
229
|
+
```
|
|
230
|
+
|
|
238
231
|
## Documentation
|
|
239
232
|
|
|
240
233
|
- **Project Setup:** `CLAUDE.md`
|
|
@@ -242,19 +235,8 @@ Based on your current state, here's what you might need:
|
|
|
242
235
|
- **Active Session:** `.session/*-session.md`
|
|
243
236
|
- **Agent Definitions:** `pennyfarthing-dist/agents/*.md`
|
|
244
237
|
- **Command Definitions:** `pennyfarthing-dist/commands/*.md`
|
|
238
|
+
- **Command Registry:** `pennyfarthing-dist/command-registry.yaml`
|
|
245
239
|
- **Theme Files:** `pennyfarthing-dist/personas/themes/*.yaml`
|
|
246
240
|
- **Guides:** `.pennyfarthing/guides/*.md`
|
|
247
241
|
|
|
248
|
-
## Getting More Help
|
|
249
|
-
|
|
250
|
-
For detailed help on a specific command, read its definition file:
|
|
251
|
-
```bash
|
|
252
|
-
cat pennyfarthing-dist/commands/<command-name>.md
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
For agent documentation:
|
|
256
|
-
```bash
|
|
257
|
-
cat pennyfarthing-dist/agents/<agent-name>.md
|
|
258
|
-
```
|
|
259
|
-
|
|
260
242
|
</reference>
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Discover which characters in a theme excel at each role
|
|
3
|
+
argument-hint: <theme> [--runs N] [--roles <list>]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Job Fair
|
|
7
|
+
|
|
8
|
+
Run every character in a theme against benchmarks to find hidden talents.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/job-fair <theme>
|
|
14
|
+
/job-fair <theme> --runs 2
|
|
15
|
+
/job-fair <theme> --roles dev,reviewer
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## On Invoke
|
|
19
|
+
|
|
20
|
+
**Arguments:** $ARGUMENTS
|
|
21
|
+
|
|
22
|
+
### Step 1: Parse and Validate
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Theme is first positional arg (strip any --flags)
|
|
26
|
+
THEME=$(echo "$ARGUMENTS" | awk '{print $1}' | sed 's/^--theme[= ]//')
|
|
27
|
+
|
|
28
|
+
# Check theme exists
|
|
29
|
+
ls pennyfarthing-dist/personas/themes/${THEME}.yaml
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
If not found, list available themes and stop.
|
|
33
|
+
|
|
34
|
+
Extract `--runs N` (default: 4) and `--roles x,y` (default: all with baselines).
|
|
35
|
+
|
|
36
|
+
### Step 2: Load Characters
|
|
37
|
+
|
|
38
|
+
Read `pennyfarthing-dist/personas/themes/${THEME}.yaml` and list agents:
|
|
39
|
+
|
|
40
|
+
| Role | Character |
|
|
41
|
+
|------|-----------|
|
|
42
|
+
| sm | {agents.sm.character} |
|
|
43
|
+
| dev | {agents.dev.character} |
|
|
44
|
+
| ... | ... |
|
|
45
|
+
|
|
46
|
+
### Step 3: Find Baselines
|
|
47
|
+
|
|
48
|
+
Pick ONE scenario per role from `internal/results/baselines/`:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# For each role, find first available baseline
|
|
52
|
+
for role in dev reviewer tea sm architect; do
|
|
53
|
+
baseline=$(ls -d internal/results/baselines/*/${role} 2>/dev/null | head -1)
|
|
54
|
+
if [ -n "$baseline" ]; then
|
|
55
|
+
scenario=$(basename $(dirname "$baseline"))
|
|
56
|
+
summary="$baseline/summary.yaml"
|
|
57
|
+
# Read statistics.mean and statistics.n from summary.yaml
|
|
58
|
+
fi
|
|
59
|
+
done
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Show table:
|
|
63
|
+
|
|
64
|
+
| Role | Scenario | Baseline | n |
|
|
65
|
+
|------|----------|----------|---|
|
|
66
|
+
| dev | race-condition-cache | 76.8 | 10 |
|
|
67
|
+
|
|
68
|
+
### Step 4: Confirm
|
|
69
|
+
|
|
70
|
+
Show: `{characters} × {roles} × {runs} = {total} runs`
|
|
71
|
+
|
|
72
|
+
Ask user to confirm or cancel.
|
|
73
|
+
|
|
74
|
+
### Step 5: Execute
|
|
75
|
+
|
|
76
|
+
For each role, for each character:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Native role
|
|
80
|
+
scripts/solo-runner.sh "${THEME}:${role}" "${scenario}" ${runs}
|
|
81
|
+
|
|
82
|
+
# Cross-role (character playing different role)
|
|
83
|
+
scripts/solo-runner.sh "${THEME}:${native_role}" "${scenario}" ${runs} --as ${target_role}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Show progress as each completes.
|
|
87
|
+
|
|
88
|
+
### Step 6: Report Results
|
|
89
|
+
|
|
90
|
+
Show champions per role and full matrix:
|
|
91
|
+
|
|
92
|
+
| Character | dev | reviewer | tea | sm | Avg |
|
|
93
|
+
|-----------|-----|----------|-----|-----|-----|
|
|
94
|
+
| ... | ... | ... | ... | ... | ... |
|
|
95
|
+
|
|
96
|
+
Save to `internal/results/job-fair/${THEME}-${timestamp}/summary.yaml`
|
|
97
|
+
|
|
98
|
+
## Reference
|
|
99
|
+
|
|
100
|
+
- Theme files: `pennyfarthing-dist/personas/themes/*.yaml`
|
|
101
|
+
- Baselines: `internal/results/baselines/{scenario}/{role}/summary.yaml`
|
|
102
|
+
- Solo runner: `scripts/solo-runner.sh`
|
|
@@ -1,23 +1,14 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
deprecated: true
|
|
3
|
+
redirect: pf-session
|
|
4
|
+
description: "DEPRECATED: Use /pf-session new instead."
|
|
3
5
|
---
|
|
4
6
|
|
|
5
|
-
#
|
|
7
|
+
# /new-work - DEPRECATED
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
Shortcut to start the highest priority available story. Alias for `/pf-sprint work next`.
|
|
9
|
-
</purpose>
|
|
9
|
+
Session commands have been consolidated into `/pf-session`. Use:
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/pf-sprint work next
|
|
16
|
-
```
|
|
17
|
-
</on-invoke>
|
|
18
|
-
|
|
19
|
-
<related>
|
|
20
|
-
- `/pf-sprint work` - Interactive story selection
|
|
21
|
-
- `/pf-sprint backlog` - View available stories
|
|
22
|
-
- `/work` - Resume existing work or start new
|
|
23
|
-
</related>
|
|
11
|
+
| Old Command | New Command |
|
|
12
|
+
|-------------|-------------|
|
|
13
|
+
| `/new-work` | `/pf-session new` |
|
|
14
|
+
| `/continue-session` | `/pf-session continue` |
|