@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
|
@@ -4,54 +4,54 @@
|
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
# List all available themes with tiers
|
|
7
|
-
pf theme list
|
|
7
|
+
pf.sh theme list
|
|
8
8
|
|
|
9
9
|
# Show current theme
|
|
10
|
-
pf theme show
|
|
10
|
+
pf.sh theme show
|
|
11
11
|
|
|
12
12
|
# Show specific theme
|
|
13
|
-
pf theme show blade-runner
|
|
13
|
+
pf.sh theme show blade-runner
|
|
14
14
|
|
|
15
15
|
# Show full details (OCEAN, quirks, catchphrases)
|
|
16
|
-
pf theme show blade-runner --full
|
|
17
|
-
pf theme show fifth-element --full
|
|
16
|
+
pf.sh theme show blade-runner --full
|
|
17
|
+
pf.sh theme show fifth-element --full
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
## Changing Theme
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
23
|
# Set theme
|
|
24
|
-
pf theme set blade-runner
|
|
24
|
+
pf.sh theme set blade-runner
|
|
25
25
|
|
|
26
26
|
# Preview without changing
|
|
27
|
-
pf theme set blade-runner --dry-run
|
|
27
|
+
pf.sh theme set blade-runner --dry-run
|
|
28
28
|
|
|
29
29
|
# Refresh agent persona after change
|
|
30
|
-
pf agent start "sm"
|
|
30
|
+
pf.sh agent start "sm"
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
## Creating Custom Themes
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
36
|
# Create from current theme
|
|
37
|
-
pf theme create my-team
|
|
37
|
+
pf.sh theme create my-team
|
|
38
38
|
|
|
39
39
|
# Create from specific base
|
|
40
|
-
pf theme create my-team --base blade-runner
|
|
40
|
+
pf.sh theme create my-team --base blade-runner
|
|
41
41
|
|
|
42
42
|
# Create as user-level (available across projects)
|
|
43
|
-
pf theme create my-team --user
|
|
43
|
+
pf.sh theme create my-team --user
|
|
44
44
|
|
|
45
45
|
# Create from specific base as user-level
|
|
46
|
-
pf theme create my-team --base fifth-element --user
|
|
46
|
+
pf.sh theme create my-team --base fifth-element --user
|
|
47
47
|
|
|
48
48
|
# Preview
|
|
49
|
-
pf theme create my-team --base blade-runner --dry-run
|
|
49
|
+
pf.sh theme create my-team --base blade-runner --dry-run
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
After creation:
|
|
53
53
|
1. Edit the theme file to customize agents
|
|
54
|
-
2. Run `pf theme set my-team` to activate
|
|
54
|
+
2. Run `pf.sh theme set my-team` to activate
|
|
55
55
|
|
|
56
56
|
## Theme Maker (Interactive)
|
|
57
57
|
|
|
@@ -73,7 +73,7 @@ Specify character name, style, and quote for each agent. Skip agents for default
|
|
|
73
73
|
### After Creation
|
|
74
74
|
```bash
|
|
75
75
|
# Activate the new theme
|
|
76
|
-
pf theme set my-universe
|
|
76
|
+
pf.sh theme set my-universe
|
|
77
77
|
|
|
78
78
|
# Generate portraits (optional, requires GPU)
|
|
79
79
|
./scripts/generate-portraits.sh --theme my-universe
|
|
@@ -12,18 +12,18 @@ Manage persona themes for agent characters.
|
|
|
12
12
|
|
|
13
13
|
| Command | CLI | Purpose |
|
|
14
14
|
|---------|-----|---------|
|
|
15
|
-
| `/theme` | `pf theme show` | Show current theme |
|
|
16
|
-
| `/theme list` | `pf theme list` | List all available themes |
|
|
17
|
-
| `/theme show [name]` | `pf theme show [name] [--full]` | Show theme details |
|
|
18
|
-
| `/theme set <name>` | `pf theme set <name> [--dry-run]` | Set active theme |
|
|
19
|
-
| `/theme create <name>` | `pf theme create <name> [--base X] [--user] [--dry-run]` | Create from base theme |
|
|
15
|
+
| `/theme` | `pf.sh theme show` | Show current theme |
|
|
16
|
+
| `/theme list` | `pf.sh theme list` | List all available themes |
|
|
17
|
+
| `/theme show [name]` | `pf.sh theme show [name] [--full]` | Show theme details |
|
|
18
|
+
| `/theme set <name>` | `pf.sh theme set <name> [--dry-run]` | Set active theme |
|
|
19
|
+
| `/theme create <name>` | `pf.sh theme create <name> [--base X] [--user] [--dry-run]` | Create from base theme |
|
|
20
20
|
| `/theme maker` | *(interactive wizard)* | AI-driven theme creation |
|
|
21
21
|
|
|
22
22
|
### After Setting a Theme
|
|
23
23
|
|
|
24
24
|
Refresh the current agent persona:
|
|
25
25
|
```bash
|
|
26
|
-
pf agent start "sm"
|
|
26
|
+
pf.sh agent start "sm"
|
|
27
27
|
```
|
|
28
28
|
Adopt the new character immediately.
|
|
29
29
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
### List Themes
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
pf theme list
|
|
8
|
+
pf.sh theme list
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
No arguments. Shows all available themes with:
|
|
@@ -17,7 +17,7 @@ Copy output into response text — Bash tool output may be collapsed in the UI.
|
|
|
17
17
|
### Show Theme
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
pf theme show [NAME] [--full]
|
|
20
|
+
pf.sh theme show [NAME] [--full]
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
| Arg/Option | Required | Description |
|
|
@@ -30,7 +30,7 @@ Copy output into response text.
|
|
|
30
30
|
### Set Theme
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
pf theme set <NAME> [--dry-run]
|
|
33
|
+
pf.sh theme set <NAME> [--dry-run]
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
| Arg/Option | Required | Description |
|
|
@@ -42,14 +42,14 @@ Updates `.pennyfarthing/config.local.yaml` with theme name and character map.
|
|
|
42
42
|
|
|
43
43
|
After setting, refresh agent persona:
|
|
44
44
|
```bash
|
|
45
|
-
pf agent start "sm"
|
|
45
|
+
pf.sh agent start "sm"
|
|
46
46
|
```
|
|
47
47
|
Adopt the new character immediately.
|
|
48
48
|
|
|
49
49
|
### Create Theme
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
|
-
pf theme create <NAME> [--base <THEME>] [--user] [--dry-run]
|
|
52
|
+
pf.sh theme create <NAME> [--base <THEME>] [--user] [--dry-run]
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
| Arg/Option | Required | Description |
|
|
@@ -4,86 +4,86 @@
|
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
# List all available workflows
|
|
7
|
-
pf workflow list
|
|
7
|
+
pf.sh workflow list
|
|
8
8
|
|
|
9
9
|
# Show TDD workflow details
|
|
10
|
-
pf workflow show tdd
|
|
10
|
+
pf.sh workflow show tdd
|
|
11
11
|
|
|
12
12
|
# Show current session's workflow
|
|
13
|
-
pf workflow show
|
|
13
|
+
pf.sh workflow show
|
|
14
14
|
|
|
15
15
|
# Show trivial workflow
|
|
16
|
-
pf workflow show trivial
|
|
16
|
+
pf.sh workflow show trivial
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Checking State
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
# Check current workflow state
|
|
23
|
-
pf workflow check
|
|
24
|
-
pf workflow check --json
|
|
23
|
+
pf.sh workflow check
|
|
24
|
+
pf.sh workflow check --json
|
|
25
25
|
|
|
26
26
|
# Who owns the "review" phase in TDD?
|
|
27
|
-
pf workflow phase-check tdd review
|
|
27
|
+
pf.sh workflow phase-check tdd review
|
|
28
28
|
# Returns: reviewer
|
|
29
29
|
|
|
30
30
|
# Who owns the "implement" phase in trivial?
|
|
31
|
-
pf workflow phase-check trivial implement
|
|
31
|
+
pf.sh workflow phase-check trivial implement
|
|
32
32
|
# Returns: dev
|
|
33
33
|
|
|
34
34
|
# Get workflow type
|
|
35
|
-
pf workflow type tdd
|
|
35
|
+
pf.sh workflow type tdd
|
|
36
36
|
# Returns: phased
|
|
37
37
|
|
|
38
|
-
pf workflow type architecture
|
|
38
|
+
pf.sh workflow type architecture
|
|
39
39
|
# Returns: stepped
|
|
40
40
|
|
|
41
41
|
# Emit handoff marker for Cyclist
|
|
42
|
-
pf workflow handoff reviewer
|
|
42
|
+
pf.sh workflow handoff reviewer
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
## Stepped Workflows (BikeLane)
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
48
|
# Start architecture workflow in create mode (default)
|
|
49
|
-
pf workflow start architecture
|
|
49
|
+
pf.sh workflow start architecture
|
|
50
50
|
|
|
51
51
|
# Start in validate mode
|
|
52
|
-
pf workflow start architecture --mode validate
|
|
52
|
+
pf.sh workflow start architecture --mode validate
|
|
53
53
|
|
|
54
54
|
# Check progress
|
|
55
|
-
pf workflow status
|
|
55
|
+
pf.sh workflow status
|
|
56
56
|
|
|
57
57
|
# Resume after interruption
|
|
58
|
-
pf workflow resume
|
|
59
|
-
pf workflow resume architecture
|
|
58
|
+
pf.sh workflow resume
|
|
59
|
+
pf.sh workflow resume architecture
|
|
60
60
|
|
|
61
61
|
# Complete current step and advance
|
|
62
|
-
pf workflow complete-step
|
|
63
|
-
pf workflow complete-step architecture --step 3
|
|
62
|
+
pf.sh workflow complete-step
|
|
63
|
+
pf.sh workflow complete-step architecture --step 3
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
## Phase Repair
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
69
|
# Preview phase fix
|
|
70
|
-
pf workflow fix-phase 56-1 review --dry-run
|
|
70
|
+
pf.sh workflow fix-phase 56-1 review --dry-run
|
|
71
71
|
|
|
72
72
|
# Fix phase to review (after Dev completed)
|
|
73
|
-
pf workflow fix-phase 56-1 review
|
|
73
|
+
pf.sh workflow fix-phase 56-1 review
|
|
74
74
|
|
|
75
75
|
# Fix phase to approved (after Reviewer approved)
|
|
76
|
-
pf workflow fix-phase 56-1 approved
|
|
76
|
+
pf.sh workflow fix-phase 56-1 approved
|
|
77
77
|
|
|
78
78
|
# Using Jira key
|
|
79
|
-
pf workflow fix-phase MSSCI-12190 approved
|
|
79
|
+
pf.sh workflow fix-phase MSSCI-12190 approved
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
## Switching Workflow Mid-Session
|
|
83
83
|
|
|
84
84
|
1. Verify the target workflow exists:
|
|
85
85
|
```bash
|
|
86
|
-
pf workflow show trivial
|
|
86
|
+
pf.sh workflow show trivial
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
2. Edit the session file:
|
|
@@ -97,16 +97,16 @@ pf workflow fix-phase MSSCI-12190 approved
|
|
|
97
97
|
### Story upgraded from trivial to TDD
|
|
98
98
|
```bash
|
|
99
99
|
# Check current state
|
|
100
|
-
pf workflow check --json
|
|
100
|
+
pf.sh workflow check --json
|
|
101
101
|
# Edit session to change workflow from trivial to tdd
|
|
102
102
|
# Fix phase to match where you are
|
|
103
|
-
pf workflow fix-phase 56-1 red
|
|
103
|
+
pf.sh workflow fix-phase 56-1 red
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
### Agent activated on wrong phase
|
|
107
107
|
```bash
|
|
108
108
|
# Check who owns the current phase
|
|
109
|
-
pf workflow phase-check tdd review
|
|
109
|
+
pf.sh workflow phase-check tdd review
|
|
110
110
|
# Returns: reviewer — hand off if you're not the reviewer
|
|
111
|
-
pf workflow handoff reviewer
|
|
111
|
+
pf.sh workflow handoff reviewer
|
|
112
112
|
```
|
|
@@ -15,18 +15,18 @@ Pennyfarthing uses YAML-defined workflows to control agent sequences. The defaul
|
|
|
15
15
|
|
|
16
16
|
| Command | CLI | Purpose |
|
|
17
17
|
|---------|-----|---------|
|
|
18
|
-
| `/pf-workflow` or `/pf-workflow list` | `pf workflow list` | List all workflows |
|
|
19
|
-
| `/pf-workflow show [name]` | `pf workflow show [name]` | Show workflow details |
|
|
18
|
+
| `/pf-workflow` or `/pf-workflow list` | `pf.sh workflow list` | List all workflows |
|
|
19
|
+
| `/pf-workflow show [name]` | `pf.sh workflow show [name]` | Show workflow details |
|
|
20
20
|
| `/pf-workflow set <name>` | Edit session file `**Workflow:**` line | Switch workflow mid-session |
|
|
21
|
-
| `/pf-workflow start <name>` | `pf workflow start <name> [--mode M]` | Start stepped workflow |
|
|
22
|
-
| `/pf-workflow resume [name]` | `pf workflow resume [name]` | Resume interrupted workflow |
|
|
23
|
-
| `/pf-workflow status` | `pf workflow status` | Show stepped workflow progress |
|
|
24
|
-
| `/pf-workflow fix-phase <id> <phase>` | `pf workflow fix-phase <id> <phase> [--dry-run]` | Repair session phase |
|
|
25
|
-
| Check workflow state | `pf workflow check [--json]` | Current story, phase, state |
|
|
26
|
-
| Check phase owner | `pf workflow phase-check <workflow> <phase>` | Which agent owns a phase |
|
|
27
|
-
| Get workflow type | `pf workflow type <workflow>` | phased/stepped/procedural |
|
|
28
|
-
| Emit handoff marker | `pf workflow handoff <next-agent>` | CYCLIST handoff marker |
|
|
29
|
-
| Complete step | `pf workflow complete-step [name] [--step N]` | Advance stepped workflow |
|
|
21
|
+
| `/pf-workflow start <name>` | `pf.sh workflow start <name> [--mode M]` | Start stepped workflow |
|
|
22
|
+
| `/pf-workflow resume [name]` | `pf.sh workflow resume [name]` | Resume interrupted workflow |
|
|
23
|
+
| `/pf-workflow status` | `pf.sh workflow status` | Show stepped workflow progress |
|
|
24
|
+
| `/pf-workflow fix-phase <id> <phase>` | `pf.sh workflow fix-phase <id> <phase> [--dry-run]` | Repair session phase |
|
|
25
|
+
| Check workflow state | `pf.sh workflow check [--json]` | Current story, phase, state |
|
|
26
|
+
| Check phase owner | `pf.sh workflow phase-check <workflow> <phase>` | Which agent owns a phase |
|
|
27
|
+
| Get workflow type | `pf.sh workflow type <workflow>` | phased/stepped/procedural |
|
|
28
|
+
| Emit handoff marker | `pf.sh workflow handoff <next-agent>` | CYCLIST handoff marker |
|
|
29
|
+
| Complete step | `pf.sh workflow complete-step [name] [--step N]` | Advance stepped workflow |
|
|
30
30
|
|
|
31
31
|
### Built-in Workflows
|
|
32
32
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
### List Workflows
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
pf workflow list
|
|
8
|
+
pf.sh workflow list
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
No arguments. Returns table of workflows with type, phases/steps count, modes, default flag, description.
|
|
@@ -13,7 +13,7 @@ No arguments. Returns table of workflows with type, phases/steps count, modes, d
|
|
|
13
13
|
### Show Workflow
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
pf workflow show [NAME]
|
|
16
|
+
pf.sh workflow show [NAME]
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
| Arg | Required | Description |
|
|
@@ -31,7 +31,7 @@ Warning: Only do this when story requirements have fundamentally changed. Switch
|
|
|
31
31
|
### Start Stepped Workflow
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
pf workflow start <NAME> [--mode <MODE>]
|
|
34
|
+
pf.sh workflow start <NAME> [--mode <MODE>]
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
| Arg/Option | Required | Description |
|
|
@@ -44,7 +44,7 @@ Creates a new session and begins at step 1.
|
|
|
44
44
|
### Resume Stepped Workflow
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
|
-
pf workflow resume [NAME]
|
|
47
|
+
pf.sh workflow resume [NAME]
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
| Arg | Required | Description |
|
|
@@ -54,7 +54,7 @@ pf workflow resume [NAME]
|
|
|
54
54
|
### Workflow Status
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
|
-
pf workflow status
|
|
57
|
+
pf.sh workflow status
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
No arguments. Shows current step, progress percentage, mode.
|
|
@@ -62,7 +62,7 @@ No arguments. Shows current step, progress percentage, mode.
|
|
|
62
62
|
### Fix Session Phase
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
pf workflow fix-phase <STORY_ID> <TARGET_PHASE> [--dry-run]
|
|
65
|
+
pf.sh workflow fix-phase <STORY_ID> <TARGET_PHASE> [--dry-run]
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
| Arg/Option | Required | Description |
|
|
@@ -83,7 +83,7 @@ Updates `**Phase:**` field, `**Phase Started:**` timestamp, and handoff history
|
|
|
83
83
|
### Complete Step
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
|
-
pf workflow complete-step [NAME] [--step N]
|
|
86
|
+
pf.sh workflow complete-step [NAME] [--step N]
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
| Arg/Option | Required | Description |
|
|
@@ -100,7 +100,7 @@ Advances session: increments step, updates completed list, recalculates percenta
|
|
|
100
100
|
### Check Workflow State
|
|
101
101
|
|
|
102
102
|
```bash
|
|
103
|
-
pf workflow check [--json]
|
|
103
|
+
pf.sh workflow check [--json]
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
| Option | Description |
|
|
@@ -112,7 +112,7 @@ Returns current story ID, phase, workflow, and state.
|
|
|
112
112
|
### Check Phase Owner
|
|
113
113
|
|
|
114
114
|
```bash
|
|
115
|
-
pf workflow phase-check <WORKFLOW_NAME> <PHASE>
|
|
115
|
+
pf.sh workflow phase-check <WORKFLOW_NAME> <PHASE>
|
|
116
116
|
```
|
|
117
117
|
|
|
118
118
|
| Arg | Required | Description |
|
|
@@ -125,7 +125,7 @@ Returns the agent name that owns the phase.
|
|
|
125
125
|
### Get Workflow Type
|
|
126
126
|
|
|
127
127
|
```bash
|
|
128
|
-
pf workflow type <WORKFLOW_NAME>
|
|
128
|
+
pf.sh workflow type <WORKFLOW_NAME>
|
|
129
129
|
```
|
|
130
130
|
|
|
131
131
|
| Arg | Required | Description |
|
|
@@ -137,7 +137,7 @@ Returns `phased`, `stepped`, or `procedural`.
|
|
|
137
137
|
### Emit Handoff Marker
|
|
138
138
|
|
|
139
139
|
```bash
|
|
140
|
-
pf workflow handoff <NEXT_AGENT>
|
|
140
|
+
pf.sh workflow handoff <NEXT_AGENT>
|
|
141
141
|
```
|
|
142
142
|
|
|
143
143
|
| Arg | Required | Description |
|
|
@@ -216,6 +216,21 @@ skills:
|
|
|
216
216
|
related_skills: []
|
|
217
217
|
keywords: [grants, scopes, tools, runtime, security]
|
|
218
218
|
|
|
219
|
+
pf-settings:
|
|
220
|
+
name: pf-settings
|
|
221
|
+
description: View and manage .pennyfarthing/config.local.yaml settings
|
|
222
|
+
category: tools
|
|
223
|
+
tags: [configuration, settings, config]
|
|
224
|
+
version: "1.0.0"
|
|
225
|
+
command_group: settings
|
|
226
|
+
examples:
|
|
227
|
+
- context: View all settings
|
|
228
|
+
invocation: /pf-settings show
|
|
229
|
+
- context: Get a specific setting
|
|
230
|
+
invocation: /pf-settings get workflow.relay_mode
|
|
231
|
+
related_skills: [pf-theme, pf-bc]
|
|
232
|
+
keywords: [theme, relay, bell, permission, display, config]
|
|
233
|
+
|
|
219
234
|
pf-persona-benchmark:
|
|
220
235
|
name: pf-persona-benchmark
|
|
221
236
|
description: Run benchmarks to compare persona effectiveness
|
|
@@ -243,15 +258,15 @@ skills:
|
|
|
243
258
|
prerequisites: []
|
|
244
259
|
examples:
|
|
245
260
|
- context: Checking sprint status
|
|
246
|
-
invocation: /sprint
|
|
261
|
+
invocation: /pf-sprint
|
|
247
262
|
- context: Finding available stories
|
|
248
|
-
invocation: /sprint backlog
|
|
263
|
+
invocation: /pf-sprint backlog
|
|
249
264
|
- context: Adding a story
|
|
250
|
-
invocation: /sprint story add epic-76 "My story" 3
|
|
265
|
+
invocation: /pf-sprint story add epic-76 "My story" 3
|
|
251
266
|
- context: Sizing guidelines
|
|
252
|
-
invocation: /sprint story size
|
|
267
|
+
invocation: /pf-sprint story size
|
|
253
268
|
- context: Adding an epic
|
|
254
|
-
invocation: /sprint epic add epic-85 "New epic"
|
|
269
|
+
invocation: /pf-sprint epic add epic-85 "New epic"
|
|
255
270
|
anti_patterns:
|
|
256
271
|
- Don't manually edit sprint YAML - use scripts
|
|
257
272
|
related_skills: [pf-jira]
|
|
@@ -278,7 +293,7 @@ skills:
|
|
|
278
293
|
|
|
279
294
|
pf-story:
|
|
280
295
|
name: pf-story
|
|
281
|
-
description: "DEPRECATED: Use /sprint story instead. Story commands consolidated under /sprint."
|
|
296
|
+
description: "DEPRECATED: Use /pf-sprint story instead. Story commands consolidated under /pf-sprint."
|
|
282
297
|
category: project-management
|
|
283
298
|
tags: [stories, sizing, workflow, deprecated]
|
|
284
299
|
version: "2.0.0"
|
|
@@ -287,12 +302,12 @@ skills:
|
|
|
287
302
|
prerequisites: []
|
|
288
303
|
examples:
|
|
289
304
|
- context: Creating new stories
|
|
290
|
-
invocation: /sprint story add
|
|
305
|
+
invocation: /pf-sprint story add
|
|
291
306
|
- context: Sizing stories
|
|
292
|
-
invocation: /sprint story size
|
|
307
|
+
invocation: /pf-sprint story size
|
|
293
308
|
anti_patterns:
|
|
294
309
|
- Don't create stories without acceptance criteria
|
|
295
|
-
- Don't use /story directly - use /sprint story instead
|
|
310
|
+
- Don't use /story directly - use /pf-sprint story instead
|
|
296
311
|
related_skills: [pf-sprint, pf-jira]
|
|
297
312
|
keywords: [user-stories, estimation, points, acceptance-criteria]
|
|
298
313
|
|
|
@@ -324,15 +339,15 @@ skills:
|
|
|
324
339
|
prerequisites: []
|
|
325
340
|
examples:
|
|
326
341
|
- context: Listing available themes
|
|
327
|
-
invocation: /theme list
|
|
342
|
+
invocation: /pf-theme list
|
|
328
343
|
- context: Showing current theme
|
|
329
|
-
invocation: /theme show
|
|
344
|
+
invocation: /pf-theme show
|
|
330
345
|
- context: Setting active theme
|
|
331
|
-
invocation: /theme set discworld
|
|
346
|
+
invocation: /pf-theme set discworld
|
|
332
347
|
- context: Creating a new theme
|
|
333
|
-
invocation: /theme create my-theme --base discworld
|
|
348
|
+
invocation: /pf-theme create my-theme --base discworld
|
|
334
349
|
- context: Interactive AI-driven theme wizard
|
|
335
|
-
invocation: /theme maker
|
|
350
|
+
invocation: /pf-theme maker
|
|
336
351
|
anti_patterns:
|
|
337
352
|
- Don't edit config.local.yaml directly - use skill
|
|
338
353
|
- Don't use deprecated /set-theme, /show-theme, /list-themes, /create-theme, /theme-maker
|
|
@@ -341,7 +356,7 @@ skills:
|
|
|
341
356
|
|
|
342
357
|
pf-theme-creation:
|
|
343
358
|
name: pf-theme-creation
|
|
344
|
-
description: "DEPRECATED: Use /theme maker instead"
|
|
359
|
+
description: "DEPRECATED: Use /pf-theme maker instead"
|
|
345
360
|
category: theming
|
|
346
361
|
tags: [personas, themes, creation]
|
|
347
362
|
version: "2.0.0"
|
|
@@ -350,7 +365,7 @@ skills:
|
|
|
350
365
|
prerequisites: []
|
|
351
366
|
examples:
|
|
352
367
|
- context: Interactive theme wizard
|
|
353
|
-
invocation: /theme maker
|
|
368
|
+
invocation: /pf-theme maker
|
|
354
369
|
anti_patterns: []
|
|
355
370
|
related_skills: [pf-theme]
|
|
356
371
|
keywords: [personas, custom, generation, wizard]
|
|
@@ -365,11 +380,11 @@ skills:
|
|
|
365
380
|
prerequisites: []
|
|
366
381
|
examples:
|
|
367
382
|
- context: Listing available workflows
|
|
368
|
-
invocation: /workflow
|
|
383
|
+
invocation: /pf-workflow
|
|
369
384
|
- context: Showing current workflow
|
|
370
|
-
invocation: /workflow show
|
|
385
|
+
invocation: /pf-workflow show
|
|
371
386
|
- context: Starting stepped workflow
|
|
372
|
-
invocation: /workflow start architecture
|
|
387
|
+
invocation: /pf-workflow start architecture
|
|
373
388
|
anti_patterns:
|
|
374
389
|
- Don't switch workflows mid-story unless requirements fundamentally changed
|
|
375
390
|
related_skills: [pf-sprint]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Auto-generated by pennyfarthing init — provides Python dependencies for hooks.
|
|
2
|
+
# This file enables `uv run --project` to resolve pennyfarthing_scripts.
|
|
3
|
+
# Safe to customize: init/update will not overwrite this file once created.
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "pennyfarthing-scripts"
|
|
7
|
+
version = "0.0.0"
|
|
8
|
+
description = "Python utilities for Pennyfarthing agent orchestration"
|
|
9
|
+
requires-python = ">=3.11"
|
|
10
|
+
|
|
11
|
+
dependencies = [
|
|
12
|
+
"pyyaml>=6.0",
|
|
13
|
+
"ruamel.yaml>=0.18",
|
|
14
|
+
"httpx>=0.28",
|
|
15
|
+
"click>=8.0",
|
|
16
|
+
"pydriller>=2.6",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
[project.scripts]
|
|
20
|
+
pf = "pennyfarthing_scripts.cli:main"
|
|
21
|
+
|
|
22
|
+
[build-system]
|
|
23
|
+
requires = ["setuptools>=68.0"]
|
|
24
|
+
build-backend = "setuptools.build_meta"
|
|
25
|
+
|
|
26
|
+
[tool.setuptools.packages.find]
|
|
27
|
+
include = ["pennyfarthing_scripts*"]
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"hooks": [
|
|
41
41
|
{
|
|
42
42
|
"type": "command",
|
|
43
|
-
"command": "pf hooks session-start"
|
|
43
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks session-start"
|
|
44
44
|
}
|
|
45
45
|
]
|
|
46
46
|
},
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"hooks": [
|
|
69
69
|
{
|
|
70
70
|
"type": "command",
|
|
71
|
-
"command": "pf hooks reflector-check"
|
|
71
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks reflector-check"
|
|
72
72
|
}
|
|
73
73
|
]
|
|
74
74
|
},
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"hooks": [
|
|
78
78
|
{
|
|
79
79
|
"type": "command",
|
|
80
|
-
"command": "pf hooks session-stop"
|
|
80
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks session-stop"
|
|
81
81
|
}
|
|
82
82
|
]
|
|
83
83
|
}
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"hooks": [
|
|
89
89
|
{
|
|
90
90
|
"type": "command",
|
|
91
|
-
"command": "pf hooks bell-mode"
|
|
91
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks bell-mode"
|
|
92
92
|
}
|
|
93
93
|
]
|
|
94
94
|
},
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"hooks": [
|
|
98
98
|
{
|
|
99
99
|
"type": "command",
|
|
100
|
-
"command": "pf hooks sprint-yaml"
|
|
100
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks sprint-yaml"
|
|
101
101
|
}
|
|
102
102
|
]
|
|
103
103
|
}
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"hooks": [
|
|
109
109
|
{
|
|
110
110
|
"type": "command",
|
|
111
|
-
"command": "pf hooks pre-edit-check"
|
|
111
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks pre-edit-check"
|
|
112
112
|
}
|
|
113
113
|
]
|
|
114
114
|
},
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"hooks": [
|
|
118
118
|
{
|
|
119
119
|
"type": "command",
|
|
120
|
-
"command": "pf hooks schema-validation"
|
|
120
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks schema-validation"
|
|
121
121
|
}
|
|
122
122
|
]
|
|
123
123
|
},
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
"hooks": [
|
|
127
127
|
{
|
|
128
128
|
"type": "command",
|
|
129
|
-
"command": "pf hooks context-warning"
|
|
129
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks context-warning"
|
|
130
130
|
}
|
|
131
131
|
]
|
|
132
132
|
},
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
"hooks": [
|
|
136
136
|
{
|
|
137
137
|
"type": "command",
|
|
138
|
-
"command": "pf hooks context-breaker"
|
|
138
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks context-breaker"
|
|
139
139
|
}
|
|
140
140
|
]
|
|
141
141
|
},
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
"hooks": [
|
|
144
144
|
{
|
|
145
145
|
"type": "command",
|
|
146
|
-
"command": "pf hooks cyclist-pretooluse"
|
|
146
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks cyclist-pretooluse"
|
|
147
147
|
}
|
|
148
148
|
]
|
|
149
149
|
}
|
|
@@ -151,6 +151,6 @@
|
|
|
151
151
|
},
|
|
152
152
|
"statusLine": {
|
|
153
153
|
"type": "command",
|
|
154
|
-
"command": "pf hooks statusline"
|
|
154
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/.pennyfarthing/scripts/core/pf.sh hooks statusline"
|
|
155
155
|
}
|
|
156
156
|
}
|
|
@@ -24,6 +24,10 @@ workflow:
|
|
|
24
24
|
- name: setup
|
|
25
25
|
agent: sm
|
|
26
26
|
output: [session_file, branches, story_context]
|
|
27
|
+
gate:
|
|
28
|
+
file: gates/sm-setup-exit
|
|
29
|
+
type: sm_setup_exit
|
|
30
|
+
condition: Session file created with workflow, phase, context, and branch
|
|
27
31
|
|
|
28
32
|
- name: design
|
|
29
33
|
agent: ux-designer
|
|
@@ -54,9 +58,9 @@ workflow:
|
|
|
54
58
|
input: [failing_tests, design_spec, story_context]
|
|
55
59
|
output: [implementation, passing_tests]
|
|
56
60
|
gate:
|
|
57
|
-
file: gates/
|
|
58
|
-
type:
|
|
59
|
-
condition:
|
|
61
|
+
file: gates/dev-exit
|
|
62
|
+
type: dev_exit
|
|
63
|
+
condition: Tests green, tree clean, no debug code, correct branch
|
|
60
64
|
tandem:
|
|
61
65
|
partner: ux-designer
|
|
62
66
|
scope: file-watch
|