| 1 | # Features/Forge — vertical client slice (agent-forge) |
| 2 | |
| 3 | **Normative:** [ADR 0161](../../docs/adr/0161-cide-spine-and-forge-vertical-feature-module.md), [ADR 0160](../../docs/adr/0160-forge-slash-catalog-runtime-overlay.md), [ADR 0158](../../docs/adr/0158-forge-lens-crs-overlay.md). |
| 4 | |
| 5 | ## Одна строка |
| 6 | |
| 7 | CIDE **client** for forge: connect, server-driven slash overlay, command execute, CRS Lens, MCP handlers, bracket refs — **not** forge host. |
| 8 | |
| 9 | ## Layout (F2–F5 done) |
| 10 | |
| 11 | | Path | Concern | |
| 12 | |------|---------| |
| 13 | | `Infrastructure/` | Capabilities fetch, slash overlay, execute, secrets, bracket parsers, open/nav | |
| 14 | | `Lens/` | Connect (OAuth/device), CRS client, workspace config, write API | |
| 15 | | `Mcp/` | `ForgeMcpHandlers` — all `forge_*` / `forge.artifact.goto` MCP tools | |
| 16 | | `Models/` | `ForgeLensSecrets` TOML model | |
| 17 | | `ForgeFeatureModule.cs` | `ICascadeFeatureModule` — single MCP registration site | |
| 18 | | `CascadeFeatureModules.cs` | Explicit module list (no MEF, ADR 0005) | |
| 19 | |
| 20 | ## Spine vs vertical |
| 21 | |
| 22 | - **Spine:** bundled `intent-catalog.toml`, `SlashLineResolver`, chat slash UI — **no** `/forge *` entries when using overlay ([0160](../../docs/adr/0160-forge-slash-catalog-runtime-overlay.md)). |
| 23 | - **Vertical:** everything that talks to forge HTTP/MCP for this workspace. |
| 24 | |
| 25 | ## Guardrail |
| 26 | |
| 27 | **CASCOPE043** — `using CascadeIDE.Features.Forge.Infrastructure|Lens` only from this tree + allowlisted hooks (`Features/Chat`, `IdeMcp`, `WorkspaceNavigation`, bracket consumers). |
| 28 | |
| 29 | ## Config |
| 30 | |
| 31 | `.cascade/workspace.toml` → `[workspace.forge]` (`base_url`, `repo`). See [0158](../../docs/adr/0158-forge-lens-crs-overlay.md). |
| 32 | |