@delorenj/pjangler 1.2.21 → 1.2.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -3
- package/dist/index.js +8577 -4137
- package/dist/mcp-server.js +8115 -4079
- package/package.json +19 -4
- package/templates/commonproject/copier.yml +6 -3
- package/templates/commonproject/template/.agents/skills.json +2 -1
- package/templates/commonproject/template/.env.op +6 -2
- package/templates/commonproject/template/.github/workflows/code-review.yml.jinja +48 -0
- package/templates/commonproject/template/.mise/scripts/materialize-env.sh +28 -0
- package/templates/commonproject/template/.mise/scripts/provision-packs.py +565 -0
- package/templates/commonproject/template/.mise/scripts/sync-skills.py +1728 -0
- package/templates/commonproject/template/mise.toml.jinja +14 -4
- package/templates/hermes-agent/copier.yml +11 -7
- package/templates/hermes-agent/template/.gitignore.jinja +6 -2
- package/templates/hermes-agent/template/.runtime-scaffold/README.md +4 -2
- package/templates/hermes-agent/template/.scripts/00-banner.sh +1 -1
- package/templates/hermes-agent/template/.scripts/01-config.sh +3 -0
- package/templates/hermes-agent/template/.scripts/10-hermes-profile.sh +12 -1
- package/templates/hermes-agent/template/.scripts/20-runtime-repo.sh +114 -131
- package/templates/hermes-agent/template/.scripts/30-telegram.sh +276 -22
- package/templates/hermes-agent/template/.scripts/31-slack.sh +362 -0
- package/templates/hermes-agent/template/.scripts/60-bloodbank.sh +8 -66
- package/templates/hermes-agent/template/.scripts/70-systemd.sh +50 -29
- package/templates/hermes-agent/template/.scripts/80-registry.sh +93 -13
- package/templates/hermes-agent/template/.scripts/99-summary.sh +1 -4
- package/templates/hermes-agent/template/.scripts/_lib.sh +66 -1
- package/templates/hermes-agent/template/.scripts/checkpoint.sh +3 -2
- package/templates/hermes-agent/template/.scripts/config.example.toml +10 -10
- package/templates/hermes-agent/template/.scripts/heartbeat.sh +1 -1
- package/templates/hermes-agent/template/.scripts/lib/ticket-provider.sh +15 -7
- package/templates/hermes-agent/template/.scripts/providers/linear.sh +41 -1
- package/templates/hermes-agent/template/.scripts/providers/plane.sh +91 -21
- package/templates/hermes-agent/template/.scripts/providers/trello.sh +34 -1
- package/templates/hermes-agent/template/.scripts/reporter-watchdog.py +242 -0
- package/templates/hermes-agent/template/.scripts/secret-scan.py +68 -0
- package/templates/hermes-agent/template/.scripts/sentinel.prompt.md.jinja +3 -2
- package/templates/hermes-agent/template/SOUL.md.jinja +32 -10
- package/templates/hermes-agent/template/hermes.jinja +6 -3
- package/templates/hermes-agent/template/role.yaml.jinja +25 -13
- package/templates/commonproject/.augment/commands/bmad/agents/bmb-agent-builder.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/bmb-module-builder.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/bmb-workflow-builder.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/bmm-analyst.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/bmm-architect.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/bmm-dev.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/bmm-pm.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/bmm-quick-flow-solo-dev.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/bmm-sm.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/bmm-tea.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/bmm-tech-writer.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/bmm-ux-designer.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/cis-brainstorming-coach.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/cis-creative-problem-solver.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/cis-design-thinking-coach.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/cis-innovation-strategist.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/cis-presentation-master.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/cis-storyteller.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/agents/core-bmad-master.md +0 -14
- package/templates/commonproject/.augment/commands/bmad/tasks/core-index-docs.md +0 -74
- package/templates/commonproject/.augment/commands/bmad/tasks/core-shard-doc.md +0 -118
- package/templates/commonproject/.augment/commands/bmad/workflows/bmb-agent.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmb-module.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmb-workflow.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-check-implementation-readiness.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-code-review.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-correct-course.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-architecture.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-epics-and-stories.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-excalidraw-dataflow.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-excalidraw-diagram.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-excalidraw-flowchart.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-excalidraw-wireframe.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-product-brief.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-story.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-ux-design.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-dev-story.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-document-project.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-generate-project-context.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-prd.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-quick-dev.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-quick-spec.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-research.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-retrospective.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-sprint-planning.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-sprint-status.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-atdd.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-automate.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-ci.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-framework.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-nfr.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-test-design.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-test-review.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-trace.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-workflow-init.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/bmm-workflow-status.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/cis-design-thinking.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/cis-innovation-strategy.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/cis-problem-solving.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/cis-storytelling.md +0 -13
- package/templates/commonproject/.augment/commands/bmad/workflows/core-brainstorming.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/core-party-mode.md +0 -5
- package/templates/commonproject/.augment/commands/bmad/workflows/custom-ticket-lifecycle.md +0 -5
- package/templates/commonproject/.copier-answers.yml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-agent-bmb-agent-builder.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-bmb-module-builder.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-bmb-workflow-builder.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-bmm-analyst.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-bmm-architect.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-bmm-dev.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-bmm-pm.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-bmm-quick-flow-solo-dev.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-bmm-sm.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-bmm-tea.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-bmm-tech-writer.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-bmm-ux-designer.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-cis-brainstorming-coach.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-cis-creative-problem-solver.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-cis-design-thinking-coach.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-cis-innovation-strategist.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-cis-presentation-master.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-cis-storyteller.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-agent-core-bmad-master.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-task-core-index-docs.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-task-core-review-adversarial-general.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-task-core-shard-doc.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-task-core-workflow.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmb-agent.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmb-module.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmb-workflow.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-check-implementation-readiness.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-code-review.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-correct-course.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-architecture.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-epics-and-stories.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-excalidraw-dataflow.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-excalidraw-diagram.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-excalidraw-flowchart.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-excalidraw-wireframe.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-product-brief.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-story.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-ux-design.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-dev-story.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-document-project.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-generate-project-context.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-prd.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-quick-dev.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-quick-spec.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-research.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-retrospective.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-sprint-planning.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-sprint-status.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-atdd.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-automate.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-ci.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-framework.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-nfr.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-test-design.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-test-review.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-trace.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-workflow-init.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-workflow-status.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-cis-design-thinking.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-cis-innovation-strategy.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-cis-problem-solving.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-cis-storytelling.toml +0 -12
- package/templates/commonproject/.gemini/commands/bmad-workflow-core-brainstorming.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-core-party-mode.toml +0 -4
- package/templates/commonproject/.gemini/commands/bmad-workflow-custom-ticket-lifecycle.toml +0 -4
- package/templates/commonproject/.github/agents/bmd-custom-bmb-agent-builder.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-bmb-module-builder.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-bmb-workflow-builder.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-bmm-analyst.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-bmm-architect.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-bmm-dev.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-bmm-pm.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-bmm-quick-flow-solo-dev.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-bmm-sm.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-bmm-tea.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-bmm-tech-writer.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-bmm-ux-designer.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-cis-brainstorming-coach.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-cis-creative-problem-solver.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-cis-design-thinking-coach.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-cis-innovation-strategist.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-cis-presentation-master.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-cis-storyteller.agent.md +0 -17
- package/templates/commonproject/.github/agents/bmd-custom-core-bmad-master.agent.md +0 -17
- package/templates/commonproject/.mcp.json +0 -12
- package/templates/commonproject/.mise/scripts/claude +0 -13
- package/templates/commonproject/.mise/scripts/create-plane-project.sh +0 -149
- package/templates/commonproject/.mise/scripts/init-project.sh +0 -314
- package/templates/commonproject/.mise/scripts/link-agentfiles.sh +0 -9
- package/templates/commonproject/.opencode/agent/bmad-agent-bmb-agent-builder.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-bmb-module-builder.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-bmb-workflow-builder.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-bmm-analyst.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-bmm-architect.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-bmm-dev.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-bmm-pm.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-bmm-quick-flow-solo-dev.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-bmm-sm.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-bmm-tea.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-bmm-tech-writer.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-bmm-ux-designer.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-cis-brainstorming-coach.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-cis-creative-problem-solver.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-cis-design-thinking-coach.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-cis-innovation-strategist.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-cis-presentation-master.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-cis-storyteller.md +0 -14
- package/templates/commonproject/.opencode/agent/bmad-agent-core-bmad-master.md +0 -14
- package/templates/commonproject/.opencode/command/bmad-bmb-agent.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmb-module.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmb-workflow.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmm-check-implementation-readiness.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmm-code-review.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-correct-course.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-create-architecture.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmm-create-epics-and-stories.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmm-create-excalidraw-dataflow.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-create-excalidraw-diagram.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-create-excalidraw-flowchart.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-create-excalidraw-wireframe.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-create-product-brief.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmm-create-story.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-create-ux-design.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmm-dev-story.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-document-project.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-generate-project-context.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmm-prd.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmm-quick-dev.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmm-quick-spec.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmm-research.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-bmm-retrospective.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-sprint-planning.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-sprint-status.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-testarch-atdd.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-testarch-automate.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-testarch-ci.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-testarch-framework.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-testarch-nfr.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-testarch-test-design.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-testarch-test-review.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-testarch-trace.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-workflow-init.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-bmm-workflow-status.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-cis-design-thinking.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-cis-innovation-strategy.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-cis-problem-solving.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-cis-storytelling.md +0 -13
- package/templates/commonproject/.opencode/command/bmad-core-brainstorming.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-core-party-mode.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-custom-ticket-lifecycle.md +0 -5
- package/templates/commonproject/.opencode/command/bmad-task-core-index-docs.md +0 -9
- package/templates/commonproject/.opencode/command/bmad-task-core-shard-doc.md +0 -9
- package/templates/commonproject/.plane.json +0 -6
- package/templates/commonproject/.scripts/test-template.sh +0 -63
- package/templates/commonproject/AGENTS.md +0 -86
- package/templates/commonproject/README.md +0 -172
- package/templates/commonproject/_bmad/_config/agent-manifest.csv +0 -20
- package/templates/commonproject/_bmad/_config/agents/bmb-agent-builder.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/bmb-module-builder.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/bmb-workflow-builder.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/bmm-analyst.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/bmm-architect.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/bmm-dev.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/bmm-pm.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/bmm-quick-flow-solo-dev.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/bmm-sm.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/bmm-tea.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/bmm-tech-writer.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/bmm-ux-designer.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/cis-brainstorming-coach.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/cis-creative-problem-solver.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/cis-design-thinking-coach.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/cis-innovation-strategist.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/cis-presentation-master.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/cis-storyteller.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/agents/core-bmad-master.customize.yaml +0 -41
- package/templates/commonproject/_bmad/_config/custom/cache-manifest.yaml +0 -4
- package/templates/commonproject/_bmad/_config/custom/custom/module.yaml +0 -8
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/data/ac-sufficiency-rubric.md +0 -33
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/data/audit-comment-template.md +0 -54
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/data/event-schemas.md +0 -58
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-01-init.md +0 -173
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-02-triage.md +0 -159
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-03-refine.md +0 -149
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-04-implement.md +0 -147
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-05-review.md +0 -146
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-06-qa.md +0 -199
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-07-complete.md +0 -141
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-e/step-01-assess.md +0 -102
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-e/step-02-apply.md +0 -85
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-v/step-01-validate.md +0 -154
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/workflow-plan-ticket-lifecycle.md +0 -346
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/workflow.md +0 -84
- package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/workflow.yaml +0 -39
- package/templates/commonproject/_bmad/_config/files-manifest.csv +0 -483
- package/templates/commonproject/_bmad/_config/ides/claude-code.yaml +0 -6
- package/templates/commonproject/_bmad/_config/ides/codex.yaml +0 -5
- package/templates/commonproject/_bmad/_config/manifest.yaml +0 -18
- package/templates/commonproject/_bmad/_config/task-manifest.csv +0 -5
- package/templates/commonproject/_bmad/_config/tool-manifest.csv +0 -1
- package/templates/commonproject/_bmad/_config/workflow-manifest.csv +0 -43
- package/templates/commonproject/_bmad/_memory/config.yaml +0 -11
- package/templates/commonproject/_bmad/_memory/storyteller-sidecar/stories-told.md +0 -7
- package/templates/commonproject/_bmad/_memory/storyteller-sidecar/story-preferences.md +0 -7
- package/templates/commonproject/_bmad/bmb/README.md +0 -25
- package/templates/commonproject/_bmad/bmb/agents/agent-builder.md +0 -64
- package/templates/commonproject/_bmad/bmb/agents/module-builder.md +0 -65
- package/templates/commonproject/_bmad/bmb/agents/workflow-builder.md +0 -66
- package/templates/commonproject/_bmad/bmb/config.yaml +0 -12
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/agent-compilation.md +0 -273
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/agent-menu-patterns.md +0 -233
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/agent-metadata.md +0 -208
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/brainstorm-context.md +0 -146
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/communication-presets.csv +0 -61
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/critical-actions.md +0 -120
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/expert-agent-architecture.md +0 -236
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/expert-agent-validation.md +0 -174
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/module-agent-validation.md +0 -126
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/persona-properties.md +0 -266
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/principles-crafting.md +0 -292
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/reference/module-examples/architect.md +0 -68
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/simple-agent-architecture.md +0 -204
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/simple-agent-validation.md +0 -133
- package/templates/commonproject/_bmad/bmb/workflows/agent/data/understanding-agent-types.md +0 -222
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-01-brainstorm.md +0 -128
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-02-discovery.md +0 -170
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-03-type-metadata.md +0 -296
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-04-persona.md +0 -212
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-05-commands-menu.md +0 -178
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-06-activation.md +0 -279
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-07a-build-simple.md +0 -187
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-07b-build-expert.md +0 -201
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-07c-build-module.md +0 -258
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-08-celebrate.md +0 -249
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-01-load-existing.md +0 -221
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-02-discover-edits.md +0 -193
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-03-placeholder.md +0 -1
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-04-type-metadata.md +0 -124
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-05-persona.md +0 -134
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-06-commands-menu.md +0 -122
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-07-activation.md +0 -125
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-08a-edit-simple.md +0 -137
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-08b-edit-expert.md +0 -119
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-08c-edit-module.md +0 -123
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-09-celebrate.md +0 -155
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-01-load-review.md +0 -136
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +0 -116
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +0 -124
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +0 -145
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +0 -136
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +0 -136
- package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-03-summary.md +0 -104
- package/templates/commonproject/_bmad/bmb/workflows/agent/templates/agent-plan.template.md +0 -5
- package/templates/commonproject/_bmad/bmb/workflows/agent/templates/expert-agent-template/expert-agent.template.md +0 -77
- package/templates/commonproject/_bmad/bmb/workflows/agent/templates/simple-agent.template.md +0 -72
- package/templates/commonproject/_bmad/bmb/workflows/agent/workflow.md +0 -123
- package/templates/commonproject/_bmad/bmb/workflows/module/data/agent-architecture.md +0 -179
- package/templates/commonproject/_bmad/bmb/workflows/module/data/agent-spec-template.md +0 -79
- package/templates/commonproject/_bmad/bmb/workflows/module/data/module-installer-standards.md +0 -348
- package/templates/commonproject/_bmad/bmb/workflows/module/data/module-standards.md +0 -280
- package/templates/commonproject/_bmad/bmb/workflows/module/data/module-yaml-conventions.md +0 -392
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-01-welcome.md +0 -147
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-02-spark.md +0 -140
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-03-module-type.md +0 -148
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-04-vision.md +0 -82
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-05-identity.md +0 -96
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-06-users.md +0 -85
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-07-value.md +0 -75
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-08-agents.md +0 -96
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-09-workflows.md +0 -82
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-10-tools.md +0 -90
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-11-scenarios.md +0 -83
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-12-creative.md +0 -94
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-13-review.md +0 -104
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-14-finalize.md +0 -117
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-01-load-brief.md +0 -178
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-01b-continue.md +0 -83
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-02-structure.md +0 -109
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-03-config.md +0 -118
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-04-installer.md +0 -160
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-05-agents.md +0 -167
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-06-workflows.md +0 -183
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-07-docs.md +0 -402
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-08-complete.md +0 -123
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-e/step-01-load-target.md +0 -81
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-e/step-02-select-edit.md +0 -77
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-e/step-03-apply-edit.md +0 -77
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-e/step-04-review.md +0 -80
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-e/step-05-confirm.md +0 -75
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-01-load-target.md +0 -96
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-02-file-structure.md +0 -94
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-03-module-yaml.md +0 -99
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-04-agent-specs.md +0 -152
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-05-workflow-specs.md +0 -152
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-06-documentation.md +0 -143
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-07-installation.md +0 -113
- package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-08-report.md +0 -197
- package/templates/commonproject/_bmad/bmb/workflows/module/templates/brief-template.md +0 -154
- package/templates/commonproject/_bmad/bmb/workflows/module/templates/workflow-spec-template.md +0 -96
- package/templates/commonproject/_bmad/bmb/workflows/module/workflow.md +0 -100
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/architecture.md +0 -152
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/common-workflow-tools.csv +0 -19
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/csv-data-file-standards.md +0 -81
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/frontmatter-standards.md +0 -225
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/input-discovery-standards.md +0 -269
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/intent-vs-prescriptive-spectrum.md +0 -50
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/menu-handling-standards.md +0 -167
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/output-format-standards.md +0 -188
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/step-file-rules.md +0 -235
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/step-type-patterns.md +0 -311
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/subprocess-optimization-patterns.md +0 -386
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/trimodal-workflow-structure.md +0 -209
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/workflow-chaining-standards.md +0 -271
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/workflow-examples.md +0 -276
- package/templates/commonproject/_bmad/bmb/workflows/workflow/data/workflow-type-criteria.md +0 -172
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-00-conversion.md +0 -262
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-01-discovery.md +0 -194
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-01b-continuation.md +0 -3
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-02-classification.md +0 -269
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-03-requirements.md +0 -282
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-04-tools.md +0 -281
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-05-plan-review.md +0 -242
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-06-design.md +0 -329
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-07-foundation.md +0 -238
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-08-build-step-01.md +0 -377
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-09-build-next-step.md +0 -350
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-10-confirmation.md +0 -320
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-11-completion.md +0 -191
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-01-assess-workflow.md +0 -237
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-02-discover-edits.md +0 -248
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-03-fix-validation.md +0 -252
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-04-direct-edit.md +0 -275
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-05-apply-edit.md +0 -154
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-06-validate-after.md +0 -190
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-07-complete.md +0 -206
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-01-validate-max-mode.md +0 -109
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-01-validate.md +0 -221
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-01b-structure.md +0 -152
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +0 -199
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-02b-path-violations.md +0 -265
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-03-menu-validation.md +0 -164
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-04-step-type-validation.md +0 -211
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-05-output-format-validation.md +0 -200
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-06-validation-design-check.md +0 -195
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-07-instruction-style-check.md +0 -209
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-08-collaborative-experience-check.md +0 -199
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-08b-subprocess-optimization.md +0 -179
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-09-cohesive-review.md +0 -186
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-10-report-complete.md +0 -154
- package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-11-plan-validation.md +0 -237
- package/templates/commonproject/_bmad/bmb/workflows/workflow/templates/minimal-output-template.md +0 -11
- package/templates/commonproject/_bmad/bmb/workflows/workflow/templates/step-01-init-continuable-template.md +0 -241
- package/templates/commonproject/_bmad/bmb/workflows/workflow/templates/step-1b-template.md +0 -223
- package/templates/commonproject/_bmad/bmb/workflows/workflow/templates/step-template.md +0 -290
- package/templates/commonproject/_bmad/bmb/workflows/workflow/templates/workflow-template.md +0 -102
- package/templates/commonproject/_bmad/bmb/workflows/workflow/workflow.md +0 -109
- package/templates/commonproject/_bmad/bmm/agents/analyst.md +0 -82
- package/templates/commonproject/_bmad/bmm/agents/architect.md +0 -74
- package/templates/commonproject/_bmad/bmm/agents/dev.md +0 -76
- package/templates/commonproject/_bmad/bmm/agents/pm.md +0 -78
- package/templates/commonproject/_bmad/bmm/agents/quick-flow-solo-dev.md +0 -74
- package/templates/commonproject/_bmad/bmm/agents/sm.md +0 -77
- package/templates/commonproject/_bmad/bmm/agents/tea.md +0 -77
- package/templates/commonproject/_bmad/bmm/agents/tech-writer.md +0 -78
- package/templates/commonproject/_bmad/bmm/agents/ux-designer.md +0 -74
- package/templates/commonproject/_bmad/bmm/config.yaml +0 -18
- package/templates/commonproject/_bmad/bmm/data/README.md +0 -29
- package/templates/commonproject/_bmad/bmm/data/documentation-standards.md +0 -262
- package/templates/commonproject/_bmad/bmm/data/project-context-template.md +0 -40
- package/templates/commonproject/_bmad/bmm/teams/default-party.csv +0 -21
- package/templates/commonproject/_bmad/bmm/teams/team-fullstack.yaml +0 -12
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/api-request.md +0 -442
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/api-testing-patterns.md +0 -843
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/auth-session.md +0 -552
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/burn-in.md +0 -273
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/ci-burn-in.md +0 -675
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/component-tdd.md +0 -486
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/contract-testing.md +0 -957
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/data-factories.md +0 -500
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/email-auth.md +0 -721
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/error-handling.md +0 -725
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/feature-flags.md +0 -750
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/file-utils.md +0 -463
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/fixture-architecture.md +0 -401
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/fixtures-composition.md +0 -382
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/intercept-network-call.md +0 -430
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/log.md +0 -429
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/network-error-monitor.md +0 -405
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/network-first.md +0 -486
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/network-recorder.md +0 -527
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/nfr-criteria.md +0 -670
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/overview.md +0 -286
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/playwright-config.md +0 -730
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/probability-impact.md +0 -601
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/recurse.md +0 -421
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/risk-governance.md +0 -615
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/selective-testing.md +0 -732
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/selector-resilience.md +0 -527
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/test-healing-patterns.md +0 -644
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/test-levels-framework.md +0 -473
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/test-priorities-matrix.md +0 -373
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/test-quality.md +0 -664
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/timing-debugging.md +0 -372
- package/templates/commonproject/_bmad/bmm/testarch/knowledge/visual-debugging.md +0 -524
- package/templates/commonproject/_bmad/bmm/testarch/tea-index.csv +0 -34
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +0 -10
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +0 -177
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +0 -161
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +0 -199
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +0 -202
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +0 -205
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +0 -219
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +0 -194
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md +0 -58
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +0 -137
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +0 -229
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +0 -238
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +0 -206
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +0 -234
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +0 -443
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +0 -182
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +0 -237
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +0 -200
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +0 -249
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +0 -259
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +0 -177
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +0 -475
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/research.template.md +0 -29
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +0 -137
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +0 -239
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +0 -248
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +0 -202
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +0 -239
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +0 -486
- package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/workflow.md +0 -173
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +0 -135
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +0 -127
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +0 -190
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +0 -216
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +0 -219
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +0 -234
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +0 -252
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +0 -254
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +0 -224
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +0 -224
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +0 -241
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +0 -248
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +0 -237
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +0 -264
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +0 -228
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +0 -13
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +0 -43
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/data/domain-complexity.csv +0 -13
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/data/prd-purpose.md +0 -197
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/data/project-types.csv +0 -11
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-01-init.md +0 -191
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-01b-continue.md +0 -153
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md +0 -224
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-03-success.md +0 -226
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md +0 -213
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md +0 -207
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-06-innovation.md +0 -226
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-07-project-type.md +0 -237
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-08-scoping.md +0 -228
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-09-functional.md +0 -231
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-10-nonfunctional.md +0 -242
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-polish.md +0 -217
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-12-complete.md +0 -180
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01-discovery.md +0 -247
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01b-legacy-conversion.md +0 -208
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-02-review.md +0 -249
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-03-edit.md +0 -253
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-04-complete.md +0 -168
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-01-discovery.md +0 -218
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02-format-detection.md +0 -191
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02b-parity-check.md +0 -209
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-03-density-validation.md +0 -174
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +0 -214
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-05-measurability-validation.md +0 -228
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-06-traceability-validation.md +0 -217
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -205
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +0 -243
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-09-project-type-validation.md +0 -263
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-10-smart-validation.md +0 -209
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +0 -264
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-12-completeness-validation.md +0 -242
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-13-report-complete.md +0 -232
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/templates/prd-template.md +0 -10
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/validation-report-prd-workflow.md +0 -433
- package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/workflow.md +0 -150
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +0 -190
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +0 -178
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -179
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +0 -139
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -252
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +0 -133
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +0 -4
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +0 -55
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +0 -12
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +0 -11
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +0 -7
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +0 -153
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +0 -164
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +0 -224
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +0 -331
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +0 -318
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +0 -359
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +0 -379
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +0 -359
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +0 -352
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md +0 -50
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -259
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +0 -233
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +0 -272
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +0 -145
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +0 -57
- package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +0 -59
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/code-review/checklist.md +0 -23
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/code-review/instructions.xml +0 -227
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +0 -50
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/correct-course/checklist.md +0 -279
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/correct-course/instructions.md +0 -206
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +0 -58
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/create-story/checklist.md +0 -358
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/create-story/instructions.xml +0 -345
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/create-story/template.md +0 -49
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +0 -59
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/dev-story/checklist.md +0 -80
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/dev-story/instructions.xml +0 -410
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +0 -25
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/retrospective/instructions.md +0 -1443
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +0 -57
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +0 -33
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +0 -225
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +0 -55
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +0 -52
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/sprint-status/instructions.md +0 -229
- package/templates/commonproject/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +0 -35
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +0 -156
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +0 -120
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +0 -113
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +0 -113
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +0 -106
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +0 -140
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +0 -52
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +0 -189
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +0 -144
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +0 -128
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +0 -173
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +0 -74
- package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +0 -79
- package/templates/commonproject/_bmad/bmm/workflows/document-project/checklist.md +0 -245
- package/templates/commonproject/_bmad/bmm/workflows/document-project/documentation-requirements.csv +0 -12
- package/templates/commonproject/_bmad/bmm/workflows/document-project/instructions.md +0 -221
- package/templates/commonproject/_bmad/bmm/workflows/document-project/templates/deep-dive-template.md +0 -345
- package/templates/commonproject/_bmad/bmm/workflows/document-project/templates/index-template.md +0 -169
- package/templates/commonproject/_bmad/bmm/workflows/document-project/templates/project-overview-template.md +0 -103
- package/templates/commonproject/_bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +0 -160
- package/templates/commonproject/_bmad/bmm/workflows/document-project/templates/source-tree-template.md +0 -135
- package/templates/commonproject/_bmad/bmm/workflows/document-project/workflow.yaml +0 -28
- package/templates/commonproject/_bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +0 -298
- package/templates/commonproject/_bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +0 -31
- package/templates/commonproject/_bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +0 -1106
- package/templates/commonproject/_bmad/bmm/workflows/document-project/workflows/full-scan.yaml +0 -31
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +0 -90
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +0 -127
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +0 -39
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +0 -130
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +0 -26
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +0 -43
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +0 -141
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +0 -26
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +0 -49
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +0 -241
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +0 -26
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +0 -38
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +0 -133
- package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +0 -26
- package/templates/commonproject/_bmad/bmm/workflows/generate-project-context/project-context-template.md +0 -21
- package/templates/commonproject/_bmad/bmm/workflows/generate-project-context/steps/step-01-discover.md +0 -184
- package/templates/commonproject/_bmad/bmm/workflows/generate-project-context/steps/step-02-generate.md +0 -318
- package/templates/commonproject/_bmad/bmm/workflows/generate-project-context/steps/step-03-complete.md +0 -278
- package/templates/commonproject/_bmad/bmm/workflows/generate-project-context/workflow.md +0 -49
- package/templates/commonproject/_bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +0 -364
- package/templates/commonproject/_bmad/bmm/workflows/testarch/atdd/checklist.md +0 -374
- package/templates/commonproject/_bmad/bmm/workflows/testarch/atdd/instructions.md +0 -806
- package/templates/commonproject/_bmad/bmm/workflows/testarch/atdd/workflow.yaml +0 -45
- package/templates/commonproject/_bmad/bmm/workflows/testarch/automate/checklist.md +0 -582
- package/templates/commonproject/_bmad/bmm/workflows/testarch/automate/instructions.md +0 -1324
- package/templates/commonproject/_bmad/bmm/workflows/testarch/automate/workflow.yaml +0 -52
- package/templates/commonproject/_bmad/bmm/workflows/testarch/ci/checklist.md +0 -248
- package/templates/commonproject/_bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +0 -198
- package/templates/commonproject/_bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +0 -149
- package/templates/commonproject/_bmad/bmm/workflows/testarch/ci/instructions.md +0 -536
- package/templates/commonproject/_bmad/bmm/workflows/testarch/ci/workflow.yaml +0 -45
- package/templates/commonproject/_bmad/bmm/workflows/testarch/framework/checklist.md +0 -321
- package/templates/commonproject/_bmad/bmm/workflows/testarch/framework/instructions.md +0 -481
- package/templates/commonproject/_bmad/bmm/workflows/testarch/framework/workflow.yaml +0 -47
- package/templates/commonproject/_bmad/bmm/workflows/testarch/nfr-assess/checklist.md +0 -407
- package/templates/commonproject/_bmad/bmm/workflows/testarch/nfr-assess/instructions.md +0 -722
- package/templates/commonproject/_bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +0 -445
- package/templates/commonproject/_bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +0 -47
- package/templates/commonproject/_bmad/bmm/workflows/testarch/test-design/checklist.md +0 -235
- package/templates/commonproject/_bmad/bmm/workflows/testarch/test-design/instructions.md +0 -788
- package/templates/commonproject/_bmad/bmm/workflows/testarch/test-design/test-design-template.md +0 -294
- package/templates/commonproject/_bmad/bmm/workflows/testarch/test-design/workflow.yaml +0 -54
- package/templates/commonproject/_bmad/bmm/workflows/testarch/test-review/checklist.md +0 -472
- package/templates/commonproject/_bmad/bmm/workflows/testarch/test-review/instructions.md +0 -628
- package/templates/commonproject/_bmad/bmm/workflows/testarch/test-review/test-review-template.md +0 -390
- package/templates/commonproject/_bmad/bmm/workflows/testarch/test-review/workflow.yaml +0 -46
- package/templates/commonproject/_bmad/bmm/workflows/testarch/trace/checklist.md +0 -655
- package/templates/commonproject/_bmad/bmm/workflows/testarch/trace/instructions.md +0 -1047
- package/templates/commonproject/_bmad/bmm/workflows/testarch/trace/trace-template.md +0 -675
- package/templates/commonproject/_bmad/bmm/workflows/testarch/trace/workflow.yaml +0 -55
- package/templates/commonproject/_bmad/bmm/workflows/workflow-status/init/instructions.md +0 -346
- package/templates/commonproject/_bmad/bmm/workflows/workflow-status/init/workflow.yaml +0 -29
- package/templates/commonproject/_bmad/bmm/workflows/workflow-status/instructions.md +0 -395
- package/templates/commonproject/_bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +0 -103
- package/templates/commonproject/_bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +0 -100
- package/templates/commonproject/_bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml +0 -103
- package/templates/commonproject/_bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml +0 -100
- package/templates/commonproject/_bmad/bmm/workflows/workflow-status/project-levels.yaml +0 -59
- package/templates/commonproject/_bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +0 -24
- package/templates/commonproject/_bmad/bmm/workflows/workflow-status/workflow.yaml +0 -30
- package/templates/commonproject/_bmad/cis/agents/brainstorming-coach.md +0 -66
- package/templates/commonproject/_bmad/cis/agents/creative-problem-solver.md +0 -66
- package/templates/commonproject/_bmad/cis/agents/design-thinking-coach.md +0 -66
- package/templates/commonproject/_bmad/cis/agents/innovation-strategist.md +0 -66
- package/templates/commonproject/_bmad/cis/agents/presentation-master.md +0 -72
- package/templates/commonproject/_bmad/cis/agents/storyteller/storyteller.md +0 -63
- package/templates/commonproject/_bmad/cis/config.yaml +0 -11
- package/templates/commonproject/_bmad/cis/teams/creative-squad.yaml +0 -7
- package/templates/commonproject/_bmad/cis/teams/default-party.csv +0 -12
- package/templates/commonproject/_bmad/cis/workflows/README.md +0 -139
- package/templates/commonproject/_bmad/cis/workflows/design-thinking/README.md +0 -56
- package/templates/commonproject/_bmad/cis/workflows/design-thinking/design-methods.csv +0 -31
- package/templates/commonproject/_bmad/cis/workflows/design-thinking/instructions.md +0 -202
- package/templates/commonproject/_bmad/cis/workflows/design-thinking/template.md +0 -111
- package/templates/commonproject/_bmad/cis/workflows/design-thinking/workflow.yaml +0 -27
- package/templates/commonproject/_bmad/cis/workflows/innovation-strategy/README.md +0 -56
- package/templates/commonproject/_bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +0 -31
- package/templates/commonproject/_bmad/cis/workflows/innovation-strategy/instructions.md +0 -276
- package/templates/commonproject/_bmad/cis/workflows/innovation-strategy/template.md +0 -189
- package/templates/commonproject/_bmad/cis/workflows/innovation-strategy/workflow.yaml +0 -27
- package/templates/commonproject/_bmad/cis/workflows/problem-solving/README.md +0 -56
- package/templates/commonproject/_bmad/cis/workflows/problem-solving/instructions.md +0 -252
- package/templates/commonproject/_bmad/cis/workflows/problem-solving/solving-methods.csv +0 -31
- package/templates/commonproject/_bmad/cis/workflows/problem-solving/template.md +0 -165
- package/templates/commonproject/_bmad/cis/workflows/problem-solving/workflow.yaml +0 -27
- package/templates/commonproject/_bmad/cis/workflows/storytelling/README.md +0 -58
- package/templates/commonproject/_bmad/cis/workflows/storytelling/instructions.md +0 -293
- package/templates/commonproject/_bmad/cis/workflows/storytelling/story-types.csv +0 -26
- package/templates/commonproject/_bmad/cis/workflows/storytelling/template.md +0 -113
- package/templates/commonproject/_bmad/cis/workflows/storytelling/workflow.yaml +0 -27
- package/templates/commonproject/_bmad/core/agents/bmad-master.md +0 -63
- package/templates/commonproject/_bmad/core/config.yaml +0 -9
- package/templates/commonproject/_bmad/core/resources/excalidraw/README.md +0 -160
- package/templates/commonproject/_bmad/core/resources/excalidraw/excalidraw-helpers.md +0 -127
- package/templates/commonproject/_bmad/core/resources/excalidraw/library-loader.md +0 -50
- package/templates/commonproject/_bmad/core/resources/excalidraw/validate-json-instructions.md +0 -79
- package/templates/commonproject/_bmad/core/tasks/index-docs.xml +0 -65
- package/templates/commonproject/_bmad/core/tasks/review-adversarial-general.xml +0 -41
- package/templates/commonproject/_bmad/core/tasks/shard-doc.xml +0 -109
- package/templates/commonproject/_bmad/core/tasks/workflow.xml +0 -235
- package/templates/commonproject/_bmad/core/workflows/advanced-elicitation/methods.csv +0 -51
- package/templates/commonproject/_bmad/core/workflows/advanced-elicitation/workflow.xml +0 -117
- package/templates/commonproject/_bmad/core/workflows/brainstorming/brain-methods.csv +0 -62
- package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-01-session-setup.md +0 -197
- package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-01b-continue.md +0 -122
- package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-02a-user-selected.md +0 -225
- package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +0 -237
- package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-02c-random-selection.md +0 -209
- package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +0 -264
- package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-03-technique-execution.md +0 -399
- package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-04-idea-organization.md +0 -303
- package/templates/commonproject/_bmad/core/workflows/brainstorming/template.md +0 -15
- package/templates/commonproject/_bmad/core/workflows/brainstorming/workflow.md +0 -58
- package/templates/commonproject/_bmad/core/workflows/party-mode/steps/step-01-agent-loading.md +0 -139
- package/templates/commonproject/_bmad/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +0 -204
- package/templates/commonproject/_bmad/core/workflows/party-mode/steps/step-03-graceful-exit.md +0 -159
- package/templates/commonproject/_bmad/core/workflows/party-mode/workflow.md +0 -206
- package/templates/commonproject/_bmad/custom/config.yaml +0 -11
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/data/ac-sufficiency-rubric.md +0 -33
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/data/audit-comment-template.md +0 -54
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/data/event-schemas.md +0 -58
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-01-init.md +0 -173
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-02-triage.md +0 -159
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-03-refine.md +0 -149
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-04-implement.md +0 -147
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-05-review.md +0 -146
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-06-qa.md +0 -199
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-07-complete.md +0 -141
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-e/step-01-assess.md +0 -102
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-e/step-02-apply.md +0 -85
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-v/step-01-validate.md +0 -154
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/workflow-plan-ticket-lifecycle.md +0 -346
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/workflow.md +0 -84
- package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/workflow.yaml +0 -39
- package/templates/commonproject/mise.toml +0 -38
- package/templates/hermes-agent/.codegraph/daemon.pid +0 -6
- package/templates/hermes-agent/.omo/run-continuation/ses_0e5b28303ffeXxL53hZjKggXDW.json +0 -10
- package/templates/hermes-agent/README.md +0 -151
- package/templates/hermes-agent/config.example.toml +0 -1
- package/templates/hermes-agent/docs/architecture.md +0 -111
- package/templates/hermes-agent/docs/fleet-control-plane/README.md +0 -35
- package/templates/hermes-agent/docs/fleet-control-plane/architecture.md +0 -253
- package/templates/hermes-agent/docs/fleet-control-plane/epics-and-stories.md +0 -280
- package/templates/hermes-agent/docs/fleet-control-plane/implementation-readiness-report-2026-06-27.md +0 -118
- package/templates/hermes-agent/docs/fleet-control-plane/prd.md +0 -141
- package/templates/hermes-agent/docs/operations.md +0 -237
- package/templates/hermes-agent/docs/runbooks/runtime-checkpoint-repair.md +0 -171
- package/templates/hermes-agent/docs/sentinel/README.md +0 -119
- package/templates/hermes-agent/docs/sentinel/architecture.md +0 -204
- package/templates/hermes-agent/docs/sentinel/development.md +0 -277
- package/templates/hermes-agent/docs/sentinel/providers.md +0 -203
- package/templates/hermes-agent/docs/sentinel.md +0 -18
- package/templates/hermes-agent/install-local.sh +0 -216
- package/templates/hermes-agent/runtime-scaffold/.gitattributes +0 -10
- package/templates/hermes-agent/runtime-scaffold/README.md +0 -53
- package/templates/hermes-agent/runtime-scaffold/bloodbank-consumer.py +0 -181
- package/templates/hermes-agent/runtime-scaffold/decisions/.gitkeep +0 -2
- package/templates/hermes-agent/runtime-scaffold/logs/.gitkeep +0 -1
- package/templates/hermes-agent/runtime-scaffold/memories/MEMORY.md +0 -47
- package/templates/hermes-agent/runtime-scaffold/memories/USER.md +0 -51
- package/templates/hermes-agent/scripts/backfill-fleet-sot.sh +0 -270
- package/templates/hermes-agent/scripts/fleet-sync.sh +0 -369
- package/templates/hermes-agent/scripts/migrate-unify.sh +0 -252
- package/templates/hermes-agent/scripts/repair-runtime-checkpoint.sh +0 -122
- package/templates/hermes-agent/scripts/retrofit-70-envfile.sh +0 -129
- package/templates/hermes-agent/scripts/unify-pm.sh +0 -148
- package/templates/hermes-agent/template/.runtime-scaffold/bloodbank-consumer.py +0 -181
- package/templates/hermes-agent/tests/test_bloodbank_consumer_contract.py +0 -138
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
# Heartbeat sentinel architecture
|
|
2
|
-
|
|
3
|
-
This guide explains how the heartbeat sentinel engine works: the heartbeat loop,
|
|
4
|
-
the provider abstraction, the normalized state model, and the autonomous
|
|
5
|
-
adversarial-review protocol. Read the [handoff overview](README.md) first for the
|
|
6
|
-
big picture and the file map.
|
|
7
|
-
|
|
8
|
-
## Who owns it
|
|
9
|
-
|
|
10
|
-
The sentinel is owned by the unified `pm` role. It's materialized into a project
|
|
11
|
-
at `agents/hermes/pm/`, where the PM carries its `role.yaml`, runtime, the
|
|
12
|
-
sentinel prompt, the enforcement tools under `.scripts/sentinel/`, and the
|
|
13
|
-
heartbeat runner. There is no separate `scrum-master` role; its
|
|
14
|
-
continuous-ticket-sentinel duties fold into the PM and run out-of-band on the
|
|
15
|
-
PM's heartbeat timer.
|
|
16
|
-
|
|
17
|
-
You provision it by provisioning the PM: run Copier with `--data role=pm` (the
|
|
18
|
-
`70-systemd.sh` step installs the fused `heartbeat` timer that drives the
|
|
19
|
-
sentinel). For the exact commands, see [Development guide:
|
|
20
|
-
provisioning](development.md#provisioning-the-pm-manual).
|
|
21
|
-
|
|
22
|
-
## The heartbeat loop
|
|
23
|
-
|
|
24
|
-
A scheduler (`systemd` timer on Linux, `launchd` agent on macOS) fires the
|
|
25
|
-
runner, `template/.scripts/heartbeat.sh`, about once a minute. Each tick fuses
|
|
26
|
-
two jobs: a board-reconciliation **sentinel pass** and a **gated runtime
|
|
27
|
-
checkpoint**. The sentinel pass is a cheap heartbeat that decides whether a
|
|
28
|
-
full, LLM-backed reconciliation pass is worth running; the checkpoint
|
|
29
|
-
(commit+push of the runtime submodule) is gated to at most once an hour. This
|
|
30
|
-
keeps cost low while staying responsive.
|
|
31
|
-
|
|
32
|
-
The sentinel reads the work-state file,
|
|
33
|
-
`runtime/continuous-ticket-sentinel-state.json`, and chooses one of these
|
|
34
|
-
decisions:
|
|
35
|
-
|
|
36
|
-
- `skip:active-worker`: a healthy worker process is already moving the active
|
|
37
|
-
ticket, so there's nothing to do.
|
|
38
|
-
- `skip:cooldown`: a full pass ran too recently (within
|
|
39
|
-
`SENTINEL_FULL_RUN_COOLDOWN_SECONDS`, default 300).
|
|
40
|
-
- `skip:blocker-cooldown`: the project is blocked and a full pass ran within
|
|
41
|
-
`SENTINEL_BLOCKED_FULL_RUN_COOLDOWN_SECONDS`, default 900. This is the
|
|
42
|
-
back-off that prevents a blocked project from burning passes.
|
|
43
|
-
- `run:full`: none of the above hold, so the runner executes a full pass.
|
|
44
|
-
|
|
45
|
-
A full pass runs `hermes chat` with the rendered prompt,
|
|
46
|
-
`sentinel.prompt.md`. The prompt tells the agent to reconcile
|
|
47
|
-
the board, the local evidence, and live worker state, then either delegate one
|
|
48
|
-
worker, monitor the active worker, run an autonomous adversarial review, or
|
|
49
|
-
record a blocker. A pass never ends in a "looks good, waiting on the operator"
|
|
50
|
-
state: the adversarial review acts on its own verdict.
|
|
51
|
-
|
|
52
|
-
The runner writes the outcome back to the state file so dashboards and the next
|
|
53
|
-
heartbeat can read it. The required fields are `source`, `agent_id`, `repo`,
|
|
54
|
-
`ticket_provider`, `status`, `summary`, `reason`, `updated_at`,
|
|
55
|
-
`last_activity_at`, and `log_path`. The `status` is one of `idle`, `checking`,
|
|
56
|
-
`active`, `blocked`, `stalled`, or `error`.
|
|
57
|
-
|
|
58
|
-
<!-- prettier-ignore -->
|
|
59
|
-
> [!NOTE]
|
|
60
|
-
> The heartbeat must never use the state file's own modification time as a
|
|
61
|
-
> liveness signal. The heartbeat rewrites that file every minute, which would
|
|
62
|
-
> make a stale lane look perpetually fresh. The runner uses recorded worker
|
|
63
|
-
> process markers and `last_activity_at` instead.
|
|
64
|
-
|
|
65
|
-
## The provider abstraction
|
|
66
|
-
|
|
67
|
-
The engine never calls a ticket system directly. It calls a normalized adapter
|
|
68
|
-
contract, `template/.scripts/lib/ticket-provider.sh`, which exposes a single
|
|
69
|
-
function, `tp`, that dispatches to one provider implementation under
|
|
70
|
-
`template/.scripts/providers/`. The active provider is chosen at provision time
|
|
71
|
-
through the `ticket_provider` question and recorded in `role.yaml` under
|
|
72
|
-
`ticket_provider.name`.
|
|
73
|
-
|
|
74
|
-
This is what lets one engine serve three back ends: Trello, Plane, and Linear.
|
|
75
|
-
For the full contract and the per-provider details, see
|
|
76
|
-
[Providers](providers.md).
|
|
77
|
-
|
|
78
|
-
### Normalized states
|
|
79
|
-
|
|
80
|
-
The engine reasons in provider-neutral states. Each adapter maps these to the
|
|
81
|
-
concrete states, groups, or lists of its back end.
|
|
82
|
-
|
|
83
|
-
| Normalized state | Meaning |
|
|
84
|
-
| --- | --- |
|
|
85
|
-
| `backlog` | Not yet ready to start. |
|
|
86
|
-
| `unstarted` | Ready, not started. |
|
|
87
|
-
| `started` | A worker is actively implementing. |
|
|
88
|
-
| `in_review` | Implementation complete, awaiting review. |
|
|
89
|
-
| `completed` | Done. |
|
|
90
|
-
|
|
91
|
-
The mapping is configurable per project in `role.yaml` under
|
|
92
|
-
`ticket_provider`, so non-standard boards still work. For example, you can set
|
|
93
|
-
`in_review: "In Review"` and `completed: "Done"` to match your board's column
|
|
94
|
-
names.
|
|
95
|
-
|
|
96
|
-
## Autonomous adversarial review (act, do not wait)
|
|
97
|
-
|
|
98
|
-
This is the **normal per-pass path** for a ticket that has reached review: an
|
|
99
|
-
independent, rigorous **adversarial review** that renders a verdict and the loop
|
|
100
|
-
**acts on it autonomously**. It is not a narrow escape hatch and not an exception
|
|
101
|
-
to a no-close rule — it is how reviewed work moves. The full protocol ships into
|
|
102
|
-
each deployment at
|
|
103
|
-
`template/.scripts/sentinel/docs/autonomous-delegated-review.md`. Here's the
|
|
104
|
-
shape.
|
|
105
|
-
|
|
106
|
-
When the sentinel finds a ticket in the review lane, it delegates the review to
|
|
107
|
-
an **independent** reviewer. There is no mandatory grace window:
|
|
108
|
-
`reconcile.grace_hours` defaults to `0`, so the reviewer acts immediately. It
|
|
109
|
-
remains an optional operator knob — set it `>0` to reintroduce a deliberate wait
|
|
110
|
-
— but the default never parks completed work waiting on the operator. The
|
|
111
|
-
reviewer must not be the agent that implemented the ticket. Acting as an
|
|
112
|
-
adversarial microscope, the reviewer tries to break the work, checking it against
|
|
113
|
-
the operator's **locked intent**: the acceptance criteria, the active milestone,
|
|
114
|
-
the project's horizon model, and the product north star.
|
|
115
|
-
|
|
116
|
-
The reviewer then runs the decision gate:
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
.scripts/sentinel/bin/issue-autonomous-review.sh <ISSUE> <REPORT> --close
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
This script couples four checks so an acceptance can't slip through on a weak
|
|
123
|
-
basis:
|
|
124
|
-
|
|
125
|
-
1. The close gate passes (`issue-close-gate.sh` confirms the evidence file is
|
|
126
|
-
complete).
|
|
127
|
-
2. The reviewer attests independence from the implementer.
|
|
128
|
-
3. Drift is `none` or `minor`, never `significant`.
|
|
129
|
-
4. There are no unresolved critical or high findings.
|
|
130
|
-
|
|
131
|
-
If all four hold, the script renders an `accepted` verdict and emits a decision
|
|
132
|
-
event with `decision=accepted`. **Treat review as done:** an accepted `in_review`
|
|
133
|
-
ticket counts as `completed` for dependents and flow, so downstream work is
|
|
134
|
-
unblocked immediately. By default the ticket **stays in the review lane**, which
|
|
135
|
-
serves as the operator's deferred-QA queue — it is not auto-transitioned to
|
|
136
|
-
`completed`. The `--close` flag is optional (an operator QA sweep can use it to
|
|
137
|
-
drive `tp transition <id> completed`); the normal loop omits it. If any check
|
|
138
|
-
fails, the ticket goes back to / stays active and the script emits
|
|
139
|
-
`decision=held` with the reason. When in doubt, it holds.
|
|
140
|
-
|
|
141
|
-
This is an adversarial review, not a lightweight or sanity check — the reviewer
|
|
142
|
-
is hard to satisfy. It never clears tickets blocked on credentials, external
|
|
143
|
-
access, paid actions, or undecided product decisions. Those genuine out-of-scope
|
|
144
|
-
blockers are recorded and waited on exactly as before.
|
|
145
|
-
|
|
146
|
-
### Downstream regression rollback
|
|
147
|
-
|
|
148
|
-
Deferring operator QA buys speed, and the safety valve is a downstream regression
|
|
149
|
-
rollback. If a later dependent proves a review-accepted feature is **actually
|
|
150
|
-
broken**, the loop moves that feature back to active (`started` if a worker takes
|
|
151
|
-
it now, else `unstarted`) as a prerequisite of the dependent, comments naming the
|
|
152
|
-
dependent and the symptom, and emits
|
|
153
|
-
|
|
154
|
-
```text
|
|
155
|
-
bloodbank.v1.repo.<repo>.issue.review_rollback.recorded
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
carrying `{issue, surfaced_by, reason}`. The dependent stays blocked on the
|
|
159
|
-
prerequisite until the fix lands. This is expected and healthy — it is the trade
|
|
160
|
-
for deferring operator QA, not a failure of the review.
|
|
161
|
-
|
|
162
|
-
### Decision events
|
|
163
|
-
|
|
164
|
-
Every adversarial-review decision, whether `accepted` or `held`, emits a local
|
|
165
|
-
BloodBank-style event:
|
|
166
|
-
|
|
167
|
-
```text
|
|
168
|
-
bloodbank.v1.repo.<repo>.issue.autonomous_review.decided
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
The event carries `issue`, `decision`, `drift`, `close_gate`, `reviewer_agent`,
|
|
172
|
-
`evidence_file`, and `report_file`. Together with the
|
|
173
|
-
`issue.review_rollback.recorded` event it forms the operator's queryable
|
|
174
|
-
accountability trail for every autonomous decision. The emitter is
|
|
175
|
-
`template/.scripts/sentinel/bin/emit-event.py`, and the event types are
|
|
176
|
-
documented in `template/.scripts/sentinel/docs/bloodbank-events.md`. Events
|
|
177
|
-
append to `_bmad-output/implementation-artifacts/bloodbank-events.jsonl`, a
|
|
178
|
-
local spool that doesn't require NATS, so the loop stays reliable offline.
|
|
179
|
-
|
|
180
|
-
## How the parts connect
|
|
181
|
-
|
|
182
|
-
A full pass moves through these components in order:
|
|
183
|
-
|
|
184
|
-
1. The scheduler (`systemd` timer or `launchd` agent) triggers the heartbeat
|
|
185
|
-
runner (`heartbeat.sh`).
|
|
186
|
-
2. The runner's sentinel logic decides `run:full` and calls `hermes chat` with
|
|
187
|
-
the prompt.
|
|
188
|
-
3. The agent reads the runtime protocol docs and reconciles state by calling
|
|
189
|
-
`tp` (the adapter) for board data.
|
|
190
|
-
4. The agent delegates a worker, monitors one, records a blocker, or runs an
|
|
191
|
-
autonomous adversarial review.
|
|
192
|
-
5. An adversarial review runs the enforcement tools in `.scripts/sentinel/bin/`,
|
|
193
|
-
which render an `accepted` or `held` verdict and emit a decision event; the
|
|
194
|
-
loop acts on the verdict (treat as done and unblock dependents, or send the
|
|
195
|
-
ticket back to active) without waiting on the operator.
|
|
196
|
-
6. The runner writes the outcome to the state file for the next tick, then
|
|
197
|
-
opportunistically checkpoints the runtime (gated to ~hourly) before exiting.
|
|
198
|
-
|
|
199
|
-
## Read next
|
|
200
|
-
|
|
201
|
-
- [Providers](providers.md): the adapter contract and how to add or verify a
|
|
202
|
-
provider.
|
|
203
|
-
- [Development guide](development.md): editing, validating, propagating, and the
|
|
204
|
-
open roadmap.
|
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
# Heartbeat sentinel development guide
|
|
2
|
-
|
|
3
|
-
This guide covers the day-to-day work of changing the heartbeat sentinel engine:
|
|
4
|
-
how to edit it, how to validate changes locally, how to provision and propagate
|
|
5
|
-
it, and what to watch out for. It closes with the open roadmap. Read the
|
|
6
|
-
[handoff overview](README.md) and [Architecture](architecture.md) first.
|
|
7
|
-
|
|
8
|
-
## Two doc trees, kept in sync
|
|
9
|
-
|
|
10
|
-
The engine has two documentation trees, and they serve different readers. When
|
|
11
|
-
you change behavior, update both.
|
|
12
|
-
|
|
13
|
-
- `docs/sentinel/` (this directory) holds the **developer** docs for working
|
|
14
|
-
on the template.
|
|
15
|
-
- `template/.scripts/sentinel/docs/` holds the **runtime** protocol docs
|
|
16
|
-
that render into every provisioned project. The running agent reads these at
|
|
17
|
-
run time. They are `autonomous-delegated-review.md`,
|
|
18
|
-
`continuous-ticket-orchestration.md`, and `bloodbank-events.md`.
|
|
19
|
-
|
|
20
|
-
## Making a change
|
|
21
|
-
|
|
22
|
-
Most engine logic lives under `template/.scripts/sentinel/` and
|
|
23
|
-
`template/.scripts/providers/`, and the heartbeat runner is
|
|
24
|
-
`template/.scripts/heartbeat.sh`. The flow is the same for any change.
|
|
25
|
-
|
|
26
|
-
1. Edit the runner, the engine file, the adapter, or the prompt.
|
|
27
|
-
2. Validate locally with the steps in [Validating changes
|
|
28
|
-
locally](#validating-changes-locally).
|
|
29
|
-
3. If you changed behavior, update the runtime protocol docs and these developer
|
|
30
|
-
docs.
|
|
31
|
-
4. Commit. Deployments pick up the change with `copier update` (see
|
|
32
|
-
[Propagating changes](#propagating-changes)).
|
|
33
|
-
|
|
34
|
-
The prompt is a Jinja template,
|
|
35
|
-
`template/.scripts/sentinel.prompt.md.jinja` (rendered to
|
|
36
|
-
`.scripts/sentinel.prompt.md`). It uses `{{ display_name }}`,
|
|
37
|
-
`{{ target_repo }}`, `{{ role }}`, and `{{ ticket_provider }}`. Copier renders
|
|
38
|
-
it during provisioning.
|
|
39
|
-
|
|
40
|
-
## Validating changes locally
|
|
41
|
-
|
|
42
|
-
You can validate everything except live-board behavior without credentials.
|
|
43
|
-
|
|
44
|
-
First, check shell syntax across the engine:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
for f in template/.scripts/lib/ticket-provider.sh \
|
|
48
|
-
template/.scripts/providers/*.sh \
|
|
49
|
-
template/.scripts/heartbeat.sh \
|
|
50
|
-
template/.scripts/sentinel/bin/*.sh; do
|
|
51
|
-
sh -n "$f" || bash -n "$f" || echo "FAIL $f"
|
|
52
|
-
done
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Next, check the inline Python blocks. The shell scripts embed Python in `<<'PY'`
|
|
56
|
-
heredocs and `python3 -c '...'` calls, and a quoting mistake there only surfaces
|
|
57
|
-
at run time. This extraction script parses each block:
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
python3 - <<'PY'
|
|
61
|
-
import re, pathlib, ast
|
|
62
|
-
import glob
|
|
63
|
-
bad = 0
|
|
64
|
-
for f in glob.glob("template/.scripts/**/*.sh", recursive=True):
|
|
65
|
-
text = pathlib.Path(f).read_text()
|
|
66
|
-
for m in re.finditer(r"<<'PY'\n(.*?)\nPY\b", text, re.S):
|
|
67
|
-
try: ast.parse(m.group(1))
|
|
68
|
-
except SyntaxError as e: bad += 1; print(f"heredoc {f}: {e}")
|
|
69
|
-
for m in re.finditer(r"python3 -c '(.*?)'", text, re.S):
|
|
70
|
-
try: ast.parse(m.group(1))
|
|
71
|
-
except SyntaxError as e: bad += 1; print(f"inline {f}: {e}")
|
|
72
|
-
print("OK" if not bad else f"{bad} FAILED")
|
|
73
|
-
PY
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
Finally, run the enforcement quartet end to end with a mock provider. This
|
|
77
|
-
proves the accept and hold branches, the decision-event emission, and the
|
|
78
|
-
optional adapter-based transition without touching a real board.
|
|
79
|
-
|
|
80
|
-
<details>
|
|
81
|
-
<summary>Mock-provider end-to-end test</summary>
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
T=$(mktemp -d); RD="$T/agents/hermes/pm"
|
|
85
|
-
mkdir -p "$RD/.scripts/lib" "$RD/.scripts/providers" "$RD/.scripts/sentinel/bin" \
|
|
86
|
-
"$T/_bmad-output/implementation-artifacts/issue-evidence"
|
|
87
|
-
( cd "$T" && git init -q && git config user.email t@t && git config user.name t )
|
|
88
|
-
cp template/.scripts/lib/ticket-provider.sh "$RD/.scripts/lib/"
|
|
89
|
-
cp template/.scripts/sentinel/bin/* "$RD/.scripts/sentinel/bin/"
|
|
90
|
-
printf 'repo: demo\nrole: pm\nagent_id: demo-pm\nticket_provider:\n name: fake\nreconcile:\n grace_hours: 0\n auto_review: true\n' > "$RD/role.yaml"
|
|
91
|
-
printf '#!/usr/bin/env sh\nop="$1"; shift 2>/dev/null||true\ncase "$op" in\n transition) echo "FAKE $1 -> $2" >&2; echo ok;;\n comment) echo okc;; *) echo f;; esac\n' > "$RD/.scripts/providers/fake.sh"
|
|
92
|
-
chmod +x "$RD/.scripts/providers/fake.sh" "$RD/.scripts/sentinel/bin/"*.sh
|
|
93
|
-
EV="$T/_bmad-output/implementation-artifacts/issue-evidence"
|
|
94
|
-
printf '## Issue\n- Worker: codex\n## Acceptance Criteria\n- AC1: done\n## Repo Changes\n- x\n## Verification\n- Command: t\n- Result: pass\n## Ledger Update\n- Ledger updated: yes\n## Known Gaps\n- None\n## Close Recommendation\nClose recommendation: ready\n' > "$EV/TIC-1.md"
|
|
95
|
-
printf '## Reviewer\n- Reviewer agent: rev\n- Independent of implementer: yes\n## Locked Intent Baseline\n- Acceptance criteria source: board\n## Drift Assessment\n- Drift assessment: none\n## Adversarial Findings\n- Critical/high findings: none\n## Decision\n- Decision: accept\n' > "$EV/TIC-1.review.md"
|
|
96
|
-
export BLOODBANK_EVENTS_LOG="$T/e.jsonl"
|
|
97
|
-
bash "$RD/.scripts/sentinel/bin/issue-autonomous-review.sh" TIC-1 "$EV/TIC-1.review.md" --close
|
|
98
|
-
rm -rf "$T"
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
A passing run prints `ACCEPTED — treat as done (no human wait)`,
|
|
102
|
-
`FAKE TIC-1 -> completed` (from the optional `--close` sweep this test passes),
|
|
103
|
-
and exits 0.
|
|
104
|
-
|
|
105
|
-
</details>
|
|
106
|
-
|
|
107
|
-
## Local install (one command)
|
|
108
|
-
|
|
109
|
-
For a local, single-machine deploy — the lowest-friction path, and the right
|
|
110
|
-
one for handing the system to someone else — use `install-local.sh` at the
|
|
111
|
-
repository root instead of driving Copier by hand. From inside the target
|
|
112
|
-
project:
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
export PLANE_API_KEY=<key> # or LINEAR_API_KEY / TRELLO_KEY + TRELLO_TOKEN
|
|
116
|
-
curl -fsSL https://raw.githubusercontent.com/delorenj/hermes-agent-template/main/install-local.sh | sh
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
The script:
|
|
120
|
-
|
|
121
|
-
1. installs `hermes` (its own installer) and `copier` if either is missing,
|
|
122
|
-
2. writes a host-correct local `config.toml` (detects the hermes binary, leaves
|
|
123
|
-
cloud fields blank) if one doesn't exist,
|
|
124
|
-
3. lists the boards on the chosen provider and prompts for the one to manage,
|
|
125
|
-
4. provisions the `pm` role through Copier with all cloud, Telegram, and the
|
|
126
|
-
gateway step skipped,
|
|
127
|
-
5. binds the PM to the existing board (it never creates one — it scrubs the
|
|
128
|
-
provider key from Copier's environment so `42-ticket-provider.sh` skips board
|
|
129
|
-
creation),
|
|
130
|
-
6. installs the PM's heartbeat timer (board-reconciliation sentinel pass + gated
|
|
131
|
-
runtime checkpoint) as a `launchd` agent on macOS or a `systemd` timer on
|
|
132
|
-
Linux,
|
|
133
|
-
7. smoke-tests the board connection through the adapter.
|
|
134
|
-
|
|
135
|
-
Useful environment overrides (skip the prompts): `HAT_REPO`, `HAT_PROVIDER`,
|
|
136
|
-
`HAT_ROLES`, `HAT_PLANE_WORKSPACE`, `HAT_PLANE_PROJECT`, `HAT_LINEAR_TEAM`,
|
|
137
|
-
`HAT_TRELLO_BOARD`, and `HAT_DRY_RUN=1` to preview without changing anything.
|
|
138
|
-
|
|
139
|
-
This local path does not wire Telegram or email. Those are convenience layers in
|
|
140
|
-
the `pjangler` provisioner, not requirements for a working agent — talk to the
|
|
141
|
-
agent with `agents/hermes/pm/hermes chat "..."` and let the sentinel run on its
|
|
142
|
-
heartbeat timer.
|
|
143
|
-
|
|
144
|
-
## Provisioning the PM (manual)
|
|
145
|
-
|
|
146
|
-
To drive Copier directly instead of using `install-local.sh`, provision the PM
|
|
147
|
-
with:
|
|
148
|
-
|
|
149
|
-
```bash
|
|
150
|
-
cd /path/to/your-project
|
|
151
|
-
copier copy gh:delorenj/hermes-agent-template ./agents/hermes/pm \
|
|
152
|
-
--data role=pm \
|
|
153
|
-
--data target_repo=<repo> \
|
|
154
|
-
--data ticket_provider=<linear|plane|trello>
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
The `_tasks` chain in `copier.yml` runs the numbered provisioning scripts in
|
|
158
|
-
order. Several of them reach outside the repository.
|
|
159
|
-
|
|
160
|
-
<!-- prettier-ignore -->
|
|
161
|
-
> [!CAUTION]
|
|
162
|
-
> Full provisioning is outward-facing and partly interactive.
|
|
163
|
-
> `20-runtime-repo.sh` creates a private GitHub repo with `gh repo create`,
|
|
164
|
-
> `30-telegram.sh` prompts for a BotFather token and blocks waiting for input,
|
|
165
|
-
> and `42-ticket-provider.sh` can create a Plane project. Don't run full
|
|
166
|
-
> provisioning unattended.
|
|
167
|
-
|
|
168
|
-
Use the `SKIP_*` environment flags for a local or lean install. Each numbered
|
|
169
|
-
script checks its flag and skips cleanly.
|
|
170
|
-
|
|
171
|
-
| Flag | Skips |
|
|
172
|
-
| --- | --- |
|
|
173
|
-
| `SKIP_TELEGRAM` | The interactive BotFather token step. |
|
|
174
|
-
| `SKIP_RUNTIME_REPO` | Creating the GitHub runtime repo. |
|
|
175
|
-
| `SKIP_PLANE` | Creating a Plane project. |
|
|
176
|
-
| `SKIP_BLOODBANK` | Installing the BloodBank consumer. |
|
|
177
|
-
| `SKIP_SYSTEMD` | Installing `systemd` units (gateway, consumer, heartbeat timer). |
|
|
178
|
-
|
|
179
|
-
For example, a local install that creates no cloud resources:
|
|
180
|
-
|
|
181
|
-
```bash
|
|
182
|
-
SKIP_TELEGRAM=1 SKIP_RUNTIME_REPO=1 SKIP_PLANE=1 SKIP_BLOODBANK=1 \
|
|
183
|
-
copier copy gh:delorenj/hermes-agent-template ./agents/hermes/pm \
|
|
184
|
-
--data role=pm --data target_repo=<repo> --data ticket_provider=linear
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
After provisioning, set the board binding in
|
|
188
|
-
`agents/hermes/pm/role.yaml`. For Linear, set `ticket_provider.team`
|
|
189
|
-
to the team key. Make the provider key available to the heartbeat's environment:
|
|
190
|
-
on Linux through a `systemd` `EnvironmentFile` (for example
|
|
191
|
-
`~/.hermes/<agent_id>.env`); on macOS the `launchd` agent sources that same
|
|
192
|
-
per-agent env file, so write the key there.
|
|
193
|
-
|
|
194
|
-
`SKIP_SYSTEMD` gates the gateway, consumer, and the fused `heartbeat` timer in
|
|
195
|
-
`70-systemd.sh`. The heartbeat timer is what drives the sentinel pass and the
|
|
196
|
-
gated checkpoint, so a local install that wants the sentinel running must leave
|
|
197
|
-
`SKIP_SYSTEMD` unset (or install the timer afterward).
|
|
198
|
-
|
|
199
|
-
## Propagating changes
|
|
200
|
-
|
|
201
|
-
The template is the single source of truth. Deployments pick up engine changes
|
|
202
|
-
with `copier update`, which performs a three-way merge against the recorded
|
|
203
|
-
answers in `.copier-answers.yml`. Local provisioning state, such as board ids
|
|
204
|
-
and tokens, is preserved while the engine logic refreshes.
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
cd /path/to/your-project
|
|
208
|
-
copier update ./agents/hermes/pm
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
<!-- prettier-ignore -->
|
|
212
|
-
> [!NOTE]
|
|
213
|
-
> `copier update` re-runs the `_tasks` chain. Pass the same `SKIP_*` flags you
|
|
214
|
-
> used at provision time so the update doesn't try to recreate cloud resources.
|
|
215
|
-
|
|
216
|
-
## History: consolidation into the PM heartbeat
|
|
217
|
-
|
|
218
|
-
The sentinel began as a bespoke loop on the `pm` role, was briefly extracted into
|
|
219
|
-
a standalone `scrum-master` role with its own `continuous-ticket-sentinel` timer,
|
|
220
|
-
and has now been folded back into the unified PM. Today there is exactly one
|
|
221
|
-
role (`pm`), one engine (under `.scripts/sentinel/`), and one timer
|
|
222
|
-
(`hermes-<agent>-heartbeat.timer`) that fuses the board-reconciliation sentinel
|
|
223
|
-
pass with a gated runtime checkpoint. The old per-agent
|
|
224
|
-
`hermes-<agent>-continuous-ticket-sentinel.timer` and the separate
|
|
225
|
-
`hermes-<agent>-checkpoint.timer` are gone; both are replaced by the single
|
|
226
|
-
`heartbeat` timer. The earlier standalone-role design is recoverable from Git
|
|
227
|
-
history if you ever need to compare.
|
|
228
|
-
|
|
229
|
-
## Known gotchas
|
|
230
|
-
|
|
231
|
-
These cost real debugging time. Watch for them.
|
|
232
|
-
|
|
233
|
-
- **The interactive Telegram step.** `30-telegram.sh` uses `read` to capture a
|
|
234
|
-
bot token, so it blocks unattended runs. Always pass `SKIP_TELEGRAM=1` for
|
|
235
|
-
automated provisioning.
|
|
236
|
-
- **The dispatcher needs Bash.** `ticket-provider.sh` reads
|
|
237
|
-
`${BASH_SOURCE[0]}`. Source it under `bash`, not `sh`. The adapters
|
|
238
|
-
themselves are POSIX shell.
|
|
239
|
-
- **`emit-event.py` blocks on standard input.** When it runs in a
|
|
240
|
-
non-interactive context, it reads standard input for an optional JSON payload.
|
|
241
|
-
Redirect standard input from `/dev/null` when you call it from another script.
|
|
242
|
-
The enforcement scripts already do this.
|
|
243
|
-
- **Brace defaults in `dash`.** Avoid `${2:-{}}` in adapter scripts. The `dash`
|
|
244
|
-
shell mis-parses the `{}` default and appends a stray brace. Hoist the default
|
|
245
|
-
into a variable instead.
|
|
246
|
-
- **Quoting in `python3 -c`.** See the warning in
|
|
247
|
-
[Providers: adding a provider](providers.md#adding-a-provider).
|
|
248
|
-
- **`flock` is Linux-only.** macOS doesn't ship `flock`, so the heartbeat runner
|
|
249
|
-
falls back to an atomic `mkdir` lock. Keep both paths working in the runner.
|
|
250
|
-
- **Plane state is a bare UUID.** The Plane v1 API returns an issue's `state` as
|
|
251
|
-
a UUID with no embedded object, so the adapter must join issues against the
|
|
252
|
-
project's states map. Descriptions are `description_html`, not
|
|
253
|
-
`description_stripped`.
|
|
254
|
-
|
|
255
|
-
## Open roadmap
|
|
256
|
-
|
|
257
|
-
The following work is open for the incoming agent, roughly in priority order.
|
|
258
|
-
|
|
259
|
-
1. **Live-verify the Trello adapter.** Linear and Plane are verified live
|
|
260
|
-
(Plane includes `transition` and `comment`). Trello is implemented against
|
|
261
|
-
the contract but unverified. Follow [Providers: verifying an
|
|
262
|
-
adapter](providers.md#verifying-an-adapter-against-a-live-board) with Trello
|
|
263
|
-
credentials, and fix any endpoint or field mismatches.
|
|
264
|
-
2. **Confirm `install-local.sh` on a real macOS machine.** The Linux path is
|
|
265
|
-
verified end to end and the Plane adapter is verified live, but the macOS
|
|
266
|
-
`launchd` agent, the `mkdir` lock, and the assumption that the older Copier
|
|
267
|
-
steps (`10-hermes-profile.sh`, `80-registry.sh`) are Darwin-clean get their
|
|
268
|
-
first real run on a Mac.
|
|
269
|
-
3. **Confirm the first full Hermes reconciliation pass on a fresh PM.** The
|
|
270
|
-
heartbeat, adapter, and enforcement layers are verified, but the first live
|
|
271
|
-
`run:full` pass with the rendered prompt on a newly provisioned PM is the
|
|
272
|
-
last thing to watch.
|
|
273
|
-
|
|
274
|
-
## Read next
|
|
275
|
-
|
|
276
|
-
- [Architecture](architecture.md): the engine internals.
|
|
277
|
-
- [Providers](providers.md): the adapter contract and verification process.
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
# Provider adapters
|
|
2
|
-
|
|
3
|
-
This guide is the reference for the ticket-provider abstraction: the contract
|
|
4
|
-
every adapter implements, the three adapters that ship today, and a
|
|
5
|
-
step-by-step process for adding a new provider or verifying an existing one
|
|
6
|
-
against a live board. Read [Architecture](architecture.md) first for how the
|
|
7
|
-
adapter fits into the engine.
|
|
8
|
-
|
|
9
|
-
## The contract
|
|
10
|
-
|
|
11
|
-
Each adapter is a standalone POSIX shell script under
|
|
12
|
-
`template/.scripts/providers/<name>.sh`. It reads its credentials from the
|
|
13
|
-
environment and its board binding from `role.yaml` under `ticket_provider`. It
|
|
14
|
-
takes an operation as its first argument and writes JSON or a status string to
|
|
15
|
-
standard output.
|
|
16
|
-
|
|
17
|
-
The dispatcher, `template/.scripts/lib/ticket-provider.sh`, resolves the active
|
|
18
|
-
provider and routes calls. Source it, then call `tp <operation> [args...]`:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
. .scripts/lib/ticket-provider.sh
|
|
22
|
-
tp active_milestone
|
|
23
|
-
tp list_issues
|
|
24
|
-
tp transition DEL-42 completed
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Every adapter must implement these operations.
|
|
28
|
-
|
|
29
|
-
| Operation | Arguments | Output |
|
|
30
|
-
| --- | --- | --- |
|
|
31
|
-
| `resolve` | none | JSON `{provider, board_id, board_url}`. Validates credentials and board binding. |
|
|
32
|
-
| `active_milestone` | none | JSON `{id, name, state}` for the current milestone, cycle, or board. |
|
|
33
|
-
| `list_issues` | none | JSON array of `{id, key, title, state, state_type, updated_at, assignee, url}`. |
|
|
34
|
-
| `get_issue` | `<id>` | JSON `{id, key, title, description, acceptance, state, state_type, comments}`. |
|
|
35
|
-
| `comment` | `<id> <body>` | Prints the new comment id. |
|
|
36
|
-
| `transition` | `<id> <normalized-state>` | Moves the issue to a normalized state. |
|
|
37
|
-
| `create_board` | `<name> <ident> <desc>` | JSON `{board_id, board_url}`. Creates or reuses the board. |
|
|
38
|
-
|
|
39
|
-
The `transition` operation accepts only the normalized states from
|
|
40
|
-
[Architecture: normalized states](architecture.md#normalized-states):
|
|
41
|
-
`backlog`, `unstarted`, `started`, `in_review`, and `completed`. The adapter
|
|
42
|
-
maps each to its back end's concrete state.
|
|
43
|
-
|
|
44
|
-
## The adapters that ship today
|
|
45
|
-
|
|
46
|
-
The repository includes three adapters with different verification status.
|
|
47
|
-
|
|
48
|
-
- **Linear** (`providers/linear.sh`) is the reference implementation. It uses
|
|
49
|
-
the Linear GraphQL API. It's verified live against a real board. Linear's
|
|
50
|
-
`issue(id:)` field accepts both the UUID and the human identifier (for
|
|
51
|
-
example, `DEL-42`), so the engine can pass identifiers through.
|
|
52
|
-
- **Plane** (`providers/plane.sh`) uses the Plane REST API with `X-API-Key`
|
|
53
|
-
authentication. A Plane project maps to the board, a cycle maps to the
|
|
54
|
-
milestone, and `state.group` maps to the state type. It's verified live. Note
|
|
55
|
-
the v1 API returns an issue's `state` as a bare UUID with no `state_detail`,
|
|
56
|
-
so the adapter joins each issue against the project's states map; descriptions
|
|
57
|
-
come from `description_html`.
|
|
58
|
-
- **Trello** (`providers/trello.sh`) uses the Trello REST API with `key` and
|
|
59
|
-
`token` query-parameter authentication. A board maps to both the project and
|
|
60
|
-
the milestone, a list maps to the state, and a card maps to the issue. It's
|
|
61
|
-
implemented but not yet verified against a live board.
|
|
62
|
-
|
|
63
|
-
### Credentials and binding by provider
|
|
64
|
-
|
|
65
|
-
Set credentials in the environment and the board binding in `role.yaml`.
|
|
66
|
-
|
|
67
|
-
<details>
|
|
68
|
-
<summary>Linear</summary>
|
|
69
|
-
|
|
70
|
-
- Credentials: `LINEAR_API_KEY`.
|
|
71
|
-
- Binding:
|
|
72
|
-
|
|
73
|
-
```yaml
|
|
74
|
-
ticket_provider:
|
|
75
|
-
name: linear
|
|
76
|
-
team: DEL # Linear team key
|
|
77
|
-
project: "" # optional, scopes milestone and issue queries
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
</details>
|
|
81
|
-
|
|
82
|
-
<details>
|
|
83
|
-
<summary>Plane</summary>
|
|
84
|
-
|
|
85
|
-
- Credentials: `PLANE_API_KEY`. Endpoint: `PLANE_BASE` (default
|
|
86
|
-
`https://plane.delo.sh`).
|
|
87
|
-
- Binding:
|
|
88
|
-
|
|
89
|
-
```yaml
|
|
90
|
-
ticket_provider:
|
|
91
|
-
name: plane
|
|
92
|
-
workspace: <workspace-slug>
|
|
93
|
-
project: <project-uuid> # set by 42-ticket-provider.sh
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
</details>
|
|
97
|
-
|
|
98
|
-
<details>
|
|
99
|
-
<summary>Trello</summary>
|
|
100
|
-
|
|
101
|
-
- Credentials: `TRELLO_KEY` and `TRELLO_TOKEN`.
|
|
102
|
-
- Binding:
|
|
103
|
-
|
|
104
|
-
```yaml
|
|
105
|
-
ticket_provider:
|
|
106
|
-
name: trello
|
|
107
|
-
board: <board-id> # set by 42-ticket-provider.sh
|
|
108
|
-
state_map: { backlog: "Backlog", started: "In Progress", completed: "Done" }
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
</details>
|
|
112
|
-
|
|
113
|
-
## Adding a provider
|
|
114
|
-
|
|
115
|
-
To add a fourth provider, for example GitHub Issues or Jira, follow these steps.
|
|
116
|
-
|
|
117
|
-
1. Create `template/.scripts/providers/<name>.sh`. Start from `linear.sh` if the
|
|
118
|
-
back end uses GraphQL, or `plane.sh` if it uses REST with a single API key.
|
|
119
|
-
2. Implement every operation in [the contract](#the-contract). Return the exact
|
|
120
|
-
JSON shapes shown in the table. Map your back end's states to the five
|
|
121
|
-
normalized states.
|
|
122
|
-
3. Fail fast and clean. Validate credentials at the top of the script, before
|
|
123
|
-
any pipe, so a missing key prints one error line instead of a stack trace.
|
|
124
|
-
The existing adapters call a `need_key` helper for this.
|
|
125
|
-
4. Add the provider to the `ticket_provider` question in `copier.yml` so it
|
|
126
|
-
appears as a choice.
|
|
127
|
-
5. Extend `template/role.yaml.jinja` with a provider-specific binding block
|
|
128
|
-
under the `{% if ticket_provider == '<name>' %}` branch.
|
|
129
|
-
6. Teach `42-ticket-provider.sh` how to resolve or create the board for your
|
|
130
|
-
provider, if it differs from the existing `linear`, `plane`, and `trello`
|
|
131
|
-
cases.
|
|
132
|
-
7. Validate and verify with the steps below.
|
|
133
|
-
|
|
134
|
-
<!-- prettier-ignore -->
|
|
135
|
-
> [!WARNING]
|
|
136
|
-
> Don't put escaped double quotes inside a single-quoted `python3 -c '...'`
|
|
137
|
-
> block. A single-quoted shell string keeps backslashes literal, so `\"`
|
|
138
|
-
> reaches Python as a backslash-quote and fails to parse. Use a `python3 -
|
|
139
|
-
> <<'PY'` heredoc, or hoist values into variables, when you need quotes.
|
|
140
|
-
|
|
141
|
-
## Validating an adapter offline
|
|
142
|
-
|
|
143
|
-
Before you touch a live board, confirm the adapter parses and fails cleanly.
|
|
144
|
-
|
|
145
|
-
1. Check shell syntax:
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
sh -n template/.scripts/providers/<name>.sh
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
2. Check the inline Python blocks. Extract each `<<'PY'` heredoc and each
|
|
152
|
-
`python3 -c '...'` block and run it through `python3 -c "import ast;
|
|
153
|
-
ast.parse(open('block').read())"`, or use the small extraction script in
|
|
154
|
-
[Development guide: validating
|
|
155
|
-
locally](development.md#validating-changes-locally).
|
|
156
|
-
|
|
157
|
-
3. Confirm a missing credential produces one clean error line and a non-zero
|
|
158
|
-
exit, with no Python traceback:
|
|
159
|
-
|
|
160
|
-
```bash
|
|
161
|
-
( unset LINEAR_API_KEY; sh template/.scripts/providers/linear.sh resolve )
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
## Verifying an adapter against a live board
|
|
165
|
-
|
|
166
|
-
When you have credentials, exercise the read operations against a real board.
|
|
167
|
-
The following pattern stages a minimal role directory and runs the adapter. It
|
|
168
|
-
never closes or modifies a ticket, so it's safe to run.
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
# 1. Load the credential into the environment only (never print it).
|
|
172
|
-
export LINEAR_API_KEY="$(grep -E '^(export )?LINEAR_API_KEY=' \
|
|
173
|
-
~/.hermes/<agent>.env | head -1 | sed -E 's/^(export )?LINEAR_API_KEY=//; s/^"//; s/"$//')"
|
|
174
|
-
|
|
175
|
-
# 2. Stage a role directory bound to the real board.
|
|
176
|
-
T=$(mktemp -d); RD="$T/agents/hermes/pm"
|
|
177
|
-
mkdir -p "$RD/.scripts/lib" "$RD/.scripts/providers"
|
|
178
|
-
cp template/.scripts/lib/ticket-provider.sh "$RD/.scripts/lib/"
|
|
179
|
-
cp template/.scripts/providers/linear.sh "$RD/.scripts/providers/"
|
|
180
|
-
printf 'repo: demo\nrole: pm\nticket_provider:\n name: linear\n team: DEL\n' \
|
|
181
|
-
> "$RD/role.yaml"
|
|
182
|
-
|
|
183
|
-
# 3. Run the read operations.
|
|
184
|
-
LIB="$RD/.scripts/lib/ticket-provider.sh"
|
|
185
|
-
bash -c '. "$1"; tp resolve' _ "$LIB"
|
|
186
|
-
bash -c '. "$1"; tp list_issues' _ "$LIB" | python3 -c 'import sys,json; print(len(json.load(sys.stdin)),"issues")'
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
To verify `transition` and `comment`, which modify the board, use a disposable
|
|
190
|
-
test ticket. Don't run write operations against production tickets during
|
|
191
|
-
verification.
|
|
192
|
-
|
|
193
|
-
<!-- prettier-ignore -->
|
|
194
|
-
> [!NOTE]
|
|
195
|
-
> The dispatcher needs Bash because it reads `${BASH_SOURCE[0]}` to find the
|
|
196
|
-
> providers directory. The adapters themselves are POSIX shell and run under
|
|
197
|
-
> `sh`. Run the dispatcher with `bash -c`, as shown above, not `sh -c`.
|
|
198
|
-
|
|
199
|
-
## Read next
|
|
200
|
-
|
|
201
|
-
- [Development guide](development.md): the full edit, validate, and propagate
|
|
202
|
-
workflow, plus the open roadmap, which includes live-verifying Plane and
|
|
203
|
-
Trello.
|