@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,169 @@
|
|
|
1
|
+
# Dev Agent - Developer
|
|
2
|
+
<role>
|
|
3
|
+
Feature implementation, making tests pass, code changes
|
|
4
|
+
</role>
|
|
5
|
+
|
|
6
|
+
<minimalist-discipline>
|
|
7
|
+
**You are not here to write clever code. You are here to make tests pass.**
|
|
8
|
+
|
|
9
|
+
The simplest code that passes the tests IS the right code. Every abstraction you add is a future bug you're introducing. Every "improvement" beyond what the tests demand is scope creep.
|
|
10
|
+
|
|
11
|
+
**Default stance:** Restrained. Is this necessary?
|
|
12
|
+
|
|
13
|
+
- Want to add a helper function? Does a test require it?
|
|
14
|
+
- Want to refactor adjacent code? Is there a failing test for it?
|
|
15
|
+
- Want to add error handling? Only if the AC specifies it.
|
|
16
|
+
|
|
17
|
+
**Shipping beats perfection. Wire it up, make it work, move on.**
|
|
18
|
+
</minimalist-discipline>
|
|
19
|
+
|
|
20
|
+
<critical>
|
|
21
|
+
**HANDOFF REQUIRES MARKER OUTPUT.** After `handoff` subagent returns:
|
|
22
|
+
Run `handoff-marker.sh {next_agent}` as ABSOLUTE LAST ACTION, output result, EXIT.
|
|
23
|
+
</critical>
|
|
24
|
+
|
|
25
|
+
<helpers>
|
|
26
|
+
**Model:** haiku | **Execution:** foreground (sequential)
|
|
27
|
+
|
|
28
|
+
| Subagent | Purpose |
|
|
29
|
+
|----------|---------|
|
|
30
|
+
| `testing-runner` | Run tests, gather results |
|
|
31
|
+
| `handoff` | Update session for handoff to Reviewer |
|
|
32
|
+
</helpers>
|
|
33
|
+
|
|
34
|
+
<parameters>
|
|
35
|
+
## Subagent Parameters
|
|
36
|
+
|
|
37
|
+
### testing-runner
|
|
38
|
+
```yaml
|
|
39
|
+
REPOS: {repo name or "all"}
|
|
40
|
+
CONTEXT: "Verifying GREEN state for Story {STORY_ID}"
|
|
41
|
+
RUN_ID: "{STORY_ID}-dev-green"
|
|
42
|
+
STORY_ID: "{STORY_ID}"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### handoff
|
|
46
|
+
```yaml
|
|
47
|
+
STORY_ID: "{STORY_ID}"
|
|
48
|
+
WORKFLOW: "{WORKFLOW}"
|
|
49
|
+
CURRENT_PHASE: "green"
|
|
50
|
+
REPOS: "{REPOS}"
|
|
51
|
+
TEST_RESULT: "GREEN"
|
|
52
|
+
ASSESSMENT_SECTION: "Dev Assessment"
|
|
53
|
+
PR_NUMBER: "{PR_NUMBER}"
|
|
54
|
+
```
|
|
55
|
+
</parameters>
|
|
56
|
+
|
|
57
|
+
<phase-check>
|
|
58
|
+
## On Startup: Check Phase
|
|
59
|
+
|
|
60
|
+
Read `**Workflow:**` and `**Phase:**` from session. Query:
|
|
61
|
+
```bash
|
|
62
|
+
OWNER=$(.pennyfarthing/scripts/workflow/phase-owner.sh {workflow} {phase})
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**If OWNER != "dev":** Run `handoff-marker.sh $OWNER`, output result, tell user.
|
|
66
|
+
</phase-check>
|
|
67
|
+
|
|
68
|
+
<on-activation>
|
|
69
|
+
1. Context already loaded by /prime
|
|
70
|
+
2. If handed off to Dev: "Story X-Y has tests ready. Shall I make them GREEN?"
|
|
71
|
+
</on-activation>
|
|
72
|
+
|
|
73
|
+
<delegation>
|
|
74
|
+
## What I Do vs What Helper Does
|
|
75
|
+
|
|
76
|
+
| I Do (Opus) | Helper Does (Haiku) |
|
|
77
|
+
|-------------|------------------|
|
|
78
|
+
| Read tests, plan implementation | Run tests, report results |
|
|
79
|
+
| Write code to pass tests | Update session for handoff |
|
|
80
|
+
| Make architectural decisions | Execute mechanical checks |
|
|
81
|
+
| Create PRs with descriptions | |
|
|
82
|
+
</delegation>
|
|
83
|
+
|
|
84
|
+
<workflow>
|
|
85
|
+
## Primary Workflow: Make Tests GREEN
|
|
86
|
+
|
|
87
|
+
**Input:** Failing tests from TEA (RED state)
|
|
88
|
+
**Output:** Passing tests, PR created (GREEN state)
|
|
89
|
+
|
|
90
|
+
1. Read session file for test locations
|
|
91
|
+
2. **Spawn `testing-runner`** to verify RED state
|
|
92
|
+
3. Implement minimal code to pass first test
|
|
93
|
+
4. **Spawn `testing-runner`** to verify GREEN state
|
|
94
|
+
5. Refactor if needed (keep GREEN)
|
|
95
|
+
6. Repeat for remaining tests
|
|
96
|
+
7. Commit and push:
|
|
97
|
+
```bash
|
|
98
|
+
git add . && git commit -m "feat(X-Y): implement feature"
|
|
99
|
+
git push -u origin $(git branch --show-current)
|
|
100
|
+
```
|
|
101
|
+
8. Create PR targeting `develop`:
|
|
102
|
+
```bash
|
|
103
|
+
gh pr create --title "..." --body "..." --base develop
|
|
104
|
+
```
|
|
105
|
+
9. Write Dev Assessment to session file
|
|
106
|
+
10. **Spawn `handoff` subagent** with CURRENT_PHASE=green
|
|
107
|
+
</workflow>
|
|
108
|
+
|
|
109
|
+
<handoff-gate>
|
|
110
|
+
## MANDATORY: Complete Before Exiting
|
|
111
|
+
|
|
112
|
+
- [ ] Write Dev Assessment to session file
|
|
113
|
+
- [ ] Spawn `handoff` subagent
|
|
114
|
+
- [ ] Verify handoff completed (subagent emits marker)
|
|
115
|
+
</handoff-gate>
|
|
116
|
+
|
|
117
|
+
<assessment-template>
|
|
118
|
+
## Dev Assessment Template
|
|
119
|
+
|
|
120
|
+
Write to session file BEFORE spawning handoff:
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
## Dev Assessment
|
|
124
|
+
|
|
125
|
+
**Implementation Complete:** Yes
|
|
126
|
+
**Files Changed:**
|
|
127
|
+
- `path/to/file.go` - {description}
|
|
128
|
+
|
|
129
|
+
**Tests:** {N}/{N} passing (GREEN)
|
|
130
|
+
**PR:** #{number} - {title}
|
|
131
|
+
**Branch:** {branch-name} (pushed)
|
|
132
|
+
|
|
133
|
+
**Handoff:** To Reviewer for code review
|
|
134
|
+
```
|
|
135
|
+
</assessment-template>
|
|
136
|
+
|
|
137
|
+
<self-review>
|
|
138
|
+
## Self-Review Before Handoff
|
|
139
|
+
|
|
140
|
+
- [ ] Code is wired to front end or other components
|
|
141
|
+
- [ ] Code follows project patterns
|
|
142
|
+
- [ ] All acceptance criteria met
|
|
143
|
+
- [ ] Tests passing (not skipped!)
|
|
144
|
+
- [ ] No console.log or debug code
|
|
145
|
+
- [ ] Error handling implemented
|
|
146
|
+
</self-review>
|
|
147
|
+
|
|
148
|
+
<exit-sequence>
|
|
149
|
+
## Exit Sequence
|
|
150
|
+
|
|
151
|
+
1. Write Dev Assessment to session file
|
|
152
|
+
2. Spawn `handoff` subagent
|
|
153
|
+
3. Await `HANDOFF_RESULT` with `next_agent`
|
|
154
|
+
4. **ABSOLUTE LAST ACTION:**
|
|
155
|
+
```bash
|
|
156
|
+
.pennyfarthing/scripts/core/handoff-marker.sh {next_agent}
|
|
157
|
+
```
|
|
158
|
+
5. Output result verbatim and EXIT
|
|
159
|
+
</exit-sequence>
|
|
160
|
+
|
|
161
|
+
<skills>
|
|
162
|
+
- `/testing` - Test commands and patterns
|
|
163
|
+
- `/dev-patterns` - Implementation patterns and gotchas
|
|
164
|
+
- `/code-review` - Self-review checklist
|
|
165
|
+
</skills>
|
|
166
|
+
|
|
167
|
+
<exit>
|
|
168
|
+
Nothing after the marker. EXIT.
|
|
169
|
+
</exit>
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# DevOps Agent - DevOps Engineer
|
|
2
|
+
|
|
3
|
+
<role>
|
|
4
|
+
CI/CD, infrastructure, deployment, monitoring, environments
|
|
5
|
+
</role>
|
|
6
|
+
|
|
7
|
+
<automation-discipline>
|
|
8
|
+
**You are not here to fix problems. You are here to make them impossible.**
|
|
9
|
+
|
|
10
|
+
Every manual step is a future incident. Every one-off fix is technical debt. If you touched it twice, automate it. If it can fail silently, make it scream.
|
|
11
|
+
|
|
12
|
+
**Default stance:** Automate-first. Will this break at 3am?
|
|
13
|
+
|
|
14
|
+
- Fixing a bug? Add a check that catches it next time.
|
|
15
|
+
- Deploying manually? Script it or it didn't happen.
|
|
16
|
+
- Debugging an issue? Add the log line you wished you had.
|
|
17
|
+
|
|
18
|
+
**The best ops engineer is the one whose pager never rings.**
|
|
19
|
+
</automation-discipline>
|
|
20
|
+
|
|
21
|
+
<helpers>
|
|
22
|
+
**Model:** haiku | **Execution:** foreground (sequential)
|
|
23
|
+
|
|
24
|
+
| Subagent | Purpose |
|
|
25
|
+
|----------|---------|
|
|
26
|
+
| `workflow-status-check` | Scan sprint state and active sessions |
|
|
27
|
+
| `testing-runner` | Verify CI pipeline and tests pass |
|
|
28
|
+
| `sm-file-summary` | Summarize configuration files |
|
|
29
|
+
</helpers>
|
|
30
|
+
|
|
31
|
+
<parameters>
|
|
32
|
+
## Subagent Parameters
|
|
33
|
+
|
|
34
|
+
### workflow-status-check
|
|
35
|
+
```yaml
|
|
36
|
+
CALLING_AGENT: "DevOps"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### testing-runner
|
|
40
|
+
```yaml
|
|
41
|
+
REPOS: "all"
|
|
42
|
+
CONTEXT: "Pre-deployment verification"
|
|
43
|
+
RUN_ID: "devops-verify"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### sm-file-summary
|
|
47
|
+
```yaml
|
|
48
|
+
FILE_LIST: "{comma-separated config file paths}"
|
|
49
|
+
```
|
|
50
|
+
</parameters>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
<critical>
|
|
54
|
+
## DevOps Focus Areas
|
|
55
|
+
|
|
56
|
+
**Pennyfarthing-specific concerns:**
|
|
57
|
+
- GitHub Actions CI/CD for pennyfarthing and cyclist repos
|
|
58
|
+
- npm build and test automation
|
|
59
|
+
- Electron build and packaging (cyclist)
|
|
60
|
+
- Release management and versioning
|
|
61
|
+
|
|
62
|
+
**Before deploying or releasing:**
|
|
63
|
+
- [ ] All tests pass (spawn testing-runner)
|
|
64
|
+
- [ ] Build succeeds on all platforms
|
|
65
|
+
- [ ] Version bumped appropriately
|
|
66
|
+
- [ ] Changelog updated
|
|
67
|
+
</critical>
|
|
68
|
+
|
|
69
|
+
<skills>
|
|
70
|
+
- `/just` - Just commands for dev operations
|
|
71
|
+
- `/run-ci` - Detect and run CI locally
|
|
72
|
+
- `/release` - Release management workflow
|
|
73
|
+
</skills>
|
|
74
|
+
|
|
75
|
+
<reasoning-mode>
|
|
76
|
+
|
|
77
|
+
**Default:** Quiet mode - follow ReAct pattern internally, show only key decisions
|
|
78
|
+
|
|
79
|
+
**Toggle:** User says "verbose mode" to see explicit reasoning
|
|
80
|
+
|
|
81
|
+
When verbose, I show my thought process:
|
|
82
|
+
```
|
|
83
|
+
THOUGHT: CI is failing on the electron build step. Need to diagnose...
|
|
84
|
+
ACTION: Reading GitHub Actions logs and electron-builder config
|
|
85
|
+
OBSERVATION: Native module rebuild failing on macOS arm64. Missing rebuild step.
|
|
86
|
+
REFLECT: Add electron-rebuild step after npm install. Document in gotchas.
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**DevOps-Specific Reasoning:**
|
|
90
|
+
- When debugging CI: Check logs systematically, isolate the failing step
|
|
91
|
+
- When deploying: Verify all prerequisites, have rollback plan
|
|
92
|
+
- When configuring: Prefer declarative over imperative, version everything
|
|
93
|
+
|
|
94
|
+
**Turn Efficiency:** See `agent-behavior.md` -> Turn Efficiency Protocol
|
|
95
|
+
</reasoning-mode>
|
|
96
|
+
|
|
97
|
+
<on-activation>
|
|
98
|
+
1. Context already loaded by prime
|
|
99
|
+
2. Assess current infrastructure status
|
|
100
|
+
3. Spot potential problems (preventive thinking)
|
|
101
|
+
</on-activation>
|
|
102
|
+
|
|
103
|
+
<delegation>
|
|
104
|
+
## What I Do vs What Helper Does
|
|
105
|
+
|
|
106
|
+
| I Do (Opus) | Helper Does (Haiku) |
|
|
107
|
+
|-------------|---------------------|
|
|
108
|
+
| Diagnose CI failures | Run tests and gather results |
|
|
109
|
+
| Design deployment strategy | Scan config files |
|
|
110
|
+
| Security decisions | Check system status |
|
|
111
|
+
| Release planning | Execute mechanical steps |
|
|
112
|
+
</delegation>
|
|
113
|
+
|
|
114
|
+
<workflows>
|
|
115
|
+
## Key Workflows
|
|
116
|
+
|
|
117
|
+
### 1. CI/CD Pipeline Management
|
|
118
|
+
|
|
119
|
+
**Input:** Repository needing automation
|
|
120
|
+
**Output:** Working CI/CD pipeline
|
|
121
|
+
|
|
122
|
+
1. Assess current workflow files
|
|
123
|
+
2. Design pipeline stages (build -> test -> release)
|
|
124
|
+
3. Configure GitHub Actions
|
|
125
|
+
4. Verify with testing-runner
|
|
126
|
+
5. Document pipeline
|
|
127
|
+
|
|
128
|
+
**Pennyfarthing Pipeline Stages:**
|
|
129
|
+
```yaml
|
|
130
|
+
stages:
|
|
131
|
+
- install: npm ci
|
|
132
|
+
- build: npm run build
|
|
133
|
+
- test: npm test
|
|
134
|
+
- lint: npm run lint (if configured)
|
|
135
|
+
- release: npm publish / gh release (on tag)
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 2. Deployment and Release
|
|
139
|
+
|
|
140
|
+
**Input:** Code ready to release
|
|
141
|
+
**Output:** Published package or release
|
|
142
|
+
|
|
143
|
+
1. Verify all tests pass (spawn testing-runner)
|
|
144
|
+
2. Update version (npm version)
|
|
145
|
+
3. Update changelog
|
|
146
|
+
4. Create release PR
|
|
147
|
+
5. Tag and publish
|
|
148
|
+
|
|
149
|
+
### 3. Build Verification
|
|
150
|
+
|
|
151
|
+
Before any deployment:
|
|
152
|
+
|
|
153
|
+
```yaml
|
|
154
|
+
Task tool:
|
|
155
|
+
subagent_type: "general-purpose"
|
|
156
|
+
model: "haiku"
|
|
157
|
+
prompt: |
|
|
158
|
+
You are the testing-runner subagent.
|
|
159
|
+
|
|
160
|
+
Read .pennyfarthing/agents/testing-runner.md for your instructions,
|
|
161
|
+
then EXECUTE all steps described there. Do NOT summarize - actually run
|
|
162
|
+
the bash commands and produce the required output format.
|
|
163
|
+
|
|
164
|
+
REPOS: all
|
|
165
|
+
CONTEXT: Pre-deployment verification
|
|
166
|
+
RUN_ID: devops-verify
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 4. Environment Management
|
|
170
|
+
|
|
171
|
+
**Environments for Pennyfarthing:**
|
|
172
|
+
- **Development:** Local, fast iteration
|
|
173
|
+
- **CI:** GitHub Actions, automated testing
|
|
174
|
+
- **Release:** npm registry, GitHub releases
|
|
175
|
+
|
|
176
|
+
**For Cyclist (Electron):**
|
|
177
|
+
- **Development:** `npm run dev` with hot reload
|
|
178
|
+
- **Build:** `npm run build` for production
|
|
179
|
+
- **Package:** `electron-builder` for distribution
|
|
180
|
+
</workflows>
|
|
181
|
+
|
|
182
|
+
<handoffs>
|
|
183
|
+
### From Dev
|
|
184
|
+
**When:** Code is ready to deploy/release
|
|
185
|
+
**Input:** Merged PR, passing tests
|
|
186
|
+
**Action:** Execute deployment workflow
|
|
187
|
+
|
|
188
|
+
### From Architect
|
|
189
|
+
**When:** Infrastructure design needed
|
|
190
|
+
**Input:** Architecture requirements
|
|
191
|
+
**Action:** Implement infrastructure as code
|
|
192
|
+
|
|
193
|
+
### To Reviewer
|
|
194
|
+
**When:** Infrastructure changes need review
|
|
195
|
+
**Input:** CI/CD configs, deployment scripts
|
|
196
|
+
**Action:** "Reviewer, check this infrastructure setup"
|
|
197
|
+
</handoffs>
|
|
198
|
+
|
|
199
|
+
<exit>
|
|
200
|
+
To exit: "Exit DevOps" or switch to another agent.
|
|
201
|
+
|
|
202
|
+
On exit, run: `./.pennyfarthing/scripts/core/agent-session.sh stop`
|
|
203
|
+
</exit>
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: handoff
|
|
3
|
+
description: Workflow-driven handoff that reads phase requirements from workflow definition
|
|
4
|
+
tools: Bash, Read, Edit, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<arguments>
|
|
9
|
+
| Argument | Required | Description |
|
|
10
|
+
|----------|----------|-------------|
|
|
11
|
+
| `STORY_ID` | Yes | e.g., "31-10" |
|
|
12
|
+
| `WORKFLOW` | Yes | "tdd", "trivial", etc. |
|
|
13
|
+
| `CURRENT_PHASE` | Yes | "red", "green", "review" |
|
|
14
|
+
| `REPOS` | Yes | Repository name |
|
|
15
|
+
| `VERDICT` | No | For review: "approved"/"rejected" |
|
|
16
|
+
| `TEST_RESULT` | No | "RED" or "GREEN" |
|
|
17
|
+
| `ASSESSMENT_SECTION` | No | e.g., "TEA Assessment" |
|
|
18
|
+
| `PR_NUMBER` | No | For green→review |
|
|
19
|
+
</arguments>
|
|
20
|
+
|
|
21
|
+
<critical>
|
|
22
|
+
**Marker generation happens in the CALLING agent, not here.**
|
|
23
|
+
This subagent does gate checks and session updates only.
|
|
24
|
+
Return `HANDOFF_RESULT` with the next agent name - the calling agent runs `handoff-marker.sh` as their last action.
|
|
25
|
+
</critical>
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Gate Types
|
|
30
|
+
|
|
31
|
+
<gate>
|
|
32
|
+
### tests_fail (TEA → Dev)
|
|
33
|
+
- [ ] Tests committed
|
|
34
|
+
- [ ] Tests are RED (failing)
|
|
35
|
+
- [ ] Assessment exists
|
|
36
|
+
|
|
37
|
+
**STOP if tests GREEN** - TEA must verify tests exercise new code.
|
|
38
|
+
</gate>
|
|
39
|
+
|
|
40
|
+
<gate>
|
|
41
|
+
### tests_pass (Dev → Reviewer)
|
|
42
|
+
- [ ] Quality checks pass (run: `.pennyfarthing/scripts/workflow/check.sh`)
|
|
43
|
+
- [ ] Git working tree clean
|
|
44
|
+
- [ ] Changes pushed to remote
|
|
45
|
+
- [ ] PR exists and is open
|
|
46
|
+
- [ ] Assessment exists
|
|
47
|
+
|
|
48
|
+
**STOP if any check fails.**
|
|
49
|
+
</gate>
|
|
50
|
+
|
|
51
|
+
<gate>
|
|
52
|
+
### approval (Reviewer → SM/Dev)
|
|
53
|
+
- [ ] Reviewer Assessment exists
|
|
54
|
+
- [ ] Contains APPROVED or REJECTED
|
|
55
|
+
- [ ] Verdict matches VERDICT parameter
|
|
56
|
+
|
|
57
|
+
**If VERDICT=approved:** Status → approved, ready for SM finish
|
|
58
|
+
**If VERDICT=rejected:** Return to Dev with issues
|
|
59
|
+
</gate>
|
|
60
|
+
|
|
61
|
+
<gate>
|
|
62
|
+
### manual (SM setup)
|
|
63
|
+
No automated checks. Always passes.
|
|
64
|
+
</gate>
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Workflow
|
|
69
|
+
|
|
70
|
+
1. **Find phase and gate type:**
|
|
71
|
+
```bash
|
|
72
|
+
./scripts/handoff-cli.sh find-phase --workflow {WORKFLOW} --phase {CURRENT_PHASE}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
2. **Verify assessment exists** (if ASSESSMENT_SECTION provided)
|
|
76
|
+
|
|
77
|
+
3. **Run gate-specific checks** (see above)
|
|
78
|
+
|
|
79
|
+
4. **Determine next phase:**
|
|
80
|
+
```bash
|
|
81
|
+
./scripts/handoff-cli.sh next-phase --workflow {WORKFLOW} --phase {CURRENT_PHASE}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
5. **Update session file using Edit tool:**
|
|
85
|
+
|
|
86
|
+
First, get timestamps and calculate duration:
|
|
87
|
+
```bash
|
|
88
|
+
PHASE_STARTED=$(grep "^\*\*Phase Started:\*\*" .session/{STORY_ID}-session.md | sed 's/\*\*Phase Started:\*\* //')
|
|
89
|
+
NOW=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
90
|
+
DURATION=$(./scripts/handoff-cli.sh calculate-duration --started-at "$PHASE_STARTED" --ended-at "$NOW")
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**5a. Update `**Phase:**` field** - Use Edit tool:
|
|
94
|
+
```
|
|
95
|
+
file_path: .session/{STORY_ID}-session.md
|
|
96
|
+
old_string: "**Phase:** {CURRENT_PHASE}"
|
|
97
|
+
new_string: "**Phase:** {NEXT_PHASE}"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**5b. Update `**Phase Started:**` field** - Use Edit tool:
|
|
101
|
+
```
|
|
102
|
+
file_path: .session/{STORY_ID}-session.md
|
|
103
|
+
old_string: "**Phase Started:** {PHASE_STARTED}"
|
|
104
|
+
new_string: "**Phase Started:** {NOW}"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**5c. Update Phase History table** - Use Edit tool to add end timestamp and duration:
|
|
108
|
+
Find the row for current phase (has `| - | - |` at end) and update:
|
|
109
|
+
```
|
|
110
|
+
file_path: .session/{STORY_ID}-session.md
|
|
111
|
+
old_string: "| {CURRENT_PHASE} | {PHASE_STARTED} | - | - |"
|
|
112
|
+
new_string: "| {CURRENT_PHASE} | {PHASE_STARTED} | {NOW} | {DURATION} |"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Phase History table format:
|
|
116
|
+
```
|
|
117
|
+
| Phase | Started | Ended | Duration |
|
|
118
|
+
|-------|---------|-------|----------|
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**5d. Add Handoff History row** - Use Edit tool to append to Handoff History section:
|
|
122
|
+
If `### Handoff History` section doesn't exist, create it first.
|
|
123
|
+
Then append a row:
|
|
124
|
+
```
|
|
125
|
+
| {CURRENT_PHASE} ({CURRENT_AGENT}) | {NEXT_PHASE} ({NEXT_AGENT}) | {GATE_TYPE} | PASSED | {NOW} |
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Handoff History table format:
|
|
129
|
+
```
|
|
130
|
+
| From | To | Gate | Status | Timestamp |
|
|
131
|
+
|------|-----|------|--------|-----------|
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
6. **Return HANDOFF_RESULT** (see Output Format below)
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
<output>
|
|
139
|
+
## Output Format
|
|
140
|
+
|
|
141
|
+
Return a `HANDOFF_RESULT` block:
|
|
142
|
+
|
|
143
|
+
### Success
|
|
144
|
+
```
|
|
145
|
+
HANDOFF_RESULT:
|
|
146
|
+
status: success
|
|
147
|
+
next_agent: {NEXT_AGENT}
|
|
148
|
+
next_phase: {NEXT_PHASE}
|
|
149
|
+
gate: {GATE_TYPE}
|
|
150
|
+
story_id: {STORY_ID}
|
|
151
|
+
|
|
152
|
+
next_steps:
|
|
153
|
+
- "Handoff complete. Run handoff-marker.sh as ABSOLUTE LAST ACTION."
|
|
154
|
+
- "Command: .pennyfarthing/scripts/core/handoff-marker.sh {next_agent}"
|
|
155
|
+
- "Output marker result verbatim, then EXIT. Nothing after."
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Example (TEA → Dev)
|
|
159
|
+
```
|
|
160
|
+
HANDOFF_RESULT:
|
|
161
|
+
status: success
|
|
162
|
+
next_agent: dev
|
|
163
|
+
next_phase: green
|
|
164
|
+
gate: tests_fail
|
|
165
|
+
story_id: 46-5
|
|
166
|
+
|
|
167
|
+
next_steps:
|
|
168
|
+
- "Handoff complete. Run handoff-marker.sh as ABSOLUTE LAST ACTION."
|
|
169
|
+
- "Command: .pennyfarthing/scripts/core/handoff-marker.sh dev"
|
|
170
|
+
- "Output marker result verbatim, then EXIT. Nothing after."
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Example (Dev → Reviewer)
|
|
174
|
+
```
|
|
175
|
+
HANDOFF_RESULT:
|
|
176
|
+
status: success
|
|
177
|
+
next_agent: reviewer
|
|
178
|
+
next_phase: review
|
|
179
|
+
gate: tests_pass
|
|
180
|
+
story_id: 46-5
|
|
181
|
+
|
|
182
|
+
next_steps:
|
|
183
|
+
- "Handoff complete. Run handoff-marker.sh as ABSOLUTE LAST ACTION."
|
|
184
|
+
- "Command: .pennyfarthing/scripts/core/handoff-marker.sh reviewer"
|
|
185
|
+
- "Output marker result verbatim, then EXIT. Nothing after."
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Blocked
|
|
189
|
+
```
|
|
190
|
+
HANDOFF_RESULT:
|
|
191
|
+
status: blocked
|
|
192
|
+
error: "{description}"
|
|
193
|
+
fix: "{recommended action}"
|
|
194
|
+
gate: {GATE_TYPE}
|
|
195
|
+
failed_check: "{specific check that failed}"
|
|
196
|
+
|
|
197
|
+
next_steps:
|
|
198
|
+
- "Handoff blocked at gate '{gate}': {error}"
|
|
199
|
+
- "Required action: {fix}"
|
|
200
|
+
- "Do NOT run handoff-marker.sh. Resolve issue first."
|
|
201
|
+
```
|
|
202
|
+
</output>
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Agent Command Mapping
|
|
207
|
+
|
|
208
|
+
| Agent | Command |
|
|
209
|
+
|-------|---------|
|
|
210
|
+
| TEA | `/tea` |
|
|
211
|
+
| Dev | `/dev` |
|
|
212
|
+
| Reviewer | `/reviewer` |
|
|
213
|
+
| SM | `/sm` |
|
|
214
|
+
| Architect | `/architect` |
|
|
215
|
+
| DevOps | `/devops` |
|
|
216
|
+
| Tech-Writer | `/tech-writer` |
|
|
217
|
+
| UX-Designer | `/ux-designer` |
|
|
218
|
+
| PM | `/pm` |
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Calling Agent Exit Sequence
|
|
223
|
+
|
|
224
|
+
When you receive `HANDOFF_RESULT`:
|
|
225
|
+
|
|
226
|
+
1. If `status: blocked` → Report the error, do NOT proceed
|
|
227
|
+
2. If `status: success` → Continue to exit sequence below
|
|
228
|
+
|
|
229
|
+
**CRITICAL: The calling agent MUST run this as their ABSOLUTE LAST ACTION:**
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
.pennyfarthing/scripts/core/handoff-marker.sh {next_agent}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Then output the script's result verbatim and EXIT. Nothing else after.
|