@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
|
@@ -1,107 +1,335 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: theme
|
|
3
|
-
description: Manage persona themes - list available themes, show current/specific theme details,
|
|
3
|
+
description: Manage persona themes - list available themes, show current/specific theme details, set active theme, create themes, and run the interactive theme maker wizard.
|
|
4
|
+
args: "[list|show|set|create|maker] [options]"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Theme Management Skill
|
|
7
8
|
|
|
8
9
|
<run>
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
10
|
+
Route based on arguments:
|
|
11
|
+
- No args or `show` → Show current theme
|
|
12
|
+
- `list` → List available themes
|
|
13
|
+
- `show [name]` → Show theme details
|
|
14
|
+
- `set <name>` → Set active theme
|
|
15
|
+
- `create <name>` → Create theme from base
|
|
16
|
+
- `maker` → Interactive AI-driven theme wizard
|
|
14
17
|
</run>
|
|
15
18
|
|
|
16
19
|
<output>
|
|
17
20
|
Theme commands return theme names, descriptions, agent mappings, and confirmation of theme changes. Current theme is stored in `.pennyfarthing/config.local.yaml`.
|
|
18
21
|
</output>
|
|
19
22
|
|
|
20
|
-
## Overview
|
|
21
|
-
|
|
22
|
-
Pennyfarthing uses themed personas to give each agent a unique character. This skill provides commands to list, view, and change themes.
|
|
23
|
-
|
|
24
23
|
## Quick Reference
|
|
25
24
|
|
|
26
|
-
|
|
|
27
|
-
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
25
|
+
| Invocation | CLI Command | Purpose |
|
|
26
|
+
|------------|-------------|---------|
|
|
27
|
+
| `/theme` | `pf theme show` | Show current theme |
|
|
28
|
+
| `/theme list` | `pf theme list` | List all available themes |
|
|
29
|
+
| `/theme show [name]` | `pf theme show [name]` | Show theme details |
|
|
30
|
+
| `/theme show [name] --full` | `pf theme show [name] --full` | Extended details (OCEAN, quirks) |
|
|
31
|
+
| `/theme set <name>` | `pf theme set <name>` | Set active theme |
|
|
32
|
+
| `/theme create <name>` | `pf theme create <name>` | Create from base theme |
|
|
33
|
+
| `/theme create <name> --base X` | `pf theme create <name> --base X` | Create from specific base |
|
|
34
|
+
| `/theme create <name> --user` | `pf theme create <name> --user` | Create as user-level theme |
|
|
35
|
+
| `/theme maker` | *(interactive wizard)* | AI-driven theme creation |
|
|
36
|
+
|
|
37
|
+
---
|
|
33
38
|
|
|
34
|
-
##
|
|
39
|
+
## `/theme list`
|
|
35
40
|
|
|
36
|
-
|
|
41
|
+
Run `pf theme list` and display the output directly to the user.
|
|
37
42
|
|
|
38
43
|
```bash
|
|
39
|
-
|
|
44
|
+
pf theme list
|
|
40
45
|
```
|
|
41
46
|
|
|
42
|
-
|
|
47
|
+
**IMPORTANT:** Copy the command output into your response text so the user sees it in the console. Bash tool output may be collapsed in the UI.
|
|
48
|
+
|
|
49
|
+
The output shows:
|
|
50
|
+
- Current theme marked with `*`
|
|
51
|
+
- Tier in brackets: `[S]` elite, `[A]` excellent, `[B]` strong, `[C]` good, `[D]` below average, `[U]` unbenchmarked
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## `/theme show [name]`
|
|
43
56
|
|
|
44
57
|
```bash
|
|
45
|
-
|
|
58
|
+
# Show current theme
|
|
59
|
+
pf theme show
|
|
60
|
+
|
|
61
|
+
# Show specific theme
|
|
62
|
+
pf theme show blade-runner
|
|
63
|
+
|
|
64
|
+
# Show full details (OCEAN scores, quirks, catchphrases, helpers)
|
|
65
|
+
pf theme show blade-runner --full
|
|
46
66
|
```
|
|
47
67
|
|
|
48
|
-
|
|
68
|
+
**IMPORTANT:** Copy the command output into your response text so the user sees it in the console.
|
|
49
69
|
|
|
50
|
-
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## `/theme set <name>`
|
|
51
73
|
|
|
52
74
|
```bash
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
75
|
+
pf theme set <name>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
If no theme name provided, run `pf theme list` first, then ask the user which theme they want.
|
|
79
|
+
|
|
80
|
+
After setting, refresh the current agent's persona:
|
|
81
|
+
```bash
|
|
82
|
+
pf agent start "sm"
|
|
56
83
|
```
|
|
84
|
+
**Adopt the new character immediately** - do not continue using the old persona.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## `/theme create <name> [--base <theme>] [--user]`
|
|
57
89
|
|
|
58
|
-
|
|
90
|
+
Create a new custom theme by copying from a base.
|
|
59
91
|
|
|
60
92
|
```bash
|
|
61
|
-
|
|
93
|
+
# Create from default base (minimalist)
|
|
94
|
+
pf theme create my-theme
|
|
95
|
+
|
|
96
|
+
# Create from specific base
|
|
97
|
+
pf theme create my-theme --base blade-runner
|
|
98
|
+
|
|
99
|
+
# Create as user-level theme (available across all projects)
|
|
100
|
+
pf theme create my-theme --user
|
|
62
101
|
```
|
|
63
102
|
|
|
64
|
-
|
|
103
|
+
After creation, guide the user:
|
|
104
|
+
- Edit the theme file to customize agents
|
|
105
|
+
- Run `pf theme set <name>` to activate
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## `/theme maker`
|
|
110
|
+
|
|
111
|
+
Interactive wizard for creating custom persona themes with AI-driven generation. Unlike `/theme create` which copies from a base, this walks through the full creation process.
|
|
65
112
|
|
|
66
|
-
|
|
113
|
+
### Step 1: Theme Name
|
|
67
114
|
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
ls pennyfarthing-dist/personas/themes/<name>.yaml
|
|
71
|
-
```
|
|
115
|
+
Ask the user for a theme name.
|
|
72
116
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
117
|
+
**Validation rules:**
|
|
118
|
+
- Lowercase letters only
|
|
119
|
+
- Must start with a letter
|
|
120
|
+
- Hyphens allowed (no underscores or spaces)
|
|
121
|
+
- No conflicts with existing themes
|
|
122
|
+
|
|
123
|
+
### Step 2: Mode Selection
|
|
124
|
+
|
|
125
|
+
Use AskUserQuestion:
|
|
126
|
+
|
|
127
|
+
```yaml
|
|
128
|
+
questions:
|
|
129
|
+
- question: "How would you like to create your theme?"
|
|
130
|
+
header: "Mode"
|
|
131
|
+
options:
|
|
132
|
+
- label: "AI-Driven (Recommended)"
|
|
133
|
+
description: "Describe a concept or universe, I generate all 10 agent personas"
|
|
134
|
+
- label: "Guided"
|
|
135
|
+
description: "I suggest character options per agent, you pick"
|
|
136
|
+
- label: "Manual"
|
|
137
|
+
description: "You specify character, style, and quote for each agent"
|
|
138
|
+
multiSelect: false
|
|
139
|
+
```
|
|
77
140
|
|
|
78
|
-
3
|
|
79
|
-
- If file exists with `theme:` line: Use Edit tool to replace `theme: <old>` with `theme: <new>`
|
|
80
|
-
- If file missing or no theme line: Use Write tool to create:
|
|
81
|
-
```yaml
|
|
82
|
-
# Pennyfarthing Local Configuration
|
|
83
|
-
theme: <name>
|
|
84
|
-
```
|
|
141
|
+
### Step 3: Dispatch to Mode
|
|
85
142
|
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
cat .pennyfarthing/config.local.yaml
|
|
89
|
-
```
|
|
143
|
+
Based on selection, follow the appropriate mode below.
|
|
90
144
|
|
|
91
|
-
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
### AI-Driven Mode
|
|
148
|
+
|
|
149
|
+
Best for: Users who describe a concept and want the AI to generate everything.
|
|
150
|
+
|
|
151
|
+
**Flow:**
|
|
152
|
+
1. Ask for universe/concept description
|
|
153
|
+
2. Generate all 10 agent personas
|
|
154
|
+
3. Preview and confirm
|
|
155
|
+
4. Write theme file
|
|
156
|
+
5. Optionally generate portraits
|
|
157
|
+
|
|
158
|
+
**For each agent, generate:**
|
|
159
|
+
- `character`: Name fitting the universe
|
|
160
|
+
- `shortName`: Display name for UI (see Short Name Generation below)
|
|
161
|
+
- `visual`: Visual description for portrait generation (see Visual Descriptions below)
|
|
162
|
+
- `ocean`: OCEAN personality profile (see Role-Appropriate OCEAN Profiles below)
|
|
163
|
+
- `style`: 1-2 sentence communication style
|
|
164
|
+
- `expertise`: Areas of expertise in the universe context
|
|
165
|
+
- `role`: Role description within the universe
|
|
166
|
+
- `trait`: Character traits
|
|
167
|
+
- `quote`: Signature quote
|
|
168
|
+
- `emoji`: Single representative emoji
|
|
169
|
+
- `helper`: Assistant with name and communication style
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
### Guided Mode
|
|
174
|
+
|
|
175
|
+
Best for: Users who want to pick characters from suggestions.
|
|
176
|
+
|
|
177
|
+
**Flow:**
|
|
178
|
+
1. Ask for universe/concept description
|
|
179
|
+
2. For each agent, suggest 3-4 character options via AskUserQuestion
|
|
180
|
+
3. Generate remaining details (style, OCEAN, quote, etc.) for selected characters
|
|
181
|
+
4. Preview and confirm
|
|
182
|
+
5. Write theme file
|
|
183
|
+
|
|
184
|
+
**Agent Order:** orchestrator, sm, tea, dev, reviewer, architect, pm, tech-writer, ux-designer, devops
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
### Manual Mode
|
|
189
|
+
|
|
190
|
+
Best for: Users who know exactly what they want.
|
|
191
|
+
|
|
192
|
+
**Flow:**
|
|
193
|
+
1. Ask for theme description
|
|
194
|
+
2. For each agent, collect character name, style, and quote via free text
|
|
195
|
+
3. Offer OCEAN auto-generation or manual entry
|
|
196
|
+
4. Generate remaining fields (expertise, emoji, helper)
|
|
197
|
+
5. Preview and confirm
|
|
198
|
+
6. Write theme file
|
|
199
|
+
|
|
200
|
+
**Skip Handling:** If user types "skip" for an agent, use defaults (generic role name, "Professional and direct" style).
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Agent Roles Reference
|
|
205
|
+
|
|
206
|
+
| Agent | Role | Character Should Be |
|
|
207
|
+
|-------|------|---------------------|
|
|
208
|
+
| orchestrator | Meta-coordinator | Pattern-seer, guide, overseer |
|
|
209
|
+
| sm | Scrum Master | Leader, coordinator, keeps team together |
|
|
210
|
+
| tea | Test Engineer | Analyst, detail-oriented, finds flaws |
|
|
211
|
+
| dev | Developer | Builder, practical, gets things done |
|
|
212
|
+
| reviewer | Code Reviewer | Critical, honest, high standards |
|
|
213
|
+
| architect | System Architect | Big-picture thinker, systems designer |
|
|
214
|
+
| pm | Product Manager | Strategic, stakeholder manager |
|
|
215
|
+
| tech-writer | Documentation | Clear communicator, precise |
|
|
216
|
+
| ux-designer | UX Design | User advocate, feels the experience |
|
|
217
|
+
| devops | Infrastructure | Reliable, keeps systems running |
|
|
218
|
+
|
|
219
|
+
## Short Name Generation
|
|
220
|
+
|
|
221
|
+
Priority for `shortName`:
|
|
222
|
+
1. **Quoted nicknames first**: "Hannibal", "Starbuck" → use the nickname
|
|
223
|
+
2. **Unique first name**: If unique among all characters in the theme
|
|
224
|
+
3. **Unique surname**: If surname distinguishes the character
|
|
225
|
+
4. **First + Last**: If needed for disambiguation
|
|
226
|
+
5. **Iconic names**: Keep full for iconic two-word names (e.g., "Big Brother", "Sun Tzu")
|
|
227
|
+
|
|
228
|
+
Skip titles like "Dr.", "Captain", "President" when extracting shortName.
|
|
229
|
+
|
|
230
|
+
## Visual Descriptions
|
|
231
|
+
|
|
232
|
+
The `visual` field provides a portrait prompt for `./scripts/generate-portraits.sh`.
|
|
233
|
+
|
|
234
|
+
**Guidelines:**
|
|
235
|
+
- Focus on physical appearance, distinctive features, and visual props
|
|
236
|
+
- Include clothing, expression, and setting elements
|
|
237
|
+
- Be specific and visual - describe what a portrait would show
|
|
238
|
+
|
|
239
|
+
## Role-Appropriate OCEAN Profiles
|
|
240
|
+
|
|
241
|
+
| Agent | Recommended Profile | Rationale |
|
|
242
|
+
|-------|---------------------|-----------|
|
|
243
|
+
| orchestrator | High O (4-5), Moderate C (3-4) | Pattern-seer needs openness |
|
|
244
|
+
| sm | High A (4-5), Moderate C (3-4) | Coordination requires agreeableness |
|
|
245
|
+
| tea | High C (4-5), High O (4-5) | Testing needs conscientiousness + creativity |
|
|
246
|
+
| dev | High C (4-5), Moderate O (3-4) | Building needs discipline + problem-solving |
|
|
247
|
+
| reviewer | High C (4-5), Low A (2-3) | Critical review prioritizes standards |
|
|
248
|
+
| architect | High O (4-5), High C (4-5) | Design needs vision + structure |
|
|
249
|
+
| pm | High E (4-5), High A (4-5) | Stakeholder mgmt needs sociability |
|
|
250
|
+
| tech-writer | High C (4-5), Low N (1-2) | Documentation needs precision + calm |
|
|
251
|
+
| ux-designer | High A (4-5), High O (4-5) | User advocacy needs empathy + creativity |
|
|
252
|
+
| devops | High C (4-5), Low N (1-2) | Operations needs reliability |
|
|
253
|
+
|
|
254
|
+
## Theme File Output
|
|
255
|
+
|
|
256
|
+
Write to `.claude/pennyfarthing/themes/{name}.yaml`:
|
|
257
|
+
|
|
258
|
+
```yaml
|
|
259
|
+
# Custom theme: {name}
|
|
260
|
+
# Created by /theme maker
|
|
261
|
+
|
|
262
|
+
theme:
|
|
263
|
+
name: {Name}
|
|
264
|
+
description: "{description}"
|
|
265
|
+
source: "{source}"
|
|
266
|
+
default_emoji_use: minimal
|
|
267
|
+
default_humor: enabled
|
|
268
|
+
character_immersion: high
|
|
269
|
+
user_title: {title}
|
|
270
|
+
pennyfarthing_version: "{current version from VERSION file}"
|
|
271
|
+
created: {date}
|
|
272
|
+
|
|
273
|
+
agents:
|
|
274
|
+
orchestrator:
|
|
275
|
+
character: {generated}
|
|
276
|
+
shortName: {generated}
|
|
277
|
+
visual: "{generated}"
|
|
278
|
+
ocean:
|
|
279
|
+
O: {1-5} # {rationale}
|
|
280
|
+
C: {1-5} # {rationale}
|
|
281
|
+
E: {1-5} # {rationale}
|
|
282
|
+
A: {1-5} # {rationale}
|
|
283
|
+
N: {1-5} # {rationale}
|
|
284
|
+
style: {generated}
|
|
285
|
+
expertise: {generated}
|
|
286
|
+
role: {generated}
|
|
287
|
+
trait: {generated}
|
|
288
|
+
quote: "{generated}"
|
|
289
|
+
emoji: "{generated}"
|
|
290
|
+
helper:
|
|
291
|
+
name: {generated}
|
|
292
|
+
style: "{generated}"
|
|
293
|
+
# ... all 10 agents
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**OCEAN Validation:** Before writing, verify:
|
|
297
|
+
- All 10 agents have `ocean:` blocks with O, C, E, A, N keys
|
|
298
|
+
- All scores are integers 1-5
|
|
299
|
+
- Each score has a rationale comment
|
|
300
|
+
|
|
301
|
+
**Important:** Read `VERSION` file at project root to set `pennyfarthing_version`.
|
|
302
|
+
|
|
303
|
+
## Portrait Generation (Optional)
|
|
304
|
+
|
|
305
|
+
After creating a theme, offer to generate portraits:
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
# Generate all portraits
|
|
309
|
+
./scripts/generate-portraits.sh --theme {name}
|
|
310
|
+
|
|
311
|
+
# Single agent
|
|
312
|
+
./scripts/generate-portraits.sh --theme {name} --role {role}
|
|
313
|
+
|
|
314
|
+
# Dry run preview
|
|
315
|
+
./scripts/generate-portraits.sh --theme {name} --dry-run
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
**Requirements:** Python 3 venv with diffusers, transformers, accelerate, torch, pillow, pyyaml, tqdm. Apple Silicon (MPS) or NVIDIA GPU (CUDA).
|
|
319
|
+
|
|
320
|
+
**Output:** `pennyfarthing-dist/personas/portraits/{theme}/{shortName}-{OCEAN}.png`
|
|
92
321
|
|
|
93
322
|
## Theme File Locations
|
|
94
323
|
|
|
95
324
|
| Location | Purpose |
|
|
96
325
|
|----------|---------|
|
|
97
326
|
| `pennyfarthing-dist/personas/themes/` | Built-in themes (96+) |
|
|
98
|
-
| `.claude/pennyfarthing/themes/` |
|
|
327
|
+
| `.claude/pennyfarthing/themes/` | Project-level custom themes |
|
|
328
|
+
| `~/.claude/pennyfarthing/themes/` | User-level custom themes |
|
|
99
329
|
| `.pennyfarthing/config.local.yaml` | Theme selection (agent-writable, gitignored) |
|
|
100
330
|
|
|
101
331
|
## Theme Structure
|
|
102
332
|
|
|
103
|
-
Each theme YAML defines agents with:
|
|
104
|
-
|
|
105
333
|
```yaml
|
|
106
334
|
theme:
|
|
107
335
|
name: theme-name
|
|
@@ -111,31 +339,18 @@ agents:
|
|
|
111
339
|
sm:
|
|
112
340
|
character: Character Name
|
|
113
341
|
style: Communication style description
|
|
114
|
-
quote: Signature quote
|
|
115
342
|
trait: Key personality trait
|
|
116
343
|
helper: Helper/assistant description
|
|
344
|
+
ocean: { O: 3, C: 4, E: 2, A: 3, N: 2 }
|
|
345
|
+
quirks: [...]
|
|
346
|
+
catchphrases: [...]
|
|
117
347
|
tea:
|
|
118
348
|
# ...same structure...
|
|
119
|
-
dev:
|
|
120
|
-
# ...
|
|
121
349
|
```
|
|
122
350
|
|
|
123
|
-
##
|
|
124
|
-
|
|
125
|
-
For creating new themes, use `/theme-maker` which provides:
|
|
126
|
-
- **AI-Driven Mode**: Describe a concept, AI generates all personas
|
|
127
|
-
- **Guided Mode**: Pick from AI-suggested characters
|
|
128
|
-
- **Manual Mode**: Specify every detail yourself
|
|
129
|
-
|
|
130
|
-
See the `theme-creation` skill for full documentation.
|
|
131
|
-
|
|
132
|
-
## Common Theme Categories
|
|
133
|
-
|
|
134
|
-
Themes are available across many categories:
|
|
135
|
-
- **TV/Film**: star-trek-tos, star-trek-tng, breaking-bad, the-wire, firefly, etc.
|
|
136
|
-
- **Literature**: shakespeare, jane-austen, dickens, discworld, dune, etc.
|
|
137
|
-
- **Historical**: ancient-philosophers, military-commanders, renaissance-masters, etc.
|
|
138
|
-
- **Mythology**: greek-mythology, norse-mythology, arthurian-mythos, etc.
|
|
139
|
-
- **Animated**: futurama, the-simpsons, avatar-the-last-airbender, etc.
|
|
351
|
+
## Validation Rules for Theme Names
|
|
140
352
|
|
|
141
|
-
|
|
353
|
+
- Lowercase letters only
|
|
354
|
+
- Must start with a letter
|
|
355
|
+
- Hyphens allowed (no underscores or spaces)
|
|
356
|
+
- No conflicts with existing themes
|
|
@@ -1,178 +1,35 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: theme-creation
|
|
3
|
-
description:
|
|
3
|
+
description: |
|
|
4
|
+
DEPRECATED: Use /theme maker instead.
|
|
5
|
+
Theme creation has been consolidated under /theme.
|
|
6
|
+
deprecated: true
|
|
7
|
+
redirect: theme
|
|
4
8
|
---
|
|
5
9
|
|
|
6
|
-
#
|
|
10
|
+
# /theme-creation - DEPRECATED
|
|
7
11
|
|
|
8
|
-
<run
|
|
12
|
+
<run>
|
|
13
|
+
This skill is deprecated. Use `/theme maker` instead.
|
|
14
|
+
</run>
|
|
9
15
|
|
|
10
|
-
<output>
|
|
16
|
+
<output>
|
|
17
|
+
Redirects to the consolidated `/theme` skill.
|
|
18
|
+
</output>
|
|
11
19
|
|
|
12
|
-
|
|
20
|
+
Theme creation has been consolidated into the `/theme` skill. Use:
|
|
13
21
|
|
|
14
|
-
|
|
22
|
+
| Old Command | New Command |
|
|
23
|
+
|-------------|-------------|
|
|
24
|
+
| `/theme-maker` | `/theme maker` |
|
|
25
|
+
| `/create-theme <name>` | `/theme create <name>` |
|
|
15
26
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
**Invoke `/theme-maker` when the user:**
|
|
19
|
-
- Asks to "create a theme" or "make a theme"
|
|
20
|
-
- Wants "AI-driven theme generation"
|
|
21
|
-
- Says "generate personas" or "generate characters"
|
|
22
|
-
- Mentions a fictional universe and wants agents based on it
|
|
23
|
-
- Asks for "custom personas" or "themed agents"
|
|
24
|
-
- Wants to "customize agent characters"
|
|
25
|
-
- Mentions any fictional universe + "theme" (e.g., "Star Wars theme", "pirates theme")
|
|
26
|
-
|
|
27
|
-
**Trigger phrases:**
|
|
28
|
-
- "create a [X] theme"
|
|
29
|
-
- "make a theme based on [X]"
|
|
30
|
-
- "generate [X] personas"
|
|
31
|
-
- "I want [X] themed agents"
|
|
32
|
-
- "AI-driven theme generation"
|
|
33
|
-
- "custom theme for [universe]"
|
|
34
|
-
|
|
35
|
-
## Available Commands
|
|
27
|
+
The `/theme` skill now handles all theme operations:
|
|
36
28
|
|
|
37
29
|
| Command | Purpose |
|
|
38
30
|
|---------|---------|
|
|
39
|
-
| `/theme
|
|
40
|
-
| `/
|
|
41
|
-
| `/
|
|
42
|
-
| `/
|
|
43
|
-
| `/
|
|
44
|
-
|
|
45
|
-
## Theme Creation Modes
|
|
46
|
-
|
|
47
|
-
### AI-Driven Mode (Recommended)
|
|
48
|
-
|
|
49
|
-
Best for: Users who describe a concept and want the AI to generate everything.
|
|
50
|
-
|
|
51
|
-
**Flow:**
|
|
52
|
-
1. User provides universe/concept (e.g., "Gilligan's Island, humorous")
|
|
53
|
-
2. AI generates all 10 agent personas automatically
|
|
54
|
-
3. User previews and confirms or regenerates
|
|
55
|
-
4. Theme file written to `.claude/pennyfarthing/themes/`
|
|
56
|
-
|
|
57
|
-
**What gets generated:**
|
|
58
|
-
- Character names fitting the universe
|
|
59
|
-
- OCEAN personality profiles (O/C/E/A/N scores 1-5)
|
|
60
|
-
- Communication styles
|
|
61
|
-
- Signature quotes
|
|
62
|
-
- Emojis and visual descriptions
|
|
63
|
-
- Helper assistants for each agent
|
|
64
|
-
|
|
65
|
-
### Guided Mode
|
|
66
|
-
|
|
67
|
-
Best for: Users who want to pick characters from suggestions.
|
|
68
|
-
|
|
69
|
-
**Flow:**
|
|
70
|
-
1. User provides universe/concept
|
|
71
|
-
2. AI suggests 3-4 character options per agent
|
|
72
|
-
3. User picks (or enters custom) for each
|
|
73
|
-
4. AI fills in remaining details (style, quote, OCEAN)
|
|
74
|
-
|
|
75
|
-
### Manual Mode
|
|
76
|
-
|
|
77
|
-
Best for: Users who know exactly what they want.
|
|
78
|
-
|
|
79
|
-
**Flow:**
|
|
80
|
-
1. User provides theme description
|
|
81
|
-
2. User enters character, style, quote for each agent
|
|
82
|
-
3. Optional: Specify OCEAN scores or let AI generate
|
|
83
|
-
4. Theme file created with user's exact specifications
|
|
84
|
-
|
|
85
|
-
## Agent Roles Reference
|
|
86
|
-
|
|
87
|
-
When generating or suggesting characters, match to these roles:
|
|
88
|
-
|
|
89
|
-
| Agent | Role | Character Should Be |
|
|
90
|
-
|-------|------|---------------------|
|
|
91
|
-
| orchestrator | Meta-coordinator | Pattern-seer, guide, overseer |
|
|
92
|
-
| sm | Scrum Master | Leader, coordinator, keeps team together |
|
|
93
|
-
| tea | Test Engineer | Analyst, detail-oriented, finds flaws |
|
|
94
|
-
| dev | Developer | Builder, practical, gets things done |
|
|
95
|
-
| reviewer | Code Reviewer | Critical, honest, high standards |
|
|
96
|
-
| architect | System Architect | Big-picture thinker, systems designer |
|
|
97
|
-
| pm | Product Manager | Strategic, stakeholder manager |
|
|
98
|
-
| tech-writer | Documentation | Clear communicator, precise |
|
|
99
|
-
| ux-designer | UX Design | User advocate, feels the experience |
|
|
100
|
-
| devops | Infrastructure | Reliable, keeps systems running |
|
|
101
|
-
|
|
102
|
-
## Theme File Location
|
|
103
|
-
|
|
104
|
-
- **User themes:** `.claude/pennyfarthing/themes/{name}.yaml`
|
|
105
|
-
- **Built-in themes:** `pennyfarthing-dist/personas/themes/`
|
|
106
|
-
|
|
107
|
-
## OCEAN Personality Profiles
|
|
108
|
-
|
|
109
|
-
Each agent gets an OCEAN profile (Big Five personality traits):
|
|
110
|
-
|
|
111
|
-
| Dimension | Low (1-2) | High (4-5) |
|
|
112
|
-
|-----------|-----------|------------|
|
|
113
|
-
| **O**penness | Traditional, practical | Creative, curious |
|
|
114
|
-
| **C**onscientiousness | Flexible, spontaneous | Organized, disciplined |
|
|
115
|
-
| **E**xtraversion | Reserved, reflective | Outgoing, energetic |
|
|
116
|
-
| **A**greeableness | Competitive, skeptical | Cooperative, trusting |
|
|
117
|
-
| **N**euroticism | Calm, stable | Emotional, reactive |
|
|
118
|
-
|
|
119
|
-
## Examples
|
|
120
|
-
|
|
121
|
-
### Example 1: AI-Driven Theme Creation
|
|
122
|
-
|
|
123
|
-
**User:** "Create a Gilligan's Island theme, make it humorous"
|
|
124
|
-
|
|
125
|
-
**Action:** Invoke `/theme-maker`, select AI-Driven mode, generate 10 agents based on the show's characters.
|
|
126
|
-
|
|
127
|
-
### Example 2: Quick Theme from Base
|
|
128
|
-
|
|
129
|
-
**User:** "Create a theme called my-team based on discworld"
|
|
130
|
-
|
|
131
|
-
**Action:** Run `/create-theme my-team --base discworld`
|
|
132
|
-
|
|
133
|
-
### Example 3: List and Switch Themes
|
|
134
|
-
|
|
135
|
-
**User:** "What themes are available? Switch to star-trek."
|
|
136
|
-
|
|
137
|
-
**Action:** Run `/list-themes`, then `/set-theme star-trek`
|
|
138
|
-
|
|
139
|
-
## Validation Rules for Theme Names
|
|
140
|
-
|
|
141
|
-
- Lowercase letters only
|
|
142
|
-
- Must start with a letter
|
|
143
|
-
- Hyphens allowed (no underscores or spaces)
|
|
144
|
-
- No conflicts with existing themes
|
|
145
|
-
|
|
146
|
-
## Portrait Generation
|
|
147
|
-
|
|
148
|
-
Each agent can have a `visual` field that describes their appearance for portrait generation.
|
|
149
|
-
|
|
150
|
-
**Generate all portraits for a theme:**
|
|
151
|
-
```bash
|
|
152
|
-
./scripts/generate-portraits.sh --theme {name}
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
**Generate a single agent's portrait:**
|
|
156
|
-
```bash
|
|
157
|
-
./scripts/generate-portraits.sh --theme {name} --role {role}
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
**Dry run (preview):**
|
|
161
|
-
```bash
|
|
162
|
-
./scripts/generate-portraits.sh --theme {name} --dry-run
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
**Requirements:**
|
|
166
|
-
- Python 3 venv at `.venv/` with: `pip install diffusers transformers accelerate torch pillow pyyaml tqdm`
|
|
167
|
-
- Apple Silicon Mac (MPS) or NVIDIA GPU (CUDA)
|
|
168
|
-
- ~6.5GB model download on first run
|
|
169
|
-
|
|
170
|
-
**Output:** `pennyfarthing-dist/personas/portraits/{theme}/{shortName}-{OCEAN}.png`
|
|
171
|
-
|
|
172
|
-
## Post-Creation Steps
|
|
173
|
-
|
|
174
|
-
After creating a theme:
|
|
175
|
-
1. Theme file at `.claude/pennyfarthing/themes/{name}.yaml`
|
|
176
|
-
2. Activate with `/set-theme {name}`
|
|
177
|
-
3. Generate portraits with `./scripts/generate-portraits.sh --theme {name}`
|
|
178
|
-
4. Edit YAML directly for fine-tuning
|
|
31
|
+
| `/theme list` | List available themes |
|
|
32
|
+
| `/theme show [name]` | Show theme details |
|
|
33
|
+
| `/theme set <name>` | Set active theme |
|
|
34
|
+
| `/theme create <name>` | Create from base theme |
|
|
35
|
+
| `/theme maker` | Interactive AI-driven wizard |
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|