forge-server 0.1.0 → 0.1.1
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/bin/setup-forge.sh +1 -1
- package/bin/setup.js +99 -0
- package/dist/cli.js +37 -37
- package/dist/cli.js.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/storage/schema.js +113 -113
- package/dist/storage/schema.js.map +1 -1
- package/dist/storage/sqlite.js +1 -1
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/util/logger.d.ts +1 -1
- package/dist/util/logger.js +1 -1
- package/dist/util/types.js +1 -1
- package/dist/util/types.js.map +1 -1
- package/package.json +8 -2
- package/plugin/.mcp.json +1 -1
- package/.claude/hooks/worktree-create.sh +0 -64
- package/.claude/hooks/worktree-remove.sh +0 -57
- package/.claude/settings.local.json +0 -29
- package/.forge/knowledge/conventions.yaml +0 -1
- package/.forge/knowledge/decisions.yaml +0 -1
- package/.forge/knowledge/gotchas.yaml +0 -1
- package/.forge/knowledge/patterns.yaml +0 -1
- package/.forge/manifest.yaml +0 -6
- package/CLAUDE.md +0 -144
- package/docker-compose.yml +0 -20
- package/docs/plans/2026-02-27-swarm-coordination/architecture.md +0 -203
- package/docs/plans/2026-02-27-swarm-coordination/vision.md +0 -57
- package/docs/plans/completed/2026-02-26-forge-plugin-bundling/architecture.md +0 -1
- package/docs/plans/completed/2026-02-26-forge-plugin-bundling/vision.md +0 -300
- package/docs/plans/completed/2026-02-27-forge-swarm-learning/architecture.md +0 -480
- package/docs/plans/completed/2026-02-27-forge-swarm-learning/verification-checklist.md +0 -462
- package/docs/plans/completed/2026-02-27-git-history-atlassian/git-jira-plan.md +0 -181
- package/src/cli.ts +0 -655
- package/src/context/.gitkeep +0 -0
- package/src/context/codebase.ts +0 -393
- package/src/context/injector.ts +0 -797
- package/src/context/memory.ts +0 -187
- package/src/context/session-index.ts +0 -327
- package/src/context/session.ts +0 -152
- package/src/index.ts +0 -47
- package/src/ingestion/.gitkeep +0 -0
- package/src/ingestion/chunker.ts +0 -277
- package/src/ingestion/embedder.ts +0 -167
- package/src/ingestion/git-analyzer.ts +0 -545
- package/src/ingestion/indexer.ts +0 -984
- package/src/ingestion/markdown-chunker.ts +0 -337
- package/src/ingestion/markdown-knowledge.ts +0 -175
- package/src/ingestion/parser.ts +0 -475
- package/src/ingestion/watcher.ts +0 -182
- package/src/knowledge/.gitkeep +0 -0
- package/src/knowledge/hydrator.ts +0 -246
- package/src/knowledge/registry.ts +0 -463
- package/src/knowledge/search.ts +0 -565
- package/src/knowledge/store.ts +0 -262
- package/src/learning/.gitkeep +0 -0
- package/src/learning/confidence.ts +0 -193
- package/src/learning/patterns.ts +0 -360
- package/src/learning/trajectory.ts +0 -268
- package/src/memory/.gitkeep +0 -0
- package/src/memory/memory-compat.ts +0 -233
- package/src/memory/observation-store.ts +0 -224
- package/src/memory/session-tracker.ts +0 -332
- package/src/pipeline/.gitkeep +0 -0
- package/src/pipeline/engine.ts +0 -1139
- package/src/pipeline/events.ts +0 -253
- package/src/pipeline/parallel.ts +0 -394
- package/src/pipeline/state-machine.ts +0 -199
- package/src/query/.gitkeep +0 -0
- package/src/query/graph-queries.ts +0 -262
- package/src/query/hybrid-search.ts +0 -337
- package/src/query/intent-detector.ts +0 -131
- package/src/query/ranking.ts +0 -161
- package/src/server.ts +0 -352
- package/src/storage/.gitkeep +0 -0
- package/src/storage/falkordb-store.ts +0 -388
- package/src/storage/file-cache.ts +0 -141
- package/src/storage/interfaces.ts +0 -201
- package/src/storage/qdrant-store.ts +0 -557
- package/src/storage/schema.ts +0 -139
- package/src/storage/sqlite.ts +0 -168
- package/src/tools/.gitkeep +0 -0
- package/src/tools/collaboration-tools.ts +0 -208
- package/src/tools/context-tools.ts +0 -493
- package/src/tools/graph-tools.ts +0 -295
- package/src/tools/ingestion-tools.ts +0 -122
- package/src/tools/learning-tools.ts +0 -181
- package/src/tools/memory-tools.ts +0 -234
- package/src/tools/phase-tools.ts +0 -1452
- package/src/tools/pipeline-tools.ts +0 -188
- package/src/tools/registration-tools.ts +0 -450
- package/src/util/.gitkeep +0 -0
- package/src/util/circuit-breaker.ts +0 -193
- package/src/util/config.ts +0 -177
- package/src/util/logger.ts +0 -53
- package/src/util/token-counter.ts +0 -52
- package/src/util/types.ts +0 -710
- 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 +0 -21
- package/vitest.config.ts +0 -10
- package/vscode-extension/.vscodeignore +0 -7
- package/vscode-extension/README.md +0 -43
- package/vscode-extension/out/edge-collector.js +0 -274
- package/vscode-extension/out/edge-collector.js.map +0 -1
- package/vscode-extension/out/extension.js +0 -264
- package/vscode-extension/out/extension.js.map +0 -1
- package/vscode-extension/out/forge-client.js +0 -318
- package/vscode-extension/out/forge-client.js.map +0 -1
- package/vscode-extension/package-lock.json +0 -59
- package/vscode-extension/package.json +0 -71
- package/vscode-extension/src/edge-collector.ts +0 -320
- package/vscode-extension/src/extension.ts +0 -269
- package/vscode-extension/src/forge-client.ts +0 -364
- package/vscode-extension/tsconfig.json +0 -19
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
# Vision: Forge Plugin Bundling
|
|
2
|
-
|
|
3
|
-
**Date**: 2026-02-26
|
|
4
|
-
**Status**: Implemented (plugin bundling complete; rebranded 2026-02-27)
|
|
5
|
-
**Author**: Strategist (on behalf of Adam Reynolds)
|
|
6
|
-
|
|
7
|
-
> **Note (2026-02-27):** This vision was implemented. The project was subsequently rebranded from `forge-pipeline-server` / `mcp__forge__*` to `dk-forge-server` / `mcp__dk-forge__*`. References below reflect the original naming at time of writing. See project CLAUDE.md for current naming convention.
|
|
8
|
-
|
|
9
|
-
## Problem Statement
|
|
10
|
-
|
|
11
|
-
The Forge agent pipeline currently exists as two disconnected pieces: a forge-pipeline-server MCP server (TypeScript, distributed as a package) and a collection of 12 agent prompts, 14+ skills, and orchestration documentation that live in Adam's personal `~/.claude/` directory. Anyone who installs the forge-pipeline-server MCP server gets the tools (pipeline phases, knowledge search, codebase context) but NOT the agents, skills, or workflow documentation that make those tools useful.
|
|
12
|
-
|
|
13
|
-
This means:
|
|
14
|
-
1. **No one else can use Forge.** Another developer installing the MCP server would have `forge_create_project` and `forge_start_interview` tools available, but no agent system prompt telling Claude when or how to use them. The tools are inert without the orchestration layer.
|
|
15
|
-
2. **Version drift between agents and server.** The personal `~/.claude/agents/` directory has already diverged from the early `~/.claude/plugins/forge/agents/` directory -- the personal versions reference the Supervisor agent and dynamic routing, while the plugin versions still describe the older linear handoff model.
|
|
16
|
-
3. **Manual sync is fragile.** When Adam updates an agent prompt (e.g., adding MCP tool references, changing the workflow), those changes stay local. The existing plugin copy was a manual snapshot that immediately went stale.
|
|
17
|
-
4. **No single source of truth.** Agent prompts reference MCP tools by name (e.g., `mcp__forge-pipeline__forge_create_project`), but there is no mechanism to validate that the tools referenced in prompts actually exist in the server, or that the server's tools are documented in the agent prompts.
|
|
18
|
-
|
|
19
|
-
The Claude Code plugin system provides exactly the distribution mechanism needed: a `.claude-plugin/plugin.json` manifest, auto-discovered `agents/`, `skills/`, `commands/`, `hooks/` directories, and critically, a `.mcp.json` file that can auto-start the forge-pipeline-server when the plugin is enabled.
|
|
20
|
-
|
|
21
|
-
## Goals
|
|
22
|
-
|
|
23
|
-
- Bundle all forge agents, skills, workflow docs, and MCP server configuration into a single distributable Claude Code plugin that lives inside the forge-pipeline-server repository.
|
|
24
|
-
- Make the plugin the single source of truth for agent prompts and skills -- the personal `~/.claude/agents/` and `~/.claude/skills/` directories should no longer contain forge-specific content.
|
|
25
|
-
- Auto-start the forge-pipeline-server MCP server when the plugin is enabled, using the `.mcp.json` mechanism with `${CLAUDE_PLUGIN_ROOT}` for portable path references.
|
|
26
|
-
- Include the Supervisor agent (currently only in personal `~/.claude/agents/supervisor.md`, missing from the existing plugin).
|
|
27
|
-
- Include a `/forge` slash command that serves as the entry point for new users.
|
|
28
|
-
- Ensure agents reference the correct MCP tool names (prefixed as `mcp__forge-pipeline__*`) and that the tool references in agent prompts match the actual tools registered by the server.
|
|
29
|
-
- Separate personal/user-specific content (NestJS stack preferences, Synapse naming conventions, IaC repo paths, gotchas learned) from the distributable forge workflow content.
|
|
30
|
-
- Support both local development installation (`isLocal: true` pointing at the repo) and future marketplace/npm distribution.
|
|
31
|
-
|
|
32
|
-
## Non-Goals (Explicitly Out of Scope)
|
|
33
|
-
|
|
34
|
-
- **Publishing to a marketplace.** This iteration produces a plugin that works as a local install or git-based install. Marketplace packaging (registry metadata, review process, listing) is a future iteration.
|
|
35
|
-
- **Rewriting agent prompts.** The existing agent prompts are mature and battle-tested. This iteration moves them into the plugin structure and updates tool references to use the correct MCP prefix. It does NOT rewrite the agent system prompts from scratch.
|
|
36
|
-
- **Hooks for pipeline enforcement.** While the plugin system supports hooks (e.g., a `PreToolUse` hook that checks whether a pipeline project exists before allowing code writes), designing and implementing enforcement hooks is a future iteration. This iteration focuses on distribution.
|
|
37
|
-
- **Automated testing of agent prompts.** Validating that agent prompts correctly reference available MCP tools could be automated, but building that test infrastructure is out of scope. Manual verification during this iteration.
|
|
38
|
-
- **Multi-user concurrent pipeline support.** The forge-pipeline-server stores state in a per-user SQLite database. Multi-user or team-shared pipeline state is out of scope.
|
|
39
|
-
- **Docker Compose / infrastructure bundling.** The forge server depends on Qdrant and FalkorDB for full functionality. Bundling docker-compose configs or helm charts for these dependencies is out of scope -- users must set up the backing services themselves.
|
|
40
|
-
|
|
41
|
-
## Success Criteria
|
|
42
|
-
|
|
43
|
-
- A developer who runs `claude plugins install --local /path/to/forge-pipeline-server/plugin` (or equivalent git-based install) gets:
|
|
44
|
-
- All 12 agents loaded and available for dispatch (strategist, architect, supervisor, product-manager, designer, qa-strategist, backend-specialist, frontend-specialist, data-specialist, platform-engineer, inspector, knowledge-keeper).
|
|
45
|
-
- All 14 forge-specific skills loaded and invocable (interviewing, terminal-presentation, project-discovery, implementation-execution, verification-protocol, test-strategy, parallel-dispatch, agent-handoff, knowledge-curation, tdd, debugging, anti-stub, security-audit, graph-orchestrator).
|
|
46
|
-
- The forge-pipeline-server MCP server auto-started and its tools (forge_create_project, forge_start_interview, forge_submit_vision, etc.) available without manual MCP configuration.
|
|
47
|
-
- A `/forge` command that explains the workflow and starts a new pipeline.
|
|
48
|
-
- The plugin works on Windows, macOS, and Linux (portable paths via `${CLAUDE_PLUGIN_ROOT}`).
|
|
49
|
-
- The forge-pipeline-server repository is the single source of truth -- no forge-specific agent or skill content remains in Adam's personal `~/.claude/agents/` or `~/.claude/skills/` directories after migration.
|
|
50
|
-
- The personal `~/.claude/CLAUDE.md` retains user-specific preferences (stack, naming conventions, gotchas) that are NOT part of the distributable plugin.
|
|
51
|
-
|
|
52
|
-
## What Moves vs. What Stays
|
|
53
|
-
|
|
54
|
-
### Moves INTO the Plugin (distributable)
|
|
55
|
-
|
|
56
|
-
| Content | Source Location | Plugin Location |
|
|
57
|
-
|---------|----------------|-----------------|
|
|
58
|
-
| 12 agent prompts | `~/.claude/agents/*.md` | `plugin/agents/*.md` |
|
|
59
|
-
| Supervisor agent | `~/.claude/agents/supervisor.md` | `plugin/agents/supervisor.md` |
|
|
60
|
-
| 14 forge-specific skills | `~/.claude/skills/{name}/SKILL.md` | `plugin/skills/{name}/SKILL.md` |
|
|
61
|
-
| Workflow documentation | `~/.claude/plugins/forge/docs/workflow.md` | `plugin/docs/workflow.md` |
|
|
62
|
-
| Plugin manifest | `~/.claude/plugins/forge/.claude-plugin/plugin.json` | `plugin/.claude-plugin/plugin.json` |
|
|
63
|
-
| README | `~/.claude/plugins/forge/README.md` | `plugin/README.md` |
|
|
64
|
-
| MCP server config | (new) | `plugin/.mcp.json` |
|
|
65
|
-
| Forge command | (new) | `plugin/commands/forge.md` |
|
|
66
|
-
|
|
67
|
-
### Stays PERSONAL (not distributed)
|
|
68
|
-
|
|
69
|
-
| Content | Location | Reason |
|
|
70
|
-
|---------|----------|--------|
|
|
71
|
-
| NestJS + Drizzle preferences | `~/.claude/CLAUDE.md` | Stack-specific, not forge-generic |
|
|
72
|
-
| Synapse naming conventions | `~/.claude/CLAUDE.md` | Project-specific |
|
|
73
|
-
| IaC repo paths | `~/.claude/CLAUDE.md` | User-specific local paths |
|
|
74
|
-
| Gotchas learned | `~/.claude/CLAUDE.md` | Personal institutional memory |
|
|
75
|
-
| Non-forge skills (nestjs, frontend-design, visual-explainer, etc.) | `~/.claude/skills/` | General-purpose, not forge-specific |
|
|
76
|
-
| .claude-flow daemon state | `~/.claude/.claude-flow/` | Runtime state |
|
|
77
|
-
| .swarm memory | `~/.claude/.swarm/` | Runtime state |
|
|
78
|
-
| Session history | `~/.claude/history.jsonl` | Personal |
|
|
79
|
-
|
|
80
|
-
### Skills Classification
|
|
81
|
-
|
|
82
|
-
**Forge-specific (move to plugin):**
|
|
83
|
-
- interviewing
|
|
84
|
-
- terminal-presentation
|
|
85
|
-
- project-discovery
|
|
86
|
-
- implementation-execution
|
|
87
|
-
- verification-protocol
|
|
88
|
-
- test-strategy
|
|
89
|
-
- parallel-dispatch
|
|
90
|
-
- agent-handoff
|
|
91
|
-
- knowledge-curation
|
|
92
|
-
- tdd
|
|
93
|
-
- debugging
|
|
94
|
-
- anti-stub
|
|
95
|
-
- security-audit
|
|
96
|
-
- graph-orchestrator
|
|
97
|
-
|
|
98
|
-
**Personal / general-purpose (stay in `~/.claude/skills/`):**
|
|
99
|
-
- nestjs (stack-specific)
|
|
100
|
-
- frontend-design (general)
|
|
101
|
-
- visual-explainer (general, third-party)
|
|
102
|
-
- agent-development (meta, for creating agents)
|
|
103
|
-
- skill-development (meta, for creating skills)
|
|
104
|
-
- mcp-integration (meta)
|
|
105
|
-
- analyzing-financial-statements (domain-specific)
|
|
106
|
-
- applying-brand-guidelines (domain-specific)
|
|
107
|
-
- creating-financial-models (domain-specific)
|
|
108
|
-
- writing-rules (general)
|
|
109
|
-
- optimize-claude-md (meta)
|
|
110
|
-
- record-claude-md (meta)
|
|
111
|
-
- self-improving-agent (meta)
|
|
112
|
-
- fix (general)
|
|
113
|
-
- vector-memory (deprecated, replaced by forge MCP server)
|
|
114
|
-
|
|
115
|
-
## Plugin Directory Structure
|
|
116
|
-
|
|
117
|
-
```
|
|
118
|
-
forge-pipeline-server/
|
|
119
|
-
src/ # MCP server source (existing)
|
|
120
|
-
dist/ # Compiled MCP server (existing)
|
|
121
|
-
plugin/ # Claude Code plugin root
|
|
122
|
-
.claude-plugin/
|
|
123
|
-
plugin.json # Plugin manifest
|
|
124
|
-
.mcp.json # Auto-start forge MCP server
|
|
125
|
-
agents/
|
|
126
|
-
strategist.md
|
|
127
|
-
architect.md
|
|
128
|
-
supervisor.md
|
|
129
|
-
product-manager.md
|
|
130
|
-
designer.md
|
|
131
|
-
qa-strategist.md
|
|
132
|
-
backend-specialist.md
|
|
133
|
-
frontend-specialist.md
|
|
134
|
-
data-specialist.md
|
|
135
|
-
platform-engineer.md
|
|
136
|
-
inspector.md
|
|
137
|
-
knowledge-keeper.md
|
|
138
|
-
skills/
|
|
139
|
-
interviewing/
|
|
140
|
-
SKILL.md
|
|
141
|
-
terminal-presentation/
|
|
142
|
-
SKILL.md
|
|
143
|
-
project-discovery/
|
|
144
|
-
SKILL.md
|
|
145
|
-
implementation-execution/
|
|
146
|
-
SKILL.md
|
|
147
|
-
verification-protocol/
|
|
148
|
-
SKILL.md
|
|
149
|
-
test-strategy/
|
|
150
|
-
SKILL.md
|
|
151
|
-
parallel-dispatch/
|
|
152
|
-
SKILL.md
|
|
153
|
-
agent-handoff/
|
|
154
|
-
SKILL.md
|
|
155
|
-
knowledge-curation/
|
|
156
|
-
SKILL.md
|
|
157
|
-
tdd/
|
|
158
|
-
SKILL.md
|
|
159
|
-
debugging/
|
|
160
|
-
SKILL.md
|
|
161
|
-
anti-stub/
|
|
162
|
-
SKILL.md
|
|
163
|
-
security-audit/
|
|
164
|
-
SKILL.md
|
|
165
|
-
graph-orchestrator/
|
|
166
|
-
SKILL.md
|
|
167
|
-
commands/
|
|
168
|
-
forge.md # /forge entry point command
|
|
169
|
-
docs/
|
|
170
|
-
workflow.md # Full orchestration documentation
|
|
171
|
-
README.md # Plugin overview and installation guide
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
## MCP Server Auto-Start Configuration
|
|
175
|
-
|
|
176
|
-
The `.mcp.json` at plugin root will auto-start the forge-pipeline-server:
|
|
177
|
-
|
|
178
|
-
```json
|
|
179
|
-
{
|
|
180
|
-
"forge": {
|
|
181
|
-
"command": "node",
|
|
182
|
-
"args": ["${CLAUDE_PLUGIN_ROOT}/../dist/index.js"],
|
|
183
|
-
"env": {
|
|
184
|
-
"QDRANT_URL": "${QDRANT_URL}",
|
|
185
|
-
"FALKORDB_HOST": "${FALKORDB_HOST}",
|
|
186
|
-
"FALKORDB_PORT": "${FALKORDB_PORT}",
|
|
187
|
-
"FORGE_DB_PATH": "${FORGE_DB_PATH}"
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
The `${CLAUDE_PLUGIN_ROOT}` resolves to the `plugin/` directory, so `../dist/index.js` reaches the compiled server. Environment variables with `${}` fallback to the user's shell environment or the server's internal defaults (e.g., Qdrant defaults to `localhost:6333`).
|
|
194
|
-
|
|
195
|
-
**Key design decision**: The plugin directory is a subdirectory of the server repo (`forge-pipeline-server/plugin/`), NOT a separate repo. This keeps agent prompts, server code, and tool registrations in the same repository, enabling atomic changes when a new tool requires a new agent prompt update.
|
|
196
|
-
|
|
197
|
-
## How Agents Reference MCP Tools
|
|
198
|
-
|
|
199
|
-
When the forge MCP server is started via the plugin's `.mcp.json` with server name `forge`, Claude Code exposes its tools with the prefix `mcp__forge__`. Tool method names drop the `forge_` prefix to avoid double-forge. Agent prompts reference tools like:
|
|
200
|
-
|
|
201
|
-
- `mcp__forge__create_project`
|
|
202
|
-
- `mcp__forge__start_interview`
|
|
203
|
-
- `mcp__forge__submit_vision`
|
|
204
|
-
- `mcp__forge__start_architecture`
|
|
205
|
-
- `mcp__forge__submit_plan`
|
|
206
|
-
- `mcp__forge__start_implementation`
|
|
207
|
-
- `mcp__forge__submit_implementation`
|
|
208
|
-
- `mcp__forge__start_inspection`
|
|
209
|
-
- `mcp__forge__submit_verdict`
|
|
210
|
-
- `mcp__forge__collect_knowledge`
|
|
211
|
-
- `mcp__forge__search_knowledge`
|
|
212
|
-
- `mcp__forge__get_codebase_context`
|
|
213
|
-
- `mcp__forge__register`
|
|
214
|
-
- `mcp__forge__get_state`
|
|
215
|
-
|
|
216
|
-
Each agent prompt must include a "## MCP Tools" section listing the specific tools that agent uses, with brief descriptions. This serves as both documentation and a prompt-level contract.
|
|
217
|
-
|
|
218
|
-
**Tool naming note**: The server name in `.mcp.json` is `forge`, producing the prefix `mcp__forge__`. Tool method names are short (e.g. `create_project` not `forge_create_project`). This must be consistent across all agent prompts and the server's tool registrations.
|
|
219
|
-
|
|
220
|
-
## User Stories
|
|
221
|
-
|
|
222
|
-
- **As a developer installing Forge for the first time**, I want to install one plugin and have the full agent pipeline working immediately, so that I do not need to manually copy agent files, configure MCP servers, or understand the internal structure.
|
|
223
|
-
|
|
224
|
-
- **As Adam migrating from the personal setup**, I want to delete forge-specific agents and skills from my `~/.claude/` directories and point to the plugin in the forge-pipeline-server repo, so that I have a single source of truth and can contribute improvements back to the repo.
|
|
225
|
-
|
|
226
|
-
- **As a developer starting a new project with Forge**, I want to type `/forge` and be guided through the Strategist interview, so that I do not need to know which agent to invoke or what the pipeline phases are.
|
|
227
|
-
|
|
228
|
-
- **As a developer resuming a Forge project**, I want the agents to call `forge_get_state` and pick up where I left off, so that session interruptions do not lose progress.
|
|
229
|
-
|
|
230
|
-
- **As a contributor to the forge-pipeline-server**, I want to update an agent prompt and the MCP server code in the same commit, so that tool changes and prompt changes stay in sync.
|
|
231
|
-
|
|
232
|
-
## Constraints
|
|
233
|
-
|
|
234
|
-
- **Claude Code plugin format is the constraint.** The plugin must follow the exact directory structure: `.claude-plugin/plugin.json` at root, `agents/` with `.md` files, `skills/` with subdirectories containing `SKILL.md`, `commands/` with `.md` files, `.mcp.json` at root.
|
|
235
|
-
- **The MCP server must be pre-built.** The `.mcp.json` uses `node dist/index.js`, meaning the TypeScript must be compiled before the plugin works. This is acceptable for local dev (run `npm run build`), but will need consideration for distribution.
|
|
236
|
-
- **Environment variables for backing services.** The forge server gracefully degrades without Qdrant/FalkorDB, but full functionality requires them. The plugin cannot bundle these services -- they must be externally available.
|
|
237
|
-
- **Tool name prefix is determined by .mcp.json server name.** If the server name in `.mcp.json` is `forge-pipeline`, all tool references in agent prompts must use `mcp__forge-pipeline__` prefix. Changing this name would require updating every agent prompt.
|
|
238
|
-
- **Windows path compatibility.** The `${CLAUDE_PLUGIN_ROOT}/../dist/index.js` path traversal must work on Windows. Claude Code handles `${CLAUDE_PLUGIN_ROOT}` expansion, and Node.js resolves forward slashes on Windows, so this should work.
|
|
239
|
-
|
|
240
|
-
## Risks and Mitigations
|
|
241
|
-
|
|
242
|
-
| Risk | Likelihood | Impact | Mitigation |
|
|
243
|
-
|------|-----------|--------|------------|
|
|
244
|
-
| `${CLAUDE_PLUGIN_ROOT}/../dist/` path traversal may not work in plugin sandbox | Medium | High | Test on all three platforms. If blocked, move plugin to repo root instead of subdirectory, or use a wrapper script. |
|
|
245
|
-
| MCP tool prefix changes if server name in .mcp.json changes | Low | High | Document the naming contract prominently. Add a build-time check that agent prompts reference valid tool names. |
|
|
246
|
-
| Agent prompts reference tools from OTHER MCP servers (e.g., `mcp__ruflo__memory_search`) that users may not have | High | Medium | Document optional MCP server dependencies in README. Make agent prompts gracefully handle missing tools by using conditional language ("if available, use..."). |
|
|
247
|
-
| Plugin auto-discovery loads stale agents from both plugin and personal `~/.claude/agents/` | Medium | Medium | Migration guide instructs users to remove forge agents from personal directory. Agent `name` field prevents duplicates (Claude Code deduplicates by name). |
|
|
248
|
-
| forge-pipeline-server `dist/` not built when plugin is first enabled | High | High | Add `postinstall` or `prepare` script. Document that `npm run build` is required. Consider pre-building in CI. |
|
|
249
|
-
| Large prompt sizes (some agents are 15-18KB) may hit context limits when multiple agents are loaded | Low | Medium | Claude Code loads agent prompts on-demand, not all at once. Monitor and trim if needed. |
|
|
250
|
-
|
|
251
|
-
## Open Questions — RESOLVED
|
|
252
|
-
|
|
253
|
-
All open questions have been resolved by the user:
|
|
254
|
-
|
|
255
|
-
1. **Plugin root**: `plugin/` subdirectory. Keeps plugin cleanly separated from server source.
|
|
256
|
-
2. **Build step**: Commit `dist/` to git. Works immediately after clone, no build step needed.
|
|
257
|
-
3. **External MCP refs**: Remove all external MCP references (ruflo, vexp). Agents only reference forge tools. Other integrations are additive, documented separately.
|
|
258
|
-
4. **Tool prefix**: Server name is `forge` (not `forge-pipeline`). Tool METHOD names drop the `forge_` prefix to avoid double-forge. e.g. `create_project` not `forge_create_project`, yielding `mcp__forge__create_project`.
|
|
259
|
-
|
|
260
|
-
### Tool Rename Map
|
|
261
|
-
|
|
262
|
-
| Old Name | New Name | MCP Full Name |
|
|
263
|
-
|----------|----------|---------------|
|
|
264
|
-
| `forge.register` | `register` | `mcp__forge__register` |
|
|
265
|
-
| `forge.init` | `init` | `mcp__forge__init` |
|
|
266
|
-
| `forge.list_repos` | `list_repos` | `mcp__forge__list_repos` |
|
|
267
|
-
| `forge.get_manifest` | `get_manifest` | `mcp__forge__get_manifest` |
|
|
268
|
-
| `forge.index_repo` | `index_repo` | `mcp__forge__index_repo` |
|
|
269
|
-
| `forge_create_project` | `create_project` | `mcp__forge__create_project` |
|
|
270
|
-
| `forge_get_state` | `get_state` | `mcp__forge__get_state` |
|
|
271
|
-
| `forge_start_interview` | `start_interview` | `mcp__forge__start_interview` |
|
|
272
|
-
| `forge_submit_vision` | `submit_vision` | `mcp__forge__submit_vision` |
|
|
273
|
-
| `forge_start_architecture` | `start_architecture` | `mcp__forge__start_architecture` |
|
|
274
|
-
| `forge_submit_plan` | `submit_plan` | `mcp__forge__submit_plan` |
|
|
275
|
-
| `forge_start_design` | `start_design` | `mcp__forge__start_design` |
|
|
276
|
-
| `forge_submit_design` | `submit_design` | `mcp__forge__submit_design` |
|
|
277
|
-
| `forge_start_qa_strategy` | `start_qa_strategy` | `mcp__forge__start_qa_strategy` |
|
|
278
|
-
| `forge_submit_test_plan` | `submit_test_plan` | `mcp__forge__submit_test_plan` |
|
|
279
|
-
| `forge_start_implementation` | `start_implementation` | `mcp__forge__start_implementation` |
|
|
280
|
-
| `forge_submit_implementation` | `submit_implementation` | `mcp__forge__submit_implementation` |
|
|
281
|
-
| `forge_start_inspection` | `start_inspection` | `mcp__forge__start_inspection` |
|
|
282
|
-
| `forge_submit_verdict` | `submit_verdict` | `mcp__forge__submit_verdict` |
|
|
283
|
-
| `forge_collect_knowledge` | `collect_knowledge` | `mcp__forge__collect_knowledge` |
|
|
284
|
-
| `forge_search_knowledge` | `search_knowledge` | `mcp__forge__search_knowledge` |
|
|
285
|
-
| `forge_get_codebase_context` | `get_codebase_context` | `mcp__forge__get_codebase_context` |
|
|
286
|
-
| `forge_get_project_history` | `get_project_history` | `mcp__forge__get_project_history` |
|
|
287
|
-
| `forge_get_patterns` | `get_patterns` | `mcp__forge__get_patterns` |
|
|
288
|
-
| `forge_get_gotchas` | `get_gotchas` | `mcp__forge__get_gotchas` |
|
|
289
|
-
|
|
290
|
-
## Decision Log
|
|
291
|
-
|
|
292
|
-
| Date | Decision | Rationale | Decided By |
|
|
293
|
-
|------|----------|-----------|------------|
|
|
294
|
-
| 2026-02-26 | Plugin lives in `plugin/` subdirectory of forge-pipeline-server repo | Keeps plugin content separate from server source while enabling atomic commits. Single repo = single source of truth. | Strategist |
|
|
295
|
-
| 2026-02-26 | Use latest agent prompts from `~/.claude/agents/` (with Supervisor), not the stale plugin copy | The personal agents have been updated to reference the Supervisor and dynamic routing. The existing plugin copy is outdated. | Strategist |
|
|
296
|
-
| 2026-02-26 | graph-orchestrator skill included in plugin | Referenced by Supervisor agent for workflow graph execution. Part of the forge orchestration system. | Strategist |
|
|
297
|
-
| 2026-02-26 | vector-memory skill excluded from plugin | Deprecated in favor of the forge-pipeline-server's native Qdrant-based vector search. Supervisor agent prompt already marks it as deprecated. | Strategist |
|
|
298
|
-
| 2026-02-26 | Commit dist/ to git | Works immediately after clone with no build step. Slight repo size increase is acceptable for frictionless onboarding. | User |
|
|
299
|
-
| 2026-02-26 | Remove all external MCP references from agents | Agents only reference forge tools. Other integrations (ruflo, vexp) are additive and documented separately. Clean slate for new users. | User |
|
|
300
|
-
| 2026-02-26 | Server name is `forge`, tool methods drop `forge_` prefix | Avoids double-forge in full MCP names. `mcp__forge__create_project` is cleaner than `mcp__forge__forge_create_project`. Requires renaming all tool registrations in server code. | User |
|