@pennyfarthing/core 10.0.3 → 10.1.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 +9 -7
- package/package.json +7 -1
- package/packages/core/dist/cli/commands/cyclist.d.ts +5 -1
- package/packages/core/dist/cli/commands/cyclist.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/cyclist.js +4 -4
- package/packages/core/dist/cli/commands/cyclist.js.map +1 -1
- package/packages/core/dist/cli/commands/cyclist.test.js +2 -2
- package/packages/core/dist/cli/commands/cyclist.test.js.map +1 -1
- package/packages/core/dist/cli/commands/doctor-legacy.test.js +17 -16
- 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 +251 -4
- package/packages/core/dist/cli/commands/doctor.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 +43 -7
- package/packages/core/dist/cli/commands/init.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 +1 -1
- package/packages/core/dist/cli/ocean-profiles.test.js.map +1 -1
- package/packages/core/dist/cli/utils/files.d.ts +10 -0
- package/packages/core/dist/cli/utils/files.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/files.js +35 -0
- package/packages/core/dist/cli/utils/files.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/scripts/generate-report.d.ts.map +1 -1
- package/packages/core/dist/scripts/generate-report.js +11 -7
- package/packages/core/dist/scripts/generate-report.js.map +1 -1
- package/packages/core/dist/scripts/generate-spider-report.d.ts.map +1 -1
- package/packages/core/dist/scripts/generate-spider-report.js +12 -8
- package/packages/core/dist/scripts/generate-spider-report.js.map +1 -1
- package/packages/core/dist/scripts/generate-spider.d.ts.map +1 -1
- package/packages/core/dist/scripts/generate-spider.js +6 -4
- package/packages/core/dist/scripts/generate-spider.js.map +1 -1
- package/packages/core/dist/scripts/generate-spider.test.js +2 -2
- package/packages/core/dist/scripts/generate-spider.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/orchestrator.md +0 -6
- package/pennyfarthing-dist/agents/pm.md +1 -7
- package/pennyfarthing-dist/agents/sm-finish.md +1 -1
- package/pennyfarthing-dist/agents/sm-setup.md +2 -2
- package/pennyfarthing-dist/agents/sm.md +4 -11
- 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/repo-status.md +2 -2
- 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 +1 -1
- package/pennyfarthing-dist/commands/show-theme.md +14 -16
- package/pennyfarthing-dist/commands/sm.md +11 -3
- package/pennyfarthing-dist/commands/sprint.md +8 -8
- 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-coordination.md +11 -13
- package/pennyfarthing-dist/guides/agent-template-tactical.md +2 -3
- 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/skill-schema.md +25 -26
- package/pennyfarthing-dist/guides/xml-tags.md +2 -2
- package/pennyfarthing-dist/scripts/README.md +2 -2
- package/pennyfarthing-dist/scripts/core/agent-session.sh +6 -2
- package/pennyfarthing-dist/scripts/core/prime.sh +8 -10
- package/pennyfarthing-dist/scripts/git/git-status-all.sh +1 -1
- package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +8 -6
- package/pennyfarthing-dist/scripts/git/worktree-manager.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/post-merge.sh +14 -12
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +4 -3
- package/pennyfarthing-dist/scripts/hooks/pre-push.sh +11 -5
- package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +1 -1
- package/pennyfarthing-dist/scripts/misc/README.md +1 -1
- package/pennyfarthing-dist/scripts/misc/repo-utils.sh +3 -3
- package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +1 -2
- package/pennyfarthing-dist/scripts/sprint/README.md +32 -17
- package/pennyfarthing-dist/scripts/story/README.md +1 -1
- package/pennyfarthing-dist/scripts/test/test-setup.sh +1 -1
- package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +5 -5
- package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +3 -79
- package/pennyfarthing-dist/scripts/theme/README.md +1 -1
- package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +0 -1
- package/pennyfarthing-dist/scripts/workflow/finish-story.sh +62 -17
- package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +2 -2
- package/pennyfarthing-dist/skills/skill-registry.yaml +41 -28
- package/pennyfarthing-dist/skills/sprint/skill.md +386 -68
- package/pennyfarthing-dist/skills/story/skill.md +14 -206
- package/pennyfarthing-dist/skills/theme/skill.md +290 -75
- package/pennyfarthing-dist/skills/theme-creation/SKILL.md +23 -166
- package/pennyfarthing-dist/skills/workflow/skill.md +4 -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/epics-and-stories/steps/step-05-import-to-future.md +42 -25
- package/pennyfarthing-dist/workflows/git-cleanup.yaml +1 -1
- package/pennyfarthing-dist/workflows/project-setup/steps/step-10-complete.md +1 -1
- package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/hooks.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/cli.py +15 -0
- package/pennyfarthing_scripts/codemarkers/__init__.py +19 -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 +326 -0
- package/pennyfarthing_scripts/codemarkers/cli.py +129 -0
- package/pennyfarthing_scripts/codemarkers/formatters.py +89 -0
- package/pennyfarthing_scripts/codemarkers/models.py +45 -0
- package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/config.py +2 -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 +78 -0
- package/pennyfarthing_scripts/complexity/formatters.py +64 -0
- package/pennyfarthing_scripts/complexity/models.py +32 -0
- 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 +323 -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 +72 -0
- package/pennyfarthing_scripts/dependencies/formatters.py +63 -0
- package/pennyfarthing_scripts/dependencies/models.py +39 -0
- package/pennyfarthing_scripts/healthscore/__init__.py +21 -0
- package/pennyfarthing_scripts/healthscore/__main__.py +6 -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 +161 -0
- package/pennyfarthing_scripts/healthscore/cli.py +76 -0
- package/pennyfarthing_scripts/healthscore/formatters.py +46 -0
- package/pennyfarthing_scripts/healthscore/models.py +44 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/analyze.py +28 -1
- package/pennyfarthing_scripts/hotspots/cli.py +11 -9
- package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/bidirectional.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__/operations.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/reconcile.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/bidirectional.py +42 -15
- package/pennyfarthing_scripts/jira/cli.py +78 -1
- package/pennyfarthing_scripts/jira/client.py +28 -0
- package/pennyfarthing_scripts/prime/__pycache__/cli.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__/tiers.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/workflow.py +5 -3
- 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__/loader.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 +63 -6
- package/pennyfarthing_scripts/sprint/archive_epic.py +198 -85
- package/pennyfarthing_scripts/sprint/cli.py +1565 -65
- package/pennyfarthing_scripts/sprint/epic_add.py +173 -0
- package/pennyfarthing_scripts/sprint/loader.py +46 -2
- package/pennyfarthing_scripts/sprint/story_add.py +202 -27
- package/pennyfarthing_scripts/sprint/story_finish.py +211 -0
- package/pennyfarthing_scripts/sprint/validate_cmd.py +44 -5
- package/pennyfarthing_scripts/sprint/validator.py +13 -3
- package/pennyfarthing_scripts/sprint/work.py +43 -3
- package/pennyfarthing_scripts/sprint/yaml_io.py +124 -15
- package/pennyfarthing_scripts/tests/__pycache__/test_codemarkers.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_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_update.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_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/test_codemarkers.py +682 -0
- package/pennyfarthing_scripts/tests/test_healthscore.py +524 -0
- package/pennyfarthing_scripts/tests/test_sprint_package.py +166 -0
- package/pennyfarthing_scripts/tests/test_yaml_io.py +117 -0
- 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 +286 -0
- package/scripts/README.md +53 -0
- package/scripts/postinstall.cjs +34 -0
- package/pennyfarthing-dist/agents/workflow-status-check.md +0 -96
- package/pennyfarthing-dist/scripts/sprint/archive-story.sh +0 -133
- package/pennyfarthing-dist/scripts/sprint/available-stories.sh +0 -91
- package/pennyfarthing-dist/scripts/sprint/check-story.sh +0 -158
- package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +0 -52
- package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +0 -63
- package/pennyfarthing-dist/scripts/sprint/list-future.sh +0 -145
- package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +0 -110
- package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +0 -148
- package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +0 -415
- package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +0 -33
- package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +0 -230
- package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +0 -134
- package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +0 -139
- package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +0 -101
- package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +0 -97
- package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +0 -164
- package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +0 -23
- package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +0 -116
- package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +0 -164
- package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +0 -39
- package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +0 -147
- package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +0 -23
|
@@ -1,219 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: story
|
|
3
3
|
description: |
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
For starting work on stories, use /sprint work instead.
|
|
4
|
+
DEPRECATED: Use /sprint story instead.
|
|
5
|
+
Story commands have been consolidated under /sprint.
|
|
7
6
|
args: "[size|template|create|finish] [options]"
|
|
7
|
+
deprecated: true
|
|
8
|
+
redirect: sprint
|
|
8
9
|
---
|
|
9
10
|
|
|
10
|
-
# /story -
|
|
11
|
+
# /story - DEPRECATED
|
|
11
12
|
|
|
12
|
-
Story
|
|
13
|
+
Story commands have been consolidated into `/sprint`. Use the new commands:
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<when>
|
|
21
|
-
- Without argument: Show all sizing guidelines
|
|
22
|
-
- With points: Show specific guidance for that point value
|
|
23
|
-
</when>
|
|
24
|
-
|
|
25
|
-
<run>
|
|
26
|
-
.pennyfarthing/scripts/story/size-story.sh [points]
|
|
27
|
-
</run>
|
|
28
|
-
|
|
29
|
-
<example>
|
|
30
|
-
.pennyfarthing/scripts/story/size-story.sh # All guidelines
|
|
31
|
-
.pennyfarthing/scripts/story/size-story.sh 3 # 3-point guidance
|
|
32
|
-
.pennyfarthing/scripts/story/size-story.sh 13 # Split guidance
|
|
33
|
-
</example>
|
|
34
|
-
|
|
35
|
-
<output>
|
|
36
|
-
Sizing characteristics, workflow suggestions, examples.
|
|
37
|
-
</output>
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
### `/story template [type]`
|
|
42
|
-
|
|
43
|
-
Display story templates by type.
|
|
44
|
-
|
|
45
|
-
<when>
|
|
46
|
-
- Without argument: Show all templates
|
|
47
|
-
- With type: Show specific template (bug, feature, refactor, chore)
|
|
48
|
-
</when>
|
|
49
|
-
|
|
50
|
-
<run>
|
|
51
|
-
.pennyfarthing/scripts/story/story-template.sh [type]
|
|
52
|
-
</run>
|
|
53
|
-
|
|
54
|
-
<example>
|
|
55
|
-
.pennyfarthing/scripts/story/story-template.sh # All templates
|
|
56
|
-
.pennyfarthing/scripts/story/story-template.sh bug # Bug template
|
|
57
|
-
.pennyfarthing/scripts/story/story-template.sh feature # Feature template
|
|
58
|
-
</example>
|
|
59
|
-
|
|
60
|
-
<output>
|
|
61
|
-
YAML template with acceptance criteria patterns.
|
|
62
|
-
</output>
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
### `/story create <epic-id> "<title>" <points> [options]`
|
|
67
|
-
|
|
68
|
-
Generate a story YAML block for adding to sprint.
|
|
69
|
-
|
|
70
|
-
<run>
|
|
71
|
-
.pennyfarthing/scripts/story/create-story.sh <epic-id> "<title>" <points> [options]
|
|
72
|
-
</run>
|
|
73
|
-
|
|
74
|
-
<args>
|
|
75
|
-
| Arg | Required | Description |
|
|
76
|
-
|-----|----------|-------------|
|
|
77
|
-
| `epic-id` | Yes | Parent epic (e.g., `MSSCI-11952`) |
|
|
78
|
-
| `title` | Yes | Story title (quoted) |
|
|
79
|
-
| `points` | Yes | Story points (1, 2, 3, 5, 8) |
|
|
80
|
-
</args>
|
|
81
|
-
|
|
82
|
-
<output>
|
|
83
|
-
| Option | Values | Default | Description |
|
|
84
|
-
|--------|--------|---------|-------------|
|
|
85
|
-
| `--type` | bug, feature, refactor, chore | feature | Story type |
|
|
86
|
-
| `--workflow` | (project-defined) | auto | Override auto-workflow |
|
|
87
|
-
| `--priority` | P0, P1, P2, P3 | P2 | Priority level |
|
|
88
|
-
| `--repos` | (project-defined) | - | Affected repos |
|
|
89
|
-
| `--jira` | flag | - | Also show Jira create command |
|
|
90
|
-
</output>
|
|
91
|
-
|
|
92
|
-
<example>
|
|
93
|
-
# Simple feature
|
|
94
|
-
.pennyfarthing/scripts/story/create-story.sh MSSCI-11952 "Add error handling" 3
|
|
95
|
-
|
|
96
|
-
# Bug fix
|
|
97
|
-
.pennyfarthing/scripts/story/create-story.sh MSSCI-11952 "Fix null pointer" 2 --type bug
|
|
98
|
-
|
|
99
|
-
# Chore with explicit workflow
|
|
100
|
-
.pennyfarthing/scripts/story/create-story.sh MSSCI-11952 "Update deps" 1 --type chore
|
|
101
|
-
|
|
102
|
-
# With Jira command
|
|
103
|
-
.pennyfarthing/scripts/story/create-story.sh MSSCI-11952 "New feature" 5 --jira
|
|
104
|
-
</example>
|
|
105
|
-
|
|
106
|
-
<output>
|
|
107
|
-
YAML block ready to paste into `sprint/current-sprint.yaml`
|
|
108
|
-
</output>
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
### `/story finish <story-id> [--dry-run]`
|
|
113
|
-
|
|
114
|
-
Complete a story: archive session, merge PR, transition Jira, update sprint YAML.
|
|
115
|
-
|
|
116
|
-
<critical>
|
|
117
|
-
Prerequisites before running:
|
|
118
|
-
- Session file exists at `.session/{story-id}-session.md`
|
|
119
|
-
- PR is approved and mergeable
|
|
120
|
-
- Reviewer has approved (phase: finish in session)
|
|
121
|
-
</critical>
|
|
122
|
-
|
|
123
|
-
<run>
|
|
124
|
-
.pennyfarthing/scripts/workflow/finish-story.sh <story-id> [--dry-run]
|
|
125
|
-
</run>
|
|
126
|
-
|
|
127
|
-
<args>
|
|
128
|
-
| Arg | Required | Description |
|
|
129
|
-
|-----|----------|-------------|
|
|
130
|
-
| `story-id` | Yes | Story ID (e.g., `MSSCI-12052`) |
|
|
131
|
-
| `--dry-run` | No | Show what would be done without executing |
|
|
132
|
-
</args>
|
|
133
|
-
|
|
134
|
-
<example>
|
|
135
|
-
.pennyfarthing/scripts/workflow/finish-story.sh MSSCI-12052 # Finish story
|
|
136
|
-
.pennyfarthing/scripts/workflow/finish-story.sh MSSCI-12052 --dry-run # Preview only
|
|
137
|
-
</example>
|
|
138
|
-
|
|
139
|
-
<output>
|
|
140
|
-
1. Archives session file to `sprint/archive/{jira-key}-session.md`
|
|
141
|
-
2. Squash merges PR and deletes remote branch
|
|
142
|
-
3. Transitions Jira issue to Done
|
|
143
|
-
4. Updates sprint YAML (status: done, completed date, removes assigned_to)
|
|
144
|
-
5. Deletes local feature branch
|
|
145
|
-
6. Removes session file
|
|
146
|
-
|
|
147
|
-
Step-by-step progress with final summary and Jira link.
|
|
148
|
-
</output>
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Sizing Quick Reference
|
|
153
|
-
|
|
154
|
-
| Points | Scale | Complexity | Examples |
|
|
155
|
-
|--------|-------|------------|----------|
|
|
156
|
-
| 1-2 | Trivial | Single file, minimal testing | Config, typo, simple fix |
|
|
157
|
-
| 3 | Small | Few files, some testing | Validation, single component |
|
|
158
|
-
| 5 | Medium | Multiple files, comprehensive testing | New page, API endpoint |
|
|
159
|
-
| 8 | Large | Significant scope, extensive testing | Integration, major refactor |
|
|
160
|
-
| 13+ | **SPLIT** | Too complex for single story | Break into smaller stories |
|
|
161
|
-
|
|
162
|
-
## Workflow Selection
|
|
163
|
-
|
|
164
|
-
Workflows define the development process for a story. Common patterns:
|
|
165
|
-
|
|
166
|
-
| Workflow | When to Use |
|
|
167
|
-
|----------|-------------|
|
|
168
|
-
| `trivial` | Quick changes, no new tests needed |
|
|
169
|
-
| `tdd` | Standard development with test coverage |
|
|
170
|
-
| `agent-docs` | Documentation-focused work |
|
|
171
|
-
| `bdd` | Behavior-driven development |
|
|
172
|
-
|
|
173
|
-
<output>
|
|
174
|
-
Auto-selection heuristics:
|
|
175
|
-
- 1-2 point chores/bugs → `trivial`
|
|
176
|
-
- 3+ point features → `tdd`
|
|
177
|
-
- Documentation tasks → `agent-docs`
|
|
178
|
-
</output>
|
|
179
|
-
|
|
180
|
-
<when>
|
|
181
|
-
Projects can define custom workflows in `pennyfarthing-dist/workflows/`.
|
|
182
|
-
</when>
|
|
183
|
-
|
|
184
|
-
## Acceptance Criteria Patterns
|
|
185
|
-
|
|
186
|
-
### Good AC (SMART)
|
|
187
|
-
|
|
188
|
-
<example>
|
|
189
|
-
- "Admin users can access /admin/settings without 403"
|
|
190
|
-
- "API returns 204 No Content on successful DELETE"
|
|
191
|
-
- "Tests cover admin, manager, analyst roles"
|
|
192
|
-
</example>
|
|
193
|
-
|
|
194
|
-
### Bad AC (Vague)
|
|
195
|
-
|
|
196
|
-
<critical>
|
|
197
|
-
Avoid these patterns:
|
|
198
|
-
- "Feature works correctly"
|
|
199
|
-
- "No bugs"
|
|
200
|
-
- "Good performance"
|
|
201
|
-
</critical>
|
|
202
|
-
|
|
203
|
-
---
|
|
15
|
+
| Old Command | New Command |
|
|
16
|
+
|-------------|-------------|
|
|
17
|
+
| `/story size [points]` | `/sprint story size [points]` |
|
|
18
|
+
| `/story template [type]` | `/sprint story template [type]` |
|
|
19
|
+
| `/story create <epic-id> ...` | `/sprint story add <epic-id> ...` |
|
|
20
|
+
| `/story finish <story-id>` | `/sprint story finish <story-id>` |
|
|
204
21
|
|
|
205
22
|
## Related Skills
|
|
206
23
|
|
|
207
24
|
| Skill | Purpose |
|
|
208
25
|
|-------|---------|
|
|
209
|
-
| `/sprint` |
|
|
210
|
-
| `/jira` | Jira operations (create
|
|
211
|
-
| `/workflow` | View/set workflow definitions |
|
|
212
|
-
|
|
213
|
-
## File Locations
|
|
214
|
-
|
|
215
|
-
| File | Purpose |
|
|
216
|
-
|------|---------|
|
|
217
|
-
| `sprint/current-sprint.yaml` | Add new stories here |
|
|
218
|
-
| `sprint/planning.yaml` | Future epics/stories |
|
|
219
|
-
| `pennyfarthing-dist/workflows/` | Workflow definitions |
|
|
26
|
+
| `/sprint` | All sprint, story, and epic operations |
|
|
27
|
+
| `/jira` | Jira operations (create, sync, claim) |
|
|
@@ -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
|