@pennyfarthing/core 11.2.1 → 11.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -40
- package/package.json +1 -1
- package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/doctor.js +121 -28
- package/packages/core/dist/cli/commands/doctor.js.map +1 -1
- 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 +31 -26
- package/packages/core/dist/cli/utils/settings.js.map +1 -1
- package/packages/core/dist/consultation/dialogue-manager.d.ts +1 -1
- package/packages/core/dist/consultation/dialogue-manager.d.ts.map +1 -1
- package/packages/core/dist/consultation/dialogue-manager.js +1 -1
- package/packages/core/dist/consultation/dialogue-manager.js.map +1 -1
- package/packages/core/dist/consultation/dialogue-manager.test.js.map +1 -1
- package/packages/core/dist/consultation/tandem-metrics.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 +13 -0
- package/packages/core/dist/server/settings.js.map +1 -1
- package/packages/core/dist/workflow/team-lifecycle.d.ts +169 -0
- package/packages/core/dist/workflow/team-lifecycle.d.ts.map +1 -0
- package/packages/core/dist/workflow/team-lifecycle.js +217 -0
- package/packages/core/dist/workflow/team-lifecycle.js.map +1 -0
- package/packages/core/dist/workflow/team-lifecycle.test.d.ts +20 -0
- package/packages/core/dist/workflow/team-lifecycle.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/team-lifecycle.test.js +966 -0
- package/packages/core/dist/workflow/team-lifecycle.test.js.map +1 -0
- package/packages/core/dist/workflow/workflow-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 +15 -2
- 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 +12 -12
- package/pennyfarthing-dist/agents/tea.md +2 -2
- package/pennyfarthing-dist/agents/testing-runner.md +1 -1
- package/pennyfarthing-dist/commands/pf-architect.md +1 -1
- package/pennyfarthing-dist/commands/pf-ba.md +1 -1
- package/pennyfarthing-dist/commands/pf-chore.md +2 -2
- package/pennyfarthing-dist/commands/pf-dev.md +1 -1
- package/pennyfarthing-dist/commands/pf-devops.md +1 -1
- package/pennyfarthing-dist/commands/pf-epic.md +6 -6
- package/pennyfarthing-dist/commands/pf-git.md +10 -10
- package/pennyfarthing-dist/commands/pf-health-check.md +1 -1
- package/pennyfarthing-dist/commands/pf-help.md +12 -12
- package/pennyfarthing-dist/commands/pf-orchestrator.md +1 -1
- package/pennyfarthing-dist/commands/pf-pm.md +1 -1
- package/pennyfarthing-dist/commands/pf-prime.md +8 -8
- package/pennyfarthing-dist/commands/pf-reviewer.md +1 -1
- package/pennyfarthing-dist/commands/pf-session.md +7 -7
- package/pennyfarthing-dist/commands/pf-sm.md +1 -1
- package/pennyfarthing-dist/commands/pf-sprint.md +7 -7
- package/pennyfarthing-dist/commands/pf-tea.md +1 -1
- package/pennyfarthing-dist/commands/pf-tech-writer.md +1 -1
- package/pennyfarthing-dist/commands/pf-theme.md +9 -9
- package/pennyfarthing-dist/commands/pf-ux-designer.md +1 -1
- package/pennyfarthing-dist/commands/pf-work.md +1 -1
- package/pennyfarthing-dist/guides/agent-behavior.md +70 -19
- package/pennyfarthing-dist/guides/agent-coordination.md +10 -10
- package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +6 -6
- package/pennyfarthing-dist/guides/agent-template-tactical.md +1 -1
- package/pennyfarthing-dist/guides/bell-mode.md +1 -1
- package/pennyfarthing-dist/guides/bikerack.md +10 -10
- package/pennyfarthing-dist/guides/brownfield-tools.md +24 -24
- package/pennyfarthing-dist/guides/command-tag-taxonomy.md +1 -1
- package/pennyfarthing-dist/guides/gate-schema.md +2 -2
- package/pennyfarthing-dist/guides/gates.md +3 -3
- package/pennyfarthing-dist/guides/handoff-cli.md +8 -8
- package/pennyfarthing-dist/guides/hooks.md +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/run-pf.sh +39 -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-sprint/examples.md +80 -80
- package/pennyfarthing-dist/skills/pf-sprint/skill.md +35 -35
- package/pennyfarthing-dist/skills/pf-sprint/usage.md +30 -30
- package/pennyfarthing-dist/skills/pf-theme/examples.md +15 -15
- package/pennyfarthing-dist/skills/pf-theme/skill.md +6 -6
- package/pennyfarthing-dist/skills/pf-theme/usage.md +5 -5
- package/pennyfarthing-dist/skills/pf-workflow/examples.md +27 -27
- package/pennyfarthing-dist/skills/pf-workflow/skill.md +11 -11
- package/pennyfarthing-dist/skills/pf-workflow/usage.md +11 -11
- package/pennyfarthing-dist/skills/skill-registry.yaml +19 -19
- package/pennyfarthing-dist/templates/settings.local.json.template +11 -11
- package/pennyfarthing-dist/workflows/bdd-team.yaml +89 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +1 -1
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +1 -1
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +1 -1
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +1 -1
- package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +47 -0
- package/pennyfarthing-dist/workflows/tdd-team.yaml +80 -0
- package/pennyfarthing_scripts/__init__.py +1 -1
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/bellmode_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/context.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_bidirectional_sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/output.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/patch_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/pretooluse_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/session_start_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/focus.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/split.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/cli.py +2 -2
- package/pennyfarthing_scripts/bellmode_hook.py +2 -5
- package/pennyfarthing_scripts/bikerack/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/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-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/context_meter_footer.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/debug_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/diffs_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/events.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/git_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/launcher.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/portrait.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/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 +12 -2
- package/pennyfarthing_scripts/bikerack/ws_client.py +2 -2
- package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/config.py +29 -2
- package/pennyfarthing_scripts/complexity/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/consultation/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/consultation/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/consultation/cli.py +3 -3
- package/pennyfarthing_scripts/context.py +3 -3
- package/pennyfarthing_scripts/deadcode/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/epic/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/epic/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/gate/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/gate/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/gate/__pycache__/validate.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/hooks_installer.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/repos.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/worktree.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/hooks_installer.py +2 -3
- package/pennyfarthing_scripts/git/status_all.py +1 -1
- package/pennyfarthing_scripts/git/worktree.py +2 -2
- package/pennyfarthing_scripts/git_group/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git_group/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/complete_phase.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/gate_file.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/gate_runner.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/marker.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/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-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__init__.py +8 -3
- package/pennyfarthing_scripts/hooks/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/bell_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/context_breaker.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/context_warning.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/cyclist_pretooluse.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/pre_edit_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/schema_validation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/session_start.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/session_stop.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/sprint_yaml_validation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/statusline.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/bell_mode.py +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-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/create.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/operations.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/reconcile.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/launch/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/launch/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/session.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/skill.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/step.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/validate.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/heatmap.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/tiers.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/version_sentinel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/heatmap.py +3 -15
- package/pennyfarthing_scripts/session/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/session/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/epic_add.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/epic_update.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/import_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_add.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/validate_cmd.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/yaml_io.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/cli.py +121 -0
- package/pennyfarthing_scripts/sprint/loader.py +154 -3
- package/pennyfarthing_scripts/sprint/story_update.py +7 -0
- package/pennyfarthing_scripts/story/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/create.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/size.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/template.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_108_2_remove_handoff_fallback.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_archive_epic.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_bc.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_bikerack.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_cli_modules.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_cli_normalization.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_codemarkers.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_common.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_epic_shard_validation.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_gate_file_resolution.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_gate_runner.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_handoff_cli.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_handoff_e2e.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_healthscore.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_jira_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_package_structure.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_patch_mode.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_resolve_gate_file_field.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_panel.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_add.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_update.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tiers.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_token_counting.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_topology_loader.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tui_focus.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tui_panel_persistence.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_validate_cmd.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_version_sentinel.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_list_team.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/test_bikerack.py +26 -26
- package/pennyfarthing_scripts/tests/test_dialogue_manager.py +0 -1
- package/pennyfarthing_scripts/tests/test_workflow_list_team.py +147 -0
- package/pennyfarthing_scripts/theme/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/theme/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/agent.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/schema.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/skill_command.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/sprint.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/tandem_awareness.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/team_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/team_mode.py +323 -0
- package/pennyfarthing_scripts/workflow/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/helpers.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/scale.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/state.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/team_lifecycle.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/cli.py +15 -14
- package/pennyfarthing_scripts/workflow/state.py +0 -1
- package/pennyfarthing_scripts/workflow/team_lifecycle.py +3 -4
- package/packages/core/dist/cli/cyclist-migration.test.d.ts +0 -16
- package/packages/core/dist/cli/cyclist-migration.test.d.ts.map +0 -1
- package/packages/core/dist/cli/cyclist-migration.test.js +0 -229
- package/packages/core/dist/cli/cyclist-migration.test.js.map +0 -1
- package/packages/core/dist/scripts/benchmark-integration.d.ts +0 -182
- package/packages/core/dist/scripts/benchmark-integration.d.ts.map +0 -1
- package/packages/core/dist/scripts/benchmark-integration.js +0 -691
- package/packages/core/dist/scripts/benchmark-integration.js.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.d.ts +0 -150
- package/packages/core/dist/scripts/job-fair-aggregator.d.ts.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.js +0 -547
- package/packages/core/dist/scripts/job-fair-aggregator.js.map +0 -1
- package/packages/core/dist/scripts/theme-detail.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/theme-detail.test.js.map +0 -1
- package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/consultation/__pycache__/dialogue_manager.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_108_1_gate_migration.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_confidence_sm_evaluation.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_confidence_sm_gate.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_dialogue_manager.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_cli.cpython-314-pytest-9.0.2.pyc +0 -0
|
@@ -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 |
|
|
@@ -243,15 +243,15 @@ skills:
|
|
|
243
243
|
prerequisites: []
|
|
244
244
|
examples:
|
|
245
245
|
- context: Checking sprint status
|
|
246
|
-
invocation: /sprint
|
|
246
|
+
invocation: /pf-sprint
|
|
247
247
|
- context: Finding available stories
|
|
248
|
-
invocation: /sprint backlog
|
|
248
|
+
invocation: /pf-sprint backlog
|
|
249
249
|
- context: Adding a story
|
|
250
|
-
invocation: /sprint story add epic-76 "My story" 3
|
|
250
|
+
invocation: /pf-sprint story add epic-76 "My story" 3
|
|
251
251
|
- context: Sizing guidelines
|
|
252
|
-
invocation: /sprint story size
|
|
252
|
+
invocation: /pf-sprint story size
|
|
253
253
|
- context: Adding an epic
|
|
254
|
-
invocation: /sprint epic add epic-85 "New epic"
|
|
254
|
+
invocation: /pf-sprint epic add epic-85 "New epic"
|
|
255
255
|
anti_patterns:
|
|
256
256
|
- Don't manually edit sprint YAML - use scripts
|
|
257
257
|
related_skills: [pf-jira]
|
|
@@ -278,7 +278,7 @@ skills:
|
|
|
278
278
|
|
|
279
279
|
pf-story:
|
|
280
280
|
name: pf-story
|
|
281
|
-
description: "DEPRECATED: Use /sprint story instead. Story commands consolidated under /sprint."
|
|
281
|
+
description: "DEPRECATED: Use /pf-sprint story instead. Story commands consolidated under /pf-sprint."
|
|
282
282
|
category: project-management
|
|
283
283
|
tags: [stories, sizing, workflow, deprecated]
|
|
284
284
|
version: "2.0.0"
|
|
@@ -287,12 +287,12 @@ skills:
|
|
|
287
287
|
prerequisites: []
|
|
288
288
|
examples:
|
|
289
289
|
- context: Creating new stories
|
|
290
|
-
invocation: /sprint story add
|
|
290
|
+
invocation: /pf-sprint story add
|
|
291
291
|
- context: Sizing stories
|
|
292
|
-
invocation: /sprint story size
|
|
292
|
+
invocation: /pf-sprint story size
|
|
293
293
|
anti_patterns:
|
|
294
294
|
- Don't create stories without acceptance criteria
|
|
295
|
-
- Don't use /story directly - use /sprint story instead
|
|
295
|
+
- Don't use /story directly - use /pf-sprint story instead
|
|
296
296
|
related_skills: [pf-sprint, pf-jira]
|
|
297
297
|
keywords: [user-stories, estimation, points, acceptance-criteria]
|
|
298
298
|
|
|
@@ -324,15 +324,15 @@ skills:
|
|
|
324
324
|
prerequisites: []
|
|
325
325
|
examples:
|
|
326
326
|
- context: Listing available themes
|
|
327
|
-
invocation: /theme list
|
|
327
|
+
invocation: /pf-theme list
|
|
328
328
|
- context: Showing current theme
|
|
329
|
-
invocation: /theme show
|
|
329
|
+
invocation: /pf-theme show
|
|
330
330
|
- context: Setting active theme
|
|
331
|
-
invocation: /theme set discworld
|
|
331
|
+
invocation: /pf-theme set discworld
|
|
332
332
|
- context: Creating a new theme
|
|
333
|
-
invocation: /theme create my-theme --base discworld
|
|
333
|
+
invocation: /pf-theme create my-theme --base discworld
|
|
334
334
|
- context: Interactive AI-driven theme wizard
|
|
335
|
-
invocation: /theme maker
|
|
335
|
+
invocation: /pf-theme maker
|
|
336
336
|
anti_patterns:
|
|
337
337
|
- Don't edit config.local.yaml directly - use skill
|
|
338
338
|
- Don't use deprecated /set-theme, /show-theme, /list-themes, /create-theme, /theme-maker
|
|
@@ -341,7 +341,7 @@ skills:
|
|
|
341
341
|
|
|
342
342
|
pf-theme-creation:
|
|
343
343
|
name: pf-theme-creation
|
|
344
|
-
description: "DEPRECATED: Use /theme maker instead"
|
|
344
|
+
description: "DEPRECATED: Use /pf-theme maker instead"
|
|
345
345
|
category: theming
|
|
346
346
|
tags: [personas, themes, creation]
|
|
347
347
|
version: "2.0.0"
|
|
@@ -350,7 +350,7 @@ skills:
|
|
|
350
350
|
prerequisites: []
|
|
351
351
|
examples:
|
|
352
352
|
- context: Interactive theme wizard
|
|
353
|
-
invocation: /theme maker
|
|
353
|
+
invocation: /pf-theme maker
|
|
354
354
|
anti_patterns: []
|
|
355
355
|
related_skills: [pf-theme]
|
|
356
356
|
keywords: [personas, custom, generation, wizard]
|
|
@@ -365,11 +365,11 @@ skills:
|
|
|
365
365
|
prerequisites: []
|
|
366
366
|
examples:
|
|
367
367
|
- context: Listing available workflows
|
|
368
|
-
invocation: /workflow
|
|
368
|
+
invocation: /pf-workflow
|
|
369
369
|
- context: Showing current workflow
|
|
370
|
-
invocation: /workflow show
|
|
370
|
+
invocation: /pf-workflow show
|
|
371
371
|
- context: Starting stepped workflow
|
|
372
|
-
invocation: /workflow start architecture
|
|
372
|
+
invocation: /pf-workflow start architecture
|
|
373
373
|
anti_patterns:
|
|
374
374
|
- Don't switch workflows mid-story unless requirements fundamentally changed
|
|
375
375
|
related_skills: [pf-sprint]
|
|
@@ -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
|
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# BDD Team Workflow - BDD with Native Team Collaboration
|
|
2
|
+
#
|
|
3
|
+
# When to use: Best for UI/UX-heavy stories where sustained parallel
|
|
4
|
+
# collaboration during design and implementation provides more value than
|
|
5
|
+
# periodic tandem consultation. Use this instead of bdd-tandem when the
|
|
6
|
+
# designer-architect and dev-tester pairings need continuous interaction
|
|
7
|
+
# throughout their respective phases.
|
|
8
|
+
#
|
|
9
|
+
# Compared to bdd-tandem: Tandem spawns a Haiku subagent for a single
|
|
10
|
+
# request/response exchange. Team mode spawns full teammate sessions that
|
|
11
|
+
# work in parallel with the lead for the entire phase duration.
|
|
12
|
+
#
|
|
13
|
+
# Team pairings:
|
|
14
|
+
# - DESIGN phase: UX-Designer (lead) + Architect — Architect validates
|
|
15
|
+
# technical feasibility of design decisions in real-time
|
|
16
|
+
# - GREEN phase: Dev (lead) + TEA — TEA verifies tests stay green and
|
|
17
|
+
# flags regressions as Dev implements
|
|
18
|
+
#
|
|
19
|
+
# Fallback: When native teams are unavailable (non-interactive mode, feature
|
|
20
|
+
# flag off, or CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS not set), phases with
|
|
21
|
+
# team blocks fall back to solo execution. The lead agent works alone —
|
|
22
|
+
# consider using bdd-tandem as an alternative that works in all modes.
|
|
23
|
+
#
|
|
24
|
+
# Flow: SM → UX-Designer (+Architect) → TEA → Dev (+TEA) → Reviewer → SM
|
|
25
|
+
|
|
26
|
+
workflow:
|
|
27
|
+
name: bdd-team
|
|
28
|
+
description: BDD with native team collaboration — architect on design, TEA on green phase
|
|
29
|
+
version: "1.0.0"
|
|
30
|
+
|
|
31
|
+
phases:
|
|
32
|
+
- name: setup
|
|
33
|
+
agent: sm
|
|
34
|
+
output: [session_file, branches, story_context]
|
|
35
|
+
|
|
36
|
+
- name: design
|
|
37
|
+
agent: ux-designer
|
|
38
|
+
input: [session_file, story_context]
|
|
39
|
+
output: [design_spec, user_flows, wireframes, behavior_scenarios]
|
|
40
|
+
gate:
|
|
41
|
+
file: gates/design-review
|
|
42
|
+
type: design_review
|
|
43
|
+
condition: UX spec defines user flows and acceptance behaviors
|
|
44
|
+
team:
|
|
45
|
+
teammates:
|
|
46
|
+
- agent: architect
|
|
47
|
+
task: "Validate technical feasibility of design decisions. Flag constraints via SendMessage."
|
|
48
|
+
|
|
49
|
+
- name: red
|
|
50
|
+
agent: tea
|
|
51
|
+
input: [design_spec, behavior_scenarios, story_context]
|
|
52
|
+
output: [failing_tests]
|
|
53
|
+
gate:
|
|
54
|
+
file: gates/tests-fail
|
|
55
|
+
type: tests_fail
|
|
56
|
+
condition: Behavior scenarios have test coverage
|
|
57
|
+
|
|
58
|
+
- name: green
|
|
59
|
+
agent: dev
|
|
60
|
+
input: [failing_tests, design_spec, story_context]
|
|
61
|
+
output: [implementation, passing_tests]
|
|
62
|
+
gate:
|
|
63
|
+
file: gates/tests-pass
|
|
64
|
+
type: tests_pass
|
|
65
|
+
condition: All tests passing, UX spec implemented
|
|
66
|
+
team:
|
|
67
|
+
teammates:
|
|
68
|
+
- agent: tea
|
|
69
|
+
task: "Verify tests stay green and flag regressions as Dev implements."
|
|
70
|
+
|
|
71
|
+
- name: review
|
|
72
|
+
agent: reviewer
|
|
73
|
+
input: [implementation, passing_tests, design_spec]
|
|
74
|
+
output: [approval]
|
|
75
|
+
gate:
|
|
76
|
+
file: gates/approval
|
|
77
|
+
type: approval
|
|
78
|
+
condition: Code review approved, UX requirements met
|
|
79
|
+
|
|
80
|
+
- name: finish
|
|
81
|
+
agent: sm
|
|
82
|
+
input: [approval]
|
|
83
|
+
output: [archived_session, story_summary]
|
|
84
|
+
|
|
85
|
+
triggers:
|
|
86
|
+
tags: [team, bdd-team]
|
|
87
|
+
points:
|
|
88
|
+
min: 3
|
|
89
|
+
default: false
|
|
@@ -170,7 +170,7 @@ Display completion message:
|
|
|
170
170
|
|
|
171
171
|
Next steps:
|
|
172
172
|
- Use `/pf-sprint` to view the backlog
|
|
173
|
-
- Use `pf sprint epic promote` to move to a sprint when ready
|
|
173
|
+
- Use `pf.sh sprint epic promote` to move to a sprint when ready
|
|
174
174
|
```
|
|
175
175
|
|
|
176
176
|
## SUCCESS CRITERIA:
|
|
@@ -32,7 +32,7 @@ Build a complete picture of uncommitted changes across ALL repos defined in `.cl
|
|
|
32
32
|
**CRITICAL: Use the multi-repo script, not plain `git status`.**
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
pf git status
|
|
35
|
+
pf.sh git status
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
This shows branch, staged/unstaged changes, and unpushed commits for **all repos** defined in the project configuration.
|
|
@@ -20,6 +20,53 @@ Discover the project structure, detect repositories, identify tech stack, and ga
|
|
|
20
20
|
- User-confirmed discovery ready for repos.yaml generation
|
|
21
21
|
</output>
|
|
22
22
|
|
|
23
|
+
## PRE-FLIGHT: Environment Check
|
|
24
|
+
|
|
25
|
+
Before discovery, verify the environment is clean.
|
|
26
|
+
|
|
27
|
+
### Check for Global `pf` Installation
|
|
28
|
+
|
|
29
|
+
A globally installed `pf` CLI causes version drift between projects. All `pf`
|
|
30
|
+
invocations should go through `uv run` via the shell shims in `.pennyfarthing/scripts/`.
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Check for global pf binary
|
|
34
|
+
which pf 2>/dev/null
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**If `which pf` returns a path**, the user has a stale global install. Guide them through removal:
|
|
38
|
+
|
|
39
|
+
1. **Check the source** of the global install:
|
|
40
|
+
```bash
|
|
41
|
+
which pf
|
|
42
|
+
head -3 "$(which pf)" 2>/dev/null
|
|
43
|
+
pip3 show pennyfarthing-scripts 2>/dev/null | grep -E "^(Version|Location|Editable)"
|
|
44
|
+
uv tool list 2>/dev/null | grep pennyfarthing
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
2. **Remove based on source:**
|
|
48
|
+
|
|
49
|
+
| Source | Command |
|
|
50
|
+
|--------|---------|
|
|
51
|
+
| `uv tool` | `uv tool uninstall pennyfarthing-scripts` |
|
|
52
|
+
| `pip` (Homebrew Python) | `pip3 uninstall pennyfarthing-scripts --break-system-packages -y` |
|
|
53
|
+
| `pip` (venv/system) | `pip3 uninstall pennyfarthing-scripts -y` |
|
|
54
|
+
| `pipx` | `pipx uninstall pennyfarthing-scripts` |
|
|
55
|
+
|
|
56
|
+
3. **Verify removal:**
|
|
57
|
+
```bash
|
|
58
|
+
hash -r # Clear shell cache
|
|
59
|
+
which pf 2>/dev/null && echo "STILL INSTALLED — check for multiple installs" || echo "Clean"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
4. **Explain to user:** Pennyfarthing hooks use `uv run` to resolve `pf` from the
|
|
63
|
+
local project's `pyproject.toml`. This ensures each project runs its own version
|
|
64
|
+
of the CLI without cross-project contamination. No global install is needed.
|
|
65
|
+
|
|
66
|
+
**If `which pf` returns nothing**, the environment is clean — continue to discovery.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
23
70
|
## DISCOVERY TASKS
|
|
24
71
|
|
|
25
72
|
### 1. Detect Repository Structure
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# TDD Team Workflow - TDD with Native Team Collaboration
|
|
2
|
+
#
|
|
3
|
+
# When to use: Best for 5+ point feature stories where sustained parallel
|
|
4
|
+
# collaboration provides more value than periodic tandem consultation.
|
|
5
|
+
# Use this instead of tdd-tandem when teammates need to work alongside the
|
|
6
|
+
# lead for the full phase — e.g., Architect reviewing patterns as Dev
|
|
7
|
+
# implements, not just answering a single question.
|
|
8
|
+
#
|
|
9
|
+
# Compared to tdd-tandem: Tandem spawns a Haiku subagent for a single
|
|
10
|
+
# request/response exchange. Team mode spawns full teammate sessions that
|
|
11
|
+
# work in parallel with the lead for the entire phase duration.
|
|
12
|
+
#
|
|
13
|
+
# Team pairings:
|
|
14
|
+
# - GREEN phase: Dev (lead) + Architect — Architect reviews implementation
|
|
15
|
+
# approach and patterns in real-time via SendMessage
|
|
16
|
+
# - REVIEW phase: Reviewer (lead) + Architect — Architect validates
|
|
17
|
+
# architectural patterns during code review
|
|
18
|
+
#
|
|
19
|
+
# Fallback: When native teams are unavailable (non-interactive mode, feature
|
|
20
|
+
# flag off, or CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS not set), phases with
|
|
21
|
+
# team blocks fall back to solo execution. The lead agent works alone —
|
|
22
|
+
# consider using tdd-tandem as an alternative that works in all modes.
|
|
23
|
+
#
|
|
24
|
+
# Flow: SM → TEA → Dev (+Architect) → Reviewer (+Architect) → SM
|
|
25
|
+
|
|
26
|
+
workflow:
|
|
27
|
+
name: tdd-team
|
|
28
|
+
description: TDD with native team collaboration — architect pairing on green and review phases
|
|
29
|
+
version: "1.0.0"
|
|
30
|
+
|
|
31
|
+
phases:
|
|
32
|
+
- name: setup
|
|
33
|
+
agent: sm
|
|
34
|
+
output: [session_file, branches, story_context]
|
|
35
|
+
|
|
36
|
+
- name: red
|
|
37
|
+
agent: tea
|
|
38
|
+
input: [session_file, story_context]
|
|
39
|
+
output: [failing_tests]
|
|
40
|
+
gate:
|
|
41
|
+
file: gates/tests-fail
|
|
42
|
+
type: tests_fail
|
|
43
|
+
condition: All acceptance criteria have test coverage
|
|
44
|
+
|
|
45
|
+
- name: green
|
|
46
|
+
agent: dev
|
|
47
|
+
input: [failing_tests, story_context]
|
|
48
|
+
output: [implementation, passing_tests]
|
|
49
|
+
gate:
|
|
50
|
+
file: gates/tests-pass
|
|
51
|
+
type: tests_pass
|
|
52
|
+
condition: All tests passing, no skipped tests
|
|
53
|
+
team:
|
|
54
|
+
teammates:
|
|
55
|
+
- agent: architect
|
|
56
|
+
task: "Review implementation approach and patterns. Send observations via SendMessage as Dev works."
|
|
57
|
+
|
|
58
|
+
- name: review
|
|
59
|
+
agent: reviewer
|
|
60
|
+
input: [implementation, passing_tests]
|
|
61
|
+
output: [approval]
|
|
62
|
+
gate:
|
|
63
|
+
file: gates/approval
|
|
64
|
+
type: approval
|
|
65
|
+
condition: Code review approved, no blocking issues
|
|
66
|
+
team:
|
|
67
|
+
teammates:
|
|
68
|
+
- agent: architect
|
|
69
|
+
task: "Validate architectural patterns and coupling. Flag concerns via SendMessage."
|
|
70
|
+
|
|
71
|
+
- name: finish
|
|
72
|
+
agent: sm
|
|
73
|
+
input: [approval]
|
|
74
|
+
output: [archived_session, story_summary]
|
|
75
|
+
|
|
76
|
+
triggers:
|
|
77
|
+
tags: [team, tdd-team]
|
|
78
|
+
points:
|
|
79
|
+
min: 5
|
|
80
|
+
default: false
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -34,7 +34,7 @@ from pennyfarthing_scripts.bc.focus import (
|
|
|
34
34
|
def _get_current_layout() -> dict | None:
|
|
35
35
|
"""Fetch the current layout from a running Cyclist or BikeRack server.
|
|
36
36
|
|
|
37
|
-
Reads .
|
|
37
|
+
Reads .bikerack-port (shared by both Cyclist and BikeRack) and fetches
|
|
38
38
|
the layout endpoint.
|
|
39
39
|
|
|
40
40
|
Returns:
|
|
@@ -45,7 +45,7 @@ def _get_current_layout() -> dict | None:
|
|
|
45
45
|
root = _get_root()
|
|
46
46
|
|
|
47
47
|
candidates = [
|
|
48
|
-
(root / ".
|
|
48
|
+
(root / ".bikerack-port", "/api/settings/bikerack-layout"),
|
|
49
49
|
]
|
|
50
50
|
|
|
51
51
|
for port_file, endpoint in candidates:
|
|
@@ -7,11 +7,8 @@ This file will be removed in a future version.
|
|
|
7
7
|
# Re-export public API from new location for existing tests/imports
|
|
8
8
|
from pennyfarthing_scripts.hooks.bell_mode import ( # noqa: F401
|
|
9
9
|
_check_tandem_files as check_tandem_files,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
_read_bell_queue as read_bell_queue,
|
|
13
|
-
_read_tandem_observations as read_tandem_observations,
|
|
14
|
-
_save_tandem_mtime as save_tandem_mtime,
|
|
10
|
+
)
|
|
11
|
+
from pennyfarthing_scripts.hooks.bell_mode import (
|
|
15
12
|
main,
|
|
16
13
|
)
|
|
17
14
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|