@pennyfarthing/core 10.0.1 → 10.0.2
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/package.json +13 -3
- package/pennyfarthing-dist/agents/README.md +348 -0
- package/pennyfarthing-dist/agents/architect.md +180 -0
- package/pennyfarthing-dist/agents/dev.md +169 -0
- package/pennyfarthing-dist/agents/devops.md +203 -0
- package/pennyfarthing-dist/agents/handoff.md +235 -0
- package/pennyfarthing-dist/agents/orchestrator.md +182 -0
- package/pennyfarthing-dist/agents/pm.md +152 -0
- package/pennyfarthing-dist/agents/reviewer-preflight.md +129 -0
- package/pennyfarthing-dist/agents/reviewer.md +197 -0
- package/pennyfarthing-dist/agents/sm-file-summary.md +79 -0
- package/pennyfarthing-dist/agents/sm-finish.md +82 -0
- package/pennyfarthing-dist/agents/sm-handoff.md +129 -0
- package/pennyfarthing-dist/agents/sm-setup.md +251 -0
- package/pennyfarthing-dist/agents/sm.md +298 -0
- package/pennyfarthing-dist/agents/tea.md +161 -0
- package/pennyfarthing-dist/agents/tech-writer.md +226 -0
- package/pennyfarthing-dist/agents/testing-runner.md +184 -0
- package/pennyfarthing-dist/agents/ux-designer.md +236 -0
- package/pennyfarthing-dist/agents/workflow-status-check.md +96 -0
- package/pennyfarthing-dist/commands/architect.md +9 -0
- package/pennyfarthing-dist/commands/benchmark-control.md +69 -0
- package/pennyfarthing-dist/commands/benchmark.md +485 -0
- package/pennyfarthing-dist/commands/brainstorming.md +91 -0
- package/pennyfarthing-dist/commands/check.md +156 -0
- package/pennyfarthing-dist/commands/chore.md +218 -0
- package/pennyfarthing-dist/commands/close-epic.md +139 -0
- package/pennyfarthing-dist/commands/continue-session.md +218 -0
- package/pennyfarthing-dist/commands/create-branches-from-story.md +358 -0
- package/pennyfarthing-dist/commands/create-theme.md +29 -0
- package/pennyfarthing-dist/commands/dev.md +9 -0
- package/pennyfarthing-dist/commands/devops.md +9 -0
- package/pennyfarthing-dist/commands/fix-blocker.md +22 -0
- package/pennyfarthing-dist/commands/git-cleanup.md +57 -0
- package/pennyfarthing-dist/commands/health-check.md +143 -0
- package/pennyfarthing-dist/commands/help.md +264 -0
- package/pennyfarthing-dist/commands/job-fair.md +102 -0
- package/pennyfarthing-dist/commands/list-themes.md +21 -0
- package/pennyfarthing-dist/commands/new-work.md +23 -0
- package/pennyfarthing-dist/commands/orchestrator.md +9 -0
- package/pennyfarthing-dist/commands/parallel-work.md +73 -0
- package/pennyfarthing-dist/commands/party-mode.md +77 -0
- package/pennyfarthing-dist/commands/patch.md +210 -0
- package/pennyfarthing-dist/commands/permissions.md +193 -0
- package/pennyfarthing-dist/commands/pm.md +9 -0
- package/pennyfarthing-dist/commands/prime.md +136 -0
- package/pennyfarthing-dist/commands/release.md +74 -0
- package/pennyfarthing-dist/commands/repo-status.md +49 -0
- package/pennyfarthing-dist/commands/retro.md +200 -0
- package/pennyfarthing-dist/commands/reviewer.md +9 -0
- package/pennyfarthing-dist/commands/run-ci.md +116 -0
- package/pennyfarthing-dist/commands/set-theme.md +56 -0
- package/pennyfarthing-dist/commands/setup.md +65 -0
- package/pennyfarthing-dist/commands/show-theme.md +21 -0
- package/pennyfarthing-dist/commands/sm.md +9 -0
- package/pennyfarthing-dist/commands/solo.md +447 -0
- package/pennyfarthing-dist/commands/sprint-planning.md +109 -0
- package/pennyfarthing-dist/commands/sprint.md +142 -0
- package/pennyfarthing-dist/commands/standalone.md +194 -0
- package/pennyfarthing-dist/commands/start-epic.md +168 -0
- package/pennyfarthing-dist/commands/sync-epic-to-jira.md +184 -0
- package/pennyfarthing-dist/commands/sync-work-with-sprint.md +373 -0
- package/pennyfarthing-dist/commands/tea.md +9 -0
- package/pennyfarthing-dist/commands/tech-writer.md +9 -0
- package/pennyfarthing-dist/commands/theme-maker.md +676 -0
- package/pennyfarthing-dist/commands/update-domain-docs.md +83 -0
- package/pennyfarthing-dist/commands/ux-designer.md +9 -0
- package/pennyfarthing-dist/commands/work.md +25 -0
- package/pennyfarthing-dist/commands/workflow.md +21 -0
- package/pennyfarthing-dist/guides/agent-behavior.md +92 -0
- package/pennyfarthing-dist/guides/agent-coordination.md +475 -0
- package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +432 -0
- package/pennyfarthing-dist/guides/agent-template-strategic.md +148 -0
- package/pennyfarthing-dist/guides/agent-template-tactical.md +162 -0
- package/pennyfarthing-dist/guides/hooks.md +230 -0
- package/pennyfarthing-dist/guides/measurement-framework.md +210 -0
- package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +766 -0
- package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +574 -0
- package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +488 -0
- package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +402 -0
- package/pennyfarthing-dist/guides/permission-protocol.md +188 -0
- package/pennyfarthing-dist/guides/persona-loading.md +46 -0
- package/pennyfarthing-dist/guides/prompt-patterns.md +338 -0
- package/pennyfarthing-dist/guides/scale-levels.md +114 -0
- package/pennyfarthing-dist/guides/session-artifacts.md +193 -0
- package/pennyfarthing-dist/guides/session-schema.md +346 -0
- package/pennyfarthing-dist/guides/skill-schema.md +412 -0
- package/pennyfarthing-dist/guides/workflow-schema.md +257 -0
- package/pennyfarthing-dist/guides/workflow-step-schema.md +512 -0
- package/pennyfarthing-dist/guides/worktree-mode.md +113 -0
- package/pennyfarthing-dist/guides/xml-tags.md +627 -0
- package/pennyfarthing-dist/output-styles/teaching.md +33 -0
- package/pennyfarthing-dist/output-styles/terse.md +20 -0
- package/pennyfarthing-dist/output-styles/verbose.md +28 -0
- package/pennyfarthing-dist/personas/themes/a-team.yaml +331 -0
- package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +324 -0
- package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +282 -0
- package/pennyfarthing-dist/personas/themes/blade-runner.yaml +289 -0
- package/pennyfarthing-dist/personas/themes/catch-22.yaml +304 -0
- package/pennyfarthing-dist/personas/themes/control.yaml +201 -0
- package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +315 -0
- package/pennyfarthing-dist/personas/themes/discworld.yaml +334 -0
- package/pennyfarthing-dist/personas/themes/doctor-who.yaml +284 -0
- package/pennyfarthing-dist/personas/themes/dune.yaml +301 -0
- package/pennyfarthing-dist/personas/themes/firefly.yaml +320 -0
- package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +284 -0
- package/pennyfarthing-dist/personas/themes/harry-potter.yaml +316 -0
- package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +323 -0
- package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +326 -0
- package/pennyfarthing-dist/personas/themes/mad-max.yaml +349 -0
- package/pennyfarthing-dist/personas/themes/mash.yaml +329 -0
- package/pennyfarthing-dist/personas/themes/princess-bride.yaml +344 -0
- package/pennyfarthing-dist/personas/themes/sandman.yaml +282 -0
- package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +358 -0
- package/pennyfarthing-dist/personas/themes/star-wars.yaml +297 -0
- package/pennyfarthing-dist/personas/themes/the-expanse.yaml +337 -0
- package/pennyfarthing-dist/personas/themes/the-matrix.yaml +342 -0
- package/pennyfarthing-dist/personas/themes/watchmen.yaml +285 -0
- package/pennyfarthing-dist/personas/themes/west-wing.yaml +285 -0
- package/pennyfarthing-dist/personas/themes/x-files.yaml +296 -0
- package/pennyfarthing-dist/scripts/README.md +87 -0
- package/pennyfarthing-dist/scripts/core/README.md +25 -0
- package/pennyfarthing-dist/scripts/core/agent-session.sh +390 -0
- package/pennyfarthing-dist/scripts/core/check-context.sh +194 -0
- package/pennyfarthing-dist/scripts/core/handoff-marker.sh +112 -0
- package/pennyfarthing-dist/scripts/core/phase-check-start.sh +90 -0
- package/pennyfarthing-dist/scripts/core/prime.sh +30 -0
- package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +21 -0
- package/pennyfarthing-dist/scripts/git/README.md +25 -0
- package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +267 -0
- package/pennyfarthing-dist/scripts/git/git-status-all.sh +152 -0
- package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +79 -0
- package/pennyfarthing-dist/scripts/git/release.sh +246 -0
- package/pennyfarthing-dist/scripts/git/worktree-manager.sh +497 -0
- package/pennyfarthing-dist/scripts/health/drift-detection.sh +156 -0
- package/pennyfarthing-dist/scripts/hooks/README.md +32 -0
- package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +106 -0
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +95 -0
- package/pennyfarthing-dist/scripts/hooks/context-warning.sh +65 -0
- package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +35 -0
- package/pennyfarthing-dist/scripts/hooks/post-merge.sh +150 -0
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +190 -0
- package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +71 -0
- package/pennyfarthing-dist/scripts/hooks/pre-push.sh +42 -0
- package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +20 -0
- package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +499 -0
- package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +30 -0
- package/pennyfarthing-dist/scripts/hooks/session-start.sh +97 -0
- package/pennyfarthing-dist/scripts/hooks/session-stop.sh +65 -0
- package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +78 -0
- package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +94 -0
- package/pennyfarthing-dist/scripts/jira/README.md +36 -0
- package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +95 -0
- package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +91 -0
- package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +22 -0
- package/pennyfarthing-dist/scripts/jira/jira-lib.sh +464 -0
- package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +260 -0
- package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +18 -0
- package/pennyfarthing-dist/scripts/jira/jira-sync.sh +16 -0
- package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +16 -0
- package/pennyfarthing-dist/scripts/jira/sync-epic-to-jira.sh +16 -0
- package/pennyfarthing-dist/scripts/lib/README.md +29 -0
- package/pennyfarthing-dist/scripts/lib/background-tasks.sh +177 -0
- package/pennyfarthing-dist/scripts/lib/checkpoint.sh +136 -0
- package/pennyfarthing-dist/scripts/lib/common.sh +212 -0
- package/pennyfarthing-dist/scripts/lib/file-lock.sh +269 -0
- package/pennyfarthing-dist/scripts/lib/find-root.sh +58 -0
- package/pennyfarthing-dist/scripts/lib/logging.sh +186 -0
- package/pennyfarthing-dist/scripts/lib/retry.sh +76 -0
- package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +102 -0
- package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +91 -0
- package/pennyfarthing-dist/scripts/misc/README.md +44 -0
- package/pennyfarthing-dist/scripts/misc/add-short-names.sh +13 -0
- package/pennyfarthing-dist/scripts/misc/add_short_names.py +226 -0
- package/pennyfarthing-dist/scripts/misc/backlog.sh +77 -0
- package/pennyfarthing-dist/scripts/misc/check-status.sh +247 -0
- package/pennyfarthing-dist/scripts/misc/find-related-work.sh +231 -0
- package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +107 -0
- package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +74 -0
- package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +10 -0
- package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +319 -0
- package/pennyfarthing-dist/scripts/misc/repo-scan.sh +141 -0
- package/pennyfarthing-dist/scripts/misc/repo-utils.sh +778 -0
- package/pennyfarthing-dist/scripts/misc/run-ci.sh +212 -0
- package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +7 -0
- package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +319 -0
- package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +193 -0
- package/pennyfarthing-dist/scripts/misc/statusline.sh +257 -0
- package/pennyfarthing-dist/scripts/misc/uninstall.sh +275 -0
- package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +160 -0
- package/pennyfarthing-dist/scripts/portraits/generate-portraits.py +417 -0
- package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +54 -0
- package/pennyfarthing-dist/scripts/sprint/README.md +29 -0
- package/pennyfarthing-dist/scripts/sprint/archive-story.sh +133 -0
- package/pennyfarthing-dist/scripts/sprint/available-stories.sh +91 -0
- package/pennyfarthing-dist/scripts/sprint/check-story.sh +158 -0
- package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +52 -0
- package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +63 -0
- package/pennyfarthing-dist/scripts/sprint/list-future.sh +145 -0
- package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +110 -0
- package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +148 -0
- package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +415 -0
- package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +33 -0
- package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +230 -0
- package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +134 -0
- package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +139 -0
- package/pennyfarthing-dist/scripts/story/README.md +23 -0
- package/pennyfarthing-dist/scripts/story/create-story.sh +19 -0
- package/pennyfarthing-dist/scripts/story/size-story.sh +18 -0
- package/pennyfarthing-dist/scripts/story/story-template.sh +18 -0
- package/pennyfarthing-dist/scripts/test/README.md +23 -0
- package/pennyfarthing-dist/scripts/test/ensure-swebench-data.sh +59 -0
- package/pennyfarthing-dist/scripts/test/ground-truth-judge.py +220 -0
- package/pennyfarthing-dist/scripts/test/swebench-judge.py +374 -0
- package/pennyfarthing-dist/scripts/test/test-cache.sh +165 -0
- package/pennyfarthing-dist/scripts/test/test-setup.sh +337 -0
- package/pennyfarthing-dist/scripts/tests/check.test.sh +582 -0
- package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +515 -0
- package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +599 -0
- package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +332 -0
- package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +573 -0
- package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +859 -0
- package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +662 -0
- package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +589 -0
- package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +106 -0
- package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +597 -0
- package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +514 -0
- package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +517 -0
- package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +331 -0
- package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +647 -0
- package/pennyfarthing-dist/scripts/theme/README.md +22 -0
- package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +13 -0
- package/pennyfarthing-dist/scripts/theme/compute_theme_tiers.py +402 -0
- package/pennyfarthing-dist/scripts/theme/list-themes.sh +30 -0
- package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +97 -0
- package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +576 -0
- package/pennyfarthing-dist/scripts/workflow/README.md +28 -0
- package/pennyfarthing-dist/scripts/workflow/check.py +502 -0
- package/pennyfarthing-dist/scripts/workflow/check.sh +24 -0
- package/pennyfarthing-dist/scripts/workflow/complete-step.py +304 -0
- package/pennyfarthing-dist/scripts/workflow/finish-story.sh +154 -0
- package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +222 -0
- package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +61 -0
- package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +13 -0
- package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +124 -0
- package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +34 -0
- package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +157 -0
- package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +132 -0
- package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +250 -0
- package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +161 -0
- package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +246 -0
- package/pennyfarthing-dist/skills/changelog/SKILL.md +385 -0
- package/pennyfarthing-dist/skills/code-review/SKILL.md +172 -0
- package/pennyfarthing-dist/skills/context-engineering/SKILL.md +277 -0
- package/pennyfarthing-dist/skills/cyclist/SKILL.md +88 -0
- package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +461 -0
- package/pennyfarthing-dist/skills/finalize-run/SKILL.md +261 -0
- package/pennyfarthing-dist/skills/jira/SKILL.md +508 -0
- package/pennyfarthing-dist/skills/judge/SKILL.md +644 -0
- package/pennyfarthing-dist/skills/just/SKILL.md +414 -0
- package/pennyfarthing-dist/skills/mermaid/SKILL.md +256 -0
- package/pennyfarthing-dist/skills/otel/skill.md +227 -0
- package/pennyfarthing-dist/skills/permissions/skill.md +157 -0
- package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +187 -0
- package/pennyfarthing-dist/skills/skill-registry.schema.json +107 -0
- package/pennyfarthing-dist/skills/skill-registry.yaml +393 -0
- package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +101 -0
- package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +97 -0
- package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +164 -0
- package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +101 -0
- package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +116 -0
- package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +164 -0
- package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +39 -0
- package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +147 -0
- package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +93 -0
- package/pennyfarthing-dist/skills/sprint/skill.md +465 -0
- package/pennyfarthing-dist/skills/story/scripts/create-story.sh +159 -0
- package/pennyfarthing-dist/skills/story/scripts/size-story.sh +198 -0
- package/pennyfarthing-dist/skills/story/scripts/story-template.sh +162 -0
- package/pennyfarthing-dist/skills/story/skill.md +219 -0
- package/pennyfarthing-dist/skills/systematic-debugging/SKILL.md +446 -0
- package/pennyfarthing-dist/skills/testing/SKILL.md +121 -0
- package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +124 -0
- package/pennyfarthing-dist/skills/theme/skill.md +141 -0
- package/pennyfarthing-dist/skills/theme-creation/SKILL.md +178 -0
- package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +91 -0
- package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +163 -0
- package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +138 -0
- package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +273 -0
- package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +167 -0
- package/pennyfarthing-dist/skills/workflow/skill.md +345 -0
- package/pennyfarthing-dist/skills/yq/SKILL.md +272 -0
- package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +187 -0
- package/pennyfarthing-dist/templates/LEADERBOARD.template.md +59 -0
- package/pennyfarthing-dist/templates/agent-scopes.yaml.template +276 -0
- package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +61 -0
- package/pennyfarthing-dist/templates/persona-config.yaml.template +22 -0
- package/pennyfarthing-dist/templates/preferences.yaml.template +15 -0
- package/pennyfarthing-dist/templates/settings.local.json.template +130 -0
- package/pennyfarthing-dist/templates/setup-env.sh.template +18 -0
- package/pennyfarthing-dist/templates/shared-context.md.template +70 -0
- package/pennyfarthing-dist/templates/sidecar/decisions.md.template +40 -0
- package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +37 -0
- package/pennyfarthing-dist/templates/sidecar/patterns.md.template +34 -0
- package/pennyfarthing-dist/workflows/agent-docs.yaml +70 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-01-initialize.md +113 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-01b-continue.md +105 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-02-context.md +127 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-03-patterns.md +145 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-04-components.md +150 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-05-interfaces.md +145 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-06-risks.md +154 -0
- package/pennyfarthing-dist/workflows/architecture/steps/step-07-document.md +172 -0
- package/pennyfarthing-dist/workflows/architecture/templates/architecture-decision.md +102 -0
- package/pennyfarthing-dist/workflows/architecture.yaml +65 -0
- package/pennyfarthing-dist/workflows/bdd.yaml +60 -0
- package/pennyfarthing-dist/workflows/brainstorming/brain-methods.csv +62 -0
- package/pennyfarthing-dist/workflows/brainstorming/checklist.md +44 -0
- package/pennyfarthing-dist/workflows/brainstorming/instructions.md +736 -0
- package/pennyfarthing-dist/workflows/brainstorming/workflow.yaml +49 -0
- package/pennyfarthing-dist/workflows/code-review/checklist.md +23 -0
- package/pennyfarthing-dist/workflows/code-review/instructions.md +234 -0
- package/pennyfarthing-dist/workflows/code-review/workflow.yaml +51 -0
- package/pennyfarthing-dist/workflows/dev-story/checklist.md +80 -0
- package/pennyfarthing-dist/workflows/dev-story/instructions.xml +410 -0
- package/pennyfarthing-dist/workflows/dev-story/workflow.yaml +50 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-01-validate-prerequisites.md +281 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-02-design-epics.md +256 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-03-create-stories.md +298 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-04-final-validation.md +177 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +145 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/templates/epics-template.md +57 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/workflow.yaml +28 -0
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +103 -0
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-02-categorize.md +147 -0
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-03-execute.md +215 -0
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +97 -0
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +78 -0
- package/pennyfarthing-dist/workflows/git-cleanup.yaml +59 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-01-document-discovery.md +211 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-02-prd-analysis.md +199 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-03-epic-coverage-validation.md +202 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-04-ux-alignment.md +162 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-05-epic-quality-review.md +280 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/steps/step-06-final-assessment.md +158 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/templates/readiness-report-template.md +4 -0
- package/pennyfarthing-dist/workflows/implementation-readiness/workflow.yaml +40 -0
- package/pennyfarthing-dist/workflows/interactive-debug/steps/step-01-connect.md +257 -0
- package/pennyfarthing-dist/workflows/interactive-debug/steps/step-02-explore.md +107 -0
- package/pennyfarthing-dist/workflows/interactive-debug/steps/step-03-fix.md +127 -0
- package/pennyfarthing-dist/workflows/interactive-debug/steps/step-04-commit.md +122 -0
- package/pennyfarthing-dist/workflows/interactive-debug/workflow.yaml +51 -0
- package/pennyfarthing-dist/workflows/patch.yaml +67 -0
- package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +13 -0
- package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +197 -0
- package/pennyfarthing-dist/workflows/prd/data/project-types.csv +11 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-01-init.md +197 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-01b-continue.md +159 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-02-discovery.md +230 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-03-success.md +232 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-04-journeys.md +219 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-05-domain.md +213 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-06-innovation.md +232 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-07-project-type.md +243 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-08-scoping.md +234 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-09-functional.md +237 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-10-nonfunctional.md +248 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-11-polish.md +223 -0
- package/pennyfarthing-dist/workflows/prd/steps-c/step-12-complete.md +186 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01-discovery.md +253 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-01b-legacy-conversion.md +214 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-02-review.md +255 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-03-edit.md +259 -0
- package/pennyfarthing-dist/workflows/prd/steps-e/step-e-04-complete.md +174 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-01-discovery.md +224 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02-format-detection.md +197 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-02b-parity-check.md +215 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-03-density-validation.md +180 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +220 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-05-measurability-validation.md +234 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-06-traceability-validation.md +223 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +211 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +249 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-09-project-type-validation.md +269 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-10-smart-validation.md +215 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +270 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-12-completeness-validation.md +248 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-13-report-complete.md +238 -0
- package/pennyfarthing-dist/workflows/prd/templates/prd-template.md +10 -0
- package/pennyfarthing-dist/workflows/prd/workflow.yaml +42 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-01-init.md +195 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-01b-continue.md +180 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-02-vision.md +221 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-03-users.md +224 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-04-metrics.md +228 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-05-scope.md +243 -0
- package/pennyfarthing-dist/workflows/product-brief/steps/step-06-complete.md +216 -0
- package/pennyfarthing-dist/workflows/product-brief/templates/product-brief.template.md +10 -0
- package/pennyfarthing-dist/workflows/product-brief/workflow.yaml +31 -0
- package/pennyfarthing-dist/workflows/project-context/project-context-template.md +21 -0
- package/pennyfarthing-dist/workflows/project-context/steps/step-01-discover.md +206 -0
- package/pennyfarthing-dist/workflows/project-context/steps/step-02-generate.md +349 -0
- package/pennyfarthing-dist/workflows/project-context/steps/step-03-complete.md +306 -0
- package/pennyfarthing-dist/workflows/project-context/workflow.yaml +27 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +157 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-02-clone-repos.md +217 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-03-repos-yaml.md +159 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-04-claude-md.md +186 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-05-shared-context.md +185 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-06-task-runner.md +279 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-07-theme.md +200 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-08-theme-packs.md +142 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-09-cyclist.md +245 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-10-complete.md +204 -0
- package/pennyfarthing-dist/workflows/project-setup/workflow.yaml +41 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-01-mode-detection.md +177 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-02-context-gathering.md +143 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-03-execute.md +138 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-04-self-check.md +135 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-05-adversarial-review.md +129 -0
- package/pennyfarthing-dist/workflows/quick-dev/steps/step-06-resolve-findings.md +163 -0
- package/pennyfarthing-dist/workflows/quick-dev/workflow.yaml +27 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +201 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +156 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +140 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +203 -0
- package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +74 -0
- package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +27 -0
- package/pennyfarthing-dist/workflows/release/steps/step-01-preflight.md +105 -0
- package/pennyfarthing-dist/workflows/release/steps/step-02-bump.md +95 -0
- package/pennyfarthing-dist/workflows/release/steps/step-03-changelog.md +125 -0
- package/pennyfarthing-dist/workflows/release/steps/step-04-readme.md +101 -0
- package/pennyfarthing-dist/workflows/release/steps/step-05-claude-md.md +102 -0
- package/pennyfarthing-dist/workflows/release/steps/step-06-retro.md +59 -0
- package/pennyfarthing-dist/workflows/release/steps/step-07-commit.md +109 -0
- package/pennyfarthing-dist/workflows/release/steps/step-08-merge.md +65 -0
- package/pennyfarthing-dist/workflows/release/steps/step-09-push.md +75 -0
- package/pennyfarthing-dist/workflows/release/steps/step-10-publish.md +93 -0
- package/pennyfarthing-dist/workflows/release/steps/step-11-finalize.md +71 -0
- package/pennyfarthing-dist/workflows/release.yaml +62 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-01-init.md +159 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-02-domain-analysis.md +253 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-03-competitive-landscape.md +263 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-04-regulatory-focus.md +232 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-05-technical-trends.md +260 -0
- package/pennyfarthing-dist/workflows/research/steps-domain/step-06-research-synthesis.md +477 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-01-init.md +205 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-behavior.md +262 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-02-customer-insights.md +227 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-03-customer-pain-points.md +275 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-04-customer-decisions.md +286 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-05-competitive-analysis.md +203 -0
- package/pennyfarthing-dist/workflows/research/steps-market/step-06-research-completion.md +510 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-01-init.md +159 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-02-technical-overview.md +264 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-03-integration-patterns.md +274 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-04-architectural-patterns.md +228 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-05-implementation-research.md +267 -0
- package/pennyfarthing-dist/workflows/research/steps-technical/step-06-research-synthesis.md +522 -0
- package/pennyfarthing-dist/workflows/research/templates/research.template.md +29 -0
- package/pennyfarthing-dist/workflows/research/workflow.yaml +45 -0
- package/pennyfarthing-dist/workflows/retrospective/checklist.md +31 -0
- package/pennyfarthing-dist/workflows/retrospective/instructions.md +1443 -0
- package/pennyfarthing-dist/workflows/retrospective/workflow.yaml +50 -0
- package/pennyfarthing-dist/workflows/sprint-planning/checklist.md +33 -0
- package/pennyfarthing-dist/workflows/sprint-planning/sprint-status-template.yaml +55 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-01-parse-epic-files.md +69 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-02-build-sprint-status.md +61 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-03-status-detection.md +80 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-04-generate-status-file.md +90 -0
- package/pennyfarthing-dist/workflows/sprint-planning/steps/step-05-validate-and-report.md +78 -0
- package/pennyfarthing-dist/workflows/sprint-planning/workflow.yaml +34 -0
- package/pennyfarthing-dist/workflows/tdd.yaml +50 -0
- package/pennyfarthing-dist/workflows/trivial.yaml +40 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-01-init.md +141 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-01b-continue.md +133 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-02-discovery.md +196 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-03-core-experience.md +222 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-04-emotional-response.md +225 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-05-inspiration.md +240 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-06-design-system.md +258 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-07-defining-experience.md +260 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-08-visual-foundation.md +230 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-09-design-directions.md +230 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-10-user-journeys.md +247 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-11-component-strategy.md +254 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-12-ux-patterns.md +243 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-13-responsive-accessibility.md +270 -0
- package/pennyfarthing-dist/workflows/ux-design/steps/step-14-complete.md +234 -0
- package/pennyfarthing-dist/workflows/ux-design/ux-design-template.md +13 -0
- package/pennyfarthing-dist/workflows/ux-design/workflow.yaml +41 -0
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
# Skill File XML Schema
|
|
2
|
+
|
|
3
|
+
Skill files document slash commands and their usage. A consistent XML schema ensures agents can reliably parse commands, arguments, and execution patterns.
|
|
4
|
+
|
|
5
|
+
## File Location
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
skills/{skill-name}/SKILL.md
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
**Examples:**
|
|
12
|
+
- `skills/sprint/SKILL.md`
|
|
13
|
+
- `skills/testing/SKILL.md`
|
|
14
|
+
- `skills/jira/SKILL.md`
|
|
15
|
+
|
|
16
|
+
## Complete Schema
|
|
17
|
+
|
|
18
|
+
```markdown
|
|
19
|
+
---
|
|
20
|
+
name: skill-name
|
|
21
|
+
description: |
|
|
22
|
+
One-line or multiline description of what this skill does.
|
|
23
|
+
IMPORTANT notes can go here.
|
|
24
|
+
args: "[command|arg1|arg2]"
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# /skill-name - Human Readable Title
|
|
28
|
+
|
|
29
|
+
<critical>
|
|
30
|
+
Non-negotiable rules for this skill.
|
|
31
|
+
**Never** do X. **Always** do Y.
|
|
32
|
+
</critical>
|
|
33
|
+
|
|
34
|
+
## Commands
|
|
35
|
+
|
|
36
|
+
### `/skill-name` or `/skill-name command`
|
|
37
|
+
|
|
38
|
+
Description of what this command does.
|
|
39
|
+
|
|
40
|
+
<run>
|
|
41
|
+
.pennyfarthing/scripts/path/to/script.sh [args]
|
|
42
|
+
</run>
|
|
43
|
+
|
|
44
|
+
<args>
|
|
45
|
+
| Arg | Required | Description |
|
|
46
|
+
|-----|----------|-------------|
|
|
47
|
+
| `arg1` | Yes | What this argument does |
|
|
48
|
+
| `arg2` | No | Optional argument |
|
|
49
|
+
</args>
|
|
50
|
+
|
|
51
|
+
<example>
|
|
52
|
+
.pennyfarthing/scripts/path/to/script.sh value1
|
|
53
|
+
# Returns: expected output format
|
|
54
|
+
</example>
|
|
55
|
+
|
|
56
|
+
<output>
|
|
57
|
+
What the command returns and how to interpret it.
|
|
58
|
+
</output>
|
|
59
|
+
|
|
60
|
+
<when>
|
|
61
|
+
Conditions for using this command.
|
|
62
|
+
What to do next after running it.
|
|
63
|
+
</when>
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### `/skill-name another-command`
|
|
68
|
+
|
|
69
|
+
Another command description...
|
|
70
|
+
|
|
71
|
+
## Agent Activation
|
|
72
|
+
|
|
73
|
+
<agent-activation>
|
|
74
|
+
Load agent persona first:
|
|
75
|
+
```bash
|
|
76
|
+
d="$PWD"; while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done; "$d/.pennyfarthing/scripts/core/agent-session.sh" start "agent-name"
|
|
77
|
+
```
|
|
78
|
+
</agent-activation>
|
|
79
|
+
|
|
80
|
+
## Quick Reference
|
|
81
|
+
|
|
82
|
+
| Command | Script/Action |
|
|
83
|
+
|---------|---------------|
|
|
84
|
+
| `/skill-name` | `script.sh` |
|
|
85
|
+
| `/skill-name cmd` | `script.sh cmd` |
|
|
86
|
+
|
|
87
|
+
## Related Skills
|
|
88
|
+
|
|
89
|
+
| Skill | Purpose |
|
|
90
|
+
|-------|---------|
|
|
91
|
+
| `/other-skill` | Related functionality |
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Element Reference
|
|
95
|
+
|
|
96
|
+
### YAML Frontmatter (Required)
|
|
97
|
+
|
|
98
|
+
Every skill file must have YAML frontmatter:
|
|
99
|
+
|
|
100
|
+
```yaml
|
|
101
|
+
---
|
|
102
|
+
name: skill-name # Required: lowercase, hyphenated
|
|
103
|
+
description: | # Required: what this skill does
|
|
104
|
+
Description text...
|
|
105
|
+
args: "[arg1|arg2]" # Optional: argument summary
|
|
106
|
+
---
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Fields:**
|
|
110
|
+
| Field | Required | Description |
|
|
111
|
+
|-------|----------|-------------|
|
|
112
|
+
| `name` | Yes | Skill identifier, matches directory name |
|
|
113
|
+
| `description` | Yes | Human-readable description |
|
|
114
|
+
| `args` | No | Argument syntax summary |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### `<critical>`
|
|
119
|
+
|
|
120
|
+
**Purpose:** Non-negotiable rules that MUST be followed. LLMs treat these as hard constraints.
|
|
121
|
+
|
|
122
|
+
**When to Use:**
|
|
123
|
+
- Rules that break the system if ignored
|
|
124
|
+
- Security constraints
|
|
125
|
+
- Data integrity requirements
|
|
126
|
+
|
|
127
|
+
**Example:**
|
|
128
|
+
```xml
|
|
129
|
+
<critical>
|
|
130
|
+
**Never manually edit** `sprint/current-sprint.yaml`. Use scripts.
|
|
131
|
+
</critical>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Note:** Use sparingly. If everything is critical, nothing is.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
### `<run>`
|
|
139
|
+
|
|
140
|
+
**Purpose:** The exact command to execute for this skill command.
|
|
141
|
+
|
|
142
|
+
**Required:** Yes, for every command that has a script.
|
|
143
|
+
|
|
144
|
+
**Content:** Single shell command or script invocation.
|
|
145
|
+
|
|
146
|
+
**Example:**
|
|
147
|
+
```xml
|
|
148
|
+
<run>
|
|
149
|
+
.pennyfarthing/scripts/sprint/sprint-status.sh [filter]
|
|
150
|
+
</run>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Guidelines:**
|
|
154
|
+
- Use `.pennyfarthing/scripts/` paths (never `pennyfarthing-dist/`)
|
|
155
|
+
- Include argument placeholders in `[brackets]`
|
|
156
|
+
- One command per `<run>` block
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
### `<args>`
|
|
161
|
+
|
|
162
|
+
**Purpose:** Document the arguments a command accepts.
|
|
163
|
+
|
|
164
|
+
**Required:** Yes, if command takes arguments.
|
|
165
|
+
|
|
166
|
+
**Format:** Markdown table with standard columns.
|
|
167
|
+
|
|
168
|
+
**Example:**
|
|
169
|
+
```xml
|
|
170
|
+
<args>
|
|
171
|
+
| Arg | Required | Description |
|
|
172
|
+
|-----|----------|-------------|
|
|
173
|
+
| `story-id` | Yes | Story ID (e.g., `35-2` or `MSSCI-12345`) |
|
|
174
|
+
| `--verbose` | No | Show detailed output |
|
|
175
|
+
</args>
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Columns:**
|
|
179
|
+
| Column | Description |
|
|
180
|
+
|--------|-------------|
|
|
181
|
+
| `Arg` | Argument name (backtick-wrapped) |
|
|
182
|
+
| `Required` | `Yes` or `No` |
|
|
183
|
+
| `Description` | What this argument does |
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### `<example>`
|
|
188
|
+
|
|
189
|
+
**Purpose:** Show how to use the command with expected output.
|
|
190
|
+
|
|
191
|
+
**Required:** Recommended for all commands.
|
|
192
|
+
|
|
193
|
+
**Content:** Command invocation followed by commented output.
|
|
194
|
+
|
|
195
|
+
**Example:**
|
|
196
|
+
```xml
|
|
197
|
+
<example>
|
|
198
|
+
.pennyfarthing/scripts/sprint/check-story.sh MSSCI-12038
|
|
199
|
+
# Returns: {"type": "story", "available": true, "title": "...", ...}
|
|
200
|
+
</example>
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**Guidelines:**
|
|
204
|
+
- Show realistic values
|
|
205
|
+
- Include the expected return format
|
|
206
|
+
- Multiple examples are fine
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
### `<output>`
|
|
211
|
+
|
|
212
|
+
**Purpose:** Describe what the command returns and how to interpret it.
|
|
213
|
+
|
|
214
|
+
**Required:** Yes, for every command.
|
|
215
|
+
|
|
216
|
+
**Content:** Description of output format, fields, and interpretation.
|
|
217
|
+
|
|
218
|
+
**Example:**
|
|
219
|
+
```xml
|
|
220
|
+
<output>
|
|
221
|
+
Sprint metadata, stories by status (grouped under epic headers), points breakdown.
|
|
222
|
+
When filtered, only shows epics with matching stories.
|
|
223
|
+
</output>
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
### `<when>`
|
|
229
|
+
|
|
230
|
+
**Purpose:** Document when to use this command and what to do next.
|
|
231
|
+
|
|
232
|
+
**Required:** If there are specific conditions or next steps.
|
|
233
|
+
|
|
234
|
+
**Content:** Conditions that trigger this command, or follow-up actions.
|
|
235
|
+
|
|
236
|
+
**Example:**
|
|
237
|
+
```xml
|
|
238
|
+
<when>
|
|
239
|
+
- Starting new development work
|
|
240
|
+
- `/new-work` is an alias for this command
|
|
241
|
+
Next steps after promote:
|
|
242
|
+
- Review appended YAML in current-sprint.yaml
|
|
243
|
+
- Create Jira epic: `/jira create epic <epic-id>`
|
|
244
|
+
</when>
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
### `<agent-activation>`
|
|
250
|
+
|
|
251
|
+
**Purpose:** Command to load an agent persona before using skill commands.
|
|
252
|
+
|
|
253
|
+
**Required:** Only if skill requires agent activation.
|
|
254
|
+
|
|
255
|
+
**Content:** The shell command to activate the agent.
|
|
256
|
+
|
|
257
|
+
**Example:**
|
|
258
|
+
```xml
|
|
259
|
+
<agent-activation>
|
|
260
|
+
Load SM persona first:
|
|
261
|
+
```bash
|
|
262
|
+
d="$PWD"; while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done; "$d/.pennyfarthing/scripts/core/agent-session.sh" start "sm"
|
|
263
|
+
```
|
|
264
|
+
</agent-activation>
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Complete Example
|
|
270
|
+
|
|
271
|
+
Here's a well-structured skill file following the schema:
|
|
272
|
+
|
|
273
|
+
```markdown
|
|
274
|
+
---
|
|
275
|
+
name: story
|
|
276
|
+
description: |
|
|
277
|
+
Story creation, sizing, and completion workflow. Use when creating new stories,
|
|
278
|
+
estimating points, or finishing completed work.
|
|
279
|
+
args: "[create|size|finish]"
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
# /story - Story Management
|
|
283
|
+
|
|
284
|
+
<critical>
|
|
285
|
+
All story operations require SM agent activation.
|
|
286
|
+
**Never** create stories outside of sprint context.
|
|
287
|
+
</critical>
|
|
288
|
+
|
|
289
|
+
## Commands
|
|
290
|
+
|
|
291
|
+
### `/story create <title>`
|
|
292
|
+
|
|
293
|
+
Create a new story in the current epic.
|
|
294
|
+
|
|
295
|
+
<run>
|
|
296
|
+
.pennyfarthing/scripts/story/create-story.sh "<title>"
|
|
297
|
+
</run>
|
|
298
|
+
|
|
299
|
+
<args>
|
|
300
|
+
| Arg | Required | Description |
|
|
301
|
+
|-----|----------|-------------|
|
|
302
|
+
| `title` | Yes | Story title (quoted if contains spaces) |
|
|
303
|
+
</args>
|
|
304
|
+
|
|
305
|
+
<example>
|
|
306
|
+
.pennyfarthing/scripts/story/create-story.sh "Add user authentication"
|
|
307
|
+
# Returns: {"id": "36-5", "title": "Add user authentication", "status": "backlog"}
|
|
308
|
+
</example>
|
|
309
|
+
|
|
310
|
+
<output>
|
|
311
|
+
JSON with new story ID, title, and initial status.
|
|
312
|
+
Story is created in backlog status within the active epic.
|
|
313
|
+
</output>
|
|
314
|
+
|
|
315
|
+
<when>
|
|
316
|
+
After creating, use `/story size <id>` to estimate points.
|
|
317
|
+
</when>
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
### `/story finish <story-id>`
|
|
322
|
+
|
|
323
|
+
Complete a story after PR merge.
|
|
324
|
+
|
|
325
|
+
<run>
|
|
326
|
+
.pennyfarthing/scripts/story/finish-story.sh <story-id>
|
|
327
|
+
</run>
|
|
328
|
+
|
|
329
|
+
<args>
|
|
330
|
+
| Arg | Required | Description |
|
|
331
|
+
|-----|----------|-------------|
|
|
332
|
+
| `story-id` | Yes | Story to finish (e.g., `36-5`) |
|
|
333
|
+
</args>
|
|
334
|
+
|
|
335
|
+
<example>
|
|
336
|
+
.pennyfarthing/scripts/story/finish-story.sh 36-5
|
|
337
|
+
# Archives story, updates Jira, cleans session files
|
|
338
|
+
</example>
|
|
339
|
+
|
|
340
|
+
<output>
|
|
341
|
+
Confirmation of archive location and cleanup actions.
|
|
342
|
+
</output>
|
|
343
|
+
|
|
344
|
+
<when>
|
|
345
|
+
Use after PR is merged and story work is complete.
|
|
346
|
+
</when>
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## Agent Activation
|
|
351
|
+
|
|
352
|
+
<agent-activation>
|
|
353
|
+
Load SM persona first:
|
|
354
|
+
```bash
|
|
355
|
+
d="$PWD"; while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done; "$d/.pennyfarthing/scripts/core/agent-session.sh" start "sm"
|
|
356
|
+
```
|
|
357
|
+
</agent-activation>
|
|
358
|
+
|
|
359
|
+
## Quick Reference
|
|
360
|
+
|
|
361
|
+
| Command | Script |
|
|
362
|
+
|---------|--------|
|
|
363
|
+
| `/story create <title>` | `create-story.sh` |
|
|
364
|
+
| `/story size <id>` | `size-story.sh` |
|
|
365
|
+
| `/story finish <id>` | `finish-story.sh` |
|
|
366
|
+
|
|
367
|
+
## Related Skills
|
|
368
|
+
|
|
369
|
+
| Skill | Purpose |
|
|
370
|
+
|-------|---------|
|
|
371
|
+
| `/sprint` | Sprint management |
|
|
372
|
+
| `/jira` | Jira operations |
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## Tag Summary
|
|
378
|
+
|
|
379
|
+
| Tag | Purpose | Required |
|
|
380
|
+
|-----|---------|----------|
|
|
381
|
+
| `<critical>` | Non-negotiable rules | If applicable |
|
|
382
|
+
| `<run>` | Command to execute | Yes, per command |
|
|
383
|
+
| `<args>` | Argument table | If command takes args |
|
|
384
|
+
| `<example>` | Usage with output | Recommended |
|
|
385
|
+
| `<output>` | Return value description | Yes, per command |
|
|
386
|
+
| `<when>` | Conditions/next steps | If applicable |
|
|
387
|
+
| `<agent-activation>` | Agent loading | If skill requires agent |
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## Migration Checklist
|
|
392
|
+
|
|
393
|
+
When updating existing skill files:
|
|
394
|
+
|
|
395
|
+
- [ ] Add YAML frontmatter if missing
|
|
396
|
+
- [ ] Wrap critical rules in `<critical>` tags
|
|
397
|
+
- [ ] Add `<run>` for each command
|
|
398
|
+
- [ ] Add `<args>` table for commands with arguments
|
|
399
|
+
- [ ] Add `<example>` with realistic values
|
|
400
|
+
- [ ] Add `<output>` describing return format
|
|
401
|
+
- [ ] Add `<when>` for conditional commands
|
|
402
|
+
- [ ] Add `<agent-activation>` if agent is required
|
|
403
|
+
|
|
404
|
+
---
|
|
405
|
+
|
|
406
|
+
## Related Files
|
|
407
|
+
|
|
408
|
+
| File | Purpose |
|
|
409
|
+
|------|---------|
|
|
410
|
+
| `guides/xml-tags.md` | Complete XML tag taxonomy |
|
|
411
|
+
| `skills/sprint/SKILL.md` | Reference implementation |
|
|
412
|
+
| `skill-registry.yaml` | Skill registration |
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# Workflow Definition Schema
|
|
2
|
+
|
|
3
|
+
This guide defines the YAML schema for custom workflows in Pennyfarthing.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Workflows define agent sequences for different work types. Instead of the hardcoded TDD flow (SM → TEA → Dev → Reviewer), you can create custom flows for documentation, debugging, devops, and more.
|
|
8
|
+
|
|
9
|
+
## File Location
|
|
10
|
+
|
|
11
|
+
Workflows are defined in `.claude/workflows/*.yaml`
|
|
12
|
+
|
|
13
|
+
## Schema
|
|
14
|
+
|
|
15
|
+
```yaml
|
|
16
|
+
workflow:
|
|
17
|
+
name: string # Required: unique identifier
|
|
18
|
+
description: string # Optional: human-readable purpose
|
|
19
|
+
version: string # Optional: semver for tracking changes
|
|
20
|
+
|
|
21
|
+
phases: # Required: at least one phase
|
|
22
|
+
- name: string # Required: phase identifier
|
|
23
|
+
agent: string # Required: agent to invoke (sm, tea, dev, reviewer, etc.)
|
|
24
|
+
input: string[] # Optional: what this phase receives
|
|
25
|
+
output: string[] # Optional: what this phase produces
|
|
26
|
+
gate: # Optional: conditions to proceed
|
|
27
|
+
type: string # Required if gate present: approval, tests_pass, tests_fail, manual
|
|
28
|
+
condition: string # Optional: additional condition description
|
|
29
|
+
|
|
30
|
+
triggers: # Optional: when to use this workflow
|
|
31
|
+
tags: string[] # Optional: story tags that match
|
|
32
|
+
types: string[] # Optional: story types (feature, bug, chore, docs)
|
|
33
|
+
points: # Optional: point-based routing
|
|
34
|
+
min: number # Optional: minimum points
|
|
35
|
+
max: number # Optional: maximum points
|
|
36
|
+
default: boolean # Optional: use as fallback workflow
|
|
37
|
+
|
|
38
|
+
permissions: # Optional: required permissions for this workflow
|
|
39
|
+
- tool: string # Required: tool name (Bash, Read, WebFetch, etc.)
|
|
40
|
+
scope: string # Required: scope pattern (e.g., "npm test", "*.github.com")
|
|
41
|
+
reason: string # Required: human-readable reason for the permission
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Required Fields
|
|
45
|
+
|
|
46
|
+
| Field | Description |
|
|
47
|
+
|-------|-------------|
|
|
48
|
+
| `workflow.name` | Unique identifier for the workflow |
|
|
49
|
+
| `workflow.phases` | Array with at least one phase |
|
|
50
|
+
| `phases[].name` | Identifier for the phase |
|
|
51
|
+
| `phases[].agent` | Agent to invoke (sm, tea, dev, reviewer, architect, pm, tech-writer, ux-designer, devops) |
|
|
52
|
+
|
|
53
|
+
## Optional Fields
|
|
54
|
+
|
|
55
|
+
| Field | Description |
|
|
56
|
+
|-------|-------------|
|
|
57
|
+
| `workflow.description` | Human-readable purpose |
|
|
58
|
+
| `workflow.version` | Semver version string |
|
|
59
|
+
| `phases[].input` | Array of inputs from previous phases |
|
|
60
|
+
| `phases[].output` | Array of outputs for next phases |
|
|
61
|
+
| `phases[].gate` | Conditions to proceed to next phase |
|
|
62
|
+
| `workflow.triggers` | Rules for automatic workflow selection |
|
|
63
|
+
| `workflow.permissions` | Array of permission presets required by the workflow |
|
|
64
|
+
|
|
65
|
+
## Gate Types
|
|
66
|
+
|
|
67
|
+
| Type | Description |
|
|
68
|
+
|------|-------------|
|
|
69
|
+
| `tests_pass` | All tests must pass |
|
|
70
|
+
| `tests_fail` | Tests must be failing (RED phase) |
|
|
71
|
+
| `approval` | Requires reviewer approval |
|
|
72
|
+
| `manual` | Manual confirmation required |
|
|
73
|
+
|
|
74
|
+
## Permission Presets
|
|
75
|
+
|
|
76
|
+
Workflows can declare required permissions that are checked at workflow start. If any permissions are missing, the user is prompted to grant them before proceeding.
|
|
77
|
+
|
|
78
|
+
### Permission Fields
|
|
79
|
+
|
|
80
|
+
| Field | Required | Description |
|
|
81
|
+
|-------|----------|-------------|
|
|
82
|
+
| `tool` | Yes | Tool name: `Bash`, `Read`, `Write`, `Edit`, `WebFetch`, `WebSearch`, `Glob`, `Grep`, `Task` |
|
|
83
|
+
| `scope` | Yes | Scope pattern for the permission (e.g., `"npm test"`, `"*.github.com"`, `"src/**/*"`) |
|
|
84
|
+
| `reason` | Yes | Human-readable explanation shown when prompting user |
|
|
85
|
+
|
|
86
|
+
### Permission Checking
|
|
87
|
+
|
|
88
|
+
On workflow start:
|
|
89
|
+
1. System reads workflow's `permissions` array
|
|
90
|
+
2. Compares against cached grants in `.claude/settings.local.json`
|
|
91
|
+
3. For each missing permission, prompts user with the `reason`
|
|
92
|
+
4. Granted permissions are cached for the session
|
|
93
|
+
|
|
94
|
+
### Example: TDD Workflow with Permissions
|
|
95
|
+
|
|
96
|
+
```yaml
|
|
97
|
+
workflow:
|
|
98
|
+
name: tdd-with-permissions
|
|
99
|
+
description: TDD workflow with pre-declared permissions
|
|
100
|
+
version: "1.0.0"
|
|
101
|
+
|
|
102
|
+
permissions:
|
|
103
|
+
- tool: Bash
|
|
104
|
+
scope: "npm test|npm run build"
|
|
105
|
+
reason: "TDD workflow requires running tests and builds"
|
|
106
|
+
- tool: Read
|
|
107
|
+
scope: "src/**/*"
|
|
108
|
+
reason: "Need to read source files for implementation"
|
|
109
|
+
|
|
110
|
+
phases:
|
|
111
|
+
- name: setup
|
|
112
|
+
agent: sm
|
|
113
|
+
- name: red
|
|
114
|
+
agent: tea
|
|
115
|
+
gate:
|
|
116
|
+
type: tests_fail
|
|
117
|
+
- name: green
|
|
118
|
+
agent: dev
|
|
119
|
+
gate:
|
|
120
|
+
type: tests_pass
|
|
121
|
+
- name: review
|
|
122
|
+
agent: reviewer
|
|
123
|
+
gate:
|
|
124
|
+
type: approval
|
|
125
|
+
- name: finish
|
|
126
|
+
agent: sm
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Examples
|
|
130
|
+
|
|
131
|
+
### TDD Workflow
|
|
132
|
+
|
|
133
|
+
The standard test-driven development flow:
|
|
134
|
+
|
|
135
|
+
```yaml
|
|
136
|
+
workflow:
|
|
137
|
+
name: tdd
|
|
138
|
+
description: Test-driven development with code review
|
|
139
|
+
version: "1.0.0"
|
|
140
|
+
|
|
141
|
+
phases:
|
|
142
|
+
- name: setup
|
|
143
|
+
agent: sm
|
|
144
|
+
output: [session_file, branches]
|
|
145
|
+
|
|
146
|
+
- name: red
|
|
147
|
+
agent: tea
|
|
148
|
+
input: [session_file]
|
|
149
|
+
output: [failing_tests]
|
|
150
|
+
gate:
|
|
151
|
+
type: tests_fail
|
|
152
|
+
|
|
153
|
+
- name: green
|
|
154
|
+
agent: dev
|
|
155
|
+
input: [failing_tests]
|
|
156
|
+
output: [implementation, passing_tests]
|
|
157
|
+
gate:
|
|
158
|
+
type: tests_pass
|
|
159
|
+
|
|
160
|
+
- name: review
|
|
161
|
+
agent: reviewer
|
|
162
|
+
input: [implementation]
|
|
163
|
+
output: [approval]
|
|
164
|
+
gate:
|
|
165
|
+
type: approval
|
|
166
|
+
|
|
167
|
+
- name: finish
|
|
168
|
+
agent: sm
|
|
169
|
+
input: [approval]
|
|
170
|
+
output: [archived_session]
|
|
171
|
+
|
|
172
|
+
triggers:
|
|
173
|
+
types: [feature]
|
|
174
|
+
default: true
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Trivial Workflow
|
|
178
|
+
|
|
179
|
+
For small fixes that skip TEA:
|
|
180
|
+
|
|
181
|
+
```yaml
|
|
182
|
+
workflow:
|
|
183
|
+
name: trivial
|
|
184
|
+
description: Quick fixes without full TDD ceremony
|
|
185
|
+
version: "1.0.0"
|
|
186
|
+
|
|
187
|
+
phases:
|
|
188
|
+
- name: setup
|
|
189
|
+
agent: sm
|
|
190
|
+
- name: implement
|
|
191
|
+
agent: dev
|
|
192
|
+
gate:
|
|
193
|
+
type: tests_pass
|
|
194
|
+
- name: review
|
|
195
|
+
agent: reviewer
|
|
196
|
+
gate:
|
|
197
|
+
type: approval
|
|
198
|
+
- name: finish
|
|
199
|
+
agent: sm
|
|
200
|
+
|
|
201
|
+
triggers:
|
|
202
|
+
types: [chore, fix]
|
|
203
|
+
points:
|
|
204
|
+
max: 2
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Documentation Workflow
|
|
208
|
+
|
|
209
|
+
For docs-only work:
|
|
210
|
+
|
|
211
|
+
```yaml
|
|
212
|
+
workflow:
|
|
213
|
+
name: docs
|
|
214
|
+
description: Documentation updates
|
|
215
|
+
version: "1.0.0"
|
|
216
|
+
|
|
217
|
+
phases:
|
|
218
|
+
- name: setup
|
|
219
|
+
agent: sm
|
|
220
|
+
- name: write
|
|
221
|
+
agent: tech-writer
|
|
222
|
+
output: [documentation]
|
|
223
|
+
- name: review
|
|
224
|
+
agent: reviewer
|
|
225
|
+
gate:
|
|
226
|
+
type: approval
|
|
227
|
+
- name: finish
|
|
228
|
+
agent: sm
|
|
229
|
+
|
|
230
|
+
triggers:
|
|
231
|
+
types: [docs]
|
|
232
|
+
tags: [documentation]
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Trigger Priority
|
|
236
|
+
|
|
237
|
+
When multiple workflows match a story, the routing engine uses this priority:
|
|
238
|
+
|
|
239
|
+
1. Explicit `workflow:` tag on story
|
|
240
|
+
2. Most specific trigger match (tags > types > points)
|
|
241
|
+
3. `default: true` workflow as fallback
|
|
242
|
+
|
|
243
|
+
## Validation
|
|
244
|
+
|
|
245
|
+
Workflows are validated at load time. Invalid workflows will report errors with field paths:
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
Error: workflow.phases[1].agent is required
|
|
249
|
+
Error: workflow.triggers.points min (10) cannot be greater than max (5)
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Related
|
|
253
|
+
|
|
254
|
+
- Story 31-2: Workflow loader and validator
|
|
255
|
+
- Story 31-3: Story-to-workflow routing engine
|
|
256
|
+
- Story 31-5: /workflow skill for listing and switching
|
|
257
|
+
- Story MSSCI-11710: Permission presets by workflow
|