@pennyfarthing/core 10.0.0 → 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/LICENSE +14 -0
- package/package.json +22 -12
- 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,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run quality gates (lint, type check, tests) before handoff
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<purpose>
|
|
6
|
+
Run all quality gates before handing off to Reviewer. Ensures code meets quality standards.
|
|
7
|
+
</purpose>
|
|
8
|
+
|
|
9
|
+
<when-to-use>
|
|
10
|
+
- Before creating a PR
|
|
11
|
+
- Before handoff to Reviewer
|
|
12
|
+
- After implementing a feature
|
|
13
|
+
- To verify codebase health
|
|
14
|
+
</when-to-use>
|
|
15
|
+
|
|
16
|
+
<execution>
|
|
17
|
+
|
|
18
|
+
## Running Quality Checks
|
|
19
|
+
|
|
20
|
+
Use the check.sh script:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Run all checks (lint, typecheck, tests)
|
|
24
|
+
$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh
|
|
25
|
+
|
|
26
|
+
# Run checks in a specific repo subdirectory
|
|
27
|
+
$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --repo api
|
|
28
|
+
$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --repo ui
|
|
29
|
+
|
|
30
|
+
# Run only tests (skip lint and typecheck)
|
|
31
|
+
$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --tests-only
|
|
32
|
+
|
|
33
|
+
# Run tests with a filter pattern
|
|
34
|
+
$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --filter "TestUserLogin"
|
|
35
|
+
|
|
36
|
+
# Run filtered tests in a specific repo
|
|
37
|
+
$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --repo api --filter "TestUserLogin"
|
|
38
|
+
|
|
39
|
+
# Run only filtered tests (no lint/typecheck)
|
|
40
|
+
$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --tests-only --filter "TestUserLogin"
|
|
41
|
+
|
|
42
|
+
# Skip individual checks
|
|
43
|
+
$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --no-lint
|
|
44
|
+
$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --no-typecheck
|
|
45
|
+
|
|
46
|
+
# Skip all checks (emergencies only)
|
|
47
|
+
$CLAUDE_PROJECT_DIR/.pennyfarthing/scripts/check.sh --skip-check
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Options
|
|
51
|
+
|
|
52
|
+
| Option | Description |
|
|
53
|
+
|--------|-------------|
|
|
54
|
+
| `--skip-check` | Skip all checks (emergency bypass) |
|
|
55
|
+
| `--tests-only` | Run only tests, skip lint and typecheck |
|
|
56
|
+
| `--filter PATTERN` | Filter tests by pattern |
|
|
57
|
+
| `--repo REPO` | Run checks in a specific repo subdirectory |
|
|
58
|
+
| `--no-lint` | Skip lint check |
|
|
59
|
+
| `--no-typecheck` | Skip type check |
|
|
60
|
+
|
|
61
|
+
## What Gets Checked
|
|
62
|
+
|
|
63
|
+
The script automatically detects project type and runs appropriate checks:
|
|
64
|
+
|
|
65
|
+
### For Node/TypeScript Projects:
|
|
66
|
+
| Check | Command | Condition |
|
|
67
|
+
|-------|---------|-----------|
|
|
68
|
+
| Lint | `just lint` or `npm run lint` | If configured |
|
|
69
|
+
| Type Check | `just typecheck` or `tsc --noEmit` | If tsconfig.json exists |
|
|
70
|
+
| Tests | `just test` or `npm test` | If configured |
|
|
71
|
+
|
|
72
|
+
### For Go Projects:
|
|
73
|
+
| Check | Command | Condition |
|
|
74
|
+
|-------|---------|-----------|
|
|
75
|
+
| Lint | `just lint` or `golangci-lint run` | If available |
|
|
76
|
+
| Tests | `just test` or `go test ./...` | Always |
|
|
77
|
+
|
|
78
|
+
### Justfile Preference
|
|
79
|
+
If both justfile and npm scripts exist, justfile recipes take priority.
|
|
80
|
+
|
|
81
|
+
</execution>
|
|
82
|
+
|
|
83
|
+
<output-format>
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
Quality Gate Check
|
|
87
|
+
==================
|
|
88
|
+
Project: /path/to/project
|
|
89
|
+
|
|
90
|
+
Lint
|
|
91
|
+
========================================
|
|
92
|
+
[PASS] Lint (npm run lint)
|
|
93
|
+
|
|
94
|
+
Type Check
|
|
95
|
+
========================================
|
|
96
|
+
[PASS] Type Check (tsc --noEmit)
|
|
97
|
+
|
|
98
|
+
Tests
|
|
99
|
+
========================================
|
|
100
|
+
[PASS] Tests (npm test)
|
|
101
|
+
|
|
102
|
+
Summary
|
|
103
|
+
========================================
|
|
104
|
+
|
|
105
|
+
Checks run: 3
|
|
106
|
+
Checks passed: 3
|
|
107
|
+
Checks failed: 0
|
|
108
|
+
|
|
109
|
+
PASSED - All checks passed
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Exit codes:
|
|
113
|
+
- `0` - All checks passed (or --skip-check used)
|
|
114
|
+
- `1` - One or more checks failed
|
|
115
|
+
|
|
116
|
+
</output-format>
|
|
117
|
+
|
|
118
|
+
<skip-check>
|
|
119
|
+
|
|
120
|
+
## Emergency Skip
|
|
121
|
+
|
|
122
|
+
Use `--skip-check` only in emergencies:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
./scripts/check.sh --skip-check
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
This will:
|
|
129
|
+
- Skip all quality checks
|
|
130
|
+
- Show a warning message
|
|
131
|
+
- Return exit code 0
|
|
132
|
+
|
|
133
|
+
**Use sparingly.** Skipped checks should pass before PR merge.
|
|
134
|
+
|
|
135
|
+
</skip-check>
|
|
136
|
+
|
|
137
|
+
<integration>
|
|
138
|
+
|
|
139
|
+
## dev-handoff Integration
|
|
140
|
+
|
|
141
|
+
The dev-handoff subagent runs `/check` automatically before handoff to Reviewer:
|
|
142
|
+
|
|
143
|
+
1. Dev completes implementation
|
|
144
|
+
2. dev-handoff runs `check.sh`
|
|
145
|
+
3. If checks fail: handoff is blocked
|
|
146
|
+
4. If checks pass: proceed to Reviewer
|
|
147
|
+
|
|
148
|
+
To bypass (emergencies): pass `--skip-check` to dev-handoff.
|
|
149
|
+
|
|
150
|
+
</integration>
|
|
151
|
+
|
|
152
|
+
<reference>
|
|
153
|
+
- **Script:** `pennyfarthing-dist/scripts/check.sh`
|
|
154
|
+
- **Called by:** dev-handoff subagent
|
|
155
|
+
- **Blocks:** Handoff to Reviewer on failure
|
|
156
|
+
</reference>
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Quick commit for small changes without full git-cleanup ceremony
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Quick Chore Commit
|
|
6
|
+
|
|
7
|
+
Quickly commit dirty changes without the full `/git-cleanup` ceremony. Checks **all repos** (orchestrator + subrepos), creates branches, commits, merges to develop, and pushes.
|
|
8
|
+
|
|
9
|
+
<purpose>
|
|
10
|
+
Fast path for committing small changes that don't warrant story tracking.
|
|
11
|
+
</purpose>
|
|
12
|
+
|
|
13
|
+
<usage>
|
|
14
|
+
```bash
|
|
15
|
+
# Default: chore commit (auto-generate message)
|
|
16
|
+
/chore
|
|
17
|
+
|
|
18
|
+
# Chore with custom message
|
|
19
|
+
/chore "update sprint tracking"
|
|
20
|
+
|
|
21
|
+
# Variants for different commit types
|
|
22
|
+
/chore doc # docs: prefix, docs/* branch
|
|
23
|
+
/chore doc "update README" # docs: with custom message
|
|
24
|
+
/chore ux # style: prefix, ux/* branch
|
|
25
|
+
/chore ux "adjust button spacing"
|
|
26
|
+
```
|
|
27
|
+
</usage>
|
|
28
|
+
|
|
29
|
+
<variants>
|
|
30
|
+
| Command | Branch | Commit Prefix | Use For |
|
|
31
|
+
|---------|--------|---------------|---------|
|
|
32
|
+
| `/chore` | `chore/*` | `chore:` | Maintenance, config, scripts |
|
|
33
|
+
| `/chore doc` | `docs/*` | `docs:` | Documentation, README, guides |
|
|
34
|
+
| `/chore ux` | `ux/*` | `style:` | UI tweaks, CSS, styling |
|
|
35
|
+
</variants>
|
|
36
|
+
|
|
37
|
+
<workflow>
|
|
38
|
+
**CRITICAL: Never commit directly to develop. Branch protection hooks will reject direct commits.**
|
|
39
|
+
|
|
40
|
+
**CRITICAL: Never use git stash.** The stash/pull/pop pattern can silently revert changes when upstream modifies the same files during the pull.
|
|
41
|
+
|
|
42
|
+
**CRITICAL: Always check ALL repos, not just the orchestrator.** Most changes are in subrepos (e.g., `pennyfarthing/`). Use `git -C {repo_path}` for subrepo operations.
|
|
43
|
+
|
|
44
|
+
1. Check ALL repos for dirty files (orchestrator + subrepos from `repos.yaml`)
|
|
45
|
+
2. Abort if all repos are clean
|
|
46
|
+
3. Determine variant (chore/doc/ux) from first arg
|
|
47
|
+
4. For EACH dirty repo, independently:
|
|
48
|
+
a. Create branch from current HEAD: `{variant}/{timestamp}`
|
|
49
|
+
b. Stage and commit all changes
|
|
50
|
+
c. Fetch origin and rebase onto latest develop
|
|
51
|
+
d. Switch to develop, merge the branch
|
|
52
|
+
e. Push develop
|
|
53
|
+
f. Delete local branch
|
|
54
|
+
</workflow>
|
|
55
|
+
|
|
56
|
+
## Execution
|
|
57
|
+
|
|
58
|
+
### Step 1: Multi-Repo Pre-Flight
|
|
59
|
+
|
|
60
|
+
**ALWAYS check all repos.** Read `repos.yaml` for repo paths.
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Check ALL repos for dirty changes
|
|
64
|
+
# Orchestrator root (.)
|
|
65
|
+
git status --short
|
|
66
|
+
|
|
67
|
+
# Subrepos (e.g., pennyfarthing/)
|
|
68
|
+
git -C pennyfarthing status --short 2>/dev/null
|
|
69
|
+
|
|
70
|
+
# Or use the multi-repo status script:
|
|
71
|
+
.pennyfarthing/scripts/git/git-status-all.sh --brief
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Collect which repos have changes. If ALL repos are clean, abort with "No changes to commit."
|
|
75
|
+
|
|
76
|
+
**Common case:** Only the subrepo (`pennyfarthing/`) has changes. The orchestrator is clean. This is normal — framework development happens in the subrepo.
|
|
77
|
+
|
|
78
|
+
### Step 2: Parse Arguments
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Defaults
|
|
82
|
+
VARIANT="chore"
|
|
83
|
+
PREFIX="chore"
|
|
84
|
+
BRANCH_TYPE="chore"
|
|
85
|
+
MESSAGE=""
|
|
86
|
+
|
|
87
|
+
# Check first arg
|
|
88
|
+
case "$1" in
|
|
89
|
+
doc|docs)
|
|
90
|
+
VARIANT="docs"
|
|
91
|
+
PREFIX="docs"
|
|
92
|
+
BRANCH_TYPE="docs"
|
|
93
|
+
shift
|
|
94
|
+
;;
|
|
95
|
+
ux|style)
|
|
96
|
+
VARIANT="ux"
|
|
97
|
+
PREFIX="style"
|
|
98
|
+
BRANCH_TYPE="ux"
|
|
99
|
+
shift
|
|
100
|
+
;;
|
|
101
|
+
esac
|
|
102
|
+
|
|
103
|
+
# Remaining args are the message
|
|
104
|
+
MESSAGE="$*"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Step 3: For Each Dirty Repo — Generate Message, Branch, Commit, Merge, Push
|
|
108
|
+
|
|
109
|
+
Repeat steps 3a–3d for each repo that has dirty changes. Use `git -C {repo_path}` for subrepo operations, or `cd` into the subrepo temporarily.
|
|
110
|
+
|
|
111
|
+
#### Step 3a: Generate Message (if user didn't provide one)
|
|
112
|
+
|
|
113
|
+
Generate a message based on the changed files **in that specific repo**.
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
if [ -z "$MESSAGE" ]; then
|
|
117
|
+
CHANGED_FILES=$(git -C {repo_path} status --porcelain | awk '{print $2}')
|
|
118
|
+
|
|
119
|
+
case "$VARIANT" in
|
|
120
|
+
docs)
|
|
121
|
+
if echo "$CHANGED_FILES" | grep -qi "readme"; then
|
|
122
|
+
MESSAGE="update README"
|
|
123
|
+
elif echo "$CHANGED_FILES" | grep -qi "changelog"; then
|
|
124
|
+
MESSAGE="update changelog"
|
|
125
|
+
else
|
|
126
|
+
MESSAGE="update documentation"
|
|
127
|
+
fi
|
|
128
|
+
;;
|
|
129
|
+
ux)
|
|
130
|
+
if echo "$CHANGED_FILES" | grep -qE "\.css|\.scss"; then
|
|
131
|
+
MESSAGE="update styles"
|
|
132
|
+
else
|
|
133
|
+
MESSAGE="update styling"
|
|
134
|
+
fi
|
|
135
|
+
;;
|
|
136
|
+
chore)
|
|
137
|
+
if echo "$CHANGED_FILES" | grep -q "sprint/"; then
|
|
138
|
+
MESSAGE="update sprint tracking"
|
|
139
|
+
elif echo "$CHANGED_FILES" | grep -q "\.claude/"; then
|
|
140
|
+
MESSAGE="update pennyfarthing config"
|
|
141
|
+
elif echo "$CHANGED_FILES" | grep -q "scripts/"; then
|
|
142
|
+
MESSAGE="update scripts"
|
|
143
|
+
else
|
|
144
|
+
FILE_COUNT=$(echo "$CHANGED_FILES" | wc -l | tr -d ' ')
|
|
145
|
+
MESSAGE="minor updates to ${FILE_COUNT} files"
|
|
146
|
+
fi
|
|
147
|
+
;;
|
|
148
|
+
esac
|
|
149
|
+
fi
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**For subrepos:** Also review the diff to generate a meaningful message. Prefer descriptive messages over generic ones (e.g., "migrate TTY panel to WebSocket" over "minor updates to 3 files").
|
|
153
|
+
|
|
154
|
+
#### Step 3b: Branch and Commit
|
|
155
|
+
|
|
156
|
+
**IMPORTANT: Do NOT use git stash.** Stash + pull + pop can silently revert changes when upstream modifies the same files.
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# For subrepos, cd into the repo first (or use git -C throughout)
|
|
160
|
+
cd {repo_path}
|
|
161
|
+
|
|
162
|
+
# Create branch from current HEAD (preserves dirty changes)
|
|
163
|
+
BRANCH="${BRANCH_TYPE}/$(date +%Y%m%d-%H%M%S)"
|
|
164
|
+
git checkout -b "$BRANCH"
|
|
165
|
+
|
|
166
|
+
# Stage and commit on the branch
|
|
167
|
+
git add .
|
|
168
|
+
git commit -m "${PREFIX}: ${MESSAGE}
|
|
169
|
+
|
|
170
|
+
Co-Authored-By: Claude <noreply@anthropic.com>"
|
|
171
|
+
|
|
172
|
+
# Now fetch and rebase onto latest develop
|
|
173
|
+
git fetch origin develop
|
|
174
|
+
git rebase origin/develop
|
|
175
|
+
|
|
176
|
+
# Switch to develop, fast-forward merge, and push
|
|
177
|
+
git checkout develop
|
|
178
|
+
git pull origin develop
|
|
179
|
+
git merge "$BRANCH"
|
|
180
|
+
git branch -d "$BRANCH"
|
|
181
|
+
git push origin develop
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
#### Step 3c: Return to orchestrator root
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
cd {orchestrator_root}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Step 4: Verify
|
|
191
|
+
|
|
192
|
+
After all repos are processed:
|
|
193
|
+
```bash
|
|
194
|
+
.pennyfarthing/scripts/git/git-status-all.sh --brief
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
All repos should show clean.
|
|
198
|
+
|
|
199
|
+
## Safety
|
|
200
|
+
|
|
201
|
+
- **NEVER commit directly to develop** (use branches)
|
|
202
|
+
- **Never force push**
|
|
203
|
+
- **Never commit secrets** (.env, credentials)
|
|
204
|
+
- **Abort if ALL repos are clean**
|
|
205
|
+
- **ALWAYS use `git -C {repo_path}` for subrepo operations**
|
|
206
|
+
|
|
207
|
+
## When to Use
|
|
208
|
+
|
|
209
|
+
| Use /chore | Use /git-cleanup |
|
|
210
|
+
|------------|------------------|
|
|
211
|
+
| Single logical change | Multiple unrelated changes |
|
|
212
|
+
| Quick fix or tweak | Need to organize into groups |
|
|
213
|
+
| One type of change | Mixed types requiring separation |
|
|
214
|
+
|
|
215
|
+
<related>
|
|
216
|
+
- `/git-cleanup` - Full ceremony for organizing multiple changes
|
|
217
|
+
- `/repo-status` - Check status across all repos
|
|
218
|
+
</related>
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Close an epic - verify completion, update status, and archive context
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Close Epic Workflow
|
|
6
|
+
|
|
7
|
+
**This command closes an epic by verifying all stories are done, updating status, and optionally archiving context.**
|
|
8
|
+
|
|
9
|
+
## What This Does
|
|
10
|
+
|
|
11
|
+
1. **Verifies** all stories in the epic are status: done
|
|
12
|
+
2. **Updates** epic status to `done` and completed_points
|
|
13
|
+
3. **Updates** sprint summary totals
|
|
14
|
+
4. **Optionally** transitions Jira epic to Done
|
|
15
|
+
5. **Optionally** archives the epic context file
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
- Epic must exist in current sprint
|
|
20
|
+
- All stories should be done (will warn if not)
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
Provide the epic ID when invoking this command:
|
|
25
|
+
- `/close-epic 9` - Close epic 9
|
|
26
|
+
- `/close-epic epic-9` - Also accepts epic-N format
|
|
27
|
+
|
|
28
|
+
## Workflow Steps
|
|
29
|
+
|
|
30
|
+
### Step 1: Identify Epic
|
|
31
|
+
|
|
32
|
+
If no epic ID provided, ask:
|
|
33
|
+
> "Which epic would you like to close? (e.g., 9 or epic-9)"
|
|
34
|
+
|
|
35
|
+
Parse the epic ID (strip "epic-" prefix if present).
|
|
36
|
+
|
|
37
|
+
### Step 2: Verify Epic Exists
|
|
38
|
+
|
|
39
|
+
Read `sprint/current-sprint.yaml` and find the epic block:
|
|
40
|
+
- `id: epic-{N}`
|
|
41
|
+
|
|
42
|
+
If not found, error: "Epic not found in current sprint"
|
|
43
|
+
|
|
44
|
+
### Step 3: Check Story Completion
|
|
45
|
+
|
|
46
|
+
For each story in the epic:
|
|
47
|
+
1. Check `status` field
|
|
48
|
+
2. Count done vs not-done
|
|
49
|
+
|
|
50
|
+
**If all done:** Proceed to close
|
|
51
|
+
**If some not done:** Warn user with list of incomplete stories, ask to confirm
|
|
52
|
+
|
|
53
|
+
### Step 4: Update Epic Status
|
|
54
|
+
|
|
55
|
+
Update the epic in `sprint/current-sprint.yaml`:
|
|
56
|
+
```yaml
|
|
57
|
+
status: done
|
|
58
|
+
completed_points: {total of all story points}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Step 5: Update Sprint Summary
|
|
62
|
+
|
|
63
|
+
Recalculate and update the summary section:
|
|
64
|
+
- `completed_points`: Sum of all done story points across all epics
|
|
65
|
+
- `remaining_points`: total_points - completed_points
|
|
66
|
+
- Update notes to reflect epic completion
|
|
67
|
+
|
|
68
|
+
### Step 6: Jira Transition (Optional)
|
|
69
|
+
|
|
70
|
+
If epic has `jira_key`, use `/jira move` skill:
|
|
71
|
+
```bash
|
|
72
|
+
# Check if Jira CLI available
|
|
73
|
+
if command -v jira &> /dev/null; then
|
|
74
|
+
echo "Transition Jira epic to Done? (y/n)"
|
|
75
|
+
# If yes, use /jira move skill:
|
|
76
|
+
# jira issue move $JIRA_KEY "Done" --project MSSCI
|
|
77
|
+
fi
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Note:** Always use `/jira` skill commands - see `.claude/skills/jira/skill.md` for syntax.
|
|
81
|
+
|
|
82
|
+
### Step 7: Archive Context (Optional)
|
|
83
|
+
|
|
84
|
+
If `.session/context-epic-{N}.md` exists:
|
|
85
|
+
```bash
|
|
86
|
+
# Ask user
|
|
87
|
+
echo "Archive epic context file? (y/n)"
|
|
88
|
+
# If yes: mv .session/context-epic-{N}.md sprint/archive/
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Step 8: Confirm Closure
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
Epic {N} closed successfully
|
|
95
|
+
|
|
96
|
+
Summary:
|
|
97
|
+
- Stories: {count} done
|
|
98
|
+
- Points: {points} completed
|
|
99
|
+
- Jira: {transitioned/skipped/no-key}
|
|
100
|
+
- Context: {archived/kept/not-found}
|
|
101
|
+
|
|
102
|
+
Sprint progress: {completed}/{total} points ({percentage}%)
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Example
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# User invokes: /close-epic 9
|
|
109
|
+
|
|
110
|
+
# Output:
|
|
111
|
+
# Checking epic-9...
|
|
112
|
+
# Found: Skill Discovery & Documentation Hub
|
|
113
|
+
# Stories: 5/5 done (13 points)
|
|
114
|
+
#
|
|
115
|
+
# Updating epic status to done...
|
|
116
|
+
# Updating sprint summary (31/45 points)...
|
|
117
|
+
#
|
|
118
|
+
# Jira key found: MSSCI-11512
|
|
119
|
+
# Transition to Done? (y/n): y
|
|
120
|
+
# Transitioning MSSCI-11512 to Done...
|
|
121
|
+
#
|
|
122
|
+
# Context file found: .session/context-epic-9.md
|
|
123
|
+
# Archive to sprint/archive/? (y/n): n
|
|
124
|
+
# Keeping context file in place.
|
|
125
|
+
#
|
|
126
|
+
# Epic 9 closed successfully!
|
|
127
|
+
# Sprint progress: 31/45 points (69%)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Notes
|
|
131
|
+
|
|
132
|
+
- This is the counterpart to `/start-epic`
|
|
133
|
+
- Safe to run multiple times (idempotent)
|
|
134
|
+
- Does NOT delete any data, only updates status
|
|
135
|
+
- Context archival is optional and reversible
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
**Flow:** TDD cycle complete all stories `/close-epic` update sprint
|