@pennyfarthing/core 11.2.1 → 11.3.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 +102 -42
- package/package.json +1 -1
- package/packages/core/dist/cli/commands/doctor-legacy.test.js +2 -2
- package/packages/core/dist/cli/commands/doctor-legacy.test.js.map +1 -1
- package/packages/core/dist/cli/commands/doctor.d.ts +55 -0
- package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/doctor.js +324 -50
- package/packages/core/dist/cli/commands/doctor.js.map +1 -1
- package/packages/core/dist/cli/commands/init.d.ts +12 -0
- package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/init.js +45 -0
- package/packages/core/dist/cli/commands/init.js.map +1 -1
- package/packages/core/dist/cli/commands/pyproject-install.test.d.ts +19 -0
- package/packages/core/dist/cli/commands/pyproject-install.test.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/pyproject-install.test.js +261 -0
- package/packages/core/dist/cli/commands/pyproject-install.test.js.map +1 -0
- package/packages/core/dist/cli/commands/stale-artifacts-cleanup.test.d.ts +17 -0
- package/packages/core/dist/cli/commands/stale-artifacts-cleanup.test.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/stale-artifacts-cleanup.test.js +470 -0
- package/packages/core/dist/cli/commands/stale-artifacts-cleanup.test.js.map +1 -0
- package/packages/core/dist/cli/commands/update-consolidation.test.js +14 -6
- package/packages/core/dist/cli/commands/update-consolidation.test.js.map +1 -1
- package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/update.js +31 -2
- package/packages/core/dist/cli/commands/update.js.map +1 -1
- package/packages/core/dist/cli/index.js +2 -0
- package/packages/core/dist/cli/index.js.map +1 -1
- package/packages/core/dist/cli/utils/python.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/python.js +11 -0
- package/packages/core/dist/cli/utils/python.js.map +1 -1
- package/packages/core/dist/cli/utils/settings-hook-migration.test.d.ts +17 -0
- package/packages/core/dist/cli/utils/settings-hook-migration.test.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/settings-hook-migration.test.js +382 -0
- package/packages/core/dist/cli/utils/settings-hook-migration.test.js.map +1 -0
- package/packages/core/dist/cli/utils/settings.d.ts +0 -4
- package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/settings.js +45 -27
- package/packages/core/dist/cli/utils/settings.js.map +1 -1
- package/packages/core/dist/cli/utils/stale-artifacts.d.ts +59 -0
- package/packages/core/dist/cli/utils/stale-artifacts.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/stale-artifacts.js +163 -0
- package/packages/core/dist/cli/utils/stale-artifacts.js.map +1 -0
- 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.test.js.map +1 -1
- package/packages/core/dist/public/css/react.css +1 -1
- package/packages/core/dist/public/js/react/react.js +9 -9
- 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.map +1 -1
- package/packages/core/dist/server/server.js +3 -2
- 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 +8 -8
- 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 +18 -0
- package/packages/core/dist/server/settings.js.map +1 -1
- package/packages/core/dist/workflow/tandem-workflow-templates.test.js +7 -5
- package/packages/core/dist/workflow/tandem-workflow-templates.test.js.map +1 -1
- package/packages/core/dist/workflow/workflow-migration.test.js +6 -5
- package/packages/core/dist/workflow/workflow-migration.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 +19 -4
- package/pennyfarthing-dist/agents/devops.md +2 -10
- package/pennyfarthing-dist/agents/reviewer-preflight.md +4 -5
- package/pennyfarthing-dist/agents/reviewer.md +17 -4
- package/pennyfarthing-dist/agents/sm-finish.md +1 -1
- package/pennyfarthing-dist/agents/sm-setup.md +7 -7
- package/pennyfarthing-dist/agents/sm.md +16 -29
- 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 +10 -10
- package/pennyfarthing-dist/commands/pf-health-check.md +31 -12
- 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/{confidence-sm.md → confidence.md} +16 -17
- package/pennyfarthing-dist/gates/dev-exit.md +75 -0
- package/pennyfarthing-dist/gates/merge-ready.md +49 -0
- package/pennyfarthing-dist/gates/release-ready.md +95 -0
- package/pennyfarthing-dist/gates/reviewer-preflight-check.md +90 -0
- package/pennyfarthing-dist/gates/sm-setup-exit.md +82 -0
- package/pennyfarthing-dist/guides/agent-behavior.md +129 -20
- 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 +10 -5
- package/pennyfarthing-dist/guides/handoff-cli.md +8 -8
- package/pennyfarthing-dist/guides/hooks.md +27 -27
- 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 +1 -1
- package/pennyfarthing-dist/scripts/core/pf.sh +5 -0
- package/pennyfarthing-dist/scripts/core/phase-check-start.sh +2 -5
- 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 +3 -3
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/context-warning.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/cyclist-pretooluse-hook.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +5 -4
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +2 -1
- package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/session-start.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/session-stop.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +3 -4
- package/pennyfarthing-dist/scripts/lib/env.sh +34 -0
- package/pennyfarthing-dist/scripts/lib/find-root.sh +5 -0
- package/pennyfarthing-dist/scripts/lib/run-pf.sh +43 -0
- package/pennyfarthing-dist/scripts/misc/README.md +1 -1
- package/pennyfarthing-dist/scripts/misc/statusline.sh +3 -3
- 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-settings/skill.md +42 -0
- 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 +34 -19
- package/pennyfarthing-dist/templates/pyproject.toml +27 -0
- package/pennyfarthing-dist/templates/settings.local.json.template +11 -11
- package/pennyfarthing-dist/workflows/bdd-tandem.yaml +7 -3
- package/pennyfarthing-dist/workflows/bdd-team.yaml +89 -0
- package/pennyfarthing-dist/workflows/bdd.yaml +7 -3
- 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/installation-check/steps/step-01-foundation.md +77 -0
- package/pennyfarthing-dist/workflows/installation-check/steps/step-02-commands.md +82 -0
- package/pennyfarthing-dist/workflows/installation-check/steps/step-03-hooks.md +121 -0
- package/pennyfarthing-dist/workflows/installation-check/steps/step-04-scripts.md +83 -0
- package/pennyfarthing-dist/workflows/installation-check/steps/step-05-layout.md +81 -0
- package/pennyfarthing-dist/workflows/installation-check/steps/step-06-legacy.md +94 -0
- package/pennyfarthing-dist/workflows/installation-check/steps/step-07-tools.md +80 -0
- package/pennyfarthing-dist/workflows/installation-check/steps/step-08-summary.md +99 -0
- package/pennyfarthing-dist/workflows/installation-check/workflow.yaml +47 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +47 -0
- package/pennyfarthing-dist/workflows/tdd-tandem.yaml +7 -3
- package/pennyfarthing-dist/workflows/tdd-team.yaml +80 -0
- package/pennyfarthing-dist/workflows/tdd.yaml +7 -3
- package/pennyfarthing-dist/workflows/trivial.yaml +7 -3
- package/pennyfarthing_scripts/__init__.py +1 -1
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/context.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/context.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/focus.cpython-311.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 +23 -2
- package/pennyfarthing_scripts/bc/focus.py +1 -0
- package/pennyfarthing_scripts/bc/split.py +52 -0
- package/pennyfarthing_scripts/bellmode_hook.py +2 -5
- package/pennyfarthing_scripts/bikerack/__pycache__/__init__.cpython-311.pyc +0 -0
- 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__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/cli.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-311.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 +48 -6
- package/pennyfarthing_scripts/bikerack/context_meter_footer.py +53 -3
- package/pennyfarthing_scripts/bikerack/launcher.py +6 -6
- package/pennyfarthing_scripts/bikerack/progress_panel.py +0 -1
- package/pennyfarthing_scripts/bikerack/sprint_panel.py +1 -1
- package/pennyfarthing_scripts/bikerack/story_detail_data.py +4 -1
- package/pennyfarthing_scripts/bikerack/story_detail_screen.py +2 -1
- package/pennyfarthing_scripts/bikerack/tui.py +214 -10
- package/pennyfarthing_scripts/bikerack/ws_client.py +2 -2
- package/pennyfarthing_scripts/cli.py +5 -0
- package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/config.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/output.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/pr_config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/config.py +29 -2
- package/pennyfarthing_scripts/consultation/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/consultation/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/consultation/__pycache__/cli.cpython-311.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/deadcode/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/epic/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/epic/__pycache__/cli.cpython-311.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__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/git_group/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/git_group/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/cli.cpython-311.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/healthscore/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/analyze.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/models.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__init__.py +8 -3
- package/pennyfarthing_scripts/hooks/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/bell_mode.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/bell_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/context_breaker.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/context_breaker.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/context_warning.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/context_warning.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/cyclist_pretooluse.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/cyclist_pretooluse.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/pre_edit_check.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/pre_edit_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/reflector_check.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/schema_validation.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/schema_validation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/session_start.cpython-311.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-311.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/sprint_yaml_validation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/statusline.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/statusline.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/bell_mode.py +0 -1
- package/pennyfarthing_scripts/hooks/pre_edit_check.py +0 -1
- package/pennyfarthing_scripts/hooks/reflector_check.py +1 -2
- package/pennyfarthing_scripts/hooks/schema_validation.py +0 -1
- package/pennyfarthing_scripts/hooks/session_start.py +6 -8
- package/pennyfarthing_scripts/hooks/statusline.py +10 -1
- package/pennyfarthing_scripts/hotspots/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/analyze.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/models.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/client.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/create.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/operations.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/reconcile.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/story.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/launch/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/launch/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/heatmap.py +3 -15
- package/pennyfarthing_scripts/session/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/session/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/settings/__init__.py +0 -0
- package/pennyfarthing_scripts/settings/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/settings/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/settings/__pycache__/settings.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/settings/cli.py +55 -0
- package/pennyfarthing_scripts/settings/settings.py +98 -0
- package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/epic_add.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/epic_update.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_add.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/validate_cmd.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/yaml_io.cpython-311.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 +7 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_bikerack.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/test_bikerack.py +26 -26
- package/pennyfarthing_scripts/tests/test_confidence_sm_gate.py +17 -16
- package/pennyfarthing_scripts/tests/test_dialogue_manager.py +0 -1
- package/pennyfarthing_scripts/tests/test_resolve_gate_file_field.py +45 -47
- package/pennyfarthing_scripts/tests/test_workflow_list_team.py +143 -0
- package/pennyfarthing_scripts/theme/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/theme/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/validate/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/validate/__pycache__/cli.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/validate/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/team_mode.py +323 -0
- package/pennyfarthing_scripts/workflow/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/cli.cpython-311.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-311.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/scale.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/state.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/state.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/cli.py +15 -14
- package/pennyfarthing_scripts/workflow/state.py +0 -1
- package/pennyfarthing_scripts/workflow/team_lifecycle.py +3 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-team-templates.test.js","sourceRoot":"","sources":["../../src/workflow/workflow-team-templates.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,10 +89,10 @@ STORY_ID: "{STORY_ID}"
|
|
|
89
89
|
|
|
90
90
|
Read `**Workflow:**` and `**Phase:**` from session. Query:
|
|
91
91
|
```bash
|
|
92
|
-
OWNER=$(pf workflow phase-check {workflow} {phase})
|
|
92
|
+
OWNER=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow phase-check {workflow} {phase})
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
**If OWNER != "dev":** Run `pf handoff marker $OWNER`, output result, tell user.
|
|
95
|
+
**If OWNER != "dev":** Run `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker $OWNER`, output result, tell user.
|
|
96
96
|
</phase-check>
|
|
97
97
|
|
|
98
98
|
<on-activation>
|
|
@@ -155,11 +155,13 @@ Write to session file BEFORE starting exit protocol:
|
|
|
155
155
|
<self-review>
|
|
156
156
|
## Self-Review Before Handoff
|
|
157
157
|
|
|
158
|
+
**Gated checks** (enforced by `gates/dev-exit`):
|
|
159
|
+
Tests green, working tree clean, no debug code, correct branch.
|
|
160
|
+
|
|
161
|
+
**Judgment checks** (your responsibility):
|
|
158
162
|
- [ ] Code is wired to front end or other components
|
|
159
163
|
- [ ] Code follows project patterns
|
|
160
164
|
- [ ] All acceptance criteria met
|
|
161
|
-
- [ ] Tests passing (not skipped!)
|
|
162
|
-
- [ ] No console.log or debug code
|
|
163
165
|
- [ ] Error handling implemented
|
|
164
166
|
</self-review>
|
|
165
167
|
|
|
@@ -193,6 +195,19 @@ When your workflow phase has `tandem.mode: consultation`, you can spawn the part
|
|
|
193
195
|
**If consultation fails:** Continue solo — consultation is advisory, not blocking.
|
|
194
196
|
</tandem-consultation>
|
|
195
197
|
|
|
198
|
+
<team-mode>
|
|
199
|
+
## Team Mode (Lead)
|
|
200
|
+
|
|
201
|
+
When the green phase has a `team:` block in workflow YAML, Dev acts as **lead**:
|
|
202
|
+
|
|
203
|
+
1. **On phase entry:** Detect team config, create team with `TeamCreate`
|
|
204
|
+
2. **Spawn teammates** per workflow YAML `teammates:` list (e.g., Architect for pattern review, TEA for regression watching)
|
|
205
|
+
3. **During phase:** Coordinate via `SendMessage`, implement features while teammates review in parallel
|
|
206
|
+
4. **Before exit:** Shut down all teammates before starting exit protocol — send `shutdown_request`, await responses, then `TeamDelete`
|
|
207
|
+
|
|
208
|
+
Teammates are phase-scoped — created at phase start, destroyed at phase end.
|
|
209
|
+
</team-mode>
|
|
210
|
+
|
|
196
211
|
<skills>
|
|
197
212
|
- `/pf-testing` - Test commands and patterns
|
|
198
213
|
- `/pf-code-review` - Self-review checklist
|
|
@@ -27,11 +27,7 @@ Every manual step is a future incident. Every one-off fix is technical debt. If
|
|
|
27
27
|
- Electron build and packaging (cyclist)
|
|
28
28
|
- Release management and versioning
|
|
29
29
|
|
|
30
|
-
**Before deploying or releasing:**
|
|
31
|
-
- [ ] All tests pass (spawn testing-runner)
|
|
32
|
-
- [ ] Build succeeds on all platforms
|
|
33
|
-
- [ ] Version bumped appropriately
|
|
34
|
-
- [ ] Changelog updated
|
|
30
|
+
**Before deploying or releasing:** Enforced by `gates/release-ready` (tests green, build succeeds, version bumped, changelog updated).
|
|
35
31
|
</critical>
|
|
36
32
|
|
|
37
33
|
<on-activation>
|
|
@@ -85,11 +81,7 @@ FILE_LIST: "{comma-separated config file paths}"
|
|
|
85
81
|
- Electron build and packaging (cyclist)
|
|
86
82
|
- Release management and versioning
|
|
87
83
|
|
|
88
|
-
**Before deploying or releasing:**
|
|
89
|
-
- [ ] All tests pass (spawn testing-runner)
|
|
90
|
-
- [ ] Build succeeds on all platforms
|
|
91
|
-
- [ ] Version bumped appropriately
|
|
92
|
-
- [ ] Changelog updated
|
|
84
|
+
**Before deploying or releasing:** Enforced by `gates/release-ready` (tests green, build succeeds, version bumped, changelog updated).
|
|
93
85
|
</critical>
|
|
94
86
|
|
|
95
87
|
<skills>
|
|
@@ -17,12 +17,11 @@ model: haiku
|
|
|
17
17
|
<gate>
|
|
18
18
|
## Pre-Flight Checklist
|
|
19
19
|
|
|
20
|
+
Mechanical checks enforced by `gates/reviewer-preflight-check`: tests green (cache-aware), no debug code, error boundaries (UI only).
|
|
21
|
+
|
|
22
|
+
**Additional data gathering** (this subagent's responsibility):
|
|
20
23
|
- [ ] Checkout branch and get diff stats
|
|
21
|
-
- [ ]
|
|
22
|
-
- [ ] Run tests via testing-runner (if no cache)
|
|
23
|
-
- [ ] Code smell detection in changed files
|
|
24
|
-
- [ ] Error boundary check (UI only)
|
|
25
|
-
- [ ] Get PR details
|
|
24
|
+
- [ ] Get PR details via `gh pr view`
|
|
26
25
|
</gate>
|
|
27
26
|
|
|
28
27
|
## 1. Checkout and Diff
|
|
@@ -46,10 +46,10 @@ PR_NUMBER: "{PR_NUMBER}"
|
|
|
46
46
|
|
|
47
47
|
Read `**Workflow:**` and `**Phase:**` from session. Query:
|
|
48
48
|
```bash
|
|
49
|
-
OWNER=$(pf workflow phase-check {workflow} {phase})
|
|
49
|
+
OWNER=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow phase-check {workflow} {phase})
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
**If OWNER != "reviewer":** Run `pf handoff marker $OWNER`, output result, tell user.
|
|
52
|
+
**If OWNER != "reviewer":** Run `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker $OWNER`, output result, tell user.
|
|
53
53
|
</phase-check>
|
|
54
54
|
|
|
55
55
|
<on-activation>
|
|
@@ -125,13 +125,13 @@ OWNER=$(pf workflow phase-check {workflow} {phase})
|
|
|
125
125
|
<exit>
|
|
126
126
|
### If APPROVED:
|
|
127
127
|
1. Write Reviewer Assessment (verdict: APPROVED)
|
|
128
|
-
2. Update story: `pf sprint story update {STORY_ID} --review-verdict approved`
|
|
128
|
+
2. Update story: `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint story update {STORY_ID} --review-verdict approved`
|
|
129
129
|
3. Follow <agent-exit-protocol> (resolve-gate → complete-phase review→finish → marker sm)
|
|
130
130
|
4. **DO NOT merge PRs** — SM handles PR creation and merge in the finish phase.
|
|
131
131
|
|
|
132
132
|
### If REJECTED:
|
|
133
133
|
1. Write Reviewer Assessment (verdict: REJECTED, with severity table)
|
|
134
|
-
2. Update story: `pf sprint story update {STORY_ID} --review-verdict rejected --review-findings "summary of findings"`
|
|
134
|
+
2. Update story: `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint story update {STORY_ID} --review-verdict rejected --review-findings "summary of findings"`
|
|
135
135
|
3. If findings are testable (logic bugs, missing edge cases):
|
|
136
136
|
- Follow <agent-exit-protocol> (resolve-gate → complete-phase → marker tea)
|
|
137
137
|
4. If findings are lint/format/dead-code only:
|
|
@@ -151,6 +151,19 @@ When your workflow phase has `tandem.mode: consultation`, you can spawn the part
|
|
|
151
151
|
**If consultation fails:** Continue solo — consultation is advisory, not blocking.
|
|
152
152
|
</tandem-consultation>
|
|
153
153
|
|
|
154
|
+
<team-mode>
|
|
155
|
+
## Team Mode (Lead)
|
|
156
|
+
|
|
157
|
+
When the review phase has a `team:` block in workflow YAML, Reviewer acts as **lead**:
|
|
158
|
+
|
|
159
|
+
1. **On phase entry:** Detect team config, create team with `TeamCreate`
|
|
160
|
+
2. **Spawn teammates** per workflow YAML `teammates:` list (e.g., Architect for architectural pattern validation)
|
|
161
|
+
3. **During phase:** Coordinate via `SendMessage`, perform adversarial review while teammates check specific concerns in parallel
|
|
162
|
+
4. **Before exit:** Shut down all teammates before starting exit protocol — send `shutdown_request`, await responses, then `TeamDelete`
|
|
163
|
+
|
|
164
|
+
Teammates are phase-scoped — created at phase start, destroyed at phase end.
|
|
165
|
+
</team-mode>
|
|
166
|
+
|
|
154
167
|
<skills>
|
|
155
168
|
- `/pf-code-review` - Review checklists, security/performance patterns
|
|
156
169
|
- `/pf-testing` - Test commands for verification
|
|
@@ -53,7 +53,7 @@ The script returns JSON with:
|
|
|
53
53
|
<critical>
|
|
54
54
|
## Jira Transition
|
|
55
55
|
|
|
56
|
-
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`.
|
|
57
57
|
Do NOT transition Jira here - that would duplicate the finish script's work.
|
|
58
58
|
This subagent only performs preflight checks and assessment.
|
|
59
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,17 +167,14 @@ 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
|
|
|
174
174
|
<merge-gate>
|
|
175
175
|
## Merge Gate (BLOCKING)
|
|
176
176
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
Draft PRs are allowed — they represent in-progress work that isn't ready for review yet.
|
|
180
|
-
Non-draft open PRs → incomplete work → merge conflicts, stale branches, CI failures.
|
|
177
|
+
Enforced by `gates/merge-ready`. Blocks new work if non-draft PRs are open.
|
|
181
178
|
|
|
182
179
|
**Resolution:** Merge/close all non-draft PRs first. Use `/reviewer` to complete reviews.
|
|
183
180
|
</merge-gate>
|
|
@@ -185,23 +182,13 @@ Non-draft open PRs → incomplete work → merge conflicts, stale branches, CI f
|
|
|
185
182
|
<gate>
|
|
186
183
|
## Pre-Handoff Checklist (BLOCKING)
|
|
187
184
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
```bash
|
|
191
|
-
# This MUST succeed before handoff
|
|
192
|
-
ls .session/{story-id}-session.md || echo "BLOCKED: No session file"
|
|
193
|
-
```
|
|
185
|
+
Enforced by `gates/sm-setup-exit`: session exists, fields set, context exists, branch created.
|
|
194
186
|
|
|
195
187
|
**If session file does not exist → DO NOT HANDOFF. Run sm-setup first.**
|
|
196
188
|
|
|
197
|
-
|
|
198
|
-
- [ ] Session file EXISTS: `.session/{story-id}-session.md`
|
|
199
|
-
- [ ] Session has `**Workflow:**` field set
|
|
200
|
-
- [ ] Session has `**Phase:**` field set to `setup`
|
|
201
|
-
- [ ] Epic context exists: `sprint/context/context-epic-{N}.md`
|
|
202
|
-
- [ ] Story context written: Technical approach, files, ACs
|
|
189
|
+
**Judgment checks** (your responsibility):
|
|
203
190
|
- [ ] Jira claimed (or explicitly skipped)
|
|
204
|
-
- [ ]
|
|
191
|
+
- [ ] Story context written with technical approach and ACs
|
|
205
192
|
|
|
206
193
|
**Common failure mode:** Skipping sm-setup and jumping to implementation. The next agent WILL fail without a session file. Always setup first.
|
|
207
194
|
</gate>
|
|
@@ -212,7 +199,7 @@ Before handoff, verify ALL of these:
|
|
|
212
199
|
> **Triggered when:** `EMPTY_BACKLOG_STATE`
|
|
213
200
|
|
|
214
201
|
1. Report: "Sprint backlog empty. All stories done or cancelled."
|
|
215
|
-
2. Show future work: `pf sprint future`
|
|
202
|
+
2. Show future work: `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint future`
|
|
216
203
|
3. Offer: "Promote stories from `future.yaml`?" → `/pf-sprint promote {epic-id}`
|
|
217
204
|
|
|
218
205
|
**Never suggest:** Closing sprint early, starting sprint planning. Sprints are fixed two-week periods.
|
|
@@ -262,10 +249,10 @@ SM does NOT hand off to agents. Instead, use `/pf-workflow start {name}` to begi
|
|
|
262
249
|
|
|
263
250
|
Read `**Workflow:**` and `**Phase:**` from session. Query:
|
|
264
251
|
```bash
|
|
265
|
-
OWNER=$(pf workflow phase-check {workflow} {phase})
|
|
252
|
+
OWNER=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow phase-check {workflow} {phase})
|
|
266
253
|
```
|
|
267
254
|
|
|
268
|
-
**If OWNER != "sm":** Run `pf handoff marker $OWNER`, output result, tell user.
|
|
255
|
+
**If OWNER != "sm":** Run `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker $OWNER`, output result, tell user.
|
|
269
256
|
|
|
270
257
|
**Note:** SM also handles `approved` status (finish phase).
|
|
271
258
|
</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.
|
|
@@ -28,17 +28,17 @@ Organize uncommitted changes into proper commits and branches.
|
|
|
28
28
|
**When this subcommand is invoked, immediately start the stepped workflow:**
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
pf workflow start git-cleanup
|
|
31
|
+
pf.sh workflow start git-cleanup
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
Then follow each step's instructions. Use `pf workflow complete-step git-cleanup` to advance between steps. The workflow handles multi-repo analysis, change categorization, branch creation, commits, and push.
|
|
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.
|
|
35
35
|
|
|
36
36
|
### `/pf-git branches <story-id>`
|
|
37
37
|
|
|
38
38
|
Create feature branches in both repos from a story.
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
pf git branches 86-3
|
|
41
|
+
pf.sh git branches 86-3
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
### `/pf-git release`
|
|
@@ -46,7 +46,7 @@ pf git branches 86-3
|
|
|
46
46
|
Interactive release with verification gates.
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
pf git release
|
|
49
|
+
pf.sh git release
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
Starts the release stepped workflow — an 11-step process with gates at each stage.
|
|
@@ -62,13 +62,13 @@ Starts the release stepped workflow — an 11-step process with gates at each st
|
|
|
62
62
|
|
|
63
63
|
## CLI Equivalent
|
|
64
64
|
|
|
65
|
-
All commands are also available via `pf git`:
|
|
65
|
+
All commands are also available via `pf.sh git`:
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
|
-
pf git status
|
|
69
|
-
pf git cleanup
|
|
70
|
-
pf git branches 86-3
|
|
71
|
-
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
|
|
72
72
|
```
|
|
73
73
|
|
|
74
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>
|
|
@@ -24,28 +24,47 @@ Examine current Pennyfarthing installation, detect drift from expected state, an
|
|
|
24
24
|
|
|
25
25
|
<health-checks>
|
|
26
26
|
|
|
27
|
-
## Health Check
|
|
27
|
+
## Health Check Modes
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
### Quick Mode (CLI — for automation/CI)
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
32
|
# Full health check
|
|
33
33
|
pennyfarthing doctor
|
|
34
34
|
|
|
35
|
-
#
|
|
36
|
-
|
|
35
|
+
# Check a specific category
|
|
36
|
+
pennyfarthing doctor --category hooks
|
|
37
|
+
|
|
38
|
+
# List available categories
|
|
39
|
+
pennyfarthing doctor --list-categories
|
|
37
40
|
|
|
38
41
|
# Auto-fix issues
|
|
39
42
|
pennyfarthing doctor --fix
|
|
43
|
+
|
|
44
|
+
# Auto-fix a specific category
|
|
45
|
+
pennyfarthing doctor --fix --category legacy
|
|
46
|
+
|
|
47
|
+
# JSON output for scripting
|
|
48
|
+
pennyfarthing doctor --json --category installation
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Categories: `installation`, `commands`, `hooks`, `scripts`, `layout`, `legacy`, `tools`
|
|
52
|
+
|
|
53
|
+
### Interactive Mode (Workflow — for onboarding/troubleshooting)
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
/pf-workflow start installation-check
|
|
40
57
|
```
|
|
41
58
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
59
|
+
Walks through 8 steps with AI-guided explanation and remediation:
|
|
60
|
+
1. **Foundation** — manifest, core files, symlinks
|
|
61
|
+
2. **Commands & Skills** — slash commands, skills, user files
|
|
62
|
+
3. **Hook Configuration** — all 9 settings.local.json hooks (gated)
|
|
63
|
+
4. **Hook Scripts** — script files exist and are executable
|
|
64
|
+
5. **Directory Layout** — files at correct locations
|
|
65
|
+
6. **Legacy Cleanup** — old artifacts from previous versions (gated)
|
|
66
|
+
7. **Optional Tools** — Cyclist, pf CLI
|
|
67
|
+
8. **Summary** — health score and prioritized recommendations
|
|
49
68
|
|
|
50
69
|
## Check for Updates
|
|
51
70
|
|