@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,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: testing
|
|
3
|
+
description: Test commands and patterns for TDD workflow. This skill should be used when running tests, debugging test failures, setting up test infrastructure, or writing new tests. Provides framework-agnostic patterns that projects customize.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Testing Skill
|
|
7
|
+
|
|
8
|
+
<run>
|
|
9
|
+
Main test commands for running the test suite:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
just test # If using just
|
|
13
|
+
npm test # If using npm
|
|
14
|
+
go test ./... # If using Go directly
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
These commands execute the full test suite and are the primary entry point for validating code changes.
|
|
18
|
+
</run>
|
|
19
|
+
|
|
20
|
+
<output>
|
|
21
|
+
Test output varies by framework:
|
|
22
|
+
|
|
23
|
+
- **Go tests:** Display pass/fail status for each test, summary of tests run, coverage reports (if enabled), and PASS/FAIL result code
|
|
24
|
+
- **Node/npm tests (Vitest/Jest):** Shows test file results, individual test names, execution time, coverage percentages (if enabled), and pass/fail summary
|
|
25
|
+
- **Just:** Delegates to underlying test runner, output depends on what test command is configured
|
|
26
|
+
|
|
27
|
+
Output includes execution time and a final summary line indicating total tests passed/failed.
|
|
28
|
+
</output>
|
|
29
|
+
|
|
30
|
+
## When to Use This Skill
|
|
31
|
+
|
|
32
|
+
- Running tests (backend, frontend, or all)
|
|
33
|
+
- Debugging test failures
|
|
34
|
+
- Setting up test containers/infrastructure
|
|
35
|
+
- Writing new tests
|
|
36
|
+
- Pre-commit verification
|
|
37
|
+
- Understanding TDD workflow
|
|
38
|
+
|
|
39
|
+
## TDD Workflow (RED → GREEN → REFACTOR)
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
1. TEA writes failing tests (RED)
|
|
43
|
+
2. Dev implements code to pass tests (GREEN)
|
|
44
|
+
3. Dev refactors while keeping tests GREEN
|
|
45
|
+
4. Reviewer validates quality
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Quick Reference
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Setup test infrastructure (run once per session)
|
|
52
|
+
# Project-specific: check your justfile or package.json
|
|
53
|
+
|
|
54
|
+
# Run all tests
|
|
55
|
+
just test # If using just
|
|
56
|
+
npm test # If using npm
|
|
57
|
+
go test ./... # If using Go directly
|
|
58
|
+
|
|
59
|
+
# Run specific test patterns
|
|
60
|
+
just test-api -run "TestName" # Go pattern
|
|
61
|
+
npm test -- -t "test name" # Jest/Vitest pattern
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Test Command Patterns
|
|
65
|
+
|
|
66
|
+
### Go (Backend)
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Run all tests
|
|
70
|
+
go test ./...
|
|
71
|
+
|
|
72
|
+
# Run tests in specific package
|
|
73
|
+
go test ./internal/handlers
|
|
74
|
+
|
|
75
|
+
# Run tests matching pattern
|
|
76
|
+
go test -run "TestCreate" ./...
|
|
77
|
+
|
|
78
|
+
# Verbose output
|
|
79
|
+
go test -v ./internal/handlers
|
|
80
|
+
|
|
81
|
+
# With coverage
|
|
82
|
+
go test -cover ./...
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Node/React (Frontend)
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Run all tests (Vitest)
|
|
89
|
+
npm test
|
|
90
|
+
|
|
91
|
+
# Run tests matching pattern
|
|
92
|
+
npm test -- -t "button"
|
|
93
|
+
|
|
94
|
+
# Watch mode
|
|
95
|
+
npm test -- --watch
|
|
96
|
+
|
|
97
|
+
# Coverage
|
|
98
|
+
npm test -- --coverage
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Test File Naming Conventions
|
|
102
|
+
|
|
103
|
+
| Type | Go Pattern | TypeScript Pattern |
|
|
104
|
+
|------|------------|-------------------|
|
|
105
|
+
| Unit test | `*_test.go` | `*.test.ts`, `*.test.tsx` |
|
|
106
|
+
| Integration | `*_integration_test.go` | `*.integration.test.ts` |
|
|
107
|
+
| E2E | N/A | `*.e2e.test.ts` |
|
|
108
|
+
|
|
109
|
+
## Reference Documentation
|
|
110
|
+
|
|
111
|
+
- **Troubleshooting:** See `references/troubleshooting.md`
|
|
112
|
+
- **TDD Policy:** See `references/tdd-policy.md` (project-specific)
|
|
113
|
+
- **Backend Patterns:** See `references/backend-patterns.md` (project-specific)
|
|
114
|
+
- **Frontend Patterns:** See `references/frontend-patterns.md` (project-specific)
|
|
115
|
+
|
|
116
|
+
## Project Customization
|
|
117
|
+
|
|
118
|
+
Projects should create their own testing skill in `.claude/project/skills/testing/` with:
|
|
119
|
+
- Project-specific test commands
|
|
120
|
+
- Custom patterns and conventions
|
|
121
|
+
- Infrastructure setup instructions
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Test Troubleshooting Guide
|
|
2
|
+
|
|
3
|
+
## Tests Timing Out
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# Ensure test infrastructure is running
|
|
7
|
+
just test-setup # Or project-specific setup command
|
|
8
|
+
|
|
9
|
+
# Check container status
|
|
10
|
+
docker ps
|
|
11
|
+
|
|
12
|
+
# Increase timeout if needed
|
|
13
|
+
go test -timeout 60s ./...
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## "No Tests to Run" Message
|
|
17
|
+
|
|
18
|
+
### Go Tests
|
|
19
|
+
|
|
20
|
+
The `-run` flag filters by **test function name**, not by file or domain:
|
|
21
|
+
- `-run "User"` matches `TestUserCreate` but NOT `TestCreateAccount`
|
|
22
|
+
- The pattern is a regex, case-sensitive
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Run ALL tests in a package (no name filter)
|
|
26
|
+
go test ./internal/handlers/...
|
|
27
|
+
|
|
28
|
+
# Run tests with "Create" in name in specific package
|
|
29
|
+
go test -run "Create" ./internal/handlers
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### JavaScript/TypeScript Tests
|
|
33
|
+
|
|
34
|
+
The `-t` flag filters by test description:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Run tests matching description
|
|
38
|
+
npm test -- -t "should create user"
|
|
39
|
+
|
|
40
|
+
# Run all tests in a file
|
|
41
|
+
npm test -- path/to/file.test.ts
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Case Sensitivity
|
|
45
|
+
|
|
46
|
+
### Go
|
|
47
|
+
- `-run "User"` - Correct (matches TestUser...)
|
|
48
|
+
- `-run "user"` - Won't match (Go regex is case-sensitive)
|
|
49
|
+
|
|
50
|
+
### Jest/Vitest
|
|
51
|
+
- `-t "user"` - Case-insensitive by default
|
|
52
|
+
|
|
53
|
+
## Package/Path Format
|
|
54
|
+
|
|
55
|
+
### Go
|
|
56
|
+
```bash
|
|
57
|
+
./internal/handlers # Correct - relative with ./
|
|
58
|
+
internal/handlers # May not work without ./
|
|
59
|
+
./internal/handlers/... # Include subpackages
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Node
|
|
63
|
+
```bash
|
|
64
|
+
src/components # Relative path
|
|
65
|
+
./src/components # Also works
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Tests Passing Locally but Failing in CI
|
|
69
|
+
|
|
70
|
+
1. **Environment differences** - Check env vars
|
|
71
|
+
2. **Race conditions** - Run tests multiple times locally
|
|
72
|
+
3. **Database state** - Ensure clean state between tests
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Run full test suite to catch integration issues
|
|
76
|
+
just test
|
|
77
|
+
|
|
78
|
+
# Run tests with race detection (Go)
|
|
79
|
+
go test -race ./...
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Container Issues
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Restart test containers
|
|
86
|
+
docker-compose -f docker-compose.test.yml down
|
|
87
|
+
docker-compose -f docker-compose.test.yml up -d
|
|
88
|
+
|
|
89
|
+
# Check container logs
|
|
90
|
+
docker logs <container-name>
|
|
91
|
+
|
|
92
|
+
# Verify connectivity
|
|
93
|
+
docker exec <container-name> pg_isready # Postgres
|
|
94
|
+
docker exec <container-name> redis-cli ping # Redis
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Database Connection Errors
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# Check environment variables
|
|
101
|
+
echo $TEST_DATABASE_URL
|
|
102
|
+
|
|
103
|
+
# Verify database is accepting connections
|
|
104
|
+
psql $TEST_DATABASE_URL -c "SELECT 1"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Common Patterns
|
|
108
|
+
|
|
109
|
+
### Flaky Tests
|
|
110
|
+
|
|
111
|
+
1. Check for timing dependencies
|
|
112
|
+
2. Look for shared state between tests
|
|
113
|
+
3. Ensure proper cleanup in teardown
|
|
114
|
+
4. Consider using test isolation
|
|
115
|
+
|
|
116
|
+
### Memory Issues
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Run with memory limit (Go)
|
|
120
|
+
go test -memprofile mem.out ./...
|
|
121
|
+
|
|
122
|
+
# Check for goroutine leaks
|
|
123
|
+
go test -race ./...
|
|
124
|
+
```
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: theme
|
|
3
|
+
description: Manage persona themes - list available themes, show current/specific theme details, and set active theme. Use when switching persona themes, viewing available characters, or checking which theme is currently active.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Theme Management Skill
|
|
7
|
+
|
|
8
|
+
<run>
|
|
9
|
+
To manage persona themes, use the following commands:
|
|
10
|
+
- `/list-themes` - List all available themes
|
|
11
|
+
- `/show-theme` - Show current theme or specific theme details
|
|
12
|
+
- `/set-theme <name>` - Set the active theme
|
|
13
|
+
- `/theme-maker` - Create a new custom theme interactively
|
|
14
|
+
</run>
|
|
15
|
+
|
|
16
|
+
<output>
|
|
17
|
+
Theme commands return theme names, descriptions, agent mappings, and confirmation of theme changes. Current theme is stored in `.pennyfarthing/config.local.yaml`.
|
|
18
|
+
</output>
|
|
19
|
+
|
|
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
|
+
## Quick Reference
|
|
25
|
+
|
|
26
|
+
| Action | Command |
|
|
27
|
+
|--------|---------|
|
|
28
|
+
| List all themes | `/list-themes` or see below |
|
|
29
|
+
| Show current theme | `/show-theme` |
|
|
30
|
+
| Show specific theme | `/show-theme <name>` |
|
|
31
|
+
| Set active theme | `/set-theme <name>` |
|
|
32
|
+
| Create new theme | `/theme-maker` (interactive) |
|
|
33
|
+
|
|
34
|
+
## List Available Themes
|
|
35
|
+
|
|
36
|
+
To see all available themes:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
ls pennyfarthing-dist/personas/themes/*.yaml | xargs -I{} basename {} .yaml | sort
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
To show the current theme:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
cat .pennyfarthing/config.local.yaml 2>/dev/null || echo "No theme configured"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Show Theme Details
|
|
49
|
+
|
|
50
|
+
To display a theme's agent mappings:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Show current theme
|
|
54
|
+
THEME=$(cat .pennyfarthing/config.local.yaml 2>/dev/null | grep "^theme:" | cut -d'"' -f2)
|
|
55
|
+
cat pennyfarthing-dist/personas/themes/${THEME}.yaml
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Or for a specific theme:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
cat pennyfarthing-dist/personas/themes/<theme-name>.yaml
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Set Active Theme
|
|
65
|
+
|
|
66
|
+
To change the active theme:
|
|
67
|
+
|
|
68
|
+
1. Verify theme exists:
|
|
69
|
+
```bash
|
|
70
|
+
ls pennyfarthing-dist/personas/themes/<name>.yaml
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
2. Read current config:
|
|
74
|
+
```bash
|
|
75
|
+
cat .pennyfarthing/config.local.yaml 2>/dev/null || echo "FILE_NOT_FOUND"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
3. Update `.pennyfarthing/config.local.yaml`:
|
|
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
|
+
```
|
|
85
|
+
|
|
86
|
+
4. Verify the write succeeded:
|
|
87
|
+
```bash
|
|
88
|
+
cat .pennyfarthing/config.local.yaml
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
5. Start a new agent session to use the new theme
|
|
92
|
+
|
|
93
|
+
## Theme File Locations
|
|
94
|
+
|
|
95
|
+
| Location | Purpose |
|
|
96
|
+
|----------|---------|
|
|
97
|
+
| `pennyfarthing-dist/personas/themes/` | Built-in themes (96+) |
|
|
98
|
+
| `.claude/pennyfarthing/themes/` | User-created custom themes |
|
|
99
|
+
| `.pennyfarthing/config.local.yaml` | Theme selection (agent-writable, gitignored) |
|
|
100
|
+
|
|
101
|
+
## Theme Structure
|
|
102
|
+
|
|
103
|
+
Each theme YAML defines agents with:
|
|
104
|
+
|
|
105
|
+
```yaml
|
|
106
|
+
theme:
|
|
107
|
+
name: theme-name
|
|
108
|
+
description: Brief description
|
|
109
|
+
|
|
110
|
+
agents:
|
|
111
|
+
sm:
|
|
112
|
+
character: Character Name
|
|
113
|
+
style: Communication style description
|
|
114
|
+
quote: Signature quote
|
|
115
|
+
trait: Key personality trait
|
|
116
|
+
helper: Helper/assistant description
|
|
117
|
+
tea:
|
|
118
|
+
# ...same structure...
|
|
119
|
+
dev:
|
|
120
|
+
# ...
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Creating Custom Themes
|
|
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.
|
|
140
|
+
|
|
141
|
+
Run the list command to see all 96+ available themes.
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: theme-creation
|
|
3
|
+
description: Create custom persona themes for Pennyfarthing. Use when users want to create, generate, or customize agent personas/themes, especially with AI-driven generation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Theme Creation Skill
|
|
7
|
+
|
|
8
|
+
<run>/theme-maker</run>
|
|
9
|
+
|
|
10
|
+
<output>Interactive wizard that guides users through AI-driven, Guided, or Manual theme creation modes to build custom persona themes for Pennyfarthing agents</output>
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
This skill covers creating custom persona themes for Pennyfarthing agents. Themes define how each agent (SM, TEA, Dev, Reviewer, etc.) presents themselves with character names, styles, quotes, and personality traits.
|
|
15
|
+
|
|
16
|
+
## When to Use This Skill
|
|
17
|
+
|
|
18
|
+
**Invoke `/theme-maker` when the user:**
|
|
19
|
+
- Asks to "create a theme" or "make a theme"
|
|
20
|
+
- Wants "AI-driven theme generation"
|
|
21
|
+
- Says "generate personas" or "generate characters"
|
|
22
|
+
- Mentions a fictional universe and wants agents based on it
|
|
23
|
+
- Asks for "custom personas" or "themed agents"
|
|
24
|
+
- Wants to "customize agent characters"
|
|
25
|
+
- Mentions any fictional universe + "theme" (e.g., "Star Wars theme", "pirates theme")
|
|
26
|
+
|
|
27
|
+
**Trigger phrases:**
|
|
28
|
+
- "create a [X] theme"
|
|
29
|
+
- "make a theme based on [X]"
|
|
30
|
+
- "generate [X] personas"
|
|
31
|
+
- "I want [X] themed agents"
|
|
32
|
+
- "AI-driven theme generation"
|
|
33
|
+
- "custom theme for [universe]"
|
|
34
|
+
|
|
35
|
+
## Available Commands
|
|
36
|
+
|
|
37
|
+
| Command | Purpose |
|
|
38
|
+
|---------|---------|
|
|
39
|
+
| `/theme-maker` | Interactive wizard with AI-driven, Guided, or Manual modes |
|
|
40
|
+
| `/create-theme <name>` | Quick CLI-based theme creation (copies from base) |
|
|
41
|
+
| `/set-theme <name>` | Activate an existing theme |
|
|
42
|
+
| `/list-themes` | Show available themes |
|
|
43
|
+
| `/show-theme <name>` | Display theme details |
|
|
44
|
+
|
|
45
|
+
## Theme Creation Modes
|
|
46
|
+
|
|
47
|
+
### AI-Driven Mode (Recommended)
|
|
48
|
+
|
|
49
|
+
Best for: Users who describe a concept and want the AI to generate everything.
|
|
50
|
+
|
|
51
|
+
**Flow:**
|
|
52
|
+
1. User provides universe/concept (e.g., "Gilligan's Island, humorous")
|
|
53
|
+
2. AI generates all 10 agent personas automatically
|
|
54
|
+
3. User previews and confirms or regenerates
|
|
55
|
+
4. Theme file written to `.claude/pennyfarthing/themes/`
|
|
56
|
+
|
|
57
|
+
**What gets generated:**
|
|
58
|
+
- Character names fitting the universe
|
|
59
|
+
- OCEAN personality profiles (O/C/E/A/N scores 1-5)
|
|
60
|
+
- Communication styles
|
|
61
|
+
- Signature quotes
|
|
62
|
+
- Emojis and visual descriptions
|
|
63
|
+
- Helper assistants for each agent
|
|
64
|
+
|
|
65
|
+
### Guided Mode
|
|
66
|
+
|
|
67
|
+
Best for: Users who want to pick characters from suggestions.
|
|
68
|
+
|
|
69
|
+
**Flow:**
|
|
70
|
+
1. User provides universe/concept
|
|
71
|
+
2. AI suggests 3-4 character options per agent
|
|
72
|
+
3. User picks (or enters custom) for each
|
|
73
|
+
4. AI fills in remaining details (style, quote, OCEAN)
|
|
74
|
+
|
|
75
|
+
### Manual Mode
|
|
76
|
+
|
|
77
|
+
Best for: Users who know exactly what they want.
|
|
78
|
+
|
|
79
|
+
**Flow:**
|
|
80
|
+
1. User provides theme description
|
|
81
|
+
2. User enters character, style, quote for each agent
|
|
82
|
+
3. Optional: Specify OCEAN scores or let AI generate
|
|
83
|
+
4. Theme file created with user's exact specifications
|
|
84
|
+
|
|
85
|
+
## Agent Roles Reference
|
|
86
|
+
|
|
87
|
+
When generating or suggesting characters, match to these roles:
|
|
88
|
+
|
|
89
|
+
| Agent | Role | Character Should Be |
|
|
90
|
+
|-------|------|---------------------|
|
|
91
|
+
| orchestrator | Meta-coordinator | Pattern-seer, guide, overseer |
|
|
92
|
+
| sm | Scrum Master | Leader, coordinator, keeps team together |
|
|
93
|
+
| tea | Test Engineer | Analyst, detail-oriented, finds flaws |
|
|
94
|
+
| dev | Developer | Builder, practical, gets things done |
|
|
95
|
+
| reviewer | Code Reviewer | Critical, honest, high standards |
|
|
96
|
+
| architect | System Architect | Big-picture thinker, systems designer |
|
|
97
|
+
| pm | Product Manager | Strategic, stakeholder manager |
|
|
98
|
+
| tech-writer | Documentation | Clear communicator, precise |
|
|
99
|
+
| ux-designer | UX Design | User advocate, feels the experience |
|
|
100
|
+
| devops | Infrastructure | Reliable, keeps systems running |
|
|
101
|
+
|
|
102
|
+
## Theme File Location
|
|
103
|
+
|
|
104
|
+
- **User themes:** `.claude/pennyfarthing/themes/{name}.yaml`
|
|
105
|
+
- **Built-in themes:** `pennyfarthing-dist/personas/themes/`
|
|
106
|
+
|
|
107
|
+
## OCEAN Personality Profiles
|
|
108
|
+
|
|
109
|
+
Each agent gets an OCEAN profile (Big Five personality traits):
|
|
110
|
+
|
|
111
|
+
| Dimension | Low (1-2) | High (4-5) |
|
|
112
|
+
|-----------|-----------|------------|
|
|
113
|
+
| **O**penness | Traditional, practical | Creative, curious |
|
|
114
|
+
| **C**onscientiousness | Flexible, spontaneous | Organized, disciplined |
|
|
115
|
+
| **E**xtraversion | Reserved, reflective | Outgoing, energetic |
|
|
116
|
+
| **A**greeableness | Competitive, skeptical | Cooperative, trusting |
|
|
117
|
+
| **N**euroticism | Calm, stable | Emotional, reactive |
|
|
118
|
+
|
|
119
|
+
## Examples
|
|
120
|
+
|
|
121
|
+
### Example 1: AI-Driven Theme Creation
|
|
122
|
+
|
|
123
|
+
**User:** "Create a Gilligan's Island theme, make it humorous"
|
|
124
|
+
|
|
125
|
+
**Action:** Invoke `/theme-maker`, select AI-Driven mode, generate 10 agents based on the show's characters.
|
|
126
|
+
|
|
127
|
+
### Example 2: Quick Theme from Base
|
|
128
|
+
|
|
129
|
+
**User:** "Create a theme called my-team based on discworld"
|
|
130
|
+
|
|
131
|
+
**Action:** Run `/create-theme my-team --base discworld`
|
|
132
|
+
|
|
133
|
+
### Example 3: List and Switch Themes
|
|
134
|
+
|
|
135
|
+
**User:** "What themes are available? Switch to star-trek."
|
|
136
|
+
|
|
137
|
+
**Action:** Run `/list-themes`, then `/set-theme star-trek`
|
|
138
|
+
|
|
139
|
+
## Validation Rules for Theme Names
|
|
140
|
+
|
|
141
|
+
- Lowercase letters only
|
|
142
|
+
- Must start with a letter
|
|
143
|
+
- Hyphens allowed (no underscores or spaces)
|
|
144
|
+
- No conflicts with existing themes
|
|
145
|
+
|
|
146
|
+
## Portrait Generation
|
|
147
|
+
|
|
148
|
+
Each agent can have a `visual` field that describes their appearance for portrait generation.
|
|
149
|
+
|
|
150
|
+
**Generate all portraits for a theme:**
|
|
151
|
+
```bash
|
|
152
|
+
./scripts/generate-portraits.sh --theme {name}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Generate a single agent's portrait:**
|
|
156
|
+
```bash
|
|
157
|
+
./scripts/generate-portraits.sh --theme {name} --role {role}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Dry run (preview):**
|
|
161
|
+
```bash
|
|
162
|
+
./scripts/generate-portraits.sh --theme {name} --dry-run
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Requirements:**
|
|
166
|
+
- Python 3 venv at `.venv/` with: `pip install diffusers transformers accelerate torch pillow pyyaml tqdm`
|
|
167
|
+
- Apple Silicon Mac (MPS) or NVIDIA GPU (CUDA)
|
|
168
|
+
- ~6.5GB model download on first run
|
|
169
|
+
|
|
170
|
+
**Output:** `pennyfarthing-dist/personas/portraits/{theme}/{shortName}-{OCEAN}.png`
|
|
171
|
+
|
|
172
|
+
## Post-Creation Steps
|
|
173
|
+
|
|
174
|
+
After creating a theme:
|
|
175
|
+
1. Theme file at `.claude/pennyfarthing/themes/{name}.yaml`
|
|
176
|
+
2. Activate with `/set-theme {name}`
|
|
177
|
+
3. Generate portraits with `./scripts/generate-portraits.sh --theme {name}`
|
|
178
|
+
4. Edit YAML directly for fine-tuning
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# List all available workflows with type indicators
|
|
3
|
+
# Usage: .pennyfarthing/scripts/workflow/list-workflows.sh
|
|
4
|
+
# or: Invoked with PROJECT_ROOT already set
|
|
5
|
+
#
|
|
6
|
+
# MSSCI-12083: Added type, steps, and modes columns
|
|
7
|
+
|
|
8
|
+
set -euo pipefail
|
|
9
|
+
|
|
10
|
+
# PROJECT_ROOT should be set by find-root.sh, but find it if not
|
|
11
|
+
if [[ -z "${PROJECT_ROOT:-}" ]]; then
|
|
12
|
+
d="$PWD"
|
|
13
|
+
while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do
|
|
14
|
+
d="$(dirname "$d")"
|
|
15
|
+
done
|
|
16
|
+
PROJECT_ROOT="$d"
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
WORKFLOWS_DIR="$PROJECT_ROOT/.pennyfarthing/workflows"
|
|
20
|
+
|
|
21
|
+
if [[ ! -d "$WORKFLOWS_DIR" ]]; then
|
|
22
|
+
echo "Error: Workflows directory not found at $WORKFLOWS_DIR"
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
if ! command -v yq &> /dev/null; then
|
|
27
|
+
echo "Error: yq is required but not installed"
|
|
28
|
+
echo "Install with: brew install yq"
|
|
29
|
+
exit 1
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
echo "# Available Workflows"
|
|
33
|
+
echo ""
|
|
34
|
+
echo "| Workflow | Type | Default | Steps/Phases | Modes | Description |"
|
|
35
|
+
echo "|----------|------|---------|--------------|-------|-------------|"
|
|
36
|
+
|
|
37
|
+
for f in "$WORKFLOWS_DIR"/*.yaml; do
|
|
38
|
+
[[ -f "$f" ]] || continue
|
|
39
|
+
|
|
40
|
+
name=$(yq eval '.workflow.name' "$f")
|
|
41
|
+
desc=$(yq eval '.workflow.description' "$f" | head -1)
|
|
42
|
+
is_default=$(yq eval '.workflow.triggers.default // false' "$f")
|
|
43
|
+
|
|
44
|
+
# Detect workflow type (stepped vs phased)
|
|
45
|
+
# Stepped workflows have .workflow.type == "stepped" or .workflow.steps
|
|
46
|
+
workflow_type=$(yq eval '.workflow.type // "phased"' "$f")
|
|
47
|
+
has_steps=$(yq eval '.workflow.steps != null' "$f")
|
|
48
|
+
|
|
49
|
+
if [[ "$has_steps" == "true" ]] || [[ "$workflow_type" == "stepped" ]]; then
|
|
50
|
+
type_col="stepped"
|
|
51
|
+
# Count step files if steps.path is defined
|
|
52
|
+
steps_path=$(yq eval '.workflow.steps.path // ""' "$f")
|
|
53
|
+
steps_pattern=$(yq eval '.workflow.steps.pattern // "step-*.md"' "$f")
|
|
54
|
+
if [[ -n "$steps_path" ]] && [[ -d "$PROJECT_ROOT/$steps_path" ]]; then
|
|
55
|
+
step_count=$(find "$PROJECT_ROOT/$steps_path" -name "$steps_pattern" 2>/dev/null | wc -l | tr -d ' ')
|
|
56
|
+
steps_col="${step_count} steps"
|
|
57
|
+
else
|
|
58
|
+
steps_col="-"
|
|
59
|
+
fi
|
|
60
|
+
else
|
|
61
|
+
type_col="phased"
|
|
62
|
+
# Count phases for phased workflows
|
|
63
|
+
phase_count=$(yq eval '.workflow.phases | length' "$f")
|
|
64
|
+
steps_col="${phase_count} phases"
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
# Default column
|
|
68
|
+
if [[ "$is_default" == "true" ]]; then
|
|
69
|
+
default_col="yes"
|
|
70
|
+
else
|
|
71
|
+
default_col="no"
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
# Modes column (for tri-modal workflows)
|
|
75
|
+
modes=$(yq eval '.workflow.modes.available // []' "$f")
|
|
76
|
+
if [[ "$modes" != "[]" ]] && [[ "$modes" != "null" ]]; then
|
|
77
|
+
# Format as comma-separated list
|
|
78
|
+
modes_col=$(yq eval '.workflow.modes.available | join(",")' "$f")
|
|
79
|
+
else
|
|
80
|
+
modes_col="-"
|
|
81
|
+
fi
|
|
82
|
+
|
|
83
|
+
echo "| $name | $type_col | $default_col | $steps_col | $modes_col | $desc |"
|
|
84
|
+
done
|
|
85
|
+
|
|
86
|
+
echo ""
|
|
87
|
+
echo "**Legend:**"
|
|
88
|
+
echo "- **phased**: Agent-driven workflow (SM → TEA → Dev → Reviewer)"
|
|
89
|
+
echo "- **stepped**: Step-by-step guided workflow with progressive disclosure"
|
|
90
|
+
echo ""
|
|
91
|
+
echo "Use \`/workflow show <name>\` for workflow details."
|