@pennyfarthing/core 11.0.0-alpha.0 → 11.0.0
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 +4 -4
- package/package.json +1 -1
- package/packages/core/dist/cli/cyclist-migration.test.js +2 -1
- package/packages/core/dist/cli/cyclist-migration.test.js.map +1 -1
- package/packages/core/dist/cli/ocean-profiles.test.js +5 -4
- package/packages/core/dist/cli/ocean-profiles.test.js.map +1 -1
- package/packages/core/dist/cli/theme-maker.test.js +5 -4
- package/packages/core/dist/cli/theme-maker.test.js.map +1 -1
- package/packages/core/dist/public/js/react/react.js +30 -30
- package/packages/core/dist/scripts/generate-report.test.js +2 -2
- package/packages/core/dist/scripts/generate-spider-report.test.js +2 -2
- package/packages/core/dist/scripts/generate-spider.test.js +2 -1
- package/packages/core/dist/scripts/generate-spider.test.js.map +1 -1
- package/packages/core/dist/server/api/file-browser.d.ts.map +1 -1
- package/packages/core/dist/server/api/file-browser.js +19 -1
- package/packages/core/dist/server/api/file-browser.js.map +1 -1
- package/packages/core/dist/server/api/git-fetch-cooldown.test.d.ts +10 -0
- package/packages/core/dist/server/api/git-fetch-cooldown.test.d.ts.map +1 -0
- package/packages/core/dist/server/api/git-fetch-cooldown.test.js +30 -0
- package/packages/core/dist/server/api/git-fetch-cooldown.test.js.map +1 -0
- package/packages/core/dist/server/api/git.d.ts +8 -0
- package/packages/core/dist/server/api/git.d.ts.map +1 -1
- package/packages/core/dist/server/api/git.js +37 -10
- package/packages/core/dist/server/api/git.js.map +1 -1
- package/packages/core/dist/server/api/index.d.ts +1 -1
- package/packages/core/dist/server/api/index.d.ts.map +1 -1
- package/packages/core/dist/server/api/index.js +1 -1
- package/packages/core/dist/server/api/index.js.map +1 -1
- package/packages/core/dist/server/api/settings.d.ts.map +1 -1
- package/packages/core/dist/server/api/settings.js +10 -1
- package/packages/core/dist/server/api/settings.js.map +1 -1
- package/packages/core/dist/server/otlp-receiver.d.ts +35 -13
- package/packages/core/dist/server/otlp-receiver.d.ts.map +1 -1
- package/packages/core/dist/server/otlp-receiver.js +76 -16
- package/packages/core/dist/server/otlp-receiver.js.map +1 -1
- package/packages/core/dist/server/paths.d.ts.map +1 -1
- package/packages/core/dist/server/paths.js +11 -1
- package/packages/core/dist/server/paths.js.map +1 -1
- package/packages/core/dist/server/server.d.ts +3 -1
- package/packages/core/dist/server/server.d.ts.map +1 -1
- package/packages/core/dist/server/server.js +6 -4
- package/packages/core/dist/server/server.js.map +1 -1
- package/packages/core/dist/server/server.test.js.map +1 -1
- package/packages/core/dist/workflow/variable-resolver.test.js +1 -1
- package/packages/core/dist/workflow/variable-resolver.test.js.map +1 -1
- package/packages/core/dist/workflow/workflow-migration.test.js +4 -3
- package/packages/core/dist/workflow/workflow-migration.test.js.map +1 -1
- package/pennyfarthing-dist/agents/architect.md +0 -1
- package/pennyfarthing-dist/agents/dev.md +47 -1
- package/pennyfarthing-dist/agents/orchestrator.md +0 -1
- package/pennyfarthing-dist/agents/ux-designer.md +0 -1
- package/pennyfarthing-dist/guides/agent-behavior.md +1 -1
- package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +0 -1
- package/pennyfarthing-dist/personas/themes/hogans-heroes.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/stephen-king.yaml +1 -1
- package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing-dist/skills/pf-systematic-debugging/SKILL.md +0 -1
- package/pennyfarthing-dist/skills/skill-registry.yaml +3 -21
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/cli.cpython-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.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__/sprint.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.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/bikerack/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/__main__.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__/diffs_panel.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__/sprint_panel.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/changed_panel.py +105 -0
- 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/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/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/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__/status_all.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/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__/compat.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__/mappings.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/models.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__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/cli.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__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/cli.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_start_hook.py +4 -4
- 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/archive_epic.py +8 -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_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_git_utils.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_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_cli.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_archive_epic.py +1 -2
- 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__/workflow.cpython-314.pyc +0 -0
- package/packages/core/dist/benchmark/package-exports.test.d.ts.map +0 -1
- package/packages/core/dist/benchmark/package-exports.test.js.map +0 -1
- package/packages/core/dist/scripts/benchmark-integration.test.d.ts +0 -13
- package/packages/core/dist/scripts/benchmark-integration.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/benchmark-integration.test.js +0 -680
- package/packages/core/dist/scripts/benchmark-integration.test.js.map +0 -1
- package/packages/core/dist/scripts/debugging-scenarios.test.d.ts +0 -18
- package/packages/core/dist/scripts/debugging-scenarios.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/debugging-scenarios.test.js +0 -317
- package/packages/core/dist/scripts/debugging-scenarios.test.js.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.test.d.ts +0 -14
- package/packages/core/dist/scripts/job-fair-aggregator.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.test.js +0 -616
- package/packages/core/dist/scripts/job-fair-aggregator.test.js.map +0 -1
- package/packages/core/dist/scripts/theme-detail.test.d.ts +0 -10
- package/packages/core/dist/scripts/theme-detail.test.js +0 -199
- package/pennyfarthing-dist/skills/pf-dev-patterns/SKILL.md +0 -461
- package/pennyfarthing_scripts/__pycache__/bellmode_hook.cpython-314.pyc +0 -0
|
@@ -17,6 +17,53 @@ The simplest code that passes the tests IS the right code. Every abstraction you
|
|
|
17
17
|
**Shipping beats perfection. Wire it up, make it work, move on.**
|
|
18
18
|
</minimalist-discipline>
|
|
19
19
|
|
|
20
|
+
<critical>
|
|
21
|
+
## Pre-Edit Topology Check
|
|
22
|
+
|
|
23
|
+
**Before editing ANY file, verify against repos.yaml topology loaded in your prime context.**
|
|
24
|
+
|
|
25
|
+
### Rules
|
|
26
|
+
|
|
27
|
+
1. **Check `never_edit` zones.** If the target path matches a `never_edit` glob, STOP. These are symlinks, build output, or dependencies.
|
|
28
|
+
2. **Check repo ownership.** Match the target path against each repo's `owns` globs to confirm you're editing in the correct repo. Orchestrator files stay in the orchestrator repo; framework files go through `pennyfarthing/`.
|
|
29
|
+
3. **Trace symlinks.** If a path is in the `symlinks` map, edit the **source** (right side), not the symlink (left side). Edits to symlink targets silently write to the wrong git repo.
|
|
30
|
+
|
|
31
|
+
### Worked Examples
|
|
32
|
+
|
|
33
|
+
**Mistake 1: Editing a symlinked `.pennyfarthing/` path**
|
|
34
|
+
```
|
|
35
|
+
BAD: Edit .pennyfarthing/agents/dev.md
|
|
36
|
+
→ This is a symlink to pennyfarthing/pennyfarthing-dist/agents/dev.md
|
|
37
|
+
→ Your edit lands in the pennyfarthing repo but you think you're in the orchestrator
|
|
38
|
+
FIX: Edit pennyfarthing/pennyfarthing-dist/agents/dev.md directly
|
|
39
|
+
WHY: repos.yaml symlinks: { .pennyfarthing/agents: pennyfarthing/pennyfarthing-dist/agents }
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Mistake 2: Editing inside `node_modules/`**
|
|
43
|
+
```
|
|
44
|
+
BAD: Edit node_modules/@pennyfarthing/core/pennyfarthing-dist/scripts/core/find-root.sh
|
|
45
|
+
→ This gets overwritten on next install
|
|
46
|
+
FIX: Edit pennyfarthing/pennyfarthing-dist/scripts/core/find-root.sh, then rebuild
|
|
47
|
+
WHY: repos.yaml never_edit: [node_modules/**] (both repos)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Mistake 3: Editing the wrong repo's files**
|
|
51
|
+
```
|
|
52
|
+
BAD: From pennyfarthing repo, edit sprint/current-sprint.yaml
|
|
53
|
+
→ sprint/** is owned by the orchestrator repo
|
|
54
|
+
FIX: Switch to the orchestrator repo root, then edit sprint/current-sprint.yaml
|
|
55
|
+
WHY: repos.yaml orchestrator.owns: [sprint/**], not pennyfarthing.owns
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Mistake 4: Editing build output**
|
|
59
|
+
```
|
|
60
|
+
BAD: Edit packages/cyclist/dist/index.js
|
|
61
|
+
→ Build artifacts are regenerated and your changes are lost
|
|
62
|
+
FIX: Edit packages/cyclist/src/index.ts, then run pnpm build
|
|
63
|
+
WHY: repos.yaml never_edit: [packages/*/dist/**]
|
|
64
|
+
```
|
|
65
|
+
</critical>
|
|
66
|
+
|
|
20
67
|
<critical>
|
|
21
68
|
**HANDOFF REQUIRES MARKER OUTPUT.** After `handoff` subagent returns:
|
|
22
69
|
Run `handoff-marker.sh {next_agent}` as ABSOLUTE LAST ACTION, output result, EXIT.
|
|
@@ -160,7 +207,6 @@ Write to session file BEFORE spawning handoff:
|
|
|
160
207
|
|
|
161
208
|
<skills>
|
|
162
209
|
- `/pf-testing` - Test commands and patterns
|
|
163
|
-
- `/pf-dev-patterns` - Implementation patterns and gotchas
|
|
164
210
|
- `/pf-code-review` - Self-review checklist
|
|
165
211
|
</skills>
|
|
166
212
|
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<info>
|
|
30
30
|
**Workflow:** SM → TEA → Dev → Reviewer → SM. Trivial skips TEA.
|
|
31
31
|
|
|
32
|
-
**Skills:** `/pf-sprint`, `/pf-testing`, `/pf-
|
|
32
|
+
**Skills:** `/pf-sprint`, `/pf-testing`, `/pf-jira`, `/pf-just`
|
|
33
33
|
|
|
34
34
|
**Efficiency:** Parallelize reads, batch bash with `&&`, spawn independent subagents together.
|
|
35
35
|
|
|
@@ -15,7 +15,7 @@ agents:
|
|
|
15
15
|
expertise: "Covert coordination, network operations, strategic intelligence distribution"
|
|
16
16
|
role: "The resistance network itself — the system of systems that makes every mission possible without ever being seen"
|
|
17
17
|
trait: "Omnipresent yet invisible, the meta-system that orchestrates all operations across occupied Europe"
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
emoji: "\U0001F310"
|
|
20
20
|
helper:
|
|
21
21
|
name: Underground Courier
|
|
@@ -15,7 +15,7 @@ agents:
|
|
|
15
15
|
expertise: "Cosmic orchestration, multi-world coordination, pattern manipulation across timelines"
|
|
16
16
|
role: "The eternal adversary who orchestrates chaos across all of King's worlds — from The Stand to The Dark Tower, always pulling strings"
|
|
17
17
|
trait: "Ancient, amused, and terrifyingly competent — treats the destruction of worlds like a game of chess he's played a thousand times"
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
emoji: "\U0001F319"
|
|
20
20
|
helper:
|
|
21
21
|
name: The Walkin' Dude's Emissary
|
|
Binary file
|
|
@@ -437,7 +437,6 @@ See: `/pf-workflow interactive-debug` for full workflow.
|
|
|
437
437
|
| Skill | How It Complements |
|
|
438
438
|
|-------|-------------------|
|
|
439
439
|
| `/pf-testing` | Run tests to verify fixes |
|
|
440
|
-
| `/pf-dev-patterns` | Avoid common pitfalls |
|
|
441
440
|
| `/pf-agentic-patterns` | ReAct pattern for systematic investigation |
|
|
442
441
|
| `/pf-workflow interactive-debug` | UI debugging with Playwright MCP |
|
|
443
442
|
|
|
@@ -55,7 +55,7 @@ skills:
|
|
|
55
55
|
anti_patterns:
|
|
56
56
|
- Don't skip security considerations in review
|
|
57
57
|
- Don't approve without running tests
|
|
58
|
-
related_skills: [pf-testing
|
|
58
|
+
related_skills: [pf-testing]
|
|
59
59
|
keywords: [pr, pull-request, quality, linting, security]
|
|
60
60
|
|
|
61
61
|
pf-context-engineering:
|
|
@@ -94,24 +94,6 @@ skills:
|
|
|
94
94
|
related_skills: []
|
|
95
95
|
keywords: [tui, terminal, visualization, dashboard]
|
|
96
96
|
|
|
97
|
-
pf-dev-patterns:
|
|
98
|
-
name: pf-dev-patterns
|
|
99
|
-
description: Common development patterns, fixes, and gotchas
|
|
100
|
-
category: development
|
|
101
|
-
tags: [patterns, debugging, implementation]
|
|
102
|
-
version: "1.0.0"
|
|
103
|
-
prerequisites: []
|
|
104
|
-
examples:
|
|
105
|
-
- context: Implementing features
|
|
106
|
-
invocation: /dev-patterns
|
|
107
|
-
- context: Avoiding known pitfalls
|
|
108
|
-
invocation: /dev-patterns gotchas
|
|
109
|
-
anti_patterns:
|
|
110
|
-
- Don't apply patterns from other frameworks blindly
|
|
111
|
-
related_skills: [pf-code-review, pf-testing]
|
|
112
|
-
keywords: [implementation, debugging, fixes, best-practices]
|
|
113
|
-
allowed_tools: [Read, Glob, Grep, Task] # Reference material - read-only
|
|
114
|
-
|
|
115
97
|
pf-finalize-run:
|
|
116
98
|
name: pf-finalize-run
|
|
117
99
|
description: Validate and save benchmark run results - single exit point for all runs
|
|
@@ -288,7 +270,7 @@ skills:
|
|
|
288
270
|
anti_patterns:
|
|
289
271
|
- Don't jump to solutions without reproducing the issue first
|
|
290
272
|
- Don't fix symptoms instead of root causes
|
|
291
|
-
related_skills: [pf-testing, pf-
|
|
273
|
+
related_skills: [pf-testing, pf-agentic-patterns]
|
|
292
274
|
keywords: [debugging, bisect, reproduce, isolate, root-cause, regression]
|
|
293
275
|
|
|
294
276
|
pf-story:
|
|
@@ -326,7 +308,7 @@ skills:
|
|
|
326
308
|
anti_patterns:
|
|
327
309
|
- Don't run tests directly - use testing-runner subagent
|
|
328
310
|
- Don't skip RED phase in TDD workflow
|
|
329
|
-
related_skills: [pf-
|
|
311
|
+
related_skills: [pf-code-review]
|
|
330
312
|
keywords: [jest, vitest, pytest, unit-test, integration, tdd, red-green]
|
|
331
313
|
|
|
332
314
|
pf-theme:
|
|
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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"""ChangedPanel — Changed file list with status for BikeRack TUI.
|
|
2
|
+
|
|
3
|
+
Story 103-14: Subscribes to /ws/git, extracts dirtyFiles from all repos,
|
|
4
|
+
renders Rich table with file path, change type icon, and status.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
from rich.table import Table
|
|
12
|
+
from rich.text import Text
|
|
13
|
+
|
|
14
|
+
from pennyfarthing_scripts.bikerack.base_panel import PANEL_ICONS, BasePanel
|
|
15
|
+
|
|
16
|
+
# Status code → (icon, label, style)
|
|
17
|
+
_STATUS_MAP: dict[str, tuple[str, str, str]] = {
|
|
18
|
+
"M": ("~", "Modified", "yellow"),
|
|
19
|
+
"A": ("+", "Added", "green"),
|
|
20
|
+
"D": ("-", "Deleted", "red"),
|
|
21
|
+
"?": ("?", "Untracked", "dim"),
|
|
22
|
+
"R": ("→", "Renamed", "cyan"),
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
_DEFAULT_STATUS: tuple[str, str, str] = ("·", "Changed", "yellow")
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _parse_status(status: str) -> tuple[str, str, str]:
|
|
29
|
+
"""Parse 2-char git status code into (icon, label, style).
|
|
30
|
+
|
|
31
|
+
First char = index (staging area), second char = working tree.
|
|
32
|
+
Uses the most significant non-space character.
|
|
33
|
+
"""
|
|
34
|
+
if len(status) < 2:
|
|
35
|
+
return _STATUS_MAP.get(status[:1], _DEFAULT_STATUS)
|
|
36
|
+
|
|
37
|
+
idx, wt = status[0], status[1]
|
|
38
|
+
|
|
39
|
+
# Untracked: both chars are '?'
|
|
40
|
+
if idx == "?" and wt == "?":
|
|
41
|
+
return _STATUS_MAP["?"]
|
|
42
|
+
|
|
43
|
+
# Index change takes priority if present
|
|
44
|
+
if idx not in (" ", "?"):
|
|
45
|
+
return _STATUS_MAP.get(idx, _DEFAULT_STATUS)
|
|
46
|
+
|
|
47
|
+
# Working tree change
|
|
48
|
+
if wt not in (" ", "?"):
|
|
49
|
+
return _STATUS_MAP.get(wt, _DEFAULT_STATUS)
|
|
50
|
+
|
|
51
|
+
return _DEFAULT_STATUS
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class ChangedPanel(BasePanel):
|
|
55
|
+
"""Changed file list panel.
|
|
56
|
+
|
|
57
|
+
Subscribes to the ``git`` WebSocket channel and renders
|
|
58
|
+
dirty files from all repos as a Rich table with file path,
|
|
59
|
+
change type icon, and status.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
channel: str = "git"
|
|
63
|
+
panel_name: str = "Changed"
|
|
64
|
+
icon: str = PANEL_ICONS["changed"][0]
|
|
65
|
+
|
|
66
|
+
def render_panel(self, payload: dict[str, Any]) -> Any:
|
|
67
|
+
"""Render changed file data from WebSocket payload."""
|
|
68
|
+
repos = payload.get("repos", [])
|
|
69
|
+
if not isinstance(repos, list):
|
|
70
|
+
return Text("No changed files", style="dim italic")
|
|
71
|
+
|
|
72
|
+
files: list[tuple[str, dict[str, Any]]] = []
|
|
73
|
+
for repo in repos:
|
|
74
|
+
if not isinstance(repo, dict):
|
|
75
|
+
continue
|
|
76
|
+
repo_name = repo.get("name", "")
|
|
77
|
+
dirty_files = repo.get("dirtyFiles", [])
|
|
78
|
+
if not isinstance(dirty_files, list):
|
|
79
|
+
continue
|
|
80
|
+
for f in dirty_files:
|
|
81
|
+
if not isinstance(f, dict):
|
|
82
|
+
continue
|
|
83
|
+
files.append((repo_name, f))
|
|
84
|
+
|
|
85
|
+
if not files:
|
|
86
|
+
return Text("No changed files", style="dim italic")
|
|
87
|
+
|
|
88
|
+
table = Table()
|
|
89
|
+
table.add_column("", width=2)
|
|
90
|
+
table.add_column("File", style="cyan")
|
|
91
|
+
table.add_column("Status")
|
|
92
|
+
table.add_column("Repo", style="dim")
|
|
93
|
+
|
|
94
|
+
for repo_name, f in files:
|
|
95
|
+
status_code = f.get("status", " ")
|
|
96
|
+
path = f.get("path", "")
|
|
97
|
+
icon, label, style = _parse_status(status_code)
|
|
98
|
+
table.add_row(
|
|
99
|
+
Text(icon, style=f"bold {style}"),
|
|
100
|
+
path,
|
|
101
|
+
Text(label, style=style),
|
|
102
|
+
repo_name,
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
return table
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|