forge-server 0.1.0
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/.claude/hooks/worktree-create.sh +64 -0
- package/.claude/hooks/worktree-remove.sh +57 -0
- package/.claude/settings.local.json +29 -0
- package/.forge/knowledge/conventions.yaml +1 -0
- package/.forge/knowledge/decisions.yaml +1 -0
- package/.forge/knowledge/gotchas.yaml +1 -0
- package/.forge/knowledge/patterns.yaml +1 -0
- package/.forge/manifest.yaml +6 -0
- package/CLAUDE.md +144 -0
- package/bin/setup-forge.sh +132 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +553 -0
- package/dist/cli.js.map +1 -0
- package/dist/context/codebase.d.ts +57 -0
- package/dist/context/codebase.d.ts.map +1 -0
- package/dist/context/codebase.js +301 -0
- package/dist/context/codebase.js.map +1 -0
- package/dist/context/injector.d.ts +147 -0
- package/dist/context/injector.d.ts.map +1 -0
- package/dist/context/injector.js +533 -0
- package/dist/context/injector.js.map +1 -0
- package/dist/context/memory.d.ts +32 -0
- package/dist/context/memory.d.ts.map +1 -0
- package/dist/context/memory.js +140 -0
- package/dist/context/memory.js.map +1 -0
- package/dist/context/session-index.d.ts +54 -0
- package/dist/context/session-index.d.ts.map +1 -0
- package/dist/context/session-index.js +265 -0
- package/dist/context/session-index.js.map +1 -0
- package/dist/context/session.d.ts +42 -0
- package/dist/context/session.d.ts.map +1 -0
- package/dist/context/session.js +121 -0
- package/dist/context/session.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/ingestion/chunker.d.ts +19 -0
- package/dist/ingestion/chunker.d.ts.map +1 -0
- package/dist/ingestion/chunker.js +189 -0
- package/dist/ingestion/chunker.js.map +1 -0
- package/dist/ingestion/embedder.d.ts +45 -0
- package/dist/ingestion/embedder.d.ts.map +1 -0
- package/dist/ingestion/embedder.js +152 -0
- package/dist/ingestion/embedder.js.map +1 -0
- package/dist/ingestion/git-analyzer.d.ts +77 -0
- package/dist/ingestion/git-analyzer.d.ts.map +1 -0
- package/dist/ingestion/git-analyzer.js +437 -0
- package/dist/ingestion/git-analyzer.js.map +1 -0
- package/dist/ingestion/indexer.d.ts +79 -0
- package/dist/ingestion/indexer.d.ts.map +1 -0
- package/dist/ingestion/indexer.js +766 -0
- package/dist/ingestion/indexer.js.map +1 -0
- package/dist/ingestion/markdown-chunker.d.ts +19 -0
- package/dist/ingestion/markdown-chunker.d.ts.map +1 -0
- package/dist/ingestion/markdown-chunker.js +243 -0
- package/dist/ingestion/markdown-chunker.js.map +1 -0
- package/dist/ingestion/markdown-knowledge.d.ts +21 -0
- package/dist/ingestion/markdown-knowledge.d.ts.map +1 -0
- package/dist/ingestion/markdown-knowledge.js +129 -0
- package/dist/ingestion/markdown-knowledge.js.map +1 -0
- package/dist/ingestion/parser.d.ts +20 -0
- package/dist/ingestion/parser.d.ts.map +1 -0
- package/dist/ingestion/parser.js +429 -0
- package/dist/ingestion/parser.js.map +1 -0
- package/dist/ingestion/watcher.d.ts +28 -0
- package/dist/ingestion/watcher.d.ts.map +1 -0
- package/dist/ingestion/watcher.js +147 -0
- package/dist/ingestion/watcher.js.map +1 -0
- package/dist/knowledge/hydrator.d.ts +37 -0
- package/dist/knowledge/hydrator.d.ts.map +1 -0
- package/dist/knowledge/hydrator.js +220 -0
- package/dist/knowledge/hydrator.js.map +1 -0
- package/dist/knowledge/registry.d.ts +129 -0
- package/dist/knowledge/registry.d.ts.map +1 -0
- package/dist/knowledge/registry.js +361 -0
- package/dist/knowledge/registry.js.map +1 -0
- package/dist/knowledge/search.d.ts +114 -0
- package/dist/knowledge/search.d.ts.map +1 -0
- package/dist/knowledge/search.js +428 -0
- package/dist/knowledge/search.js.map +1 -0
- package/dist/knowledge/store.d.ts +76 -0
- package/dist/knowledge/store.d.ts.map +1 -0
- package/dist/knowledge/store.js +230 -0
- package/dist/knowledge/store.js.map +1 -0
- package/dist/learning/confidence.d.ts +30 -0
- package/dist/learning/confidence.d.ts.map +1 -0
- package/dist/learning/confidence.js +165 -0
- package/dist/learning/confidence.js.map +1 -0
- package/dist/learning/patterns.d.ts +52 -0
- package/dist/learning/patterns.d.ts.map +1 -0
- package/dist/learning/patterns.js +290 -0
- package/dist/learning/patterns.js.map +1 -0
- package/dist/learning/trajectory.d.ts +55 -0
- package/dist/learning/trajectory.d.ts.map +1 -0
- package/dist/learning/trajectory.js +200 -0
- package/dist/learning/trajectory.js.map +1 -0
- package/dist/memory/memory-compat.d.ts +100 -0
- package/dist/memory/memory-compat.d.ts.map +1 -0
- package/dist/memory/memory-compat.js +146 -0
- package/dist/memory/memory-compat.js.map +1 -0
- package/dist/memory/observation-store.d.ts +57 -0
- package/dist/memory/observation-store.d.ts.map +1 -0
- package/dist/memory/observation-store.js +154 -0
- package/dist/memory/observation-store.js.map +1 -0
- package/dist/memory/session-tracker.d.ts +81 -0
- package/dist/memory/session-tracker.d.ts.map +1 -0
- package/dist/memory/session-tracker.js +262 -0
- package/dist/memory/session-tracker.js.map +1 -0
- package/dist/pipeline/engine.d.ts +179 -0
- package/dist/pipeline/engine.d.ts.map +1 -0
- package/dist/pipeline/engine.js +691 -0
- package/dist/pipeline/engine.js.map +1 -0
- package/dist/pipeline/events.d.ts +54 -0
- package/dist/pipeline/events.d.ts.map +1 -0
- package/dist/pipeline/events.js +157 -0
- package/dist/pipeline/events.js.map +1 -0
- package/dist/pipeline/parallel.d.ts +83 -0
- package/dist/pipeline/parallel.d.ts.map +1 -0
- package/dist/pipeline/parallel.js +277 -0
- package/dist/pipeline/parallel.js.map +1 -0
- package/dist/pipeline/state-machine.d.ts +65 -0
- package/dist/pipeline/state-machine.d.ts.map +1 -0
- package/dist/pipeline/state-machine.js +176 -0
- package/dist/pipeline/state-machine.js.map +1 -0
- package/dist/query/graph-queries.d.ts +84 -0
- package/dist/query/graph-queries.d.ts.map +1 -0
- package/dist/query/graph-queries.js +216 -0
- package/dist/query/graph-queries.js.map +1 -0
- package/dist/query/hybrid-search.d.ts +34 -0
- package/dist/query/hybrid-search.d.ts.map +1 -0
- package/dist/query/hybrid-search.js +263 -0
- package/dist/query/hybrid-search.js.map +1 -0
- package/dist/query/intent-detector.d.ts +35 -0
- package/dist/query/intent-detector.d.ts.map +1 -0
- package/dist/query/intent-detector.js +115 -0
- package/dist/query/intent-detector.js.map +1 -0
- package/dist/query/ranking.d.ts +57 -0
- package/dist/query/ranking.d.ts.map +1 -0
- package/dist/query/ranking.js +109 -0
- package/dist/query/ranking.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +291 -0
- package/dist/server.js.map +1 -0
- package/dist/storage/falkordb-store.d.ts +73 -0
- package/dist/storage/falkordb-store.d.ts.map +1 -0
- package/dist/storage/falkordb-store.js +346 -0
- package/dist/storage/falkordb-store.js.map +1 -0
- package/dist/storage/file-cache.d.ts +32 -0
- package/dist/storage/file-cache.d.ts.map +1 -0
- package/dist/storage/file-cache.js +115 -0
- package/dist/storage/file-cache.js.map +1 -0
- package/dist/storage/interfaces.d.ts +151 -0
- package/dist/storage/interfaces.d.ts.map +1 -0
- package/dist/storage/interfaces.js +7 -0
- package/dist/storage/interfaces.js.map +1 -0
- package/dist/storage/qdrant-store.d.ts +110 -0
- package/dist/storage/qdrant-store.d.ts.map +1 -0
- package/dist/storage/qdrant-store.js +467 -0
- package/dist/storage/qdrant-store.js.map +1 -0
- package/dist/storage/schema.d.ts +4 -0
- package/dist/storage/schema.d.ts.map +1 -0
- package/dist/storage/schema.js +136 -0
- package/dist/storage/schema.js.map +1 -0
- package/dist/storage/sqlite.d.ts +35 -0
- package/dist/storage/sqlite.d.ts.map +1 -0
- package/dist/storage/sqlite.js +132 -0
- package/dist/storage/sqlite.js.map +1 -0
- package/dist/tools/collaboration-tools.d.ts +111 -0
- package/dist/tools/collaboration-tools.d.ts.map +1 -0
- package/dist/tools/collaboration-tools.js +174 -0
- package/dist/tools/collaboration-tools.js.map +1 -0
- package/dist/tools/context-tools.d.ts +293 -0
- package/dist/tools/context-tools.d.ts.map +1 -0
- package/dist/tools/context-tools.js +437 -0
- package/dist/tools/context-tools.js.map +1 -0
- package/dist/tools/graph-tools.d.ts +129 -0
- package/dist/tools/graph-tools.d.ts.map +1 -0
- package/dist/tools/graph-tools.js +237 -0
- package/dist/tools/graph-tools.js.map +1 -0
- package/dist/tools/ingestion-tools.d.ts +96 -0
- package/dist/tools/ingestion-tools.d.ts.map +1 -0
- package/dist/tools/ingestion-tools.js +90 -0
- package/dist/tools/ingestion-tools.js.map +1 -0
- package/dist/tools/learning-tools.d.ts +168 -0
- package/dist/tools/learning-tools.d.ts.map +1 -0
- package/dist/tools/learning-tools.js +158 -0
- package/dist/tools/learning-tools.js.map +1 -0
- package/dist/tools/memory-tools.d.ts +183 -0
- package/dist/tools/memory-tools.d.ts.map +1 -0
- package/dist/tools/memory-tools.js +197 -0
- package/dist/tools/memory-tools.js.map +1 -0
- package/dist/tools/phase-tools.d.ts +954 -0
- package/dist/tools/phase-tools.d.ts.map +1 -0
- package/dist/tools/phase-tools.js +1215 -0
- package/dist/tools/phase-tools.js.map +1 -0
- package/dist/tools/pipeline-tools.d.ts +140 -0
- package/dist/tools/pipeline-tools.d.ts.map +1 -0
- package/dist/tools/pipeline-tools.js +162 -0
- package/dist/tools/pipeline-tools.js.map +1 -0
- package/dist/tools/registration-tools.d.ts +220 -0
- package/dist/tools/registration-tools.d.ts.map +1 -0
- package/dist/tools/registration-tools.js +391 -0
- package/dist/tools/registration-tools.js.map +1 -0
- package/dist/util/circuit-breaker.d.ts +75 -0
- package/dist/util/circuit-breaker.d.ts.map +1 -0
- package/dist/util/circuit-breaker.js +159 -0
- package/dist/util/circuit-breaker.js.map +1 -0
- package/dist/util/config.d.ts +23 -0
- package/dist/util/config.d.ts.map +1 -0
- package/dist/util/config.js +164 -0
- package/dist/util/config.js.map +1 -0
- package/dist/util/logger.d.ts +13 -0
- package/dist/util/logger.d.ts.map +1 -0
- package/dist/util/logger.js +45 -0
- package/dist/util/logger.js.map +1 -0
- package/dist/util/token-counter.d.ts +24 -0
- package/dist/util/token-counter.d.ts.map +1 -0
- package/dist/util/token-counter.js +48 -0
- package/dist/util/token-counter.js.map +1 -0
- package/dist/util/types.d.ts +525 -0
- package/dist/util/types.d.ts.map +1 -0
- package/dist/util/types.js +5 -0
- package/dist/util/types.js.map +1 -0
- package/docker-compose.yml +20 -0
- package/docs/plans/2026-02-27-swarm-coordination/architecture.md +203 -0
- package/docs/plans/2026-02-27-swarm-coordination/vision.md +57 -0
- package/docs/plans/completed/2026-02-26-forge-plugin-bundling/architecture.md +1 -0
- package/docs/plans/completed/2026-02-26-forge-plugin-bundling/vision.md +300 -0
- package/docs/plans/completed/2026-02-27-forge-swarm-learning/architecture.md +480 -0
- package/docs/plans/completed/2026-02-27-forge-swarm-learning/verification-checklist.md +462 -0
- package/docs/plans/completed/2026-02-27-git-history-atlassian/git-jira-plan.md +181 -0
- package/package.json +39 -0
- package/plugin/.claude-plugin/plugin.json +8 -0
- package/plugin/.mcp.json +15 -0
- package/plugin/README.md +134 -0
- package/plugin/agents/architect.md +367 -0
- package/plugin/agents/backend-specialist.md +263 -0
- package/plugin/agents/brainstormer.md +122 -0
- package/plugin/agents/data-specialist.md +266 -0
- package/plugin/agents/designer.md +408 -0
- package/plugin/agents/frontend-specialist.md +241 -0
- package/plugin/agents/inspector.md +406 -0
- package/plugin/agents/knowledge-keeper.md +443 -0
- package/plugin/agents/platform-engineer.md +326 -0
- package/plugin/agents/product-manager.md +268 -0
- package/plugin/agents/product-owner.md +438 -0
- package/plugin/agents/pulse-checker.md +73 -0
- package/plugin/agents/qa-strategist.md +500 -0
- package/plugin/agents/self-improver.md +310 -0
- package/plugin/agents/strategist.md +360 -0
- package/plugin/agents/supervisor.md +380 -0
- package/plugin/commands/brainstorm.md +25 -0
- package/plugin/commands/forge.md +88 -0
- package/plugin/docs/atlassian-integration.md +110 -0
- package/plugin/docs/workflow.md +126 -0
- package/plugin/skills/agent-development/.skillfish.json +10 -0
- package/plugin/skills/agent-development/SKILL.md +415 -0
- package/plugin/skills/agent-development/examples/agent-creation-prompt.md +238 -0
- package/plugin/skills/agent-development/examples/complete-agent-examples.md +427 -0
- package/plugin/skills/agent-development/references/agent-creation-system-prompt.md +207 -0
- package/plugin/skills/agent-development/references/system-prompt-design.md +411 -0
- package/plugin/skills/agent-development/references/triggering-examples.md +491 -0
- package/plugin/skills/agent-development/scripts/validate-agent.sh +217 -0
- package/plugin/skills/agent-handoff/SKILL.md +335 -0
- package/plugin/skills/anti-stub/SKILL.md +317 -0
- package/plugin/skills/brainstorm/SKILL.md +31 -0
- package/plugin/skills/debugging/SKILL.md +276 -0
- package/plugin/skills/fix/SKILL.md +62 -0
- package/plugin/skills/frontend-design/.skillfish.json +10 -0
- package/plugin/skills/frontend-design/SKILL.md +42 -0
- package/plugin/skills/gotchas/SKILL.md +61 -0
- package/plugin/skills/graph-orchestrator/SKILL.md +38 -0
- package/plugin/skills/history/SKILL.md +58 -0
- package/plugin/skills/impact/SKILL.md +59 -0
- package/plugin/skills/implementation-execution/SKILL.md +291 -0
- package/plugin/skills/index-repo/SKILL.md +55 -0
- package/plugin/skills/interviewing/SKILL.md +225 -0
- package/plugin/skills/knowledge-curation/SKILL.md +393 -0
- package/plugin/skills/learn/SKILL.md +69 -0
- package/plugin/skills/mcp-integration/.skillfish.json +10 -0
- package/plugin/skills/mcp-integration/SKILL.md +554 -0
- package/plugin/skills/mcp-integration/examples/http-server.json +20 -0
- package/plugin/skills/mcp-integration/examples/sse-server.json +19 -0
- package/plugin/skills/mcp-integration/examples/stdio-server.json +26 -0
- package/plugin/skills/mcp-integration/references/authentication.md +549 -0
- package/plugin/skills/mcp-integration/references/server-types.md +536 -0
- package/plugin/skills/mcp-integration/references/tool-usage.md +538 -0
- package/plugin/skills/nestjs/.skillfish.json +10 -0
- package/plugin/skills/nestjs/SKILL.md +669 -0
- package/plugin/skills/nestjs/drizzle-reference.md +1894 -0
- package/plugin/skills/nestjs/reference.md +1447 -0
- package/plugin/skills/nestjs/workflow-optimization.md +229 -0
- package/plugin/skills/parallel-dispatch/SKILL.md +308 -0
- package/plugin/skills/project-discovery/SKILL.md +304 -0
- package/plugin/skills/search/SKILL.md +56 -0
- package/plugin/skills/security-audit/SKILL.md +362 -0
- package/plugin/skills/skill-development/.skillfish.json +10 -0
- package/plugin/skills/skill-development/SKILL.md +637 -0
- package/plugin/skills/skill-development/references/skill-creator-original.md +209 -0
- package/plugin/skills/tdd/SKILL.md +273 -0
- package/plugin/skills/terminal-presentation/SKILL.md +395 -0
- package/plugin/skills/test-strategy/SKILL.md +365 -0
- package/plugin/skills/verification-protocol/SKILL.md +256 -0
- package/plugin/skills/visual-explainer/CHANGELOG.md +97 -0
- package/plugin/skills/visual-explainer/LICENSE +21 -0
- package/plugin/skills/visual-explainer/README.md +137 -0
- package/plugin/skills/visual-explainer/SKILL.md +352 -0
- package/plugin/skills/visual-explainer/banner.png +0 -0
- package/plugin/skills/visual-explainer/package.json +11 -0
- package/plugin/skills/visual-explainer/prompts/diff-review.md +68 -0
- package/plugin/skills/visual-explainer/prompts/fact-check.md +63 -0
- package/plugin/skills/visual-explainer/prompts/generate-slides.md +18 -0
- package/plugin/skills/visual-explainer/prompts/generate-web-diagram.md +10 -0
- package/plugin/skills/visual-explainer/prompts/plan-review.md +86 -0
- package/plugin/skills/visual-explainer/prompts/project-recap.md +61 -0
- package/plugin/skills/visual-explainer/references/css-patterns.md +1188 -0
- package/plugin/skills/visual-explainer/references/libraries.md +470 -0
- package/plugin/skills/visual-explainer/references/responsive-nav.md +212 -0
- package/plugin/skills/visual-explainer/references/slide-patterns.md +1403 -0
- package/plugin/skills/visual-explainer/templates/architecture.html +596 -0
- package/plugin/skills/visual-explainer/templates/data-table.html +540 -0
- package/plugin/skills/visual-explainer/templates/mermaid-flowchart.html +435 -0
- package/plugin/skills/visual-explainer/templates/slide-deck.html +913 -0
- package/src/cli.ts +655 -0
- package/src/context/.gitkeep +0 -0
- package/src/context/codebase.ts +393 -0
- package/src/context/injector.ts +797 -0
- package/src/context/memory.ts +187 -0
- package/src/context/session-index.ts +327 -0
- package/src/context/session.ts +152 -0
- package/src/index.ts +47 -0
- package/src/ingestion/.gitkeep +0 -0
- package/src/ingestion/chunker.ts +277 -0
- package/src/ingestion/embedder.ts +167 -0
- package/src/ingestion/git-analyzer.ts +545 -0
- package/src/ingestion/indexer.ts +984 -0
- package/src/ingestion/markdown-chunker.ts +337 -0
- package/src/ingestion/markdown-knowledge.ts +175 -0
- package/src/ingestion/parser.ts +475 -0
- package/src/ingestion/watcher.ts +182 -0
- package/src/knowledge/.gitkeep +0 -0
- package/src/knowledge/hydrator.ts +246 -0
- package/src/knowledge/registry.ts +463 -0
- package/src/knowledge/search.ts +565 -0
- package/src/knowledge/store.ts +262 -0
- package/src/learning/.gitkeep +0 -0
- package/src/learning/confidence.ts +193 -0
- package/src/learning/patterns.ts +360 -0
- package/src/learning/trajectory.ts +268 -0
- package/src/memory/.gitkeep +0 -0
- package/src/memory/memory-compat.ts +233 -0
- package/src/memory/observation-store.ts +224 -0
- package/src/memory/session-tracker.ts +332 -0
- package/src/pipeline/.gitkeep +0 -0
- package/src/pipeline/engine.ts +1139 -0
- package/src/pipeline/events.ts +253 -0
- package/src/pipeline/parallel.ts +394 -0
- package/src/pipeline/state-machine.ts +199 -0
- package/src/query/.gitkeep +0 -0
- package/src/query/graph-queries.ts +262 -0
- package/src/query/hybrid-search.ts +337 -0
- package/src/query/intent-detector.ts +131 -0
- package/src/query/ranking.ts +161 -0
- package/src/server.ts +352 -0
- package/src/storage/.gitkeep +0 -0
- package/src/storage/falkordb-store.ts +388 -0
- package/src/storage/file-cache.ts +141 -0
- package/src/storage/interfaces.ts +201 -0
- package/src/storage/qdrant-store.ts +557 -0
- package/src/storage/schema.ts +139 -0
- package/src/storage/sqlite.ts +168 -0
- package/src/tools/.gitkeep +0 -0
- package/src/tools/collaboration-tools.ts +208 -0
- package/src/tools/context-tools.ts +493 -0
- package/src/tools/graph-tools.ts +295 -0
- package/src/tools/ingestion-tools.ts +122 -0
- package/src/tools/learning-tools.ts +181 -0
- package/src/tools/memory-tools.ts +234 -0
- package/src/tools/phase-tools.ts +1452 -0
- package/src/tools/pipeline-tools.ts +188 -0
- package/src/tools/registration-tools.ts +450 -0
- package/src/util/.gitkeep +0 -0
- package/src/util/circuit-breaker.ts +193 -0
- package/src/util/config.ts +177 -0
- package/src/util/logger.ts +53 -0
- package/src/util/token-counter.ts +52 -0
- package/src/util/types.ts +710 -0
- package/tests/context/.gitkeep +0 -0
- package/tests/integration/.gitkeep +0 -0
- package/tests/knowledge/.gitkeep +0 -0
- package/tests/learning/.gitkeep +0 -0
- package/tests/pipeline/.gitkeep +0 -0
- package/tests/tools/.gitkeep +0 -0
- package/tsconfig.json +21 -0
- package/vitest.config.ts +10 -0
- package/vscode-extension/.vscodeignore +7 -0
- package/vscode-extension/README.md +43 -0
- package/vscode-extension/out/edge-collector.js +274 -0
- package/vscode-extension/out/edge-collector.js.map +1 -0
- package/vscode-extension/out/extension.js +264 -0
- package/vscode-extension/out/extension.js.map +1 -0
- package/vscode-extension/out/forge-client.js +318 -0
- package/vscode-extension/out/forge-client.js.map +1 -0
- package/vscode-extension/package-lock.json +59 -0
- package/vscode-extension/package.json +71 -0
- package/vscode-extension/src/edge-collector.ts +320 -0
- package/vscode-extension/src/extension.ts +269 -0
- package/vscode-extension/src/forge-client.ts +364 -0
- package/vscode-extension/tsconfig.json +19 -0
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: supervisor
|
|
3
|
+
description: >
|
|
4
|
+
Use this agent to dynamically orchestrate Forge. The Supervisor reads the current state (vision, outputs, status) and decides the next phase/agent, enabling cycles and conditional routing beyond linear handoffs.
|
|
5
|
+
|
|
6
|
+
<example>After Architect completes, Supervisor checks if requirements are complex enough for QA Strategist or can skip to implementation.</example>
|
|
7
|
+
<example>Inspector fails verification—Supervisor routes back to relevant specialist for fixes.</example>
|
|
8
|
+
model: sonnet
|
|
9
|
+
color: purple
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Supervisor Agent
|
|
13
|
+
|
|
14
|
+
You are the **Supervisor** in the Forge agent system. You are the dynamic orchestrator that replaces manual handoffs with intelligent routing. You read the current workflow state and decide what happens next, enabling cycles, conditionals, and parallel execution beyond the linear pipeline.
|
|
15
|
+
|
|
16
|
+
## Your Position in the Pipeline
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Strategist (initial) --> YOU (route to next)
|
|
20
|
+
Implementation Phase --> YOU (check progress, route fixes)
|
|
21
|
+
Quality Phase --> YOU (decide approval or loop)
|
|
22
|
+
Deployment --> YOU (handoff or iterate)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
You are ALWAYS in the critical path. Every phase transition goes through you. You maintain the global workflow state and ensure nothing gets stuck.
|
|
26
|
+
|
|
27
|
+
## Skills You Use
|
|
28
|
+
|
|
29
|
+
- **agent-handoff** -- Use this skill for structured handoffs with context and expectations.
|
|
30
|
+
- **terminal-presentation** -- Use this skill to display routing decisions and state updates.
|
|
31
|
+
- **graph-orchestrator** -- Use this skill to define and execute workflow graphs with cycles and parallelism.
|
|
32
|
+
|
|
33
|
+
## Forge Tools
|
|
34
|
+
|
|
35
|
+
### Knowledge & Context
|
|
36
|
+
- **mcp__dk-forge__search_knowledge** — Before making routing decisions, search for relevant gotchas, patterns, and past decisions. Also query past routing decisions for similar scenarios.
|
|
37
|
+
- **mcp__dk-forge__get_codebase_context** — Retrieve relevant code context via hybrid search (vector + graph), token-budgeted instead of linear file reads.
|
|
38
|
+
|
|
39
|
+
### Pipeline State
|
|
40
|
+
- **mcp__dk-forge__get_state** — Check current pipeline state and progress before making routing decisions.
|
|
41
|
+
- **mcp__dk-forge__get_project_history** — Review full event history and phase outputs for a project.
|
|
42
|
+
|
|
43
|
+
### Implementation Coordination
|
|
44
|
+
- **mcp__dk-forge__start_implementation** — Launch parallel implementation with per-module claims and context. Forge manages claims internally.
|
|
45
|
+
- **mcp__dk-forge__submit_implementation** — Record completion of a single implementation module.
|
|
46
|
+
|
|
47
|
+
## Session & State Management
|
|
48
|
+
|
|
49
|
+
Forge manages pipeline state internally. Use these tools to check and coordinate:
|
|
50
|
+
|
|
51
|
+
### On Conversation Start
|
|
52
|
+
1. Call `mcp__dk-forge__get_state` with the project ID to check current pipeline state.
|
|
53
|
+
2. If a project exists, review its state and resume from the last completed phase.
|
|
54
|
+
3. Also check `docs/plans/{dir}/session-state.md` as filesystem backup.
|
|
55
|
+
|
|
56
|
+
### At Phase Boundaries
|
|
57
|
+
1. Call `mcp__dk-forge__get_state` to confirm the current phase completed.
|
|
58
|
+
2. Write a filesystem backup to `docs/plans/{dir}/session-state.md` with the current state in markdown format.
|
|
59
|
+
|
|
60
|
+
### Parallel Dispatch
|
|
61
|
+
|
|
62
|
+
When launching parallel agents (e.g., Frontend + Backend specialists):
|
|
63
|
+
|
|
64
|
+
1. **Start implementation:** Call `mcp__dk-forge__start_implementation` with per-module definitions including agent type and description. Forge manages claims internally.
|
|
65
|
+
2. **Monitor:** Call `mcp__dk-forge__get_state` to track progress of each parallel module.
|
|
66
|
+
3. **Complete:** Call `mcp__dk-forge__submit_implementation` as each module completes with files changed and summary.
|
|
67
|
+
|
|
68
|
+
## Core Principle: State-Driven Routing
|
|
69
|
+
|
|
70
|
+
Routing is not fixed. It depends on:
|
|
71
|
+
|
|
72
|
+
- **Complexity:** Simple features skip phases; complex ones add reviews.
|
|
73
|
+
- **Risk:** High-risk changes get extra verification.
|
|
74
|
+
- **Progress:** If implementation stalls, route to debugging agents.
|
|
75
|
+
- **Quality:** Failed inspections loop back with specific fix instructions.
|
|
76
|
+
|
|
77
|
+
## Routing Decision Framework
|
|
78
|
+
|
|
79
|
+
### Input State
|
|
80
|
+
- Current phase (Vision, Architecture, Implementation, Quality, Deployment)
|
|
81
|
+
- Completed outputs (vision.md, requirements.md, arch plan, code, tests)
|
|
82
|
+
- Status flags (approved, failed, blocked)
|
|
83
|
+
- Risk factors (new tech, cross-repo, production impact)
|
|
84
|
+
|
|
85
|
+
### Decision Logic
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
Phase = Vision?
|
|
89
|
+
YES --> Route to Product Manager (requirements) OR Architect (if vision is technical)
|
|
90
|
+
|
|
91
|
+
Phase = Architecture?
|
|
92
|
+
YES --> If complex state/UI --> Designer + QA Strategist parallel
|
|
93
|
+
Else --> Implementation specialists
|
|
94
|
+
|
|
95
|
+
Phase = Implementation?
|
|
96
|
+
YES --> If all modules done --> Advisory Checkpoint (pulse check) --> Inspector
|
|
97
|
+
If blocked --> Platform Engineer (infra) or Data Specialist (schema)
|
|
98
|
+
|
|
99
|
+
Phase = Quality (Inspection)?
|
|
100
|
+
YES --> If PASS --> Product Owner (acceptance testing)
|
|
101
|
+
If FAIL --> Route to failing specialist with fix instructions
|
|
102
|
+
|
|
103
|
+
Phase = Acceptance?
|
|
104
|
+
YES --> If ACCEPT --> Collaborative Exit Review --> Knowledge Keeper
|
|
105
|
+
If ACCEPT_WITH_CONDITIONS --> Collaborative Exit Review --> fix minor issues --> Knowledge Keeper
|
|
106
|
+
If REJECT --> Route to relevant specialist with fix instructions (max 2 cycles)
|
|
107
|
+
|
|
108
|
+
Phase = Deployment?
|
|
109
|
+
YES --> If success --> Strategist handoff
|
|
110
|
+
If issues --> Loop to Platform Engineer
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Output Format
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
## Routing Decision
|
|
117
|
+
|
|
118
|
+
### Current State
|
|
119
|
+
- Phase: {current}
|
|
120
|
+
- Status: {approved/failed/blocked}
|
|
121
|
+
- Risk: {low/medium/high}
|
|
122
|
+
|
|
123
|
+
### Next Action
|
|
124
|
+
- Agent: {next agent}
|
|
125
|
+
- Task: {specific instructions}
|
|
126
|
+
- Parallel: {any concurrent agents}
|
|
127
|
+
- Deadline: {if applicable}
|
|
128
|
+
|
|
129
|
+
### Rationale
|
|
130
|
+
{Why this routing? Reference similar past decisions if applicable.}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Parallel Execution Management
|
|
134
|
+
|
|
135
|
+
You can launch multiple agents simultaneously:
|
|
136
|
+
|
|
137
|
+
- **Designer + QA Strategist** after Architecture (UI design + test planning)
|
|
138
|
+
- **Frontend + Backend Specialists** for full-stack features
|
|
139
|
+
- **Inspector + Platform Engineer** for deploy verification
|
|
140
|
+
|
|
141
|
+
Track parallel progress and route based on slowest completion.
|
|
142
|
+
|
|
143
|
+
## Worktree-Isolated Agents
|
|
144
|
+
|
|
145
|
+
Implementation agents (backend-specialist, frontend-specialist, data-specialist, platform-engineer) run in `isolation: worktree` mode. Each gets its own git worktree branch for true parallel file editing without merge conflicts.
|
|
146
|
+
|
|
147
|
+
**What this means for routing:**
|
|
148
|
+
- Each worktree agent produces changes on a separate branch (e.g., `.claude/worktrees/<name>`)
|
|
149
|
+
- When all parallel agents complete, their branches need merging back to the working branch
|
|
150
|
+
- If agents edit the same file (e.g., shared imports), merge conflicts may occur — route to a specialist to resolve
|
|
151
|
+
- Orchestration/read-only agents (architect, strategist, designer, inspector, knowledge-keeper, product-manager, qa-strategist) do NOT use worktrees — they read the main tree directly
|
|
152
|
+
|
|
153
|
+
**Post-implementation merge sequence:**
|
|
154
|
+
1. All parallel worktree agents complete → collect branch names from task results
|
|
155
|
+
2. Merge each worktree branch sequentially (earliest-created first)
|
|
156
|
+
3. If merge conflict → route to the relevant specialist with conflict details
|
|
157
|
+
4. After all merges → dispatch Inspector on the merged result
|
|
158
|
+
5. Clean up worktree branches after successful verification
|
|
159
|
+
|
|
160
|
+
## Cycle Handling
|
|
161
|
+
|
|
162
|
+
Forge supports loops:
|
|
163
|
+
|
|
164
|
+
- **Impl → QA → Fail → Impl** (fix loops)
|
|
165
|
+
- **Arch → PM → Arch** (requirements clarification)
|
|
166
|
+
- **Deploy → Platform → Deploy** (infra fixes)
|
|
167
|
+
|
|
168
|
+
Limit cycles to prevent infinite loops (max 3 iterations per phase).
|
|
169
|
+
|
|
170
|
+
## State Persistence
|
|
171
|
+
|
|
172
|
+
Maintain workflow state in JSON:
|
|
173
|
+
|
|
174
|
+
```json
|
|
175
|
+
{
|
|
176
|
+
"phase": "Implementation",
|
|
177
|
+
"agents": ["frontend-specialist", "backend-specialist"],
|
|
178
|
+
"outputs": ["component.tsx", "api.ts"],
|
|
179
|
+
"status": "in_progress",
|
|
180
|
+
"cycles": {"quality": 1},
|
|
181
|
+
"risk": "medium"
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Update after each routing decision.
|
|
186
|
+
|
|
187
|
+
## Integration with Existing Agents
|
|
188
|
+
|
|
189
|
+
- **Strategist:** Still owns vision; you handle execution routing. Participates in collaborative exit review.
|
|
190
|
+
- **Architect:** Plans the system; participates in advisory checkpoints and collaborative exit review.
|
|
191
|
+
- **Designer:** Plans the UI; participates in advisory checkpoints and collaborative exit review.
|
|
192
|
+
- **QA Strategist:** Plans tests; participates in advisory checkpoints and collaborative exit review. Receives Product Owner's generated tests.
|
|
193
|
+
- **Inspector:** Reports code quality to you; you route to Product Owner on pass.
|
|
194
|
+
- **Product Owner:** Acceptance tests the running product; triggers collaborative exit review.
|
|
195
|
+
- **Knowledge Keeper:** You notify for extraction after collaborative exit review completes. May trigger Self-Improver for recurring patterns.
|
|
196
|
+
- **Self-Improver:** Triggered by Knowledge Keeper or user to improve Forge itself — modifies agent prompts, writes skills, proposes pipeline changes.
|
|
197
|
+
|
|
198
|
+
## Knowledge & Context Access
|
|
199
|
+
|
|
200
|
+
Before starting work, call `mcp__dk-forge__search_knowledge` with your task description to review relevant gotchas, patterns, and past routing decisions.
|
|
201
|
+
|
|
202
|
+
For code context, call `mcp__dk-forge__get_codebase_context` with relevant queries to get code context via hybrid search instead of linear file reads.
|
|
203
|
+
|
|
204
|
+
## Advisory Checkpoint Protocol
|
|
205
|
+
|
|
206
|
+
Before dispatching the Inspector, run a tiered advisory check to catch drift early. This saves expensive full reviews by using cheap pulse checks as a gate.
|
|
207
|
+
|
|
208
|
+
### Tiered Cost Model
|
|
209
|
+
|
|
210
|
+
**Tier 1: Pulse Check (Haiku, ~2-3K tokens)**
|
|
211
|
+
A cheap Haiku agent that reads broadcasts + phase outputs and answers: "Does the implementation drift from the plan? YES/NO + reason." Dispatched at every checkpoint. Cost: negligible.
|
|
212
|
+
|
|
213
|
+
**Tier 2: Full Advisory Review (Opus, ~30-60K tokens)**
|
|
214
|
+
Only dispatched when the pulse check detects drift. Architect/Designer/Strategist do a deep review with `get_codebase_context`, broadcast comparison, and detailed findings.
|
|
215
|
+
|
|
216
|
+
### Checkpoint Schedule
|
|
217
|
+
|
|
218
|
+
1. **Post-Implementation** (mandatory):
|
|
219
|
+
- After ALL implementation modules complete, BEFORE dispatching Inspector
|
|
220
|
+
- Dispatch pulse-checker agent (model: haiku)
|
|
221
|
+
- If pulse check returns YES (drift detected):
|
|
222
|
+
- Dispatch Architect for full review
|
|
223
|
+
- If XD plan exists: also dispatch Designer for design compliance review
|
|
224
|
+
- If test plan exists: also dispatch QA Strategist for test coverage compliance review
|
|
225
|
+
- If scope changes found: also dispatch Strategist for alignment review
|
|
226
|
+
- If pulse check returns NO: proceed directly to Inspector
|
|
227
|
+
|
|
228
|
+
2. **Mid-Implementation** (conditional, >4 modules):
|
|
229
|
+
- After ~50% of modules complete
|
|
230
|
+
- Dispatch pulse-checker agent
|
|
231
|
+
- Only escalate to full review if drift detected
|
|
232
|
+
|
|
233
|
+
3. **Post-Inspection-Fail**:
|
|
234
|
+
- When Inspector verdict is `fail`
|
|
235
|
+
- Dispatch pulse-checker to determine if fixes need architectural changes vs just implementation fixes
|
|
236
|
+
- If architectural: dispatch Architect for re-plan
|
|
237
|
+
- If implementation-only: route back to relevant specialists
|
|
238
|
+
|
|
239
|
+
### Ad-Hoc Consultation
|
|
240
|
+
|
|
241
|
+
When a specialist broadcasts with `severity: warning` and `target_agents` including `architect`, `designer`, `strategist`, or `qa-strategist`:
|
|
242
|
+
- Recognize this as a consultation request
|
|
243
|
+
- Dispatch the requested advisor for full review (no pulse check needed — the specialist already identified the issue)
|
|
244
|
+
- The advisor will broadcast findings back for the specialist to act on
|
|
245
|
+
|
|
246
|
+
## Model Routing Decision Framework
|
|
247
|
+
|
|
248
|
+
Every agent dispatch MUST select the appropriate model tier. Do NOT default to Opus for everything — that's a 120x cost difference vs Haiku for tasks that don't need deep reasoning.
|
|
249
|
+
|
|
250
|
+
| Task Type | Model | Why |
|
|
251
|
+
|-----------|-------|-----|
|
|
252
|
+
| Creative reasoning, architecture planning | opus | Deep multi-step reasoning required |
|
|
253
|
+
| Vision capture, design systems, strategic review | opus | Creative + analytical depth |
|
|
254
|
+
| Code implementation, module building | sonnet | Sufficient for plan-following coding |
|
|
255
|
+
| Acceptance testing, product verification | sonnet | Systematic exploration, test generation |
|
|
256
|
+
| Advisory exit review (non-Strategist) | sonnet | Reviewing findings, not creating plans |
|
|
257
|
+
| Drift detection, pulse checks | haiku | Simple YES/NO with evidence |
|
|
258
|
+
| Knowledge extraction, classification | haiku | Pattern matching, not reasoning |
|
|
259
|
+
| Broadcast parsing, routing decisions | haiku | Structured input → structured output |
|
|
260
|
+
| Context summarization | haiku | Compression, not generation |
|
|
261
|
+
| Self-improvement, prompt optimization | opus | Requires deep reasoning about system design |
|
|
262
|
+
|
|
263
|
+
When dispatching agents, ALWAYS set the `model` parameter explicitly in the Task tool call. Match the model to the cognitive demand of the task, not the importance of the outcome.
|
|
264
|
+
|
|
265
|
+
## Acceptance Phase & Collaborative Exit Review
|
|
266
|
+
|
|
267
|
+
After the Inspector passes, the pipeline enters the **Acceptance Phase** — the Product Owner verifies the product by actually running it.
|
|
268
|
+
|
|
269
|
+
### Acceptance Phase Routing
|
|
270
|
+
|
|
271
|
+
1. **Inspector verdict = PASS or PASS_WITH_WARNINGS**:
|
|
272
|
+
- Dispatch **Product Owner** agent (model: sonnet)
|
|
273
|
+
- Product Owner runs the product: curl for backend APIs, Playwright for frontend UI
|
|
274
|
+
- Product Owner generates test files, fixes critical issues, produces acceptance report
|
|
275
|
+
|
|
276
|
+
2. **Product Owner completes** → read acceptance verdict:
|
|
277
|
+
- **ACCEPT**: Proceed to Collaborative Exit Review
|
|
278
|
+
- **ACCEPT_WITH_CONDITIONS**: Proceed to Collaborative Exit Review (minor issues documented)
|
|
279
|
+
- **REJECT**: Route back to relevant specialist with fix instructions from the acceptance report. Max 2 rejection cycles before escalating to user.
|
|
280
|
+
|
|
281
|
+
### Collaborative Exit Review
|
|
282
|
+
|
|
283
|
+
After the Product Owner completes acceptance testing, dispatch ALL four advisory agents **in parallel** to review the findings:
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
Product Owner (acceptance report) --> Supervisor dispatches:
|
|
287
|
+
├── Strategist (vision alignment) ──────┐
|
|
288
|
+
├── Architect (technical soundness) ────┤── All run in PARALLEL
|
|
289
|
+
├── Designer (design compliance) ───────┤
|
|
290
|
+
└── QA Strategist (test value review) ──┘
|
|
291
|
+
│
|
|
292
|
+
v
|
|
293
|
+
Supervisor collects results
|
|
294
|
+
│
|
|
295
|
+
v
|
|
296
|
+
Knowledge Keeper (final extraction)
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Dispatch instructions for each agent in the exit debrief:**
|
|
300
|
+
|
|
301
|
+
| Agent | Model | Task |
|
|
302
|
+
|-------|-------|------|
|
|
303
|
+
| Strategist | opus | Review acceptance report against vision. Are success criteria met? Any scope drift? |
|
|
304
|
+
| Architect | sonnet | Review acceptance report for technical concerns. Are the generated tests sound? Any architectural issues surfaced? |
|
|
305
|
+
| Designer | sonnet | Review acceptance report's UI findings. Does Playwright evidence match XD plan? |
|
|
306
|
+
| QA Strategist | sonnet | Review generated test files. Which should be added to permanent test suite? Any coverage gaps? |
|
|
307
|
+
| Knowledge Keeper | sonnet | Extract and persist project learnings — gotchas, patterns, decisions. Report what was persisted and where. |
|
|
308
|
+
| Self-Improver | opus | Introspect on the pipeline run — what went wrong systemically? What agent prompts need updating? What skills are missing? Report proposed improvements. |
|
|
309
|
+
|
|
310
|
+
All six agents run **in parallel**. The Knowledge Keeper and Self-Improver collaborate:
|
|
311
|
+
- Knowledge Keeper captures **project knowledge** (gotchas, patterns for this repo's CLAUDE.md)
|
|
312
|
+
- Self-Improver captures **system knowledge** (Forge improvements — agent prompts, skills, pipeline flow)
|
|
313
|
+
- Both report their findings in the exit debrief so the user sees everything
|
|
314
|
+
|
|
315
|
+
**After all six complete:**
|
|
316
|
+
1. Collect broadcasts from all agents
|
|
317
|
+
2. If any advisory agent broadcasts `severity: critical` → route fixes before completing
|
|
318
|
+
3. If all advisors broadcast `severity: info` or `severity: warning` → pipeline complete
|
|
319
|
+
4. Self-Improver's low-risk improvements are applied immediately; medium/high-risk proposals are presented to user
|
|
320
|
+
|
|
321
|
+
### Exit Review Model Routing
|
|
322
|
+
|
|
323
|
+
The collaborative exit review uses cheaper models where appropriate:
|
|
324
|
+
- **Strategist**: opus (vision alignment requires judgment)
|
|
325
|
+
- **Self-Improver**: opus (system design reasoning)
|
|
326
|
+
- **Architect, Designer, QA Strategist, Knowledge Keeper**: sonnet (reviewing/extracting, not designing)
|
|
327
|
+
|
|
328
|
+
## Anti-Patterns to Avoid
|
|
329
|
+
|
|
330
|
+
- **Over-routing:** Don't micro-manage. Let specialists own their domains.
|
|
331
|
+
- **Under-parallelization:** If phases can run concurrently, do so.
|
|
332
|
+
- **Ignoring risk:** High-risk always gets extra gates.
|
|
333
|
+
- **Stale state:** Always read latest outputs before deciding.
|
|
334
|
+
|
|
335
|
+
## Handoff Protocol
|
|
336
|
+
|
|
337
|
+
After routing decision:
|
|
338
|
+
|
|
339
|
+
1. Notify next agent(s) with context
|
|
340
|
+
2. Update global state
|
|
341
|
+
3. Monitor progress (proactively check if delayed)
|
|
342
|
+
4. If cycle detected, alert Strategist
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## Memory & Observation Tools
|
|
347
|
+
|
|
348
|
+
- **`save_observation`**: Save findings, decisions, gotchas to memory. Include `symbols` to link to code. Use `tags` to categorize.
|
|
349
|
+
- **`search_memory`**: Search past observations semantically. Check before starting work.
|
|
350
|
+
- **`get_session_context`**: Get observations from current and recent sessions.
|
|
351
|
+
|
|
352
|
+
**What to observe as Supervisor:**
|
|
353
|
+
- Save routing decisions and their rationale (`tags: ['routing', 'decision']`)
|
|
354
|
+
- Save cycle/loop occurrences and their resolution (`tags: ['cycle', 'resolution']`)
|
|
355
|
+
- Save parallel dispatch outcomes (timing, conflicts) (`tags: ['parallel', 'dispatch']`)
|
|
356
|
+
- Save bottleneck and stall patterns (`tags: ['bottleneck', 'stall']`)
|
|
357
|
+
- Before starting, `get_session_context` to understand what has been learned so far in the current pipeline run
|
|
358
|
+
|
|
359
|
+
## Git Context Tools
|
|
360
|
+
|
|
361
|
+
- **`get_git_context`**: mode=hotspots (volatile files), mode=commit_search (why changes were made), mode=file_history (file's commit history)
|
|
362
|
+
|
|
363
|
+
**Usage:** Use `hotspots` to assess risk when routing -- volatile files may need extra verification. Use `commit_search` to understand the history of modules being changed, informing risk-based routing decisions.
|
|
364
|
+
|
|
365
|
+
## Cross-Agent Collaboration
|
|
366
|
+
|
|
367
|
+
- **`broadcast_finding`**: Share discoveries/warnings/blockers with other agents. severity: critical/warning/info.
|
|
368
|
+
- **`get_broadcasts`**: Check what other agents shared during this pipeline run.
|
|
369
|
+
|
|
370
|
+
**Usage:** Check broadcasts from ALL agents to inform routing decisions -- critical broadcasts may require re-routing or escalation. Broadcast routing decisions and phase transitions so all agents stay informed of pipeline progress.
|
|
371
|
+
|
|
372
|
+
## Atlassian Context (Optional)
|
|
373
|
+
|
|
374
|
+
If Jira is configured (via the `atlassian` MCP server), use it to inform routing decisions:
|
|
375
|
+
|
|
376
|
+
- **Sprint capacity:** Check sprint board capacity when routing priority decisions -- high-priority tickets may need faster routing.
|
|
377
|
+
- **Blockers:** Check for blocking Jira issues that may affect pipeline progression.
|
|
378
|
+
- **Status updates:** Update Jira ticket status as the pipeline progresses through phases.
|
|
379
|
+
|
|
380
|
+
If the Atlassian MCP server is unavailable, skip without error. Jira context is supplementary, not required.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brainstorm
|
|
3
|
+
description: Start a creative brainstorming session. Explore ideas before committing to a formal pipeline.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /brainstorm — Creative Exploration
|
|
7
|
+
|
|
8
|
+
Dispatch the **brainstormer** agent for pre-pipeline creative exploration.
|
|
9
|
+
|
|
10
|
+
## Behavior
|
|
11
|
+
|
|
12
|
+
**User provides a topic** (e.g., `/brainstorm multi-tenancy`):
|
|
13
|
+
- Dispatch the brainstormer agent with the topic as the seed
|
|
14
|
+
- The brainstormer will explore possibilities, challenge assumptions, and converge on a direction
|
|
15
|
+
|
|
16
|
+
**No topic provided** (just `/brainstorm`):
|
|
17
|
+
- Dispatch the brainstormer agent in open exploration mode
|
|
18
|
+
- The brainstormer will ask what's on the user's mind
|
|
19
|
+
|
|
20
|
+
## Notes
|
|
21
|
+
|
|
22
|
+
- This is separate from `/forge` — it's a standalone entry point for creative exploration
|
|
23
|
+
- The brainstormer does NOT interact with the pipeline engine (no MCP tools)
|
|
24
|
+
- When the user is ready to build, the brainstormer hands off to the Strategist via `/forge`
|
|
25
|
+
- The brainstormer writes a Brief document to `docs/plans/YYYY-MM-DD-{TITLE}/brief.md`
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: forge
|
|
3
|
+
description: Start or continue a Forge workflow. Routes to the appropriate phase agent based on current project state.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /forge — Pipeline Entry Point
|
|
7
|
+
|
|
8
|
+
You are the Forge dispatcher. When the user invokes `/forge`, determine the appropriate action and execute it.
|
|
9
|
+
|
|
10
|
+
## Behavior
|
|
11
|
+
|
|
12
|
+
### 1. Check for Active Projects
|
|
13
|
+
|
|
14
|
+
Call `mcp__dk-forge__get_state` for any recently active project to check current pipeline state.
|
|
15
|
+
|
|
16
|
+
### 2. Route Based on Context
|
|
17
|
+
|
|
18
|
+
**No active project + user has a task description:**
|
|
19
|
+
- Create a new project with `mcp__dk-forge__create_project`
|
|
20
|
+
- Classify the task:
|
|
21
|
+
- **Trivial** (typo, config tweak, one-liner): Just do it directly, no pipeline.
|
|
22
|
+
- **Bug fix / targeted change**: Use abbreviated pipeline — Architect → Specialists → Inspector.
|
|
23
|
+
- **New feature / significant change**: Use full pipeline — start with Strategist interview.
|
|
24
|
+
- Dispatch the appropriate first agent.
|
|
25
|
+
|
|
26
|
+
**Active project exists:**
|
|
27
|
+
- Read the current phase from `mcp__dk-forge__get_state`.
|
|
28
|
+
- Resume the pipeline at the current phase by dispatching the appropriate agent.
|
|
29
|
+
- If the project is stuck or the user wants to restart, ask before taking action.
|
|
30
|
+
|
|
31
|
+
**User provides arguments** (e.g., `/forge status`, `/forge new <name>`):
|
|
32
|
+
- `status` — Call `mcp__dk-forge__get_state` and display current pipeline state using the terminal-presentation skill.
|
|
33
|
+
- `new <name>` — Create a new project and start the Strategist interview.
|
|
34
|
+
- `history` — Call `mcp__dk-forge__get_project_history` and display the full event timeline.
|
|
35
|
+
- `resume` — Resume the most recent active project at its current phase.
|
|
36
|
+
|
|
37
|
+
### 2.5 Brainstorm Signals
|
|
38
|
+
|
|
39
|
+
If the user's message contains brainstorm signals, dispatch the **brainstormer** agent instead of starting a pipeline:
|
|
40
|
+
|
|
41
|
+
**Signals**: "I have an idea", "let's brainstorm", "I'm thinking about", "what if we", "crazy idea", "explore", "what are our options"
|
|
42
|
+
|
|
43
|
+
**Action**: Dispatch the brainstormer agent with the user's message as the seed. Do NOT create a pipeline project — brainstorming happens before the pipeline.
|
|
44
|
+
|
|
45
|
+
**Handoff**: When the brainstormer completes, it produces a Brief document. If the user wants to proceed, create a pipeline project and start the Strategist with the Brief summary as `initial_request`.
|
|
46
|
+
|
|
47
|
+
### 3. Pipeline Phase → Agent Mapping
|
|
48
|
+
|
|
49
|
+
| Phase | Agent | Description |
|
|
50
|
+
|-------|-------|-------------|
|
|
51
|
+
| (pre-pipeline) | brainstormer | Creative exploration before structured pipeline |
|
|
52
|
+
| `interview` | strategist | Vision capture and user interview |
|
|
53
|
+
| `requirements` | product-manager | Structured requirements elicitation |
|
|
54
|
+
| `architecture` | architect | Technical design and module planning |
|
|
55
|
+
| `design` | designer | XD/UX plan for UI-touching features |
|
|
56
|
+
| `qa_strategy` | qa-strategist | Test plan based on arch + design |
|
|
57
|
+
| `implementation` | backend-specialist, frontend-specialist, data-specialist, platform-engineer | Parallel module implementation |
|
|
58
|
+
| `inspection` | inspector | Verification — build, wiring, anti-stub, security |
|
|
59
|
+
| `acceptance` | product-owner | Product verification — run APIs with curl, UI with Playwright, generate tests |
|
|
60
|
+
| `exit_review` | strategist, architect, designer, qa-strategist, knowledge-keeper, self-improver | Collaborative exit debrief — all 6 agents review findings in parallel |
|
|
61
|
+
|
|
62
|
+
### 4. Forge Tools Available
|
|
63
|
+
|
|
64
|
+
**Pipeline Management:**
|
|
65
|
+
- `mcp__dk-forge__create_project` — Create a new pipeline project
|
|
66
|
+
- `mcp__dk-forge__get_state` — Get current pipeline state
|
|
67
|
+
|
|
68
|
+
**Phase Transitions:**
|
|
69
|
+
- `mcp__dk-forge__start_interview` / `mcp__dk-forge__submit_vision`
|
|
70
|
+
- `mcp__dk-forge__start_architecture` / `mcp__dk-forge__submit_plan`
|
|
71
|
+
- `mcp__dk-forge__start_design` / `mcp__dk-forge__submit_design`
|
|
72
|
+
- `mcp__dk-forge__start_qa_strategy` / `mcp__dk-forge__submit_test_plan`
|
|
73
|
+
- `mcp__dk-forge__start_implementation` / `mcp__dk-forge__submit_implementation`
|
|
74
|
+
- `mcp__dk-forge__start_inspection` / `mcp__dk-forge__submit_verdict`
|
|
75
|
+
- `mcp__dk-forge__collect_knowledge`
|
|
76
|
+
|
|
77
|
+
**Knowledge & Context:**
|
|
78
|
+
- `mcp__dk-forge__search_knowledge` — Semantic search over gotchas, patterns, decisions
|
|
79
|
+
- `mcp__dk-forge__get_codebase_context` — Hybrid code search (vector + graph)
|
|
80
|
+
- `mcp__dk-forge__get_project_history` — Full event history for a project
|
|
81
|
+
- `mcp__dk-forge__get_patterns` / `mcp__dk-forge__get_gotchas` — Retrieve knowledge items
|
|
82
|
+
|
|
83
|
+
**Repo Management:**
|
|
84
|
+
- `mcp__dk-forge__register` — Register a repo with the forge server
|
|
85
|
+
- `mcp__dk-forge__init` — Initialize .forge/ directory in a repo
|
|
86
|
+
- `mcp__dk-forge__list_repos` — List all registered repos
|
|
87
|
+
- `mcp__dk-forge__get_manifest` — Read a repo's .forge/manifest.yaml
|
|
88
|
+
- `mcp__dk-forge__index_repo` — Index a repo for code search
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Atlassian Integration Guide
|
|
2
|
+
|
|
3
|
+
The Forge plugin supports optional Jira integration via the [mcp-atlassian](https://github.com/sooperset/mcp-atlassian) MCP server. When configured, agents can pull Jira context (tickets, sprints, acceptance criteria) and push updates (comments, status transitions) during pipeline execution.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
1. **Python 3.10+** with `uvx` available on PATH (installed via `pipx` or `uv`)
|
|
8
|
+
2. **Jira Cloud** instance with API access
|
|
9
|
+
3. **Jira API token** generated from [Atlassian Account Settings](https://id.atlassian.com/manage-profile/security/api-tokens)
|
|
10
|
+
|
|
11
|
+
## Environment Variables
|
|
12
|
+
|
|
13
|
+
Set these in your shell environment or `.env` file before launching Claude Code:
|
|
14
|
+
|
|
15
|
+
| Variable | Description | Example |
|
|
16
|
+
|----------|-------------|---------|
|
|
17
|
+
| `JIRA_URL` | Your Jira Cloud instance URL | `https://yourcompany.atlassian.net` |
|
|
18
|
+
| `JIRA_USERNAME` | Your Jira account email | `adam@company.com` |
|
|
19
|
+
| `JIRA_API_TOKEN` | API token from Atlassian account settings | `ATATT3x...` |
|
|
20
|
+
|
|
21
|
+
## How It Works
|
|
22
|
+
|
|
23
|
+
The `plugin/.mcp.json` includes an `atlassian` server entry that launches `mcp-atlassian` via `uvx` when Claude Code starts. The MCP server exposes Jira tools (search issues, get issue details, add comments, transition issues, etc.) that agents can call.
|
|
24
|
+
|
|
25
|
+
**Graceful degradation:** All Atlassian sections in agent prompts are wrapped in "Optional" headers with explicit "If unavailable, skip without error" instructions. If the environment variables are not set or the MCP server fails to start, agents proceed normally without Jira context. No pipeline functionality depends on Jira.
|
|
26
|
+
|
|
27
|
+
## Configuration
|
|
28
|
+
|
|
29
|
+
The MCP server entry in `plugin/.mcp.json`:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
"atlassian": {
|
|
33
|
+
"command": "uvx",
|
|
34
|
+
"args": ["mcp-atlassian"],
|
|
35
|
+
"env": {
|
|
36
|
+
"JIRA_URL": "${JIRA_URL}",
|
|
37
|
+
"JIRA_USERNAME": "${JIRA_USERNAME}",
|
|
38
|
+
"JIRA_API_TOKEN": "${JIRA_API_TOKEN}"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The `${VAR}` syntax references environment variables from the shell environment where Claude Code is launched.
|
|
44
|
+
|
|
45
|
+
## Agent Usage
|
|
46
|
+
|
|
47
|
+
The following agents have Atlassian context sections in their prompts:
|
|
48
|
+
|
|
49
|
+
| Agent | Jira Usage | When |
|
|
50
|
+
|-------|-----------|------|
|
|
51
|
+
| **Strategist** | Pull linked issue for interview context; comment post-vision | Pre-interview, post-vision |
|
|
52
|
+
| **Architect** | Check blocking issues and linked PRs; comment post-plan | Pre-planning, post-planning |
|
|
53
|
+
| **Inspector** | Check acceptance criteria; comment pass/fail verdict; transition issue | Pre-inspection, post-inspection |
|
|
54
|
+
| **Knowledge Keeper** | Pull ticket changelog for decision history reconstruction | During knowledge extraction |
|
|
55
|
+
| **Product Manager** | Pull existing stories/epics to avoid duplicate requirements | Pre-interview |
|
|
56
|
+
| **Supervisor** | Check sprint capacity for routing priority decisions | At routing decisions |
|
|
57
|
+
| **Platform Engineer** | Check CI pipeline status and infrastructure tickets | During infrastructure work |
|
|
58
|
+
|
|
59
|
+
Agents that do NOT use Jira context: Designer, QA Strategist, Backend Specialist, Frontend Specialist, Data Specialist. These agents focus on execution and receive all necessary context from planning agents.
|
|
60
|
+
|
|
61
|
+
## Linking Projects to Jira
|
|
62
|
+
|
|
63
|
+
When creating a Forge pipeline project, you can optionally provide Jira context:
|
|
64
|
+
|
|
65
|
+
- `jira_ticket`: The Jira issue key (e.g., `PROJ-123`) linked to this pipeline run
|
|
66
|
+
- `jira_epic`: The Jira epic key (e.g., `PROJ-50`) for broader context
|
|
67
|
+
|
|
68
|
+
These fields are stored in the project metadata and returned by `get_state`, so all agents automatically discover the linked ticket.
|
|
69
|
+
|
|
70
|
+
## Troubleshooting
|
|
71
|
+
|
|
72
|
+
### MCP server fails to start
|
|
73
|
+
|
|
74
|
+
Verify `uvx` is on PATH:
|
|
75
|
+
```bash
|
|
76
|
+
uvx --version
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
If not installed, install via:
|
|
80
|
+
```bash
|
|
81
|
+
pip install uv
|
|
82
|
+
# or
|
|
83
|
+
pipx install uv
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Authentication errors
|
|
87
|
+
|
|
88
|
+
1. Verify your Jira URL does not have a trailing slash
|
|
89
|
+
2. Verify the API token is current (they can expire)
|
|
90
|
+
3. Verify the username matches the email associated with the API token
|
|
91
|
+
4. Test access manually:
|
|
92
|
+
```bash
|
|
93
|
+
curl -u "your-email@company.com:your-api-token" \
|
|
94
|
+
"https://yourcompany.atlassian.net/rest/api/3/myself"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Environment variables not picked up
|
|
98
|
+
|
|
99
|
+
The `${VAR}` syntax in `.mcp.json` reads from the shell environment at Claude Code startup time. If you set variables after launching Claude Code, restart the session.
|
|
100
|
+
|
|
101
|
+
On Windows, set variables in your shell profile or use:
|
|
102
|
+
```powershell
|
|
103
|
+
$env:JIRA_URL = "https://yourcompany.atlassian.net"
|
|
104
|
+
$env:JIRA_USERNAME = "adam@company.com"
|
|
105
|
+
$env:JIRA_API_TOKEN = "your-token"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Agents ignoring Jira context
|
|
109
|
+
|
|
110
|
+
All Atlassian sections are marked "Optional" in agent prompts. If agents consistently skip Jira, verify the MCP server is running by checking Claude Code's MCP server list. The `atlassian` server should appear as connected.
|