@pennyfarthing/core 11.2.0 → 11.2.2
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 +100 -40
- package/package.json +2 -1
- package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/doctor.js +474 -66
- package/packages/core/dist/cli/commands/doctor.js.map +1 -1
- package/packages/core/dist/cli/commands/init.js +4 -4
- 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 +4 -5
- package/packages/core/dist/cli/commands/update.js.map +1 -1
- package/packages/core/dist/cli/utils/constants.d.ts +3 -8
- package/packages/core/dist/cli/utils/constants.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/constants.js +3 -4
- package/packages/core/dist/cli/utils/constants.js.map +1 -1
- package/packages/core/dist/cli/utils/settings.d.ts +7 -0
- package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/settings.js +70 -29
- package/packages/core/dist/cli/utils/settings.js.map +1 -1
- package/packages/core/dist/cli/utils/symlinks.js +16 -16
- package/packages/core/dist/cli/utils/symlinks.js.map +1 -1
- package/packages/core/dist/consultation/dialogue-manager.d.ts +1 -1
- package/packages/core/dist/consultation/dialogue-manager.d.ts.map +1 -1
- package/packages/core/dist/consultation/dialogue-manager.js +1 -1
- package/packages/core/dist/consultation/dialogue-manager.js.map +1 -1
- package/packages/core/dist/consultation/dialogue-manager.test.js.map +1 -1
- package/packages/core/dist/consultation/tandem-metrics.d.ts +91 -0
- package/packages/core/dist/consultation/tandem-metrics.d.ts.map +1 -0
- package/packages/core/dist/consultation/tandem-metrics.js +131 -0
- package/packages/core/dist/consultation/tandem-metrics.js.map +1 -0
- package/packages/core/dist/consultation/tandem-metrics.test.d.ts +18 -0
- package/packages/core/dist/consultation/tandem-metrics.test.d.ts.map +1 -0
- package/packages/core/dist/consultation/tandem-metrics.test.js +457 -0
- package/packages/core/dist/consultation/tandem-metrics.test.js.map +1 -0
- package/packages/core/dist/public/css/react.css +1 -1
- package/packages/core/dist/public/js/react/react.js +14 -14
- package/packages/core/dist/server/api/agent-load.js +1 -1
- package/packages/core/dist/server/api/agent-load.js.map +1 -1
- package/packages/core/dist/server/api/git.d.ts.map +1 -1
- package/packages/core/dist/server/api/git.js +0 -1
- package/packages/core/dist/server/api/git.js.map +1 -1
- package/packages/core/dist/server/api/index.d.ts +2 -0
- package/packages/core/dist/server/api/index.d.ts.map +1 -1
- package/packages/core/dist/server/api/index.js +2 -0
- package/packages/core/dist/server/api/index.js.map +1 -1
- package/packages/core/dist/server/api/project-info.d.ts +11 -0
- package/packages/core/dist/server/api/project-info.d.ts.map +1 -0
- package/packages/core/dist/server/api/project-info.js +18 -0
- package/packages/core/dist/server/api/project-info.js.map +1 -0
- package/packages/core/dist/server/otlp-receiver.d.ts.map +1 -1
- package/packages/core/dist/server/otlp-receiver.js +18 -1
- package/packages/core/dist/server/otlp-receiver.js.map +1 -1
- package/packages/core/dist/server/otlp-receiver.test.js +1 -1
- package/packages/core/dist/server/otlp-receiver.test.js.map +1 -1
- package/packages/core/dist/server/server.d.ts +0 -3
- package/packages/core/dist/server/server.d.ts.map +1 -1
- package/packages/core/dist/server/server.js +5 -38
- package/packages/core/dist/server/server.js.map +1 -1
- package/packages/core/dist/server/server.test.d.ts +1 -1
- package/packages/core/dist/server/server.test.js +12 -23
- package/packages/core/dist/server/server.test.js.map +1 -1
- package/packages/core/dist/server/settings.d.ts +1 -0
- package/packages/core/dist/server/settings.d.ts.map +1 -1
- package/packages/core/dist/server/settings.js +13 -0
- package/packages/core/dist/server/settings.js.map +1 -1
- package/packages/core/dist/shared/capabilities.d.ts +88 -0
- package/packages/core/dist/shared/capabilities.d.ts.map +1 -0
- package/packages/core/dist/shared/capabilities.js +133 -0
- package/packages/core/dist/shared/capabilities.js.map +1 -0
- package/packages/core/dist/shared/capabilities.test.d.ts +2 -0
- package/packages/core/dist/shared/capabilities.test.d.ts.map +1 -0
- package/packages/core/dist/shared/capabilities.test.js +217 -0
- package/packages/core/dist/shared/capabilities.test.js.map +1 -0
- package/packages/core/dist/shared/spawn-prompt.d.ts +47 -0
- package/packages/core/dist/shared/spawn-prompt.d.ts.map +1 -0
- package/packages/core/dist/shared/spawn-prompt.js +82 -0
- package/packages/core/dist/shared/spawn-prompt.js.map +1 -0
- package/packages/core/dist/shared/spawn-prompt.test.d.ts +2 -0
- package/packages/core/dist/shared/spawn-prompt.test.d.ts.map +1 -0
- package/packages/core/dist/shared/spawn-prompt.test.js +251 -0
- package/packages/core/dist/shared/spawn-prompt.test.js.map +1 -0
- package/packages/core/dist/workflow/tandem-workflow-templates.test.d.ts +18 -0
- package/packages/core/dist/workflow/tandem-workflow-templates.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/tandem-workflow-templates.test.js +434 -0
- package/packages/core/dist/workflow/tandem-workflow-templates.test.js.map +1 -0
- package/packages/core/dist/workflow/team-lifecycle.d.ts +169 -0
- package/packages/core/dist/workflow/team-lifecycle.d.ts.map +1 -0
- package/packages/core/dist/workflow/team-lifecycle.js +217 -0
- package/packages/core/dist/workflow/team-lifecycle.js.map +1 -0
- package/packages/core/dist/workflow/team-lifecycle.test.d.ts +20 -0
- package/packages/core/dist/workflow/team-lifecycle.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/team-lifecycle.test.js +966 -0
- package/packages/core/dist/workflow/team-lifecycle.test.js.map +1 -0
- package/packages/core/dist/workflow/workflow-schema.d.ts +32 -0
- package/packages/core/dist/workflow/workflow-schema.d.ts.map +1 -1
- package/packages/core/dist/workflow/workflow-schema.js +120 -0
- package/packages/core/dist/workflow/workflow-schema.js.map +1 -1
- package/packages/core/dist/workflow/workflow-schema.test.d.ts.map +1 -1
- package/packages/core/dist/workflow/workflow-schema.test.js +570 -1
- package/packages/core/dist/workflow/workflow-schema.test.js.map +1 -1
- package/packages/core/dist/workflow/workflow-team-templates.test.d.ts +17 -0
- package/packages/core/dist/workflow/workflow-team-templates.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-team-templates.test.js +275 -0
- package/packages/core/dist/workflow/workflow-team-templates.test.js.map +1 -0
- package/pennyfarthing-dist/agents/dev.md +21 -12
- package/pennyfarthing-dist/agents/reviewer.md +23 -4
- package/pennyfarthing-dist/agents/sm-finish.md +19 -2
- package/pennyfarthing-dist/agents/sm-setup.md +7 -7
- package/pennyfarthing-dist/agents/sm.md +12 -12
- package/pennyfarthing-dist/agents/tea.md +2 -2
- package/pennyfarthing-dist/agents/testing-runner.md +1 -1
- package/pennyfarthing-dist/commands/pf-architect.md +1 -1
- package/pennyfarthing-dist/commands/pf-ba.md +1 -1
- package/pennyfarthing-dist/commands/pf-chore.md +2 -2
- package/pennyfarthing-dist/commands/pf-dev.md +1 -1
- package/pennyfarthing-dist/commands/pf-devops.md +1 -1
- package/pennyfarthing-dist/commands/pf-epic.md +6 -6
- package/pennyfarthing-dist/commands/pf-git.md +12 -10
- package/pennyfarthing-dist/commands/pf-health-check.md +1 -1
- package/pennyfarthing-dist/commands/pf-help.md +12 -12
- package/pennyfarthing-dist/commands/pf-orchestrator.md +1 -1
- package/pennyfarthing-dist/commands/pf-pm.md +1 -1
- package/pennyfarthing-dist/commands/pf-prime.md +8 -8
- package/pennyfarthing-dist/commands/pf-reviewer.md +1 -1
- package/pennyfarthing-dist/commands/pf-session.md +7 -7
- package/pennyfarthing-dist/commands/pf-sm.md +1 -1
- package/pennyfarthing-dist/commands/pf-sprint.md +7 -7
- package/pennyfarthing-dist/commands/pf-tea.md +1 -1
- package/pennyfarthing-dist/commands/pf-tech-writer.md +1 -1
- package/pennyfarthing-dist/commands/pf-theme.md +9 -9
- package/pennyfarthing-dist/commands/pf-ux-designer.md +1 -1
- package/pennyfarthing-dist/commands/pf-work.md +1 -1
- package/pennyfarthing-dist/gates/approval.md +63 -0
- package/pennyfarthing-dist/gates/confidence-sm.md +71 -0
- package/pennyfarthing-dist/gates/context-ok.md +56 -0
- package/pennyfarthing-dist/gates/evaluations/confidence-sm.md +54 -0
- package/pennyfarthing-dist/gates/quality-pass.md +67 -0
- package/pennyfarthing-dist/gates/tests-fail.md +84 -0
- package/pennyfarthing-dist/gates/tests-pass.md +79 -0
- package/pennyfarthing-dist/guides/agent-behavior.md +84 -29
- package/pennyfarthing-dist/guides/agent-coordination.md +10 -10
- package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +6 -6
- package/pennyfarthing-dist/guides/agent-template-tactical.md +1 -1
- package/pennyfarthing-dist/guides/bell-mode.md +1 -1
- package/pennyfarthing-dist/guides/bikerack.md +10 -10
- package/pennyfarthing-dist/guides/brownfield-tools.md +24 -24
- package/pennyfarthing-dist/guides/command-tag-taxonomy.md +1 -1
- package/pennyfarthing-dist/guides/gate-schema.md +2 -2
- package/pennyfarthing-dist/guides/gates.md +3 -3
- package/pennyfarthing-dist/guides/handoff-cli.md +8 -8
- package/pennyfarthing-dist/guides/hooks.md +29 -29
- package/pennyfarthing-dist/guides/prime.md +2 -2
- package/pennyfarthing-dist/guides/reflector.md +1 -1
- package/pennyfarthing-dist/guides/skill-schema.md +6 -6
- package/pennyfarthing-dist/guides/tandem-protocol.md +3 -3
- package/pennyfarthing-dist/guides/workflow-schema.md +1 -1
- package/pennyfarthing-dist/guides/worktree-mode.md +3 -3
- package/pennyfarthing-dist/guides/xml-tags.md +8 -8
- package/pennyfarthing-dist/scripts/README.md +4 -4
- package/pennyfarthing-dist/scripts/core/agent-session.sh +2 -5
- package/pennyfarthing-dist/scripts/core/check-context.sh +3 -1
- package/pennyfarthing-dist/scripts/core/pf.sh +5 -0
- package/pennyfarthing-dist/scripts/core/phase-check-start.sh +4 -89
- package/pennyfarthing-dist/scripts/core/prime.sh +2 -25
- package/pennyfarthing-dist/scripts/git/README.md +14 -14
- package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +2 -3
- package/pennyfarthing-dist/scripts/git/git-status-all.sh +2 -3
- package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +2 -3
- package/pennyfarthing-dist/scripts/git/worktree-manager.sh +2 -4
- package/pennyfarthing-dist/scripts/hooks/README.md +6 -6
- package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +4 -183
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +4 -95
- package/pennyfarthing-dist/scripts/hooks/context-warning.sh +4 -65
- package/pennyfarthing-dist/scripts/hooks/cyclist-pretooluse-hook.sh +3 -31
- package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +5 -4
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +29 -34
- package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +4 -71
- package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +3 -19
- package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +4 -30
- package/pennyfarthing-dist/scripts/hooks/session-start.sh +3 -32
- package/pennyfarthing-dist/scripts/hooks/session-stop.sh +4 -65
- package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +4 -78
- package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +3 -93
- package/pennyfarthing-dist/scripts/lib/env.sh +34 -0
- package/pennyfarthing-dist/scripts/lib/run-pf.sh +39 -0
- package/pennyfarthing-dist/scripts/misc/README.md +1 -1
- package/pennyfarthing-dist/scripts/misc/statusline.sh +4 -301
- package/pennyfarthing-dist/scripts/sprint/README.md +21 -21
- package/pennyfarthing-dist/scripts/workflow/README.md +2 -2
- package/pennyfarthing-dist/scripts/workflow/finish-story.sh +2 -16
- package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +3 -3
- package/pennyfarthing-dist/skills/pf-bc/examples.md +23 -23
- package/pennyfarthing-dist/skills/pf-bc/skill.md +17 -17
- package/pennyfarthing-dist/skills/pf-bc/usage.md +8 -8
- package/pennyfarthing-dist/skills/pf-jira/SKILL.md +15 -15
- package/pennyfarthing-dist/skills/pf-jira/examples.md +48 -48
- package/pennyfarthing-dist/skills/pf-jira/usage.md +15 -15
- package/pennyfarthing-dist/skills/pf-sprint/examples.md +80 -80
- package/pennyfarthing-dist/skills/pf-sprint/skill.md +35 -35
- package/pennyfarthing-dist/skills/pf-sprint/usage.md +30 -30
- package/pennyfarthing-dist/skills/pf-theme/examples.md +15 -15
- package/pennyfarthing-dist/skills/pf-theme/skill.md +6 -6
- package/pennyfarthing-dist/skills/pf-theme/usage.md +5 -5
- package/pennyfarthing-dist/skills/pf-workflow/examples.md +27 -27
- package/pennyfarthing-dist/skills/pf-workflow/skill.md +11 -11
- package/pennyfarthing-dist/skills/pf-workflow/usage.md +11 -11
- package/pennyfarthing-dist/skills/skill-registry.yaml +19 -19
- package/pennyfarthing-dist/templates/settings.local.json.template +19 -10
- package/pennyfarthing-dist/workflows/bdd-team.yaml +89 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +1 -1
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +1 -1
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +1 -1
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +1 -1
- package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +47 -0
- package/pennyfarthing-dist/workflows/tdd-team.yaml +80 -0
- package/pennyfarthing-dist/workflows/tdd.yaml +11 -2
- package/pennyfarthing_scripts/CLAUDE.md +19 -10
- package/pennyfarthing_scripts/__init__.py +1 -1
- 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__/context.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/hooks.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/bc/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/focus.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/split.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/cli.py +2 -2
- package/pennyfarthing_scripts/bellmode_hook.py +9 -296
- package/pennyfarthing_scripts/bikerack/__pycache__/audit_log_panel.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__/context_meter_footer.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__/events.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__/portrait_resolver.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/progress_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/sprint_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/story_detail_data.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/story_detail_screen.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/audit_log_panel.py +161 -0
- package/pennyfarthing_scripts/bikerack/base_panel.py +27 -4
- package/pennyfarthing_scripts/bikerack/changed_panel.py +96 -4
- package/pennyfarthing_scripts/bikerack/context_meter_footer.py +88 -0
- package/pennyfarthing_scripts/bikerack/debug_panel.py +1 -1
- package/pennyfarthing_scripts/bikerack/diffs_panel.py +30 -0
- package/pennyfarthing_scripts/bikerack/events.py +28 -0
- package/pennyfarthing_scripts/bikerack/launcher.py +6 -6
- package/pennyfarthing_scripts/bikerack/portrait_resolver.py +139 -0
- package/pennyfarthing_scripts/bikerack/progress_panel.py +0 -1
- package/pennyfarthing_scripts/bikerack/sprint_panel.py +373 -142
- package/pennyfarthing_scripts/bikerack/story_detail_data.py +247 -0
- package/pennyfarthing_scripts/bikerack/story_detail_screen.py +177 -0
- package/pennyfarthing_scripts/bikerack/tui.py +304 -62
- package/pennyfarthing_scripts/bikerack/ws_client.py +2 -2
- package/pennyfarthing_scripts/cli.py +5 -0
- package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/config.py +29 -2
- package/pennyfarthing_scripts/common/pr_config.py +38 -0
- package/pennyfarthing_scripts/consultation/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/consultation/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/consultation/cli.py +3 -3
- package/pennyfarthing_scripts/context.py +3 -3
- 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__/repos.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/hooks_installer.py +2 -3
- package/pennyfarthing_scripts/git/status_all.py +1 -1
- package/pennyfarthing_scripts/git/worktree.py +2 -2
- package/pennyfarthing_scripts/git_group/__pycache__/cli.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__/marker.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/phase_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/resolve_gate.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/cli.py +33 -1
- package/pennyfarthing_scripts/handoff/complete_phase.py +28 -0
- package/pennyfarthing_scripts/handoff/marker.py +15 -15
- package/pennyfarthing_scripts/handoff/phase_check.py +96 -0
- package/pennyfarthing_scripts/handoff/resolve_gate.py +13 -1
- package/pennyfarthing_scripts/hooks/__init__.py +442 -0
- package/pennyfarthing_scripts/hooks/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/bell_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/context_breaker.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/context_warning.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/cyclist_pretooluse.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/pre_edit_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/schema_validation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/session_start.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/session_stop.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/sprint_yaml_validation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/statusline.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/bell_mode.py +214 -0
- package/pennyfarthing_scripts/hooks/cli.py +96 -0
- package/pennyfarthing_scripts/hooks/context_breaker.py +104 -0
- package/pennyfarthing_scripts/hooks/context_warning.py +66 -0
- package/pennyfarthing_scripts/hooks/cyclist_pretooluse.py +129 -0
- package/pennyfarthing_scripts/hooks/pre_edit_check.py +77 -0
- package/pennyfarthing_scripts/hooks/reflector_check.py +270 -0
- package/pennyfarthing_scripts/hooks/schema_validation.py +202 -0
- package/pennyfarthing_scripts/hooks/session_start.py +294 -0
- package/pennyfarthing_scripts/hooks/session_stop.py +111 -0
- package/pennyfarthing_scripts/hooks/sprint_yaml_validation.py +97 -0
- package/pennyfarthing_scripts/hooks/statusline.py +429 -0
- package/pennyfarthing_scripts/hooks.py +27 -432
- package/pennyfarthing_scripts/pretooluse_hook.py +3 -185
- package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/heatmap.py +3 -15
- package/pennyfarthing_scripts/prime/workflow.py +2 -1
- package/pennyfarthing_scripts/schema_validation_hook.py +3 -298
- package/pennyfarthing_scripts/session_start_hook.py +4 -186
- package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/loader.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/cli.py +121 -0
- package/pennyfarthing_scripts/sprint/loader.py +154 -3
- package/pennyfarthing_scripts/sprint/story_update.py +26 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_bikerack.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_workflow_list_team.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/test_bikerack.py +26 -26
- package/pennyfarthing_scripts/tests/test_dialogue_manager.py +0 -1
- package/pennyfarthing_scripts/tests/test_sprint_panel.py +344 -265
- package/pennyfarthing_scripts/tests/test_workflow_list_team.py +147 -0
- package/pennyfarthing_scripts/validate/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/skill_command.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/tandem_awareness.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/team_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/team_mode.py +323 -0
- package/pennyfarthing_scripts/validate/adapters/workflow.py +19 -0
- package/pennyfarthing_scripts/welcome_hook.py +3 -149
- package/pennyfarthing_scripts/workflow/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/helpers.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/scale.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/state.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/team_lifecycle.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/cli.py +22 -20
- package/pennyfarthing_scripts/workflow/state.py +0 -1
- package/pennyfarthing_scripts/workflow/team_lifecycle.py +256 -0
- package/packages/core/dist/cli/cyclist-migration.test.d.ts +0 -16
- package/packages/core/dist/cli/cyclist-migration.test.d.ts.map +0 -1
- package/packages/core/dist/cli/cyclist-migration.test.js +0 -229
- package/packages/core/dist/cli/cyclist-migration.test.js.map +0 -1
- package/packages/core/dist/scripts/theme-detail.test.d.ts +0 -10
- package/packages/core/dist/scripts/theme-detail.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/theme-detail.test.js +0 -199
- package/packages/core/dist/scripts/theme-detail.test.js.map +0 -1
|
@@ -15,7 +15,24 @@ model: haiku
|
|
|
15
15
|
</arguments>
|
|
16
16
|
|
|
17
17
|
<execution>
|
|
18
|
-
##
|
|
18
|
+
## 1. Create PR (if needed)
|
|
19
|
+
|
|
20
|
+
Before running preflight, check if a PR exists for the branch. If not, create one
|
|
21
|
+
using the project's `pr_mode` config:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Read pr_mode: draft | ready | none
|
|
25
|
+
PR_MODE=$(source .venv/bin/activate && python -m pennyfarthing_scripts.common.pr_config)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
- If `PR_MODE=draft`: `gh pr create --draft --title "feat({STORY_ID}): {title}" --body "..." --base develop`
|
|
29
|
+
- If `PR_MODE=ready`: `gh pr create --title "feat({STORY_ID}): {title}" --body "..." --base develop`
|
|
30
|
+
- If `PR_MODE=none`: Skip PR creation entirely.
|
|
31
|
+
|
|
32
|
+
Check for existing PR first: `gh pr list --head {BRANCH} --json number --jq '.[0].number'`
|
|
33
|
+
If a PR already exists, skip creation.
|
|
34
|
+
|
|
35
|
+
## 2. Run Preflight Script
|
|
19
36
|
|
|
20
37
|
The preflight script runs all checks in parallel using asyncio:
|
|
21
38
|
|
|
@@ -36,7 +53,7 @@ The script returns JSON with:
|
|
|
36
53
|
<critical>
|
|
37
54
|
## Jira Transition
|
|
38
55
|
|
|
39
|
-
The Jira transition to Done is handled by `pf sprint story finish`.
|
|
56
|
+
The Jira transition to Done is handled by `pf.sh sprint story finish`.
|
|
40
57
|
Do NOT transition Jira here - that would duplicate the finish script's work.
|
|
41
58
|
This subagent only performs preflight checks and assessment.
|
|
42
59
|
</critical>
|
|
@@ -26,7 +26,7 @@ model: haiku
|
|
|
26
26
|
|
|
27
27
|
- [ ] Use `/pf-sprint backlog` for initial backlog scan:
|
|
28
28
|
```bash
|
|
29
|
-
pf sprint backlog
|
|
29
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint backlog
|
|
30
30
|
```
|
|
31
31
|
- [ ] Use `/pf-jira` skill to enrich with Jira status/assignee:
|
|
32
32
|
- `/pf-jira search "project=MSSCI AND sprint in openSprints()"` - Get all sprint stories
|
|
@@ -92,10 +92,10 @@ Other formats break Cyclist detection.
|
|
|
92
92
|
EPIC_NUM=$(echo "{STORY_ID}" | cut -d'-' -f1)
|
|
93
93
|
|
|
94
94
|
# Get epic's Jira key (use script, not direct yq)
|
|
95
|
-
EPIC_JIRA=$(pf sprint epic field "$EPIC_NUM" jira)
|
|
95
|
+
EPIC_JIRA=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint epic field "$EPIC_NUM" jira)
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
If missing or "null": auto-create via `pf jira create epic {EPIC_NUM}`
|
|
98
|
+
If missing or "null": auto-create via `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira create epic {EPIC_NUM}`
|
|
99
99
|
|
|
100
100
|
## Step 2: Check Workflow Permissions
|
|
101
101
|
|
|
@@ -135,14 +135,14 @@ GRANTS=$(cat .claude/settings.local.json 2>/dev/null | jq '.permissions.grants /
|
|
|
135
135
|
|
|
136
136
|
## Step 3: Claim in Jira
|
|
137
137
|
|
|
138
|
-
Use
|
|
138
|
+
Use the pf wrapper for Jira commands:
|
|
139
139
|
|
|
140
140
|
```bash
|
|
141
141
|
# Check availability first
|
|
142
|
-
pf jira check {JIRA_KEY}
|
|
142
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira check {JIRA_KEY}
|
|
143
143
|
|
|
144
144
|
# Then claim (assign to self + move to In Progress)
|
|
145
|
-
pf jira claim {JIRA_KEY}
|
|
145
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira claim {JIRA_KEY}
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
**Exit codes:**
|
|
@@ -184,7 +184,7 @@ git checkout -b feat/{STORY_ID}-{SLUG}
|
|
|
184
184
|
After session file is created, determine how to route:
|
|
185
185
|
|
|
186
186
|
```bash
|
|
187
|
-
WORKFLOW_TYPE=$(pf workflow type "{WORKFLOW}")
|
|
187
|
+
WORKFLOW_TYPE=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow type "{WORKFLOW}")
|
|
188
188
|
```
|
|
189
189
|
|
|
190
190
|
| Workflow Type | Routing |
|
|
@@ -25,12 +25,12 @@ The moment you start reading implementation files or planning how code should wo
|
|
|
25
25
|
</critical>
|
|
26
26
|
|
|
27
27
|
<critical>
|
|
28
|
-
Use
|
|
28
|
+
Use the pf wrapper for all Jira interactions. Key commands:
|
|
29
29
|
```
|
|
30
|
-
pf jira check MSSCI-XXXXX # Check story availability
|
|
31
|
-
pf jira claim MSSCI-XXXXX # Claim story (assign + In Progress)
|
|
32
|
-
pf jira move MSSCI-XXXXX "Done" # Transition status
|
|
33
|
-
pf jira reconcile # Audit YAML vs Jira
|
|
30
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira check MSSCI-XXXXX # Check story availability
|
|
31
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira claim MSSCI-XXXXX # Claim story (assign + In Progress)
|
|
32
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira move MSSCI-XXXXX "Done" # Transition status
|
|
33
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira reconcile # Audit YAML vs Jira
|
|
34
34
|
```
|
|
35
35
|
If they are broken, COMPLAIN LOUDLY
|
|
36
36
|
</critical>
|
|
@@ -107,7 +107,7 @@ Prime script provides workflow state. Route based on state from activation outpu
|
|
|
107
107
|
|
|
108
108
|
2. **Run finish command:**
|
|
109
109
|
```bash
|
|
110
|
-
pf sprint story finish {STORY_ID}
|
|
110
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint story finish {STORY_ID}
|
|
111
111
|
```
|
|
112
112
|
|
|
113
113
|
3. **Commit results:**
|
|
@@ -153,8 +153,8 @@ Present to user:
|
|
|
153
153
|
|
|
154
154
|
1. **Get workflow type:**
|
|
155
155
|
```bash
|
|
156
|
-
WORKFLOW=$(pf sprint story field X-Y workflow)
|
|
157
|
-
WORKFLOW_TYPE=$(pf workflow type "$WORKFLOW")
|
|
156
|
+
WORKFLOW=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint story field X-Y workflow)
|
|
157
|
+
WORKFLOW_TYPE=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow type "$WORKFLOW")
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
2. **Spawn `sm-setup MODE=setup`** with:
|
|
@@ -167,7 +167,7 @@ Present to user:
|
|
|
167
167
|
```
|
|
168
168
|
|
|
169
169
|
4. **Route based on workflow type:**
|
|
170
|
-
- **Phased workflow** → Run exit protocol: `pf handoff complete-phase` then `pf handoff marker`
|
|
170
|
+
- **Phased workflow** → Run exit protocol: `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff complete-phase` then `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker`
|
|
171
171
|
- **Stepped workflow** → Tell user to run `/pf-workflow start {workflow}` (no handoff)
|
|
172
172
|
</session-new-flow>
|
|
173
173
|
|
|
@@ -212,7 +212,7 @@ Before handoff, verify ALL of these:
|
|
|
212
212
|
> **Triggered when:** `EMPTY_BACKLOG_STATE`
|
|
213
213
|
|
|
214
214
|
1. Report: "Sprint backlog empty. All stories done or cancelled."
|
|
215
|
-
2. Show future work: `pf sprint future`
|
|
215
|
+
2. Show future work: `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint future`
|
|
216
216
|
3. Offer: "Promote stories from `future.yaml`?" → `/pf-sprint promote {epic-id}`
|
|
217
217
|
|
|
218
218
|
**Never suggest:** Closing sprint early, starting sprint planning. Sprints are fixed two-week periods.
|
|
@@ -262,10 +262,10 @@ SM does NOT hand off to agents. Instead, use `/pf-workflow start {name}` to begi
|
|
|
262
262
|
|
|
263
263
|
Read `**Workflow:**` and `**Phase:**` from session. Query:
|
|
264
264
|
```bash
|
|
265
|
-
OWNER=$(pf workflow phase-check {workflow} {phase})
|
|
265
|
+
OWNER=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow phase-check {workflow} {phase})
|
|
266
266
|
```
|
|
267
267
|
|
|
268
|
-
**If OWNER != "sm":** Run `pf handoff marker $OWNER`, output result, tell user.
|
|
268
|
+
**If OWNER != "sm":** Run `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker $OWNER`, output result, tell user.
|
|
269
269
|
|
|
270
270
|
**Note:** SM also handles `approved` status (finish phase).
|
|
271
271
|
</phase-check>
|
|
@@ -44,10 +44,10 @@ STORY_ID: "{STORY_ID}"
|
|
|
44
44
|
|
|
45
45
|
Read `**Workflow:**` and `**Phase:**` from session. Query:
|
|
46
46
|
```bash
|
|
47
|
-
OWNER=$(pf workflow phase-check {workflow} {phase})
|
|
47
|
+
OWNER=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow phase-check {workflow} {phase})
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
**If OWNER != "tea":** Run `pf handoff marker $OWNER`, output result, tell user.
|
|
50
|
+
**If OWNER != "tea":** Run `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker $OWNER`, output result, tell user.
|
|
51
51
|
</phase-check>
|
|
52
52
|
|
|
53
53
|
<on-activation>
|
|
@@ -40,7 +40,7 @@ This runs lint + typecheck + tests. Exit 0 = all passed.
|
|
|
40
40
|
## Setup
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
# Repo config available via: pf git status, or Python API:
|
|
43
|
+
# Repo config available via: pf.sh git status, or Python API:
|
|
44
44
|
# from pennyfarthing_scripts.git.repos import load_repos_config
|
|
45
45
|
source .pennyfarthing/scripts/test/test-setup.sh
|
|
46
46
|
|
|
@@ -5,7 +5,7 @@ description: System Architect - Technical design and architecture
|
|
|
5
5
|
<agent-activation>
|
|
6
6
|
**FIRST:** Use Bash tool to run:
|
|
7
7
|
```bash
|
|
8
|
-
pf agent start "architect"
|
|
8
|
+
source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "architect"
|
|
9
9
|
```
|
|
10
10
|
This loads your persona and agent context. Adopt the character shown in the output.
|
|
11
11
|
</agent-activation>
|
|
@@ -5,7 +5,7 @@ description: Business Analyst - Requirements discovery and stakeholder analysis
|
|
|
5
5
|
<agent-activation>
|
|
6
6
|
**FIRST:** Use Bash tool to run:
|
|
7
7
|
```bash
|
|
8
|
-
pf agent start "ba"
|
|
8
|
+
source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "ba"
|
|
9
9
|
```
|
|
10
10
|
This loads your persona and agent context. Adopt the character shown in the output.
|
|
11
11
|
</agent-activation>
|
|
@@ -68,7 +68,7 @@ git status --short
|
|
|
68
68
|
git -C pennyfarthing status --short 2>/dev/null
|
|
69
69
|
|
|
70
70
|
# Or use the multi-repo status script:
|
|
71
|
-
pf git status --brief
|
|
71
|
+
pf.sh git status --brief
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
Collect which repos have changes. If ALL repos are clean, abort with "No changes to commit."
|
|
@@ -191,7 +191,7 @@ cd {orchestrator_root}
|
|
|
191
191
|
|
|
192
192
|
After all repos are processed:
|
|
193
193
|
```bash
|
|
194
|
-
pf git status --brief
|
|
194
|
+
pf.sh git status --brief
|
|
195
195
|
```
|
|
196
196
|
|
|
197
197
|
All repos should show clean.
|
|
@@ -5,7 +5,7 @@ description: Developer - Feature implementation and coding
|
|
|
5
5
|
<agent-activation>
|
|
6
6
|
**FIRST:** Use Bash tool to run:
|
|
7
7
|
```bash
|
|
8
|
-
pf agent start "dev"
|
|
8
|
+
source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "dev"
|
|
9
9
|
```
|
|
10
10
|
This loads your persona and agent context. Adopt the character shown in the output.
|
|
11
11
|
</agent-activation>
|
|
@@ -5,7 +5,7 @@ description: DevOps Engineer - Infrastructure and deployment automation
|
|
|
5
5
|
<agent-activation>
|
|
6
6
|
**FIRST:** Use Bash tool to run:
|
|
7
7
|
```bash
|
|
8
|
-
pf agent start "devops"
|
|
8
|
+
source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "devops"
|
|
9
9
|
```
|
|
10
10
|
This loads your persona and agent context. Adopt the character shown in the output.
|
|
11
11
|
</agent-activation>
|
|
@@ -16,8 +16,8 @@ Manage epic lifecycle. Start an epic by moving it to the current sprint and gene
|
|
|
16
16
|
Start an epic — move to current sprint and generate technical context.
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
pf epic start 79
|
|
20
|
-
pf epic start epic-79
|
|
19
|
+
pf.sh epic start 79
|
|
20
|
+
pf.sh epic start epic-79
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
<workflow>
|
|
@@ -33,8 +33,8 @@ pf epic start epic-79
|
|
|
33
33
|
Close an epic — verify completion, update status, and archive context.
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
pf epic close 79
|
|
37
|
-
pf epic close epic-79
|
|
36
|
+
pf.sh epic close 79
|
|
37
|
+
pf.sh epic close epic-79
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
<workflow>
|
|
@@ -57,8 +57,8 @@ pf epic close epic-79
|
|
|
57
57
|
## CLI Equivalent
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
pf epic start <epic-id>
|
|
61
|
-
pf epic close <epic-id>
|
|
60
|
+
pf.sh epic start <epic-id>
|
|
61
|
+
pf.sh epic close <epic-id>
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
## Related
|
|
@@ -16,7 +16,7 @@ Manage git operations across all configured repos. Consolidates repository statu
|
|
|
16
16
|
Check git status of all project repos.
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
pf git status [--brief]
|
|
19
|
+
pf.sh git status [--brief]
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
Shows branch, uncommitted changes, and ahead/behind status for each configured repo.
|
|
@@ -25,18 +25,20 @@ Shows branch, uncommitted changes, and ahead/behind status for each configured r
|
|
|
25
25
|
|
|
26
26
|
Organize uncommitted changes into proper commits and branches.
|
|
27
27
|
|
|
28
|
+
**When this subcommand is invoked, immediately start the stepped workflow:**
|
|
29
|
+
|
|
28
30
|
```bash
|
|
29
|
-
pf git
|
|
31
|
+
pf.sh workflow start git-cleanup
|
|
30
32
|
```
|
|
31
33
|
|
|
32
|
-
|
|
34
|
+
Then follow each step's instructions. Use `pf.sh workflow complete-step git-cleanup` to advance between steps. The workflow handles multi-repo analysis, change categorization, branch creation, commits, and push.
|
|
33
35
|
|
|
34
36
|
### `/pf-git branches <story-id>`
|
|
35
37
|
|
|
36
38
|
Create feature branches in both repos from a story.
|
|
37
39
|
|
|
38
40
|
```bash
|
|
39
|
-
pf git branches 86-3
|
|
41
|
+
pf.sh git branches 86-3
|
|
40
42
|
```
|
|
41
43
|
|
|
42
44
|
### `/pf-git release`
|
|
@@ -44,7 +46,7 @@ pf git branches 86-3
|
|
|
44
46
|
Interactive release with verification gates.
|
|
45
47
|
|
|
46
48
|
```bash
|
|
47
|
-
pf git release
|
|
49
|
+
pf.sh git release
|
|
48
50
|
```
|
|
49
51
|
|
|
50
52
|
Starts the release stepped workflow — an 11-step process with gates at each stage.
|
|
@@ -60,13 +62,13 @@ Starts the release stepped workflow — an 11-step process with gates at each st
|
|
|
60
62
|
|
|
61
63
|
## CLI Equivalent
|
|
62
64
|
|
|
63
|
-
All commands are also available via `pf git`:
|
|
65
|
+
All commands are also available via `pf.sh git`:
|
|
64
66
|
|
|
65
67
|
```bash
|
|
66
|
-
pf git status
|
|
67
|
-
pf git cleanup
|
|
68
|
-
pf git branches 86-3
|
|
69
|
-
pf git release
|
|
68
|
+
pf.sh git status
|
|
69
|
+
pf.sh git cleanup
|
|
70
|
+
pf.sh git branches 86-3
|
|
71
|
+
pf.sh git release
|
|
70
72
|
```
|
|
71
73
|
|
|
72
74
|
## Related
|
|
@@ -3,7 +3,7 @@ description: Check Pennyfarthing installation health and apply updates
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
pf agent start "devops"
|
|
6
|
+
source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "devops"
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
<agent-activation>
|
|
@@ -52,7 +52,7 @@ SM → TEA → Dev → Reviewer → SM (finish)
|
|
|
52
52
|
|
|
53
53
|
Commands are organized by resource. Each group is accessible via both slash commands and CLI.
|
|
54
54
|
|
|
55
|
-
### Sprint — `/pf-sprint` · `pf sprint`
|
|
55
|
+
### Sprint — `/pf-sprint` · `pf.sh sprint`
|
|
56
56
|
|
|
57
57
|
| Command | Description |
|
|
58
58
|
|---------|-------------|
|
|
@@ -65,7 +65,7 @@ Commands are organized by resource. Each group is accessible via both slash comm
|
|
|
65
65
|
| `/pf-sprint story [show\|add\|update\|size\|finish]` | Story operations |
|
|
66
66
|
| `/pf-sprint epic [show\|add\|promote\|archive]` | Epic operations |
|
|
67
67
|
|
|
68
|
-
### Git — `/pf-git` · `pf git`
|
|
68
|
+
### Git — `/pf-git` · `pf.sh git`
|
|
69
69
|
|
|
70
70
|
| Command | Description |
|
|
71
71
|
|---------|-------------|
|
|
@@ -74,21 +74,21 @@ Commands are organized by resource. Each group is accessible via both slash comm
|
|
|
74
74
|
| `/pf-git branches <id>` | Create feature branches from story |
|
|
75
75
|
| `/pf-git release` | Interactive release workflow |
|
|
76
76
|
|
|
77
|
-
### Session — `/pf-session` · `pf session`
|
|
77
|
+
### Session — `/pf-session` · `pf.sh session`
|
|
78
78
|
|
|
79
79
|
| Command | Description |
|
|
80
80
|
|---------|-------------|
|
|
81
81
|
| `/pf-session new` | Start next available story |
|
|
82
82
|
| `/pf-session continue` | Resume from checkpoint |
|
|
83
83
|
|
|
84
|
-
### Epic — `/pf-epic` · `pf epic`
|
|
84
|
+
### Epic — `/pf-epic` · `pf.sh epic`
|
|
85
85
|
|
|
86
86
|
| Command | Description |
|
|
87
87
|
|---------|-------------|
|
|
88
88
|
| `/pf-epic start <id>` | Start epic for development |
|
|
89
89
|
| `/pf-epic close <id>` | Close completed epic |
|
|
90
90
|
|
|
91
|
-
### Jira — `/pf-jira` · `pf jira`
|
|
91
|
+
### Jira — `/pf-jira` · `pf.sh jira`
|
|
92
92
|
|
|
93
93
|
| Command | Description |
|
|
94
94
|
|---------|-------------|
|
|
@@ -98,7 +98,7 @@ Commands are organized by resource. Each group is accessible via both slash comm
|
|
|
98
98
|
| `/pf-jira sync-epic` | Sync epic to Jira |
|
|
99
99
|
| `/pf-jira reconcile` | Report mismatches |
|
|
100
100
|
|
|
101
|
-
### Theme — `/pf-theme` · `pf theme`
|
|
101
|
+
### Theme — `/pf-theme` · `pf.sh theme`
|
|
102
102
|
|
|
103
103
|
| Command | Description |
|
|
104
104
|
|---------|-------------|
|
|
@@ -108,7 +108,7 @@ Commands are organized by resource. Each group is accessible via both slash comm
|
|
|
108
108
|
| `/pf-theme create <name>` | Create custom theme |
|
|
109
109
|
| `/pf-theme maker` | Interactive theme wizard |
|
|
110
110
|
|
|
111
|
-
### Workflow — `/pf-workflow` · `pf workflow`
|
|
111
|
+
### Workflow — `/pf-workflow` · `pf.sh workflow`
|
|
112
112
|
|
|
113
113
|
| Command | Description |
|
|
114
114
|
|---------|-------------|
|
|
@@ -221,11 +221,11 @@ Based on your current state, here's what you might need:
|
|
|
221
221
|
|
|
222
222
|
For detailed help on any command group:
|
|
223
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
|
|
224
|
+
pf.sh help # Overview of all groups
|
|
225
|
+
pf.sh help sprint # Sprint commands
|
|
226
|
+
pf.sh help git # Git commands
|
|
227
|
+
pf.sh help session # Session commands
|
|
228
|
+
pf.sh help epic # Epic commands
|
|
229
229
|
```
|
|
230
230
|
|
|
231
231
|
## Documentation
|
|
@@ -5,7 +5,7 @@ description: Orchestrator - Coordinator of all agents and meta operations
|
|
|
5
5
|
<agent-activation>
|
|
6
6
|
**FIRST:** Use Bash tool to run:
|
|
7
7
|
```bash
|
|
8
|
-
pf agent start "orchestrator"
|
|
8
|
+
source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "orchestrator"
|
|
9
9
|
```
|
|
10
10
|
This loads your persona and agent context. Adopt the character shown in the output.
|
|
11
11
|
</agent-activation>
|
|
@@ -5,7 +5,7 @@ description: Product Manager - Strategic planning and prioritization
|
|
|
5
5
|
<agent-activation>
|
|
6
6
|
**FIRST:** Use Bash tool to run:
|
|
7
7
|
```bash
|
|
8
|
-
pf agent start "pm"
|
|
8
|
+
source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "pm"
|
|
9
9
|
```
|
|
10
10
|
This loads your persona and agent context. Adopt the character shown in the output.
|
|
11
11
|
</agent-activation>
|
|
@@ -4,7 +4,7 @@ description: Load essential project context at agent activation
|
|
|
4
4
|
|
|
5
5
|
<purpose>
|
|
6
6
|
Quickly load essential context files to reduce agent cold-start overhead.
|
|
7
|
-
Automatically invoked on agent activation via `pf agent start`.
|
|
7
|
+
Automatically invoked on agent activation via `pf.sh agent start`.
|
|
8
8
|
</purpose>
|
|
9
9
|
|
|
10
10
|
<when-to-use>
|
|
@@ -21,19 +21,19 @@ Use the `pf` CLI:
|
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
23
|
# Load all essential context (default)
|
|
24
|
-
pf agent start "sm"
|
|
24
|
+
pf.sh agent start "sm"
|
|
25
25
|
|
|
26
26
|
# Minimal mode - fastest startup
|
|
27
|
-
pf agent start "sm" --minimal
|
|
27
|
+
pf.sh agent start "sm" --minimal
|
|
28
28
|
|
|
29
29
|
# Full mode - include domain docs
|
|
30
|
-
pf agent start "sm" --full
|
|
30
|
+
pf.sh agent start "sm" --full
|
|
31
31
|
|
|
32
32
|
# Skip persona loading
|
|
33
|
-
pf agent start "sm" --no-persona
|
|
33
|
+
pf.sh agent start "sm" --no-persona
|
|
34
34
|
|
|
35
35
|
# JSON output (for Cyclist integration)
|
|
36
|
-
pf agent start "sm" --json
|
|
36
|
+
pf.sh agent start "sm" --json
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
## Options
|
|
@@ -111,7 +111,7 @@ With `--quiet`, section headers are suppressed.
|
|
|
111
111
|
The `/prime` command is automatically invoked when agents activate:
|
|
112
112
|
|
|
113
113
|
1. User invokes `/sm`, `/tea`, `/dev`, or `/reviewer`
|
|
114
|
-
2. `pf agent start <name>` runs
|
|
114
|
+
2. `pf.sh agent start <name>` runs
|
|
115
115
|
3. Context is loaded: workflow state, agent definition, persona, behavior guide, sprint context, session, sidecars
|
|
116
116
|
4. Agent starts with full context AND their learned patterns loaded
|
|
117
117
|
|
|
@@ -129,7 +129,7 @@ If context becomes stale mid-session, run `/prime` manually:
|
|
|
129
129
|
</integration>
|
|
130
130
|
|
|
131
131
|
<reference>
|
|
132
|
-
- **CLI:** `pf agent start <name>` or `python3 -m pennyfarthing_scripts.cli agent start <name>`
|
|
132
|
+
- **CLI:** `pf.sh agent start <name>` or `python3 -m pennyfarthing_scripts.cli agent start <name>`
|
|
133
133
|
- **Loads:** Workflow state, agent definition, persona, behavior guide, sprint context, session, sidecars
|
|
134
134
|
- **Sidecar location:** `.pennyfarthing/sidecars/{agent}/*.md`
|
|
135
135
|
- **Behavior guide:** `.pennyfarthing/guides/agent-behavior.md` (all agents)
|
|
@@ -5,7 +5,7 @@ description: Code Reviewer - Critical code review and quality enforcement
|
|
|
5
5
|
<agent-activation>
|
|
6
6
|
**FIRST:** Use Bash tool to run:
|
|
7
7
|
```bash
|
|
8
|
-
pf agent start "reviewer"
|
|
8
|
+
source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "reviewer"
|
|
9
9
|
```
|
|
10
10
|
This loads your persona and agent context. Adopt the character shown in the output.
|
|
11
11
|
</agent-activation>
|
|
@@ -16,19 +16,19 @@ Manage work session lifecycle. Start new stories from the backlog or resume from
|
|
|
16
16
|
Start the next available story from the sprint backlog.
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
pf session new
|
|
19
|
+
pf.sh session new
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
Equivalent to `pf sprint work next`. Auto-selects the highest priority story.
|
|
22
|
+
Equivalent to `pf.sh sprint work next`. Auto-selects the highest priority story.
|
|
23
23
|
|
|
24
24
|
### `/pf-session continue [--list] [--story-id ID]`
|
|
25
25
|
|
|
26
26
|
Resume work from a saved checkpoint after context circuit breaker.
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
pf session continue # Interactive checkpoint selection
|
|
30
|
-
pf session continue --list # Show available checkpoints
|
|
31
|
-
pf session continue --story-id MSSCI-12345 # Resume specific story
|
|
29
|
+
pf.sh session continue # Interactive checkpoint selection
|
|
30
|
+
pf.sh session continue --list # Show available checkpoints
|
|
31
|
+
pf.sh session continue --story-id MSSCI-12345 # Resume specific story
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
## Quick Reference
|
|
@@ -41,8 +41,8 @@ pf session continue --story-id MSSCI-12345 # Resume specific story
|
|
|
41
41
|
## CLI Equivalent
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
pf session new
|
|
45
|
-
pf session continue [--list] [--story-id ID]
|
|
44
|
+
pf.sh session new
|
|
45
|
+
pf.sh session continue [--list] [--story-id ID]
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
## Related
|
|
@@ -5,7 +5,7 @@ description: Scrum Master - Story coordination and sprint management
|
|
|
5
5
|
<agent-activation>
|
|
6
6
|
**FIRST:** Use Bash tool to run:
|
|
7
7
|
```bash
|
|
8
|
-
pf agent start "sm"
|
|
8
|
+
source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "sm"
|
|
9
9
|
```
|
|
10
10
|
This loads your persona and agent context. Adopt the character shown in the output.
|
|
11
11
|
</agent-activation>
|
|
@@ -20,7 +20,7 @@ Never manually edit `sprint/current-sprint.yaml`. Always use the provided script
|
|
|
20
20
|
Show current sprint status with story counts and points.
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
|
-
pf sprint status [filter]
|
|
23
|
+
pf.sh sprint status [filter]
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
| Filter | Description |
|
|
@@ -35,7 +35,7 @@ pf sprint status [filter]
|
|
|
35
35
|
Show available stories ready for work, grouped by epic.
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
pf sprint backlog
|
|
38
|
+
pf.sh sprint backlog
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
### `/pf-sprint work [story-id|epic-id|next]`
|
|
@@ -59,7 +59,7 @@ if [[ "$OPEN_PRS" -gt 0 ]]; then
|
|
|
59
59
|
fi
|
|
60
60
|
|
|
61
61
|
# Check if story is available
|
|
62
|
-
pf sprint check <story-id>
|
|
62
|
+
pf.sh sprint check <story-id>
|
|
63
63
|
|
|
64
64
|
# Then load SM to begin work
|
|
65
65
|
```
|
|
@@ -78,7 +78,7 @@ When starting work, this command:
|
|
|
78
78
|
Archive a completed story.
|
|
79
79
|
|
|
80
80
|
```bash
|
|
81
|
-
pf sprint archive <story-id> [pr-number] [--apply]
|
|
81
|
+
pf.sh sprint archive <story-id> [pr-number] [--apply]
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
| Option | Description |
|
|
@@ -90,7 +90,7 @@ pf sprint archive <story-id> [pr-number] [--apply]
|
|
|
90
90
|
Initialize a new sprint.
|
|
91
91
|
|
|
92
92
|
```bash
|
|
93
|
-
pf sprint new 2605 277 2026-02-03 2026-02-16 "Sprint goal"
|
|
93
|
+
pf.sh sprint new 2605 277 2026-02-03 2026-02-16 "Sprint goal"
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
### `/pf-sprint future [--epic EPIC_ID]`
|
|
@@ -98,7 +98,7 @@ pf sprint new 2605 277 2026-02-03 2026-02-16 "Sprint goal"
|
|
|
98
98
|
Show future work available for promotion.
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
|
-
pf sprint future [--epic epic-XX]
|
|
101
|
+
pf.sh sprint future [--epic epic-XX]
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
### `/pf-sprint promote <epic-id>`
|
|
@@ -106,7 +106,7 @@ pf sprint future [--epic epic-XX]
|
|
|
106
106
|
Move an epic from future.yaml to current sprint.
|
|
107
107
|
|
|
108
108
|
```bash
|
|
109
|
-
pf sprint epic promote epic-XX
|
|
109
|
+
pf.sh sprint epic promote epic-XX
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
## Quick Reference
|
|
@@ -5,7 +5,7 @@ description: Test Engineer/Architect - Test strategy and TDD
|
|
|
5
5
|
<agent-activation>
|
|
6
6
|
**FIRST:** Use Bash tool to run:
|
|
7
7
|
```bash
|
|
8
|
-
pf agent start "tea"
|
|
8
|
+
source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "tea"
|
|
9
9
|
```
|
|
10
10
|
This loads your persona and agent context. Adopt the character shown in the output.
|
|
11
11
|
</agent-activation>
|
|
@@ -5,7 +5,7 @@ description: Technical Writer - Documentation creation and maintenance
|
|
|
5
5
|
<agent-activation>
|
|
6
6
|
**FIRST:** Use Bash tool to run:
|
|
7
7
|
```bash
|
|
8
|
-
pf agent start "tech-writer"
|
|
8
|
+
source .pennyfarthing/scripts/lib/env.sh && source "$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/lib/run-pf.sh" && run_pf agent start "tech-writer"
|
|
9
9
|
```
|
|
10
10
|
This loads your persona and agent context. Adopt the character shown in the output.
|
|
11
11
|
</agent-activation>
|