@pennyfarthing/core 11.3.3 → 11.3.5
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 +1 -1
- package/package.json +3 -2
- package/packages/core/dist/workflow/__test_context_watch__/.session/.tandem-turn-counter +1 -0
- package/packages/core/dist/workflow/__test_context_watch__/.session/95-6-session.md +3 -0
- package/packages/core/dist/workflow/__test_context_watch__/.session/95-6-tandem-architect.md +6 -0
- package/packages/core/dist/workflow/__test_file_watch__/.session/95-4-tandem-architect.md +6 -0
- package/packages/core/dist/workflow/__test_file_watch__/workdir/trigger.ts +1 -0
- package/packages/core/dist/workflow/__test_tool_watch__/.session/95-5-tandem-architect.md +6 -0
- package/packages/core/dist/workflow/__test_tool_watch__/.session/95-5-tandem-toolcalls.jsonl +1 -0
- package/packages/core/dist/workflow/cross-entity-validation.d.ts +117 -0
- package/packages/core/dist/workflow/cross-entity-validation.d.ts.map +1 -0
- package/packages/core/dist/workflow/cross-entity-validation.js +148 -0
- package/packages/core/dist/workflow/cross-entity-validation.js.map +1 -0
- package/packages/core/dist/workflow/cross-entity-validation.test.d.ts +10 -0
- package/packages/core/dist/workflow/cross-entity-validation.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/cross-entity-validation.test.js +512 -0
- package/packages/core/dist/workflow/cross-entity-validation.test.js.map +1 -0
- package/pennyfarthing-dist/agents/sm-finish.md +2 -2
- package/pennyfarthing-dist/agents/testing-runner.md +1 -1
- package/pennyfarthing-dist/commands/pf-prime.md +1 -1
- package/pennyfarthing-dist/guides/agent-behavior.md +1 -1
- package/pennyfarthing-dist/guides/bikerack.md +1 -1
- package/pennyfarthing-dist/guides/brownfield-tools.md +7 -7
- package/pennyfarthing-dist/guides/gates.md +3 -3
- package/pennyfarthing-dist/guides/handoff-cli.md +6 -6
- package/pennyfarthing-dist/guides/prime.md +6 -6
- package/pennyfarthing-dist/guides/scale-levels.md +1 -1
- package/pennyfarthing-dist/personas/themes/firefly.yaml +4 -4
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/CLAUDE.md +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/README.md +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/__pycache__/context.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bc/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bc/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bc/__pycache__/focus.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bc/__pycache__/split.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bc/cli.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bc/focus.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bc/split.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bellmode_hook.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/__init__.py +1 -1
- package/pennyfarthing-dist/pf/bikerack/__main__.py +5 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/__pycache__/launcher.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/audit_log_panel.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/background_panel.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/changed_panel.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/cli.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/context_meter_footer.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/debug_panel.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/diffs_panel.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/git_panel.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/launcher.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/portrait_resolver.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/progress_panel.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/sprint_panel.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/story_detail_data.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/story_detail_screen.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/tui.py +17 -17
- package/pennyfarthing-dist/pf/bmad/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bmad/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bmad/cli.py +7 -7
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bmad/importer.py +4 -4
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bmad/sync.py +9 -9
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bmad/test_parser.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bmad/test_sync.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/brownfield/__init__.py +1 -1
- package/pennyfarthing-dist/pf/brownfield/__main__.py +8 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/brownfield/cli.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/cli.py +24 -24
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/codemarkers/__init__.py +2 -2
- package/pennyfarthing-dist/pf/codemarkers/__main__.py +6 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/codemarkers/analyze.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/codemarkers/cli.py +8 -8
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/codemarkers/formatters.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/common/__init__.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/common/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/common/__pycache__/config.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/common/__pycache__/output.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/common/pr_config.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/common/themes.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/complexity/__init__.py +2 -2
- package/pennyfarthing-dist/pf/complexity/__main__.py +6 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/complexity/analyze.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/complexity/cli.py +4 -4
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/complexity/formatters.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/config.py +2 -2
- package/pennyfarthing-dist/pf/consultation/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/consultation/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/consultation/cli.py +5 -5
- package/pennyfarthing-dist/pf/deadcode/__main__.py +6 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/deadcode/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/deadcode/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/deadcode/analyze.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/deadcode/cli.py +8 -8
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/deadcode/formatters.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/dependencies/__init__.py +2 -2
- package/pennyfarthing-dist/pf/dependencies/__main__.py +5 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/dependencies/analyze.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/dependencies/cli.py +4 -4
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/dependencies/formatters.py +1 -1
- package/pennyfarthing-dist/pf/epic/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/epic/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/gate/cli.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/git/__init__.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/git/create_branches.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/git/hooks_installer.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/git/repos.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/git/status_all.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/git/worktree.py +3 -3
- package/pennyfarthing-dist/pf/git_group/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/git_group/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/git_group/cli.py +10 -10
- package/pennyfarthing-dist/pf/handoff/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/handoff/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/handoff/cli.py +5 -5
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/handoff/marker.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/handoff/phase_check.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/healthscore/__init__.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/healthscore/__main__.py +2 -2
- package/pennyfarthing-dist/pf/healthscore/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/healthscore/__pycache__/analyze.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/healthscore/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/healthscore/__pycache__/models.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/healthscore/analyze.py +8 -8
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/healthscore/cli.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/healthscore/formatters.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/__pycache__/bell_mode.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/__pycache__/context_breaker.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/__pycache__/context_warning.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/__pycache__/cyclist_pretooluse.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/__pycache__/statusline.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/bell_mode.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/cli.py +11 -11
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/context_breaker.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/context_warning.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/cyclist_pretooluse.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/schema_validation.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/session_start.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/sprint_yaml_validation.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/statusline.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hotspots/__init__.py +2 -2
- package/pennyfarthing-dist/pf/hotspots/__main__.py +6 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hotspots/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hotspots/__pycache__/analyze.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hotspots/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hotspots/__pycache__/models.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hotspots/analyze.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hotspots/cli.py +5 -5
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hotspots/formatters.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/__init__.py +5 -5
- package/pennyfarthing-dist/pf/jira/__main__.py +10 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/__pycache__/claim.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/__pycache__/client.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/__pycache__/create.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/__pycache__/epic.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/__pycache__/operations.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/__pycache__/reconcile.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/__pycache__/story.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/__pycache__/sync.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/bidirectional.py +9 -9
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/claim.py +4 -4
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/cli.py +15 -15
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/client.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/create.py +5 -5
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/epic.py +6 -6
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/operations.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/reconcile.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/story.py +6 -6
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira/sync.py +5 -5
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira_bidirectional_sync.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira_epic_creation.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira_sync.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/jira_sync_story.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/launch/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/launch/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/launch/cli.py +7 -7
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/migration/__init__.py +5 -5
- package/pennyfarthing-dist/pf/migration/__main__.py +10 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/migration/cli.py +6 -6
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/migration/validate.py +7 -7
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/output.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/patch_mode.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/preflight/__init__.py +1 -1
- package/pennyfarthing-dist/pf/preflight/__main__.py +10 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/preflight/cli.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/pretooluse_hook.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/prime/__init__.py +7 -7
- package/pennyfarthing-dist/pf/prime/__main__.py +8 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/prime/cli.py +9 -9
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/prime/heatmap.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/prime/loader.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/prime/persona.py +4 -4
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/prime/session.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/prime/tiers.py +4 -4
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/prime/workflow.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/schema_validation_hook.py +1 -1
- package/pennyfarthing-dist/pf/session/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/session/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/session/cli.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/session_start_hook.py +1 -1
- package/pennyfarthing-dist/pf/settings/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/settings/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/settings/cli.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/settings/settings.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__init__.py +5 -5
- package/pennyfarthing-dist/pf/sprint/__main__.py +10 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/archive.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/epic_add.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/epic_update.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/loader.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/status.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/story_add.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/validate_cmd.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/validator.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/work.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/__pycache__/yaml_io.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/archive.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/archive_epic.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/cli.py +41 -41
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/epic_add.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/epic_update.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/import_epic.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/loader.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/status.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/story_add.py +5 -5
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/story_finish.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/story_update.py +4 -4
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/validate_cmd.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/validator.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/work.py +4 -4
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/story/__init__.py +7 -7
- package/pennyfarthing-dist/pf/story/__main__.py +10 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/story/cli.py +4 -4
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/story/create.py +2 -2
- package/pennyfarthing-dist/pf/tests/__init__.py +1 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/conftest.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_108_1_gate_migration.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_108_2_remove_handoff_fallback.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_archive_epic.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_bc.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_bikerack.py +39 -39
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_brownfield.py +6 -6
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_cli_modules.py +20 -20
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_cli_normalization.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_codemarkers.py +60 -60
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_common.py +17 -17
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_confidence_sm_evaluation.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_confidence_sm_gate.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_dialogue_manager.py +11 -11
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_epic_shard_validation.py +15 -15
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_gate_file_resolution.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_gate_runner.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_git_utils.py +8 -8
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_handoff_cli.py +12 -12
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_handoff_e2e.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_healthscore.py +20 -20
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_jira_package.py +29 -29
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_package_structure.py +42 -42
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_patch_mode.py +22 -22
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_prime.py +41 -41
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_resolve_gate_file_field.py +1 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_sprint_package.py +30 -30
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_sprint_panel.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_sprint_validator.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_story_add.py +11 -11
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_story_package.py +12 -12
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_story_update.py +16 -16
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_tiers.py +72 -72
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_token_counting.py +28 -28
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_topology_loader.py +37 -37
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_tui_focus.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_tui_panel_persistence.py +10 -10
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_validate_cmd.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_version_sentinel.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_workflow_check.py +7 -7
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_workflow_list_team.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/tests/test_yaml_io.py +1 -1
- package/pennyfarthing-dist/pf/theme/__main__.py +6 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/theme/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/theme/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/theme/cli.py +6 -6
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/validate/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/validate/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/validate/adapters/agent.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/validate/adapters/schema.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/validate/adapters/skill_command.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/validate/adapters/sprint.py +2 -2
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/validate/adapters/tandem_awareness.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/validate/adapters/team_mode.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/validate/adapters/workflow.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/validate/cli.py +9 -9
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/welcome_hook.py +1 -1
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/workflow/__init__.py +3 -3
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/workflow/__pycache__/__init__.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/workflow/__pycache__/cli.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/workflow/__pycache__/scale.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/workflow/__pycache__/state.cpython-314.pyc +0 -0
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/workflow/cli.py +18 -18
- package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/workflow/helpers.py +1 -1
- package/pennyfarthing-dist/pyproject.toml +18 -0
- package/pennyfarthing-dist/scripts/core/agent-session.sh +3 -3
- package/pennyfarthing-dist/scripts/core/check-context.sh +8 -8
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +3 -3
- package/pennyfarthing-dist/scripts/jira/README.md +1 -1
- package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +1 -1
- package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +1 -1
- package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +1 -1
- package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +1 -1
- package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +1 -1
- package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +1 -1
- package/pennyfarthing-dist/scripts/lib/common.sh +3 -3
- package/pennyfarthing-dist/scripts/lib/run-pf.sh +11 -13
- package/pennyfarthing-dist/scripts/sprint/README.md +1 -1
- package/pennyfarthing-dist/scripts/story/create-story.sh +1 -1
- package/pennyfarthing-dist/scripts/story/size-story.sh +1 -1
- package/pennyfarthing-dist/scripts/story/story-template.sh +1 -1
- package/pennyfarthing-dist/scripts/theme/list-themes.sh +3 -3
- package/pennyfarthing-dist/templates/pyproject.toml +3 -3
- package/pennyfarthing_scripts/__pycache__/bellmode_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/config.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/bikerack/__main__.py +0 -5
- 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__/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__/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/bmad/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bmad/__pycache__/parser.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bmad/__pycache__/sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bmad/__pycache__/test_parser.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/bmad/__pycache__/test_sync.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__main__.py +0 -8
- 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/__main__.py +0 -6
- 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__/themes.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__main__.py +0 -6
- 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/deadcode/__main__.py +0 -6
- 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__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__main__.py +0 -5
- 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/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_group/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/__init__.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__/formatters.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/hotspots/__main__.py +0 -6
- package/pennyfarthing_scripts/hotspots/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__main__.py +0 -10
- package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__main__.py +0 -10
- 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/__main__.py +0 -10
- 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/__main__.py +0 -8
- 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/session/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/settings/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/settings/__pycache__/settings.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__main__.py +0 -10
- package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/import_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__main__.py +0 -10
- 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/__init__.py +0 -1
- 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_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_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_workflow_list_team.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/theme/__main__.py +0 -6
- 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/workflow/__pycache__/helpers.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/team_lifecycle.cpython-314.pyc +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bc/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/base_panel.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/events.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bikerack/ws_client.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bmad/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/bmad/parser.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/brownfield/discover.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/codemarkers/models.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/common/config.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/common/output.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/complexity/models.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/consultation/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/consultation/dialogue_manager.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/context.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/deadcode/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/deadcode/models.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/dependencies/models.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/epic/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/epic/cli.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/gate/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/gate/validate.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/git_group/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/handoff/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/handoff/complete_phase.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/handoff/gate_file.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/handoff/gate_runner.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/handoff/resolve_gate.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/healthscore/models.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/cyclist-pretooluse-hook.sh +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/pre_edit_check.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/reflector_check.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hooks/session_stop.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/hotspots/models.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/launch/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/migration/session.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/migration/skill.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/migration/step.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/preflight/finish.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/prime/models.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/prime/version_sentinel.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/session/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/settings/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/sprint/yaml_io.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/story/size.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/story/template.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/swebench.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/theme/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/validate/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/validate/adapters/__init__.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/workflow/scale.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/workflow/state.py +0 -0
- /package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/workflow/team_lifecycle.py +0 -0
|
@@ -19,13 +19,13 @@ from datetime import datetime
|
|
|
19
19
|
from pathlib import Path
|
|
20
20
|
from typing import Any
|
|
21
21
|
|
|
22
|
-
from
|
|
22
|
+
from pf.jira.client import (
|
|
23
23
|
JIRA_PROJECT,
|
|
24
24
|
get_client,
|
|
25
25
|
get_jira_field,
|
|
26
26
|
map_status_to_jira,
|
|
27
27
|
)
|
|
28
|
-
from
|
|
28
|
+
from pf.sprint.loader import load_sprint
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
def _normalize_status(status: str) -> str:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Sync a single story between Pennyfarthing sprint YAML and Jira.
|
|
3
3
|
|
|
4
4
|
Usage:
|
|
5
|
-
python -m
|
|
5
|
+
python -m pf.jira story <story_key> [options]
|
|
6
6
|
|
|
7
7
|
Options:
|
|
8
8
|
--transition Sync status (transition Jira issue)
|
|
@@ -11,21 +11,21 @@ Options:
|
|
|
11
11
|
--dry-run Show what would be done without making changes
|
|
12
12
|
|
|
13
13
|
Examples:
|
|
14
|
-
python -m
|
|
15
|
-
python -m
|
|
14
|
+
python -m pf.jira story 63-7 --transition
|
|
15
|
+
python -m pf.jira story MSSCI-12401 --points --dry-run
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
18
|
import argparse
|
|
19
19
|
import sys
|
|
20
20
|
from typing import Any
|
|
21
21
|
|
|
22
|
-
from
|
|
23
|
-
from
|
|
22
|
+
from pf.jira import client as jira_client
|
|
23
|
+
from pf.sprint.loader import (
|
|
24
24
|
find_epic,
|
|
25
25
|
find_story,
|
|
26
26
|
get_story_by_id,
|
|
27
27
|
)
|
|
28
|
-
from
|
|
28
|
+
from pf.sprint.loader import (
|
|
29
29
|
load_sprint as load_current_sprint,
|
|
30
30
|
)
|
|
31
31
|
|
|
@@ -5,7 +5,7 @@ Syncs epic stories to Jira with async parallel API calls.
|
|
|
5
5
|
Ported from jira-sync.mjs for Python parallelism.
|
|
6
6
|
|
|
7
7
|
Usage:
|
|
8
|
-
python -m
|
|
8
|
+
python -m pf.jira sync <epic_number> [--dry-run] [--transition] [--points]
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
from __future__ import annotations
|
|
@@ -16,15 +16,15 @@ import sys
|
|
|
16
16
|
from dataclasses import dataclass, field
|
|
17
17
|
from typing import Any
|
|
18
18
|
|
|
19
|
-
from
|
|
20
|
-
from
|
|
21
|
-
from
|
|
19
|
+
from pf.common.config import get_project_root
|
|
20
|
+
from pf.common.output import error, info, success, warn
|
|
21
|
+
from pf.jira.client import (
|
|
22
22
|
JiraClient,
|
|
23
23
|
extract_jira_key,
|
|
24
24
|
get_jira_field,
|
|
25
25
|
map_status_to_jira,
|
|
26
26
|
)
|
|
27
|
-
from
|
|
27
|
+
from pf.sprint.loader import find_epic, load_sprint
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
@dataclass
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Bidirectional sync between sprint YAML and Jira.
|
|
3
3
|
|
|
4
|
-
This module re-exports from
|
|
4
|
+
This module re-exports from pf.jira.bidirectional for
|
|
5
5
|
backwards compatibility. New code should import from jira.bidirectional directly.
|
|
6
6
|
|
|
7
|
-
Usage: python -m
|
|
7
|
+
Usage: python -m pf.jira_bidirectional_sync [options]
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
# Re-export everything from the new location
|
|
11
|
-
from
|
|
11
|
+
from pf.jira.bidirectional import (
|
|
12
12
|
SyncChange,
|
|
13
13
|
SyncPlan,
|
|
14
14
|
SyncResult,
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Create Jira epics from Pennyfarthing sprint YAML definitions.
|
|
3
3
|
|
|
4
|
-
This module re-exports from
|
|
4
|
+
This module re-exports from pf.jira.epic for
|
|
5
5
|
backwards compatibility. New code should import from jira.epic directly.
|
|
6
6
|
|
|
7
7
|
Usage:
|
|
8
|
-
python -m
|
|
8
|
+
python -m pf.jira_epic_creation <epic_id> [options]
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
# Re-export everything from the new location
|
|
12
|
-
from
|
|
12
|
+
from pf.jira.epic import (
|
|
13
13
|
build_epic_payload,
|
|
14
14
|
create_epic,
|
|
15
15
|
create_epic_from_yaml,
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Jira sync for Pennyfarthing epics.
|
|
3
3
|
|
|
4
|
-
This module re-exports from
|
|
4
|
+
This module re-exports from pf.jira.sync for
|
|
5
5
|
backwards compatibility. New code should import from jira.sync directly.
|
|
6
6
|
|
|
7
7
|
Usage:
|
|
8
|
-
python -m
|
|
8
|
+
python -m pf.jira_sync <epic_number> [--dry-run] [--transition] [--points]
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
# Re-export everything from the new location
|
|
12
|
-
from
|
|
12
|
+
from pf.jira.sync import (
|
|
13
13
|
SyncResult,
|
|
14
14
|
async_main,
|
|
15
15
|
format_story_line,
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Sync a single story between Pennyfarthing sprint YAML and Jira.
|
|
3
3
|
|
|
4
|
-
This module re-exports from
|
|
4
|
+
This module re-exports from pf.jira.story for
|
|
5
5
|
backwards compatibility. New code should import from jira.story directly.
|
|
6
6
|
|
|
7
7
|
Usage:
|
|
8
|
-
python -m
|
|
8
|
+
python -m pf.jira_sync_story <story_key> [options]
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
# Re-export everything from the new location
|
|
12
|
-
from
|
|
12
|
+
from pf.jira.story import (
|
|
13
13
|
fetch_jira_issue,
|
|
14
14
|
get_story_from_sprint,
|
|
15
15
|
main,
|
package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/launch/__pycache__/__init__.cpython-314.pyc
RENAMED
|
Binary file
|
package/{pennyfarthing_scripts → pennyfarthing-dist/pf}/launch/__pycache__/cli.cpython-314.pyc
RENAMED
|
Binary file
|
|
@@ -24,7 +24,7 @@ def _ensure_wheelhub(project_dir: Path) -> tuple[int, int, bool]:
|
|
|
24
24
|
If already running, reuses existing instance.
|
|
25
25
|
If not, starts a new one and prints a mid-session OTEL note.
|
|
26
26
|
"""
|
|
27
|
-
from
|
|
27
|
+
from pf.bikerack.launcher import (
|
|
28
28
|
is_already_running,
|
|
29
29
|
poll_for_port_file,
|
|
30
30
|
start_wheelhub,
|
|
@@ -76,7 +76,7 @@ def gui(project_dir, no_open, dry_run):
|
|
|
76
76
|
Ensures WheelHub is running (starts it if needed), then opens
|
|
77
77
|
the dashboard URL. Safe to call multiple times — reuses existing server.
|
|
78
78
|
"""
|
|
79
|
-
from
|
|
79
|
+
from pf.bikerack.launcher import resolve_project_dir
|
|
80
80
|
|
|
81
81
|
project_dir = resolve_project_dir(project_dir)
|
|
82
82
|
|
|
@@ -121,7 +121,7 @@ def tui(project_dir, mode, port, dry_run):
|
|
|
121
121
|
|
|
122
122
|
Use --foreground or --detach to override auto-detection.
|
|
123
123
|
"""
|
|
124
|
-
from
|
|
124
|
+
from pf.bikerack.launcher import resolve_project_dir
|
|
125
125
|
|
|
126
126
|
project_dir = resolve_project_dir(project_dir)
|
|
127
127
|
|
|
@@ -148,7 +148,7 @@ def tui(project_dir, mode, port, dry_run):
|
|
|
148
148
|
sys.exit(1)
|
|
149
149
|
|
|
150
150
|
if mode == "foreground":
|
|
151
|
-
from
|
|
151
|
+
from pf.bikerack.tui import main as tui_main
|
|
152
152
|
|
|
153
153
|
tui_main(port=port, project_dir=project_dir)
|
|
154
154
|
else:
|
|
@@ -160,7 +160,7 @@ def _launch_tui_detached(project_dir: Path, port: int) -> None:
|
|
|
160
160
|
import subprocess
|
|
161
161
|
|
|
162
162
|
python = sys.executable
|
|
163
|
-
cmd = f"{python} -m
|
|
163
|
+
cmd = f"{python} -m pf.bikerack.tui --port {port} --project-dir {project_dir}"
|
|
164
164
|
|
|
165
165
|
applescript = f'''
|
|
166
166
|
tell application "Terminal"
|
|
@@ -187,7 +187,7 @@ def _launch_tui_detached(project_dir: Path, port: int) -> None:
|
|
|
187
187
|
)
|
|
188
188
|
def status(project_dir):
|
|
189
189
|
"""Show WheelHub running state."""
|
|
190
|
-
from
|
|
190
|
+
from pf.bikerack.launcher import get_status, resolve_project_dir
|
|
191
191
|
|
|
192
192
|
project_dir = resolve_project_dir(project_dir)
|
|
193
193
|
result = get_status(project_dir)
|
|
@@ -213,7 +213,7 @@ def status(project_dir):
|
|
|
213
213
|
@click.option("--dry-run", is_flag=True, help="Show what would be done without making changes.")
|
|
214
214
|
def stop(project_dir, dry_run):
|
|
215
215
|
"""Stop WheelHub server."""
|
|
216
|
-
from
|
|
216
|
+
from pf.bikerack.launcher import resolve_project_dir, stop_bikerack
|
|
217
217
|
|
|
218
218
|
project_dir = resolve_project_dir(project_dir)
|
|
219
219
|
|
|
@@ -8,7 +8,7 @@ to conform to the XML schema definitions:
|
|
|
8
8
|
- Workflow step files -> guides/workflow-step-schema.md
|
|
9
9
|
|
|
10
10
|
Usage:
|
|
11
|
-
python -m
|
|
11
|
+
python -m pf.migration [command] [options]
|
|
12
12
|
|
|
13
13
|
Commands:
|
|
14
14
|
session Migrate session files to XML format
|
|
@@ -17,14 +17,14 @@ Commands:
|
|
|
17
17
|
validate Validate files against schemas
|
|
18
18
|
"""
|
|
19
19
|
|
|
20
|
-
from
|
|
20
|
+
from pf.migration.session import (
|
|
21
21
|
SessionFile,
|
|
22
22
|
convert_session_file,
|
|
23
23
|
parse_markdown_session,
|
|
24
24
|
)
|
|
25
|
-
from
|
|
26
|
-
from
|
|
27
|
-
from
|
|
25
|
+
from pf.migration.skill import audit_skill_file, audit_skills
|
|
26
|
+
from pf.migration.step import audit_step_file, audit_workflow_steps
|
|
27
|
+
from pf.migration.validate import validate_all, validate_file
|
|
28
28
|
|
|
29
29
|
__all__ = [
|
|
30
30
|
"SessionFile",
|
|
@@ -3,7 +3,7 @@ Migration CLI - Click-based CLI for XML schema migration tools.
|
|
|
3
3
|
|
|
4
4
|
Usage:
|
|
5
5
|
pf migration [COMMAND] [ARGS]...
|
|
6
|
-
python -m
|
|
6
|
+
python -m pf.migration [COMMAND] [ARGS]...
|
|
7
7
|
|
|
8
8
|
Commands:
|
|
9
9
|
session Migrate session files to XML format
|
|
@@ -18,7 +18,7 @@ from pathlib import Path
|
|
|
18
18
|
|
|
19
19
|
import click
|
|
20
20
|
|
|
21
|
-
from
|
|
21
|
+
from pf.common.output import error, info, success, warn
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
def _find_project_root() -> Path:
|
|
@@ -65,7 +65,7 @@ def session(file: str | None, dry_run: bool, convert_all: bool):
|
|
|
65
65
|
pf migration session --all --dry-run
|
|
66
66
|
pf migration session --all
|
|
67
67
|
"""
|
|
68
|
-
from
|
|
68
|
+
from pf.migration.session import (
|
|
69
69
|
convert_session_file,
|
|
70
70
|
find_session_files,
|
|
71
71
|
)
|
|
@@ -147,7 +147,7 @@ def skill(skill_name: str | None, report: bool):
|
|
|
147
147
|
pf migration skill --report
|
|
148
148
|
pf migration skill sprint
|
|
149
149
|
"""
|
|
150
|
-
from
|
|
150
|
+
from pf.migration.skill import audit_skills
|
|
151
151
|
|
|
152
152
|
root = _find_project_root()
|
|
153
153
|
results = audit_skills(root, skill_name=skill_name)
|
|
@@ -200,7 +200,7 @@ def step(workflow_name: str | None, report: bool):
|
|
|
200
200
|
pf migration step --report
|
|
201
201
|
pf migration step architecture
|
|
202
202
|
"""
|
|
203
|
-
from
|
|
203
|
+
from pf.migration.step import audit_workflow_steps
|
|
204
204
|
|
|
205
205
|
root = _find_project_root()
|
|
206
206
|
results = audit_workflow_steps(root, workflow_name=workflow_name)
|
|
@@ -253,7 +253,7 @@ def validate(file_type: str, strict: bool):
|
|
|
253
253
|
pf migration validate --type skill
|
|
254
254
|
pf migration validate --strict
|
|
255
255
|
"""
|
|
256
|
-
from
|
|
256
|
+
from pf.migration.validate import validate_all
|
|
257
257
|
|
|
258
258
|
root = _find_project_root()
|
|
259
259
|
summary = validate_all(root, file_type=file_type, strict=strict)
|
|
@@ -14,26 +14,26 @@ from dataclasses import dataclass, field
|
|
|
14
14
|
from pathlib import Path
|
|
15
15
|
from typing import Literal
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from pf.migration.session import (
|
|
18
18
|
find_session_files,
|
|
19
19
|
is_xml_format,
|
|
20
20
|
)
|
|
21
|
-
from
|
|
21
|
+
from pf.migration.skill import (
|
|
22
22
|
RECOMMENDED_TAGS as SKILL_RECOMMENDED,
|
|
23
23
|
)
|
|
24
|
-
from
|
|
24
|
+
from pf.migration.skill import (
|
|
25
25
|
REQUIRED_TAGS as SKILL_REQUIRED,
|
|
26
26
|
)
|
|
27
|
-
from
|
|
27
|
+
from pf.migration.skill import (
|
|
28
28
|
find_skill_files,
|
|
29
29
|
)
|
|
30
|
-
from
|
|
30
|
+
from pf.migration.step import (
|
|
31
31
|
RECOMMENDED_TAGS as STEP_RECOMMENDED,
|
|
32
32
|
)
|
|
33
|
-
from
|
|
33
|
+
from pf.migration.step import (
|
|
34
34
|
REQUIRED_TAGS as STEP_REQUIRED,
|
|
35
35
|
)
|
|
36
|
-
from
|
|
36
|
+
from pf.migration.step import (
|
|
37
37
|
STEP_META_FIELDS,
|
|
38
38
|
find_step_files,
|
|
39
39
|
)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Console output utilities for Pennyfarthing scripts.
|
|
3
3
|
|
|
4
|
-
This module re-exports from
|
|
4
|
+
This module re-exports from pf.common.output for
|
|
5
5
|
backwards compatibility. New code should import from common.output directly.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
# Re-export everything from the new location
|
|
9
|
-
from
|
|
9
|
+
from pf.common.output import (
|
|
10
10
|
Colors,
|
|
11
11
|
_colorize,
|
|
12
12
|
_supports_color,
|
|
@@ -4,7 +4,7 @@ This package provides async preflight checks that run in parallel
|
|
|
4
4
|
to validate story completion before finishing.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
from
|
|
7
|
+
from pf.preflight.finish import (
|
|
8
8
|
PreflightIssue,
|
|
9
9
|
PreflightResult,
|
|
10
10
|
run_finish_preflight,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Preflight CLI - Fan-out CLI for preflight checks.
|
|
3
3
|
|
|
4
4
|
Usage:
|
|
5
|
-
python -m
|
|
5
|
+
python -m pf.preflight <subcommand> [args]
|
|
6
6
|
|
|
7
7
|
Subcommands:
|
|
8
8
|
finish Run finish preflight checks
|
|
@@ -14,7 +14,7 @@ import json
|
|
|
14
14
|
import sys
|
|
15
15
|
from pathlib import Path
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from pf.preflight.finish import run_finish_preflight
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
def finish(args: list[str]) -> int:
|
|
@@ -4,7 +4,7 @@ Backward-compatibility shim — pretooluse hook moved to hooks/cyclist_pretoolus
|
|
|
4
4
|
This file will be removed in a future version.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
from
|
|
7
|
+
from pf.hooks.cyclist_pretooluse import main # noqa: F401
|
|
8
8
|
|
|
9
9
|
if __name__ == "__main__":
|
|
10
10
|
main()
|
|
@@ -6,7 +6,7 @@ consolidating agent-session.sh, prime.sh, and workflow-status-check into a singl
|
|
|
6
6
|
Python entry point.
|
|
7
7
|
|
|
8
8
|
Usage:
|
|
9
|
-
python -m
|
|
9
|
+
python -m pf.prime [--agent <name>] [--json] [--minimal] [--full]
|
|
10
10
|
|
|
11
11
|
Public API:
|
|
12
12
|
prime() - Load and print context (main entry point)
|
|
@@ -42,8 +42,8 @@ Public API:
|
|
|
42
42
|
PrimeResult - Complete prime result for JSON output
|
|
43
43
|
"""
|
|
44
44
|
|
|
45
|
-
from
|
|
46
|
-
from
|
|
45
|
+
from pf.prime.cli import prime
|
|
46
|
+
from pf.prime.loader import (
|
|
47
47
|
load_agent_definition,
|
|
48
48
|
load_behavior_guide,
|
|
49
49
|
load_domain_docs,
|
|
@@ -52,7 +52,7 @@ from pennyfarthing_scripts.prime.loader import (
|
|
|
52
52
|
load_sidecars,
|
|
53
53
|
load_sprint_context,
|
|
54
54
|
)
|
|
55
|
-
from
|
|
55
|
+
from pf.prime.models import (
|
|
56
56
|
CrewMember,
|
|
57
57
|
Persona,
|
|
58
58
|
PrimeResult,
|
|
@@ -60,7 +60,7 @@ from pennyfarthing_scripts.prime.models import (
|
|
|
60
60
|
WorkflowState,
|
|
61
61
|
WorkflowStatus,
|
|
62
62
|
)
|
|
63
|
-
from
|
|
63
|
+
from pf.prime.persona import (
|
|
64
64
|
format_persona_output,
|
|
65
65
|
get_crew_manifest,
|
|
66
66
|
get_current_theme,
|
|
@@ -69,14 +69,14 @@ from pennyfarthing_scripts.prime.persona import (
|
|
|
69
69
|
load_persona,
|
|
70
70
|
load_theme,
|
|
71
71
|
)
|
|
72
|
-
from
|
|
72
|
+
from pf.prime.session import (
|
|
73
73
|
cleanup_old_sessions,
|
|
74
74
|
get_session_agent,
|
|
75
75
|
list_sessions,
|
|
76
76
|
register_session,
|
|
77
77
|
unregister_session,
|
|
78
78
|
)
|
|
79
|
-
from
|
|
79
|
+
from pf.prime.workflow import (
|
|
80
80
|
check_redirect,
|
|
81
81
|
detect_workflow_state,
|
|
82
82
|
find_active_session,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Prime CLI - Unified agent bootstrap for Pennyfarthing.
|
|
3
3
|
|
|
4
4
|
Usage:
|
|
5
|
-
python -m
|
|
5
|
+
python -m pf.prime [options]
|
|
6
6
|
|
|
7
7
|
Options:
|
|
8
8
|
--agent <name> Load agent definition and sidecar
|
|
@@ -27,8 +27,8 @@ from typing import TYPE_CHECKING
|
|
|
27
27
|
if TYPE_CHECKING:
|
|
28
28
|
from typing import Any
|
|
29
29
|
|
|
30
|
-
from
|
|
31
|
-
from
|
|
30
|
+
from pf.common.config import get_project_root
|
|
31
|
+
from pf.prime.loader import (
|
|
32
32
|
load_agent_definition,
|
|
33
33
|
load_behavior_guide,
|
|
34
34
|
load_domain_docs,
|
|
@@ -36,8 +36,8 @@ from pennyfarthing_scripts.prime.loader import (
|
|
|
36
36
|
load_sidecars,
|
|
37
37
|
load_sprint_context,
|
|
38
38
|
)
|
|
39
|
-
from
|
|
40
|
-
from
|
|
39
|
+
from pf.prime.models import PrimeComponent, PrimeResult, WorkflowState
|
|
40
|
+
from pf.prime.persona import (
|
|
41
41
|
format_persona_compressed,
|
|
42
42
|
format_persona_output,
|
|
43
43
|
get_crew_manifest,
|
|
@@ -45,9 +45,9 @@ from pennyfarthing_scripts.prime.persona import (
|
|
|
45
45
|
is_character_voice_enabled,
|
|
46
46
|
load_persona,
|
|
47
47
|
)
|
|
48
|
-
from
|
|
49
|
-
from
|
|
50
|
-
from
|
|
48
|
+
from pf.prime.session import cleanup_old_sessions, register_session
|
|
49
|
+
from pf.prime.tiers import ContextTier, load_tier_components, tier_from_string
|
|
50
|
+
from pf.prime.workflow import check_redirect, detect_workflow_state
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
def _print_header(title: str, quiet: bool) -> None:
|
|
@@ -480,7 +480,7 @@ def prime(
|
|
|
480
480
|
# PRIORITY 5.5: Repos Topology
|
|
481
481
|
# ==========================================================================
|
|
482
482
|
if not json_output:
|
|
483
|
-
from
|
|
483
|
+
from pf.prime.loader import load_repos_topology
|
|
484
484
|
|
|
485
485
|
topology_content = load_repos_topology(root)
|
|
486
486
|
if topology_content:
|
|
@@ -335,7 +335,7 @@ def _pretty_tag(tag: str) -> str:
|
|
|
335
335
|
def capture_agent_output(agent_name: str) -> str:
|
|
336
336
|
"""Run pf agent start and capture raw output."""
|
|
337
337
|
result = subprocess.run(
|
|
338
|
-
[sys.executable, "-m", "
|
|
338
|
+
[sys.executable, "-m", "pf.cli", "agent", "start", agent_name],
|
|
339
339
|
capture_output=True,
|
|
340
340
|
text=True,
|
|
341
341
|
timeout=30,
|
|
@@ -15,7 +15,7 @@ from __future__ import annotations
|
|
|
15
15
|
import re
|
|
16
16
|
from pathlib import Path
|
|
17
17
|
|
|
18
|
-
from
|
|
18
|
+
from pf.common.config import get_project_root
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
def load_agent_definition(agent_name: str, project_root: Path | None = None) -> str | None:
|
|
@@ -67,8 +67,8 @@ def load_sprint_context(project_root: Path | None = None) -> str | None:
|
|
|
67
67
|
Formatted sprint summary, or None if no sprint data
|
|
68
68
|
"""
|
|
69
69
|
# Import here to avoid circular imports
|
|
70
|
-
from
|
|
71
|
-
from
|
|
70
|
+
from pf.sprint.loader import load_sprint
|
|
71
|
+
from pf.sprint.status import get_sprint_status
|
|
72
72
|
|
|
73
73
|
root = project_root or get_project_root()
|
|
74
74
|
sprint_file = root / "sprint" / "current-sprint.yaml"
|
|
@@ -11,14 +11,14 @@ from typing import Any
|
|
|
11
11
|
|
|
12
12
|
import yaml
|
|
13
13
|
|
|
14
|
-
from
|
|
15
|
-
from
|
|
14
|
+
from pf.common.config import get_project_root, load_yaml_config
|
|
15
|
+
from pf.common.themes import (
|
|
16
16
|
get_current_theme as _get_current_theme,
|
|
17
17
|
)
|
|
18
|
-
from
|
|
18
|
+
from pf.common.themes import (
|
|
19
19
|
resolve_theme_path,
|
|
20
20
|
)
|
|
21
|
-
from
|
|
21
|
+
from pf.prime.models import CrewMember, Persona
|
|
22
22
|
|
|
23
23
|
# Standard agent roles for crew manifest
|
|
24
24
|
AGENT_ROLES = [
|
|
@@ -11,8 +11,8 @@ import time
|
|
|
11
11
|
import uuid
|
|
12
12
|
from pathlib import Path
|
|
13
13
|
|
|
14
|
-
from
|
|
15
|
-
from
|
|
14
|
+
from pf.common.config import get_project_root
|
|
15
|
+
from pf.prime.models import SessionInfo
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def get_agents_dir(project_root: Path) -> Path:
|
|
@@ -35,7 +35,7 @@ def estimate_tokens(text: str) -> int:
|
|
|
35
35
|
return max(1, len(text) // 4)
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
from
|
|
38
|
+
from pf.prime.loader import ( # noqa: E402
|
|
39
39
|
load_agent_definition,
|
|
40
40
|
load_behavior_guide,
|
|
41
41
|
load_repos_topology,
|
|
@@ -43,14 +43,14 @@ from pennyfarthing_scripts.prime.loader import ( # noqa: E402
|
|
|
43
43
|
load_sidecars,
|
|
44
44
|
load_sprint_context,
|
|
45
45
|
)
|
|
46
|
-
from
|
|
46
|
+
from pf.prime.persona import ( # noqa: E402
|
|
47
47
|
format_persona_compressed,
|
|
48
48
|
get_crew_manifest,
|
|
49
49
|
get_user_title,
|
|
50
50
|
is_character_voice_enabled,
|
|
51
51
|
load_persona,
|
|
52
52
|
)
|
|
53
|
-
from
|
|
53
|
+
from pf.prime.workflow import detect_workflow_state # noqa: E402
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
class ContextTier(Enum):
|
|
@@ -177,7 +177,7 @@ def load_tier_components(
|
|
|
177
177
|
if is_character_voice_enabled(project_root):
|
|
178
178
|
persona, theme = load_persona(agent_name, project_root)
|
|
179
179
|
if persona and theme:
|
|
180
|
-
from
|
|
180
|
+
from pf.prime.persona import format_persona_output
|
|
181
181
|
|
|
182
182
|
crew = get_crew_manifest(project_root)
|
|
183
183
|
user_title = get_user_title(project_root)
|