@pennyfarthing/core 10.0.5 → 10.2.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 +19 -22
- package/package.json +17 -11
- package/packages/core/dist/cli/commands/doctor-file-layout.test.js.map +1 -1
- package/packages/core/dist/cli/commands/doctor-legacy.test.js +24 -0
- package/packages/core/dist/cli/commands/doctor-legacy.test.js.map +1 -1
- package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/doctor.js +346 -13
- package/packages/core/dist/cli/commands/doctor.js.map +1 -1
- package/packages/core/dist/cli/commands/e2e-fresh-install.test.js +1 -1
- package/packages/core/dist/cli/commands/e2e-fresh-install.test.js.map +1 -1
- package/packages/core/dist/cli/commands/e2e-upgrade.test.js +1 -1
- package/packages/core/dist/cli/commands/e2e-upgrade.test.js.map +1 -1
- package/packages/core/dist/cli/commands/hooks-consolidation.test.js +2 -2
- package/packages/core/dist/cli/commands/hooks-consolidation.test.js.map +1 -1
- package/packages/core/dist/cli/commands/init-consolidation.test.js.map +1 -1
- package/packages/core/dist/cli/commands/init.d.ts +7 -0
- package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/init.js +41 -8
- package/packages/core/dist/cli/commands/init.js.map +1 -1
- package/packages/core/dist/cli/commands/uninstall.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/uninstall.js +24 -13
- package/packages/core/dist/cli/commands/uninstall.js.map +1 -1
- package/packages/core/dist/cli/commands/update-consolidation.test.js +0 -10
- package/packages/core/dist/cli/commands/update-consolidation.test.js.map +1 -1
- package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/update.js +26 -0
- package/packages/core/dist/cli/commands/update.js.map +1 -1
- package/packages/core/dist/cli/index.js +1 -1
- package/packages/core/dist/cli/index.js.map +1 -1
- package/packages/core/dist/cli/ocean-profiles.test.js.map +1 -1
- package/packages/core/dist/cli/theme-maker.test.js +64 -115
- package/packages/core/dist/cli/theme-maker.test.js.map +1 -1
- package/packages/core/dist/cli/utils/python.d.ts +22 -0
- package/packages/core/dist/cli/utils/python.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/python.js +102 -0
- package/packages/core/dist/cli/utils/python.js.map +1 -0
- package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/settings.js +10 -0
- package/packages/core/dist/cli/utils/settings.js.map +1 -1
- package/packages/core/dist/index.d.ts +1 -1
- package/packages/core/dist/index.d.ts.map +1 -1
- package/packages/core/dist/index.js +2 -2
- package/packages/core/dist/index.js.map +1 -1
- package/packages/core/dist/plugins/plugin-discovery.d.ts +116 -0
- package/packages/core/dist/plugins/plugin-discovery.d.ts.map +1 -0
- package/packages/core/dist/plugins/plugin-discovery.js +165 -0
- package/packages/core/dist/plugins/plugin-discovery.js.map +1 -0
- package/packages/core/dist/plugins/plugin-discovery.test.d.ts +22 -0
- package/packages/core/dist/plugins/plugin-discovery.test.d.ts.map +1 -0
- package/packages/core/dist/plugins/plugin-discovery.test.js +498 -0
- package/packages/core/dist/plugins/plugin-discovery.test.js.map +1 -0
- package/packages/core/dist/scripts/generate-spider-report.js.map +1 -1
- package/packages/core/dist/workflow/context-watch.d.ts +80 -0
- package/packages/core/dist/workflow/context-watch.d.ts.map +1 -0
- package/packages/core/dist/workflow/context-watch.js +235 -0
- package/packages/core/dist/workflow/context-watch.js.map +1 -0
- package/packages/core/dist/workflow/context-watch.test.d.ts +1 -0
- package/packages/core/dist/workflow/context-watch.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/context-watch.test.js +746 -0
- package/packages/core/dist/workflow/context-watch.test.js.map +1 -0
- package/packages/core/dist/workflow/file-watch.d.ts +82 -0
- package/packages/core/dist/workflow/file-watch.d.ts.map +1 -0
- package/packages/core/dist/workflow/file-watch.js +198 -0
- package/packages/core/dist/workflow/file-watch.js.map +1 -0
- package/packages/core/dist/workflow/file-watch.test.d.ts +21 -0
- package/packages/core/dist/workflow/file-watch.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/file-watch.test.js +469 -0
- package/packages/core/dist/workflow/file-watch.test.js.map +1 -0
- package/packages/core/dist/workflow/observation-writer.d.ts +79 -0
- package/packages/core/dist/workflow/observation-writer.d.ts.map +1 -0
- package/packages/core/dist/workflow/observation-writer.js +97 -0
- package/packages/core/dist/workflow/observation-writer.js.map +1 -0
- package/packages/core/dist/workflow/observation-writer.test.d.ts +18 -0
- package/packages/core/dist/workflow/observation-writer.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/observation-writer.test.js +424 -0
- package/packages/core/dist/workflow/observation-writer.test.js.map +1 -0
- package/packages/core/dist/workflow/story-workflow-routing.test.js +4 -2
- package/packages/core/dist/workflow/story-workflow-routing.test.js.map +1 -1
- package/packages/core/dist/workflow/tandem-lifecycle.d.ts +117 -0
- package/packages/core/dist/workflow/tandem-lifecycle.d.ts.map +1 -0
- package/packages/core/dist/workflow/tandem-lifecycle.js +186 -0
- package/packages/core/dist/workflow/tandem-lifecycle.js.map +1 -0
- package/packages/core/dist/workflow/tandem-lifecycle.test.d.ts +16 -0
- package/packages/core/dist/workflow/tandem-lifecycle.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/tandem-lifecycle.test.js +531 -0
- package/packages/core/dist/workflow/tandem-lifecycle.test.js.map +1 -0
- package/packages/core/dist/workflow/tool-watch.d.ts +68 -0
- package/packages/core/dist/workflow/tool-watch.d.ts.map +1 -0
- package/packages/core/dist/workflow/tool-watch.js +166 -0
- package/packages/core/dist/workflow/tool-watch.js.map +1 -0
- package/packages/core/dist/workflow/tool-watch.test.d.ts +18 -0
- package/packages/core/dist/workflow/tool-watch.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/tool-watch.test.js +718 -0
- package/packages/core/dist/workflow/tool-watch.test.js.map +1 -0
- package/packages/core/dist/workflow/workflow-migration.test.js +8 -4
- package/packages/core/dist/workflow/workflow-migration.test.js.map +1 -1
- package/packages/core/dist/workflow/workflow-schema.d.ts +7 -0
- package/packages/core/dist/workflow/workflow-schema.d.ts.map +1 -1
- package/packages/core/dist/workflow/workflow-schema.js +44 -0
- package/packages/core/dist/workflow/workflow-schema.js.map +1 -1
- package/packages/core/dist/workflow/workflow-schema.test.d.ts.map +1 -1
- package/packages/core/dist/workflow/workflow-schema.test.js +192 -0
- package/packages/core/dist/workflow/workflow-schema.test.js.map +1 -1
- package/pennyfarthing-dist/agents/README.md +1 -3
- package/pennyfarthing-dist/agents/architect.md +0 -6
- package/pennyfarthing-dist/agents/devops.md +0 -6
- package/pennyfarthing-dist/agents/handoff.md +18 -3
- package/pennyfarthing-dist/agents/orchestrator.md +0 -6
- package/pennyfarthing-dist/agents/pm.md +0 -6
- package/pennyfarthing-dist/agents/sm-finish.md +1 -1
- package/pennyfarthing-dist/agents/sm-handoff.md +27 -4
- package/pennyfarthing-dist/agents/sm.md +11 -11
- package/pennyfarthing-dist/agents/tandem-backseat.md +119 -0
- package/pennyfarthing-dist/commands/architect.md +11 -3
- package/pennyfarthing-dist/commands/close-epic.md +24 -131
- package/pennyfarthing-dist/commands/create-theme.md +14 -24
- package/pennyfarthing-dist/commands/dev.md +11 -3
- package/pennyfarthing-dist/commands/devops.md +11 -3
- package/pennyfarthing-dist/commands/health-check.md +1 -3
- package/pennyfarthing-dist/commands/help.md +8 -12
- package/pennyfarthing-dist/commands/list-themes.md +14 -16
- package/pennyfarthing-dist/commands/orchestrator.md +11 -3
- package/pennyfarthing-dist/commands/parallel-work.md +1 -3
- package/pennyfarthing-dist/commands/pm.md +11 -3
- package/pennyfarthing-dist/commands/prime.md +6 -6
- package/pennyfarthing-dist/commands/reviewer.md +11 -3
- package/pennyfarthing-dist/commands/run-ci.md +1 -1
- package/pennyfarthing-dist/commands/set-theme.md +14 -51
- package/pennyfarthing-dist/commands/setup.md +5 -1
- package/pennyfarthing-dist/commands/show-theme.md +14 -16
- package/pennyfarthing-dist/commands/sm.md +11 -3
- package/pennyfarthing-dist/commands/tea.md +11 -3
- package/pennyfarthing-dist/commands/tech-writer.md +11 -3
- package/pennyfarthing-dist/commands/theme-maker.md +14 -671
- package/pennyfarthing-dist/commands/theme.md +95 -0
- package/pennyfarthing-dist/commands/ux-designer.md +11 -3
- package/pennyfarthing-dist/commands/work.md +3 -5
- package/pennyfarthing-dist/guides/agent-behavior.md +62 -6
- package/pennyfarthing-dist/guides/agent-coordination.md +11 -13
- package/pennyfarthing-dist/guides/agent-template-tactical.md +2 -3
- package/pennyfarthing-dist/guides/bikelane.md +3 -2
- package/pennyfarthing-dist/guides/command-tag-taxonomy.md +212 -0
- package/pennyfarthing-dist/guides/hooks.md +5 -5
- package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +3 -3
- package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +9 -59
- package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +4 -5
- package/pennyfarthing-dist/guides/prime.md +2 -2
- package/pennyfarthing-dist/guides/scale-levels.md +4 -6
- package/pennyfarthing-dist/guides/skill-schema.md +4 -4
- package/pennyfarthing-dist/guides/tandem-protocol.md +158 -0
- package/pennyfarthing-dist/personas/themes/discworld.yaml +1 -1
- package/pennyfarthing-dist/personas/themes/fifth-element.yaml +295 -0
- package/pennyfarthing-dist/scripts/README.md +1 -1
- package/pennyfarthing-dist/scripts/core/agent-session.sh +6 -2
- package/pennyfarthing-dist/scripts/core/check-context.sh +0 -0
- package/pennyfarthing-dist/scripts/core/handoff-marker.sh +0 -0
- package/pennyfarthing-dist/scripts/core/phase-check-start.sh +0 -0
- package/pennyfarthing-dist/scripts/core/prime.sh +8 -10
- package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +0 -0
- package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +0 -0
- package/pennyfarthing-dist/scripts/git/git-status-all.sh +0 -0
- package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +8 -6
- package/pennyfarthing-dist/scripts/git/release.sh +0 -0
- package/pennyfarthing-dist/scripts/git/worktree-manager.sh +0 -0
- package/pennyfarthing-dist/scripts/health/drift-detection.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +131 -54
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/context-warning.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/cyclist-pretooluse-hook.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/post-merge.sh +32 -15
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +4 -3
- package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/pre-push.sh +11 -5
- package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +0 -0
- package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/session-start.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/session-stop.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/background-tasks.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/checkpoint.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/common.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/file-lock.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/logging.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/retry.sh +0 -0
- package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +0 -0
- package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/README.md +1 -1
- package/pennyfarthing-dist/scripts/misc/add-short-names.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/add_short_names.py +0 -0
- package/pennyfarthing-dist/scripts/misc/backlog.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/check-status.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/find-related-work.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +0 -0
- package/pennyfarthing-dist/scripts/misc/repo-scan.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/repo-utils.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/run-ci.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/statusline.sh +50 -8
- package/pennyfarthing-dist/scripts/misc/uninstall.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +1 -2
- package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +0 -0
- package/pennyfarthing-dist/scripts/story/create-story.sh +0 -0
- package/pennyfarthing-dist/scripts/story/size-story.sh +0 -0
- package/pennyfarthing-dist/scripts/story/story-template.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +5 -5
- package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +3 -79
- package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/theme/README.md +1 -1
- package/pennyfarthing-dist/scripts/theme/list-themes.sh +0 -0
- package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +0 -1
- package/pennyfarthing-dist/scripts/workflow/README.md +2 -2
- package/pennyfarthing-dist/scripts/workflow/check.py +0 -0
- package/pennyfarthing-dist/scripts/workflow/check.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/complete-step.py +0 -0
- package/pennyfarthing-dist/scripts/workflow/finish-story.sh +10 -144
- package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +0 -0
- package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +0 -0
- package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +2 -2
- package/pennyfarthing-dist/skills/skill-registry.schema.json +8 -0
- package/pennyfarthing-dist/skills/skill-registry.yaml +21 -17
- package/pennyfarthing-dist/skills/sprint/skill.md +25 -2
- package/pennyfarthing-dist/skills/story/scripts/create-story.sh +0 -0
- package/pennyfarthing-dist/skills/story/scripts/size-story.sh +0 -0
- package/pennyfarthing-dist/skills/story/scripts/story-template.sh +0 -0
- package/pennyfarthing-dist/skills/theme/skill.md +290 -75
- package/pennyfarthing-dist/skills/theme-creation/SKILL.md +23 -166
- package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +0 -0
- package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +0 -0
- package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +0 -0
- package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +0 -0
- package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +0 -0
- package/pennyfarthing-dist/skills/workflow/skill.md +27 -4
- package/pennyfarthing-dist/templates/agent-scopes.yaml.template +0 -11
- package/pennyfarthing-dist/templates/auto-load-sm.sh.template +14 -0
- package/pennyfarthing-dist/templates/settings.local.json.template +9 -0
- package/pennyfarthing-dist/workflows/2party-tdd.yaml +399 -0
- package/pennyfarthing-dist/workflows/architecture/workflow.yaml +65 -0
- package/pennyfarthing-dist/workflows/bdd-tandem.yaml +70 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +41 -24
- package/pennyfarthing-dist/workflows/tdd-tandem.yaml +61 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/bellmode_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/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__/schema_validation_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bellmode_hook.py +202 -47
- package/pennyfarthing_scripts/brownfield/__init__.py +6 -6
- package/pennyfarthing_scripts/brownfield/__main__.py +1 -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/brownfield/cli.py +0 -1
- package/pennyfarthing_scripts/brownfield/discover.py +1 -2
- package/pennyfarthing_scripts/cli.py +23 -3
- package/pennyfarthing_scripts/codemarkers/__init__.py +23 -0
- package/pennyfarthing_scripts/codemarkers/__main__.py +6 -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/codemarkers/analyze.py +501 -0
- package/pennyfarthing_scripts/codemarkers/cli.py +179 -0
- package/pennyfarthing_scripts/codemarkers/formatters.py +88 -0
- package/pennyfarthing_scripts/codemarkers/models.py +60 -0
- package/pennyfarthing_scripts/common/__init__.py +8 -9
- package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/config.py +1 -1
- package/pennyfarthing_scripts/complexity/__init__.py +15 -0
- package/pennyfarthing_scripts/complexity/__main__.py +6 -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/complexity/analyze.py +207 -0
- package/pennyfarthing_scripts/complexity/cli.py +82 -0
- package/pennyfarthing_scripts/complexity/formatters.py +64 -0
- package/pennyfarthing_scripts/complexity/models.py +32 -0
- package/pennyfarthing_scripts/context.py +14 -15
- package/pennyfarthing_scripts/deadcode/__init__.py +6 -0
- package/pennyfarthing_scripts/deadcode/__main__.py +6 -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/deadcode/analyze.py +322 -0
- package/pennyfarthing_scripts/deadcode/cli.py +163 -0
- package/pennyfarthing_scripts/deadcode/formatters.py +106 -0
- package/pennyfarthing_scripts/deadcode/models.py +54 -0
- package/pennyfarthing_scripts/dependencies/__init__.py +20 -0
- package/pennyfarthing_scripts/dependencies/__main__.py +5 -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/dependencies/analyze.py +155 -0
- package/pennyfarthing_scripts/dependencies/cli.py +76 -0
- package/pennyfarthing_scripts/dependencies/formatters.py +63 -0
- package/pennyfarthing_scripts/dependencies/models.py +39 -0
- package/pennyfarthing_scripts/git/__init__.py +5 -5
- 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/git/create_branches.py +3 -2
- package/pennyfarthing_scripts/git/status_all.py +1 -1
- package/pennyfarthing_scripts/healthscore/__init__.py +21 -0
- package/pennyfarthing_scripts/healthscore/__main__.py +14 -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/healthscore/analyze.py +591 -0
- package/pennyfarthing_scripts/healthscore/cli.py +80 -0
- package/pennyfarthing_scripts/healthscore/formatters.py +46 -0
- package/pennyfarthing_scripts/healthscore/models.py +43 -0
- package/pennyfarthing_scripts/hooks/cyclist-pretooluse-hook.sh +0 -0
- package/pennyfarthing_scripts/hooks.py +8 -11
- package/pennyfarthing_scripts/hotspots/__init__.py +6 -6
- 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/hotspots/analyze.py +155 -14
- package/pennyfarthing_scripts/hotspots/cli.py +12 -10
- package/pennyfarthing_scripts/hotspots/models.py +0 -1
- package/pennyfarthing_scripts/jira/__init__.py +15 -17
- package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/create.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/operations.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/reconcile.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/bidirectional.py +44 -18
- package/pennyfarthing_scripts/jira/claim.py +21 -0
- package/pennyfarthing_scripts/jira/cli.py +6 -3
- package/pennyfarthing_scripts/jira/client.py +32 -4
- package/pennyfarthing_scripts/jira/create.py +45 -1
- package/pennyfarthing_scripts/jira/epic.py +3 -2
- package/pennyfarthing_scripts/jira/reconcile.py +0 -1
- package/pennyfarthing_scripts/jira/story.py +2 -0
- package/pennyfarthing_scripts/jira/sync.py +1 -1
- 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/migration/skill.py +0 -1
- package/pennyfarthing_scripts/migration/step.py +0 -1
- package/pennyfarthing_scripts/migration/validate.py +8 -5
- package/pennyfarthing_scripts/patch_mode.py +2 -2
- package/pennyfarthing_scripts/preflight/__init__.py +1 -1
- 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/preflight/finish.py +0 -1
- package/pennyfarthing_scripts/pretooluse_hook.py +6 -7
- 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__/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__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/cli.py +5 -1
- package/pennyfarthing_scripts/prime/loader.py +2 -3
- package/pennyfarthing_scripts/prime/persona.py +2 -1
- package/pennyfarthing_scripts/prime/tiers.py +4 -4
- package/pennyfarthing_scripts/schema_validation_hook.py +2 -3
- package/pennyfarthing_scripts/sprint/__init__.py +10 -12
- package/pennyfarthing_scripts/sprint/__main__.py +2 -2
- 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__/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.py +0 -1
- package/pennyfarthing_scripts/sprint/archive_epic.py +198 -97
- package/pennyfarthing_scripts/sprint/cli.py +62 -46
- package/pennyfarthing_scripts/sprint/epic_add.py +8 -1
- package/pennyfarthing_scripts/sprint/import_epic.py +42 -18
- package/pennyfarthing_scripts/sprint/loader.py +6 -0
- package/pennyfarthing_scripts/sprint/status.py +1 -2
- package/pennyfarthing_scripts/sprint/story_add.py +202 -27
- package/pennyfarthing_scripts/sprint/story_finish.py +209 -0
- package/pennyfarthing_scripts/sprint/story_update.py +11 -3
- package/pennyfarthing_scripts/sprint/validate_cmd.py +0 -1
- package/pennyfarthing_scripts/sprint/validator.py +120 -6
- package/pennyfarthing_scripts/sprint/work.py +28 -7
- package/pennyfarthing_scripts/sprint/yaml_io.py +10 -2
- package/pennyfarthing_scripts/story/__init__.py +14 -16
- 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/story/size.py +0 -1
- package/pennyfarthing_scripts/story/template.py +0 -1
- package/pennyfarthing_scripts/swebench.py +1 -2
- 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_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_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_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_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_validate_cmd.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_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/conftest.py +1 -2
- package/pennyfarthing_scripts/tests/test_brownfield.py +10 -13
- package/pennyfarthing_scripts/tests/test_cli_modules.py +0 -4
- package/pennyfarthing_scripts/tests/test_codemarkers.py +687 -0
- package/pennyfarthing_scripts/tests/test_common.py +9 -4
- package/pennyfarthing_scripts/tests/test_epic_shard_validation.py +699 -0
- package/pennyfarthing_scripts/tests/test_git_utils.py +10 -13
- package/pennyfarthing_scripts/tests/test_healthscore.py +516 -0
- package/pennyfarthing_scripts/tests/test_jira_package.py +0 -3
- package/pennyfarthing_scripts/tests/test_package_structure.py +3 -16
- package/pennyfarthing_scripts/tests/test_patch_mode.py +7 -11
- package/pennyfarthing_scripts/tests/test_prime.py +39 -21
- package/pennyfarthing_scripts/tests/test_sprint_package.py +3 -8
- package/pennyfarthing_scripts/tests/test_sprint_validator.py +53 -5
- package/pennyfarthing_scripts/tests/test_story_add.py +3 -7
- package/pennyfarthing_scripts/tests/test_story_package.py +0 -3
- package/pennyfarthing_scripts/tests/test_story_update.py +5 -10
- package/pennyfarthing_scripts/tests/test_tiers.py +18 -17
- package/pennyfarthing_scripts/tests/test_token_counting.py +19 -13
- package/pennyfarthing_scripts/tests/test_validate_cmd.py +2 -7
- package/pennyfarthing_scripts/tests/test_workflow_check.py +0 -2
- package/pennyfarthing_scripts/tests/test_yaml_io.py +0 -3
- package/pennyfarthing_scripts/theme/__init__.py +5 -0
- package/pennyfarthing_scripts/theme/__main__.py +6 -0
- package/pennyfarthing_scripts/theme/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/theme/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/theme/cli.py +287 -0
- package/pennyfarthing_scripts/validate/__init__.py +21 -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/__init__.py +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/pennyfarthing_scripts/validate/adapters/agent.py +239 -0
- package/pennyfarthing_scripts/validate/adapters/schema.py +30 -0
- package/pennyfarthing_scripts/validate/adapters/skill_command.py +292 -0
- package/pennyfarthing_scripts/validate/adapters/sprint.py +69 -0
- package/pennyfarthing_scripts/validate/adapters/workflow.py +320 -0
- package/pennyfarthing_scripts/validate/cli.py +141 -0
- package/pennyfarthing_scripts/welcome_hook.py +2 -3
- package/pennyfarthing_scripts/workflow.py +3 -3
- package/scripts/README.md +41 -0
- package/pennyfarthing-dist/agents/workflow-status-check.md +0 -96
- package/pennyfarthing-dist/commands/benchmark-control.md +0 -69
- package/pennyfarthing-dist/commands/benchmark.md +0 -485
- package/pennyfarthing-dist/commands/job-fair.md +0 -102
- package/pennyfarthing-dist/commands/solo.md +0 -447
- package/pennyfarthing-dist/guides/benchmarks.md +0 -62
- package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing-dist/scripts/test/ensure-swebench-data.sh +0 -59
- package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +0 -220
- package/pennyfarthing-dist/scripts/test/swebench-judge.py +0 -374
- package/pennyfarthing-dist/scripts/test/test-cache.sh +0 -165
- package/pennyfarthing-dist/scripts/test/test-setup.sh +0 -337
- package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +0 -13
- package/pennyfarthing-dist/scripts/theme/compute_theme_tiers.py +0 -402
- package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +0 -97
- package/pennyfarthing-dist/skills/finalize-run/SKILL.md +0 -261
- package/pennyfarthing-dist/skills/judge/SKILL.md +0 -644
- package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +0 -187
- package/pennyfarthing-dist/workflows/dev-story/checklist.md +0 -80
- package/pennyfarthing-dist/workflows/dev-story/instructions.xml +0 -410
- package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +0 -50
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +0 -201
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +0 -156
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +0 -140
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +0 -203
- package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +0 -74
- package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +0 -27
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/pretooluse_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/jira/__pycache__/compat.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_cli.cpython-314-pytest-9.0.2.pyc +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Manage persona themes - list, show, set, create, or interactive wizard
|
|
3
|
+
args: "[list|show|set|create|maker] [options]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Theme Management
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Manage persona themes: list available themes, view details, switch themes, create custom themes, and run the interactive AI-driven theme wizard.
|
|
10
|
+
</purpose>
|
|
11
|
+
|
|
12
|
+
## Commands
|
|
13
|
+
|
|
14
|
+
### `/theme` or `/theme show [name]`
|
|
15
|
+
|
|
16
|
+
Show current theme or specific theme details.
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pf theme show [name]
|
|
20
|
+
|
|
21
|
+
# Show extended details (OCEAN scores, quirks, catchphrases)
|
|
22
|
+
pf theme show [name] --full
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### `/theme list`
|
|
26
|
+
|
|
27
|
+
List all available themes with current theme highlighted.
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pf theme list
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Output shows current theme marked with `*` and tier brackets: `[S]` elite, `[A]` excellent, `[B]` strong, `[C]` good, `[D]` below average, `[U]` unbenchmarked.
|
|
34
|
+
|
|
35
|
+
### `/theme set <name>`
|
|
36
|
+
|
|
37
|
+
Set the active persona theme.
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
pf theme set <name>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
After setting, refresh the current agent's persona:
|
|
44
|
+
```bash
|
|
45
|
+
pf agent start "sm"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### `/theme create <name> [--base <theme>] [--user]`
|
|
49
|
+
|
|
50
|
+
Create a new custom theme by copying from a base.
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Create from default base (minimalist)
|
|
54
|
+
pf theme create my-theme
|
|
55
|
+
|
|
56
|
+
# Create from specific base
|
|
57
|
+
pf theme create my-theme --base blade-runner
|
|
58
|
+
|
|
59
|
+
# Create as user-level theme (available across all projects)
|
|
60
|
+
pf theme create my-theme --user
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### `/theme maker`
|
|
64
|
+
|
|
65
|
+
Interactive wizard for AI-driven theme creation. Supports three modes:
|
|
66
|
+
|
|
67
|
+
| Mode | Description |
|
|
68
|
+
|------|-------------|
|
|
69
|
+
| AI-Driven | Describe a concept, AI generates all 10 agent personas |
|
|
70
|
+
| Guided | AI suggests characters per agent, you pick |
|
|
71
|
+
| Manual | You specify character, style, and quote for each agent |
|
|
72
|
+
|
|
73
|
+
## Quick Reference
|
|
74
|
+
|
|
75
|
+
| Command | Action |
|
|
76
|
+
|---------|--------|
|
|
77
|
+
| `/theme` | Show current theme |
|
|
78
|
+
| `/theme list` | List all themes |
|
|
79
|
+
| `/theme show blade-runner` | Show specific theme |
|
|
80
|
+
| `/theme show blade-runner --full` | Extended details |
|
|
81
|
+
| `/theme set discworld` | Switch to theme |
|
|
82
|
+
| `/theme create my-theme` | Create from base |
|
|
83
|
+
| `/theme maker` | Interactive wizard |
|
|
84
|
+
|
|
85
|
+
## Related
|
|
86
|
+
|
|
87
|
+
| Skill | Purpose |
|
|
88
|
+
|-------|---------|
|
|
89
|
+
| `/theme` | Full skill with maker wizard details |
|
|
90
|
+
|
|
91
|
+
<reference>
|
|
92
|
+
- **Skill:** `.claude/skills/theme/skill.md`
|
|
93
|
+
- **CLI:** `pf theme [list|show|set|create]`
|
|
94
|
+
- **Config:** `.pennyfarthing/config.local.yaml`
|
|
95
|
+
</reference>
|
|
@@ -2,8 +2,16 @@
|
|
|
2
2
|
description: UX Designer - User experience design and UI patterns
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
+
<agent-activation>
|
|
6
|
+
**FIRST:** Use Bash tool to run:
|
|
5
7
|
```bash
|
|
6
|
-
|
|
7
|
-
export PYTHONPATH="$(dirname "$(dirname "$(cd "$d/.pennyfarthing/scripts" && pwd -P)")"):${PYTHONPATH:-}"
|
|
8
|
-
python3 -m pennyfarthing_scripts.cli agent start "ux-designer"
|
|
8
|
+
pf agent start "ux-designer"
|
|
9
9
|
```
|
|
10
|
+
This loads your persona and agent context. Adopt the character shown in the output.
|
|
11
|
+
</agent-activation>
|
|
12
|
+
|
|
13
|
+
<instructions>
|
|
14
|
+
You are now the UX Designer agent. Follow your agent instructions from the activation output.
|
|
15
|
+
|
|
16
|
+
The activation output begins with a `# Workflow State` section containing `state`, `story_id`, `phase`, `phase_owner`, and `backlog_count`. Act on this state per your agent definition.
|
|
17
|
+
</instructions>
|
|
@@ -7,11 +7,9 @@ description: Resume work or start new - smart entry point that picks up where yo
|
|
|
7
7
|
<agent-activation>
|
|
8
8
|
**FIRST:** Use Bash tool to run:
|
|
9
9
|
```bash
|
|
10
|
-
|
|
11
|
-
export PYTHONPATH="$(dirname "$(dirname "$(cd "$d/.pennyfarthing/scripts" && pwd -P)")"):${PYTHONPATH:-}"
|
|
12
|
-
python3 -m pennyfarthing_scripts.cli agent start "sm"
|
|
10
|
+
pf agent start "sm"
|
|
13
11
|
```
|
|
14
|
-
This loads your persona. Adopt the character shown in the output.
|
|
12
|
+
This loads your persona and agent context. Adopt the character shown in the output.
|
|
15
13
|
</agent-activation>
|
|
16
14
|
|
|
17
15
|
<purpose>
|
|
@@ -21,5 +19,5 @@ Smart entry point for picking up work. Activates SM who handles all work coordin
|
|
|
21
19
|
<instructions>
|
|
22
20
|
You are now the SM agent. Follow your agent instructions from the activation output.
|
|
23
21
|
|
|
24
|
-
|
|
22
|
+
The activation output begins with a `# Workflow State` section containing `state`, `story_id`, `phase`, `phase_owner`, and `backlog_count`. Act on this state per your agent definition.
|
|
25
23
|
</instructions>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<critical>
|
|
14
14
|
**Story completion is MANDATORY.** A story is NOT done until:
|
|
15
15
|
1. Reviewer approves and merges the PR
|
|
16
|
-
2. SM runs `finish
|
|
16
|
+
2. SM runs `pf sprint story finish` (archive session, update Jira, clean up)
|
|
17
17
|
|
|
18
18
|
**Never** start new work while stories have open PRs. The merge gate blocks `/sprint work` if open PRs exist.
|
|
19
19
|
|
|
@@ -40,6 +40,61 @@
|
|
|
40
40
|
|
|
41
41
|
---
|
|
42
42
|
|
|
43
|
+
<tandem-protocol>
|
|
44
|
+
## Tandem Backseat Observer
|
|
45
|
+
|
|
46
|
+
On activation, check session file for a `**Tandem:**` line (e.g., `**Tandem:** architect (file-watch)`).
|
|
47
|
+
|
|
48
|
+
**If no `**Tandem:**` line in session:** Skip entirely — no-op.
|
|
49
|
+
|
|
50
|
+
**If tandem is configured:**
|
|
51
|
+
|
|
52
|
+
1. **Resolve backseat persona** from theme:
|
|
53
|
+
```bash
|
|
54
|
+
THEME=$(yq '.theme' .pennyfarthing/config.local.yaml)
|
|
55
|
+
PARTNER_CHARACTER=$(yq ".agents.{PARTNER}.character" .pennyfarthing/personas/themes/${THEME}.yaml)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
2. **Initialize observation file:**
|
|
59
|
+
Create `.session/{STORY_ID}-tandem-{PARTNER}.md` with header:
|
|
60
|
+
```markdown
|
|
61
|
+
# Tandem Observations: {STORY_ID}
|
|
62
|
+
**Observer:** {PARTNER} ({PARTNER_CHARACTER})
|
|
63
|
+
**Phase:** {PHASE}
|
|
64
|
+
**Started:** {ISO_TIMESTAMP}
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
3. **Spawn backseat** (Task tool):
|
|
70
|
+
```yaml
|
|
71
|
+
subagent_type: "general-purpose"
|
|
72
|
+
model: "haiku"
|
|
73
|
+
run_in_background: true
|
|
74
|
+
prompt: |
|
|
75
|
+
Read .pennyfarthing/agents/tandem-backseat.md for your instructions.
|
|
76
|
+
|
|
77
|
+
PARTNER: "{PARTNER}"
|
|
78
|
+
CHARACTER: "{PARTNER_CHARACTER}"
|
|
79
|
+
STORY_ID: "{STORY_ID}"
|
|
80
|
+
SCOPE: "{SCOPE}"
|
|
81
|
+
OBSERVATION_FILE: ".session/{STORY_ID}-tandem-{PARTNER}.md"
|
|
82
|
+
SESSION_FILE: ".session/{STORY_ID}-session.md"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
4. **During work:** PostToolUse hook automatically detects new observations
|
|
86
|
+
and injects them as `[Tandem] {CHARACTER}: {observation}`.
|
|
87
|
+
When you receive a tandem injection, surface it naturally:
|
|
88
|
+
*"{PARTNER_CHARACTER} suggests we extract this into an adapter."*
|
|
89
|
+
|
|
90
|
+
5. **Before handoff:** Terminate the backseat background task, then proceed
|
|
91
|
+
with normal handoff sequence.
|
|
92
|
+
|
|
93
|
+
See `.pennyfarthing/guides/tandem-protocol.md` for full protocol details.
|
|
94
|
+
</tandem-protocol>
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
43
98
|
## Reflector
|
|
44
99
|
|
|
45
100
|
<critical>
|
|
@@ -61,16 +116,17 @@
|
|
|
61
116
|
## Exit Protocol
|
|
62
117
|
|
|
63
118
|
1. Write assessment to session
|
|
64
|
-
2.
|
|
65
|
-
3.
|
|
66
|
-
4.
|
|
67
|
-
5.
|
|
119
|
+
2. Terminate tandem backseat (if active)
|
|
120
|
+
3. Spawn `handoff` subagent → returns `HANDOFF_RESULT: {status, next_agent}`
|
|
121
|
+
4. If blocked → report error, stop
|
|
122
|
+
5. Run `.pennyfarthing/scripts/core/handoff-marker.sh {next_agent}`
|
|
123
|
+
6. Extract marker from YAML output, emit it:
|
|
68
124
|
```
|
|
69
125
|
<!-- CYCLIST:HANDOFF:/dev -->
|
|
70
126
|
|
|
71
127
|
Run `/dev` to continue
|
|
72
128
|
```
|
|
73
|
-
|
|
129
|
+
7. EXIT (nothing after marker)
|
|
74
130
|
</agent-exit-protocol>
|
|
75
131
|
|
|
76
132
|
<wrong-phase-detection>
|
|
@@ -22,7 +22,7 @@ Handoffs between agents are managed by Haiku subagents.
|
|
|
22
22
|
### 1. Single Source of Truth
|
|
23
23
|
- **Agent definitions:** `.pennyfarthing/agents/`
|
|
24
24
|
- **Subagent prompts:** `.pennyfarthing/agents/`
|
|
25
|
-
- **Scope configuration:** `.pennyfarthing/
|
|
25
|
+
- **Scope configuration:** `.pennyfarthing/project/docs/agent-scopes.yaml`
|
|
26
26
|
- **Sprint tracking:** `sprint/current-sprint.yaml`
|
|
27
27
|
- **Session state:** `.session/{STORY_ID}-session.md`
|
|
28
28
|
|
|
@@ -55,7 +55,7 @@ Support Agents
|
|
|
55
55
|
|
|
56
56
|
```
|
|
57
57
|
/$CLAUDE_PROJECT_DIR/
|
|
58
|
-
├── .
|
|
58
|
+
├── .pennyfarthing/ # Pennyfarthing coordination directory (symlinks to node_modules)
|
|
59
59
|
│ ├── agents/ # Agent definitions (symlinks to pennyfarthing-dist)
|
|
60
60
|
│ │ ├── orchestrator.md # Master orchestrator
|
|
61
61
|
│ │ ├── pm.md # Product Manager
|
|
@@ -68,17 +68,18 @@ Support Agents
|
|
|
68
68
|
│ │ ├── ux-designer.md # UX Designer
|
|
69
69
|
│ │ └── devops.md # DevOps Engineer
|
|
70
70
|
│ │
|
|
71
|
-
│ ├── commands/ #
|
|
71
|
+
│ ├── commands/ # Slash commands (symlinks)
|
|
72
72
|
│ ├── guides/ # Behavior guides (symlinks)
|
|
73
|
-
│ ├── skills/ #
|
|
73
|
+
│ ├── skills/ # Knowledge domain skills (symlinks)
|
|
74
74
|
│ ├── scripts/ # Utility scripts (symlinks)
|
|
75
75
|
│ │
|
|
76
76
|
│ ├── project/ # Project-specific overrides
|
|
77
77
|
│ │ ├── agents/ # Agent sidecars (patterns, gotchas, decisions)
|
|
78
78
|
│ │ └── commands/ # Custom project commands
|
|
79
79
|
│ │
|
|
80
|
-
│ ├──
|
|
81
|
-
│
|
|
80
|
+
│ ├── sidecars/ # Agent learning files (local, writable)
|
|
81
|
+
│ ├── config.local.yaml # Theme, bell_mode, relay_mode, permission_mode
|
|
82
|
+
│ └── persona-config.yaml # Project default theme (shared with team)
|
|
82
83
|
│
|
|
83
84
|
├── .session/ # Active work sessions
|
|
84
85
|
│ └── {story-id}-session.md # Session files (one per story)
|
|
@@ -309,9 +310,6 @@ SM → TEA → Dev → Reviewer → SM
|
|
|
309
310
|
| `testing-runner.md` | Run tests and report results | haiku |
|
|
310
311
|
| **Reviewer Subagents** | | |
|
|
311
312
|
| `reviewer-preflight.md` | Pre-flight checks before review | haiku |
|
|
312
|
-
| **Utility Subagents** | | |
|
|
313
|
-
| `workflow-status-check.md` | Check workflow status across repos | haiku |
|
|
314
|
-
|
|
315
313
|
### SM → TEA (Story Setup)
|
|
316
314
|
**Trigger:** User selects story via `/new-work`
|
|
317
315
|
**Subagent:** `sm-setup MODE=setup` then `sm-handoff`
|
|
@@ -440,10 +438,10 @@ Dev Agent Example (API story):
|
|
|
440
438
|
### Directory Structure
|
|
441
439
|
```
|
|
442
440
|
.pennyfarthing/agents/ # Agent definitions (symlinked)
|
|
443
|
-
.
|
|
444
|
-
.
|
|
445
|
-
.session/
|
|
446
|
-
sprint/
|
|
441
|
+
.pennyfarthing/commands/ # Slash commands (symlinked)
|
|
442
|
+
.pennyfarthing/skills/ # Knowledge domain skills (symlinked)
|
|
443
|
+
.session/ # Session files
|
|
444
|
+
sprint/ # Sprint tracking
|
|
447
445
|
```
|
|
448
446
|
|
|
449
447
|
### Commands Reference
|
|
@@ -62,8 +62,7 @@ From theme config. Model: haiku. Tasks: {What helpers do for this agent}
|
|
|
62
62
|
</skills>
|
|
63
63
|
|
|
64
64
|
<context>
|
|
65
|
-
**See:** `.pennyfarthing/guides/agent-behavior.md` for shared tactical agent behavior.
|
|
66
|
-
**See:** `.pennyfarthing/guides/agent-behavior.md` for project info and git strategy.
|
|
65
|
+
**See:** `.pennyfarthing/guides/agent-behavior.md` for shared tactical agent behavior, project info, and git strategy.
|
|
67
66
|
</context>
|
|
68
67
|
|
|
69
68
|
<reasoning-mode>
|
|
@@ -87,7 +86,7 @@ REFLECT: {what this means}
|
|
|
87
86
|
</reasoning-mode>
|
|
88
87
|
|
|
89
88
|
<on-activation>
|
|
90
|
-
1.
|
|
89
|
+
1. Workflow state is provided in prime activation output (`# Workflow State` section)
|
|
91
90
|
2. Read session file if active work exists
|
|
92
91
|
3. Verify actual state matches session file
|
|
93
92
|
4. Check if handed off to me (Phase field)
|
|
@@ -11,7 +11,9 @@ Workflow orchestration engine. Coordinates multi-agent development through three
|
|
|
11
11
|
| Workflow | Flow |
|
|
12
12
|
|----------|------|
|
|
13
13
|
| `tdd` | SM → TEA (RED) → Dev (GREEN) → Reviewer → SM |
|
|
14
|
+
| `tdd-tandem` | SM → TEA+Architect (RED) → Dev+TEA (GREEN) → Reviewer+PM → SM |
|
|
14
15
|
| `bdd` | SM → UX → TEA → Dev → Reviewer → SM |
|
|
16
|
+
| `bdd-tandem` | SM → UX+Architect → TEA → Dev+UX (GREEN) → Reviewer+PM → SM |
|
|
15
17
|
| `trivial` | SM → Dev → Reviewer → SM |
|
|
16
18
|
| `agent-docs` | SM → Orchestrator → Tech Writer → SM |
|
|
17
19
|
|
|
@@ -27,7 +29,7 @@ One step loaded at a time. User approval at decision points. Supports tri-modal
|
|
|
27
29
|
| `sprint-planning` | Sprint planning facilitation |
|
|
28
30
|
| `epics-and-stories` | Epic and story breakdown |
|
|
29
31
|
| `release` | Release workflow with verification gates |
|
|
30
|
-
| `ux-design`, `quick-dev`, `
|
|
32
|
+
| `ux-design`, `quick-dev`, `product-brief`, `project-context`, `implementation-readiness` | Other stepped workflows |
|
|
31
33
|
|
|
32
34
|
### Procedural — Flexible agent-guided processes
|
|
33
35
|
|
|
@@ -37,7 +39,6 @@ No fixed step sequence. Checklist-based, agent discretion on order.
|
|
|
37
39
|
|----------|---------|
|
|
38
40
|
| `brainstorming` | Structured problem-solving (62 techniques) |
|
|
39
41
|
| `code-review` | Code review checklists |
|
|
40
|
-
| `dev-story` | Story development guidance |
|
|
41
42
|
| `retrospective` | Sprint retrospective |
|
|
42
43
|
|
|
43
44
|
## State Tracking
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Command Tag Taxonomy Reference
|
|
2
|
+
|
|
3
|
+
**Status:** 46 command files audited. Last updated: 2026-02-08
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Tag Inventory Table
|
|
8
|
+
|
|
9
|
+
| Tag | Meaning | Usage | Files |
|
|
10
|
+
|-----|---------|-------|-------|
|
|
11
|
+
| `<purpose>` | What the command does and when to use it | Core rationale & quick summary | 23 |
|
|
12
|
+
| `<usage>` | How to invoke the command with syntax & examples | Syntax guide | 13 |
|
|
13
|
+
| `<on-invoke>` | Detailed step-by-step execution logic | Complex workflows (benchmarking, solo, checks) | 7 |
|
|
14
|
+
| `<workflow>` | High-level workflow phases and process flow | Process documentation | 11 |
|
|
15
|
+
| `<when-to-use>` | Situations where command applies | Decision guide | 11 |
|
|
16
|
+
| `<reference>` | Links to related files, scripts, skills | Resource index | 11 |
|
|
17
|
+
| `<instructions>` | Specific setup or execution steps | Agent-specific | 10 |
|
|
18
|
+
| `<agent-activation>` | How to activate agent with CLI | Agent commands | 10 |
|
|
19
|
+
| `<execution>` | Detailed execution with options and examples | Script-based commands | 3 |
|
|
20
|
+
| `<related>` | Related commands to consider | Cross-reference | 6 |
|
|
21
|
+
| `<prerequisites>` | Required setup or conditions | Prerequisite checklist | 2 |
|
|
22
|
+
| `<critical>` | Non-negotiable rules or restrictions | Mandatory rules | 2 |
|
|
23
|
+
| `<output-format>` | Expected output structure | Output specification | 4 |
|
|
24
|
+
| `<critical-integrity-requirements>` | Data integrity constraints (benchmarking) | Specialized validation | 2 |
|
|
25
|
+
| `<when-not-to-use>` | When NOT to use this command | Exclusion guidance | 1 |
|
|
26
|
+
| `<variants>` | Command variants & differences | Variation guide | 1 |
|
|
27
|
+
| `<key-differences>` | How this differs from similar commands | Comparison | 1 |
|
|
28
|
+
| `<error-handling>` | Error cases and messages | Error reference | 1 |
|
|
29
|
+
| `<integration>` | Integration with other systems | System integration | 2 |
|
|
30
|
+
| `<quick-start>` | Quick start for new users | Onboarding | 1 |
|
|
31
|
+
| `<commands>` | Subcommands available | Command reference | 1 |
|
|
32
|
+
| `<themes>` | Theme selection reference | Theme documentation | 1 |
|
|
33
|
+
| `<context-aware>` | Context-aware help based on state | Conditional help | 1 |
|
|
34
|
+
| `<health-checks>` | Health check details and procedures | Diagnostic procedures | 1 |
|
|
35
|
+
| `<auto-fixes>` | Auto-fix capabilities and warnings | Auto-remediation | 1 |
|
|
36
|
+
| `<drift-detection>` | Behavior drift detection | Monitoring | 1 |
|
|
37
|
+
| `<requirements>` | Required tools and installations | Tool requirements | 1 |
|
|
38
|
+
| `<detection-order>` | Detection priority order | Detection logic | 1 |
|
|
39
|
+
| `<agents>` | Agent reference table | Agent directory | 1 |
|
|
40
|
+
| `<command>` | YAML frontmatter directive | Metadata | 1 |
|
|
41
|
+
| `<architecture>` | High-level architecture diagram | System design | 1 |
|
|
42
|
+
| `<parallel-work-flow>` | Parallel work setup flow | Worktree workflow | 1 |
|
|
43
|
+
| `<agent-exit>` | Agent exit behavior | State management | 1 |
|
|
44
|
+
| `<no-checkpoints>` | Handling missing checkpoints | Edge case | 1 |
|
|
45
|
+
| `<checkpoint-labels>` | Checkpoint label patterns | Checkpoint reference | 1 |
|
|
46
|
+
| `<stale-checkpoint-warning>` | Stale checkpoint warnings | Warning handling | 1 |
|
|
47
|
+
| `<skip-check>` | Emergency skip behavior | Override handling | 1 |
|
|
48
|
+
| `<description>` | YAML frontmatter description | Metadata | 1 |
|
|
49
|
+
| `<workflow>` (YAML) | YAML frontmatter workflow reference | Metadata | 1 |
|
|
50
|
+
| `<skills>` | Related skills | Skill reference | 1 |
|
|
51
|
+
| `<commands>` (sub) | Available subcommands | Subcommand reference | 1 |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Recommended Standard
|
|
56
|
+
|
|
57
|
+
### Mandatory (Expected in all commands)
|
|
58
|
+
|
|
59
|
+
- **`<purpose>`** — Essential for user understanding
|
|
60
|
+
- **`<usage>`** — Essential for activation
|
|
61
|
+
|
|
62
|
+
### Conditional by Type
|
|
63
|
+
|
|
64
|
+
**Workflow/Agent Commands (e.g., /sm, /dev, /tea)**
|
|
65
|
+
- `<agent-activation>` — Required to show activation
|
|
66
|
+
- `<instructions>` — Required for agent behavior
|
|
67
|
+
|
|
68
|
+
**Script-Based Commands (e.g., /check, /run-ci)**
|
|
69
|
+
- `<execution>` — Required with options
|
|
70
|
+
- `<reference>` — Links to scripts
|
|
71
|
+
|
|
72
|
+
**Complex Multi-Step (e.g., /benchmark, /solo)**
|
|
73
|
+
- `<on-invoke>` — Step-by-step breakdown
|
|
74
|
+
- `<reference>` — Links to judge, finalize-run
|
|
75
|
+
|
|
76
|
+
**Decision-Making Commands (e.g., /patch, /chore)**
|
|
77
|
+
- `<when-to-use>` — When to pick this
|
|
78
|
+
- `<when-not-to-use>` — When NOT to pick this
|
|
79
|
+
- `<related>` — Alternatives to consider
|
|
80
|
+
|
|
81
|
+
**Workflow/Phase Commands (e.g., /sprint, /release)**
|
|
82
|
+
- `<workflow>` — Phase breakdown
|
|
83
|
+
- `<commands>` or subcommand table — Available subcommands
|
|
84
|
+
|
|
85
|
+
### Optional but Helpful
|
|
86
|
+
|
|
87
|
+
- `<reference>` — Always include links to related files
|
|
88
|
+
- `<related>` — Cross-reference similar commands
|
|
89
|
+
- `<error-handling>` — For commands that can fail
|
|
90
|
+
- `<output-format>` — For structured output commands
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Consistency Gaps
|
|
95
|
+
|
|
96
|
+
### Missing `<purpose>` (Core)
|
|
97
|
+
- (None - all files have purpose or instruction)
|
|
98
|
+
|
|
99
|
+
### Missing `<usage>` Examples
|
|
100
|
+
Files with no usage examples (mostly pure-markdown or markdown+comment style):
|
|
101
|
+
- brainstorming.md (informal, no examples needed)
|
|
102
|
+
- party-mode.md (informal)
|
|
103
|
+
- create-branches-from-story.md
|
|
104
|
+
- create-theme.md
|
|
105
|
+
- list-themes.md
|
|
106
|
+
- permissions.md
|
|
107
|
+
- repo-status.md
|
|
108
|
+
- retro.md
|
|
109
|
+
- show-theme.md
|
|
110
|
+
- start-epic.md
|
|
111
|
+
- sync-epic-to-jira.md
|
|
112
|
+
- sync-work-with-sprint.md
|
|
113
|
+
- theme-maker.md
|
|
114
|
+
- update-domain-docs.md
|
|
115
|
+
- set-theme.md
|
|
116
|
+
|
|
117
|
+
**ACTION:** Recommend adding `<usage>` with minimal examples to non-markdown commands.
|
|
118
|
+
|
|
119
|
+
### Missing `<reference>` (Helpful)
|
|
120
|
+
Files without resource links:
|
|
121
|
+
- brainstorming.md
|
|
122
|
+
- create-branches-from-story.md
|
|
123
|
+
- create-theme.md
|
|
124
|
+
- fix-blocker.md
|
|
125
|
+
- git-cleanup.md
|
|
126
|
+
- job-fair.md
|
|
127
|
+
- list-themes.md
|
|
128
|
+
- party-mode.md
|
|
129
|
+
- permissions.md
|
|
130
|
+
- repo-status.md
|
|
131
|
+
- retro.md
|
|
132
|
+
- show-theme.md
|
|
133
|
+
- start-epic.md
|
|
134
|
+
- sync-epic-to-jira.md
|
|
135
|
+
- sync-work-with-sprint.md
|
|
136
|
+
- theme-maker.md
|
|
137
|
+
- update-domain-docs.md
|
|
138
|
+
- set-theme.md
|
|
139
|
+
- architect.md
|
|
140
|
+
- dev.md
|
|
141
|
+
- devops.md
|
|
142
|
+
- orchestrator.md
|
|
143
|
+
- pm.md
|
|
144
|
+
- reviewer.md
|
|
145
|
+
- sm.md
|
|
146
|
+
- tea.md
|
|
147
|
+
- tech-writer.md
|
|
148
|
+
- ux-designer.md
|
|
149
|
+
|
|
150
|
+
**ACTION:** Consider adding `<reference>` section to guide files and agent files linking to relevant skill/agent docs.
|
|
151
|
+
|
|
152
|
+
### Agent Commands Lack Consistency
|
|
153
|
+
Agent activation commands (architect, dev, devops, orchestrator, pm, reviewer, sm, tea, tech-writer, ux-designer, work):
|
|
154
|
+
- Only have `<agent-activation>` + `<instructions>`
|
|
155
|
+
- Missing: `<purpose>`, `<when-to-use>`, `<reference>`
|
|
156
|
+
|
|
157
|
+
**ACTION:** Add fuller `<purpose>` and `<reference>` to agent commands.
|
|
158
|
+
|
|
159
|
+
### Missing Tag Patterns by Category
|
|
160
|
+
|
|
161
|
+
| Command Type | Gap |
|
|
162
|
+
|--------------|-----|
|
|
163
|
+
| **Theme Commands** (create, set, show, list, theme-maker) | Inconsistent use of `<usage>`. Only `theme-maker` uses XML tags extensively. |
|
|
164
|
+
| **Sprint Commands** (sprint, start-epic, close-epic) | Some pure markdown, no `<usage>`. |
|
|
165
|
+
| **Git Commands** (chore, patch, git-cleanup, standalone) | Good coverage, no gaps. |
|
|
166
|
+
| **Config/Setup** (setup, health-check, permissions) | Needs `<usage>` examples. |
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Patterns & Recommendations
|
|
171
|
+
|
|
172
|
+
### High-Quality Examples (Model These)
|
|
173
|
+
|
|
174
|
+
**benchmark.md** — Comprehensive tag coverage
|
|
175
|
+
- `<purpose>` + `<critical-integrity-requirements>` + `<usage>` + `<on-invoke>` (11 detailed steps) + `<error-handling>` + `<reference>`
|
|
176
|
+
|
|
177
|
+
**solo.md** — Well-structured complex command
|
|
178
|
+
- `<purpose>` + `<architecture>` + `<usage>` + `<on-invoke>` (10 detailed steps) + `<reference>`
|
|
179
|
+
|
|
180
|
+
**patch.md** — Good decision guidance
|
|
181
|
+
- `<purpose>` + `<when-to-use>` + `<when-not-to-use>` + `<usage>` + `<key-differences>` + `<workflow>` + `<related>`
|
|
182
|
+
|
|
183
|
+
### Improvement Opportunities
|
|
184
|
+
|
|
185
|
+
**Low-quality (Pure Markdown, No Structure)**
|
|
186
|
+
- brainstorming.md — Use `<purpose>`, `<usage>`, `<workflow>` tags
|
|
187
|
+
- retro.md — Use `<purpose>`, `<workflow>`, `<reference>` tags
|
|
188
|
+
- party-mode.md — Add structure with tags
|
|
189
|
+
- start-epic.md → Already has good content, just needs XML tags
|
|
190
|
+
|
|
191
|
+
**Mixed Quality (Some Tags)**
|
|
192
|
+
- help.md — Good breadth, but inconsistent sections
|
|
193
|
+
- workflow.md — Minimal; needs expansion
|
|
194
|
+
- permissions.md — Good CLI reference, needs `<usage>` tags
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Summary
|
|
199
|
+
|
|
200
|
+
**Total Commands:** 46
|
|
201
|
+
**Commands with Purpose Tag:** 23+ (50%+)
|
|
202
|
+
**Commands with Usage Tag:** 13 (28%)
|
|
203
|
+
**Commands with On-Invoke Detail:** 7 (15%)
|
|
204
|
+
|
|
205
|
+
**Consistency Score:** ~60% — Good foundation, room for improvement in usage examples and cross-references.
|
|
206
|
+
|
|
207
|
+
**Key Recommendation:** Standardize on:
|
|
208
|
+
1. **All files** → `<purpose>` + `<usage>` (minimum viable)
|
|
209
|
+
2. **Complex workflows** → Add `<on-invoke>` with numbered steps
|
|
210
|
+
3. **All files** → Add `<reference>` with related file links
|
|
211
|
+
4. **Decision commands** → Add `<related>` for alternatives
|
|
212
|
+
5. **Convert pure Markdown** → Wrap sections in XML tags for consistency
|
|
@@ -16,7 +16,7 @@ Hooks are shell scripts that Claude Code runs at specific events:
|
|
|
16
16
|
|
|
17
17
|
### SessionStart: session-start.sh
|
|
18
18
|
|
|
19
|
-
**Location:** `.
|
|
19
|
+
**Location:** `.pennyfarthing/scripts/hooks/session-start.sh`
|
|
20
20
|
|
|
21
21
|
Initializes the Pennyfarthing environment:
|
|
22
22
|
- Creates `.session/` directory structure
|
|
@@ -25,7 +25,7 @@ Initializes the Pennyfarthing environment:
|
|
|
25
25
|
|
|
26
26
|
### SessionStart: setup-env.sh
|
|
27
27
|
|
|
28
|
-
**Location:** `.
|
|
28
|
+
**Location:** `.pennyfarthing/project/hooks/setup-env.sh`
|
|
29
29
|
|
|
30
30
|
Project-specific environment setup. Edit this file to:
|
|
31
31
|
- Set custom environment variables
|
|
@@ -34,12 +34,12 @@ Project-specific environment setup. Edit this file to:
|
|
|
34
34
|
|
|
35
35
|
### PreToolUse: pre-edit-check.sh
|
|
36
36
|
|
|
37
|
-
**Location:** `.
|
|
37
|
+
**Location:** `.pennyfarthing/scripts/hooks/pre-edit-check.sh`
|
|
38
38
|
|
|
39
39
|
Protects sensitive files from accidental edits:
|
|
40
40
|
- Blocks: `.env`, `.pem`, `.key`, credentials, secrets
|
|
41
41
|
- Blocks: `.git/`, `node_modules/`, `vendor/`
|
|
42
|
-
- Blocks: `.
|
|
42
|
+
- Blocks: `.pennyfarthing/*` (managed files)
|
|
43
43
|
|
|
44
44
|
## Configuration Schema
|
|
45
45
|
|
|
@@ -225,6 +225,6 @@ If a hook fails or behaves unexpectedly:
|
|
|
225
225
|
|
|
226
226
|
| Type | Location | Editable |
|
|
227
227
|
|------|----------|----------|
|
|
228
|
-
| Managed hooks | `.
|
|
228
|
+
| Managed hooks | `.pennyfarthing/scripts/hooks/` | No (use pennyfarthing repo) |
|
|
229
229
|
| Project hooks | `.claude/project/hooks/` | Yes |
|
|
230
230
|
| Settings | `.claude/settings.local.json` | Yes |
|
|
@@ -240,7 +240,7 @@ After collecting results, merge them into a unified structure:
|
|
|
240
240
|
```yaml
|
|
241
241
|
# Orchestrator spawns parallel status checks
|
|
242
242
|
Task:
|
|
243
|
-
subagent_type: "
|
|
243
|
+
subagent_type: "Explore"
|
|
244
244
|
description: "Check pennyfarthing status"
|
|
245
245
|
prompt: |
|
|
246
246
|
REPO: pennyfarthing
|
|
@@ -248,7 +248,7 @@ Task:
|
|
|
248
248
|
Report git status, branch, and uncommitted changes.
|
|
249
249
|
|
|
250
250
|
Task:
|
|
251
|
-
subagent_type: "
|
|
251
|
+
subagent_type: "Explore"
|
|
252
252
|
description: "Check API status"
|
|
253
253
|
prompt: |
|
|
254
254
|
REPO: api
|
|
@@ -256,7 +256,7 @@ Task:
|
|
|
256
256
|
Report git status, branch, and uncommitted changes.
|
|
257
257
|
|
|
258
258
|
Task:
|
|
259
|
-
subagent_type: "
|
|
259
|
+
subagent_type: "Explore"
|
|
260
260
|
description: "Check UI status"
|
|
261
261
|
prompt: |
|
|
262
262
|
REPO: ui
|