Skip to content

Commit 5612bc4

Browse files
authored
Add DevContainer CLI guide, v2 migration guide, and full docs review (#36)
* Add DevContainer CLI guide, v2 migration guide, and full docs review New pages: - DevContainer CLI guide (Getting Started) — terminal-only workflow without VS Code: build, connect, port forwarding, key differences - Migrating to v2 (Getting Started) — path changes, automatic migration, manual steps, breaking changes, troubleshooting Updated pages: - Port Forwarding — VS Code dependency warning, dbr platform matrix - Installation — slimmed from 318 to 231 lines; moved troubleshooting to reference page, trimmed CLI tab to summary + link - Troubleshooting — merged installation-specific entries (npx failures, VS Code extension, Docker permissions, WSL 2, port conflicts) - Agents — documented 4 missing agents (implementer, investigator, tester, documenter); updated count from 11 to 15 new specialists - Commands — removed 29-line ccms usage section for disabled feature - Configuration — added missing git-workflow and prompt-snippets to enabledPlugins example - First Session — added cc-orc to launch commands table - Environment — added CONFIG_SOURCE_DIR deprecation note - Agent System — improved magic-docs explanation - CodeForge LSP — clarified "no hook scripts" vs "no configuration" - Reference index — clarified plugin count as "13 local + 1 official" - Sidebar — added DevContainer CLI and Migrating to v2 entries Validated: npm run build passes with 42 pages, all internal links valid. * Address CodeRabbit review feedback - Split changelog entries into proper Added/Changed sections - Remove architect from "entirely new" agent list (it's a Plan replacement) - Fix Node.js version requirement: 16.13+ or 18+, not just 18+ - Replace sudo npm install recommendation with nvm/npm-prefix advice --------- Co-authored-by: AnExiledDev <AnExiledDev@users.noreply.github.com>
1 parent 862437e commit 5612bc4

File tree

16 files changed

+434
-141
lines changed

16 files changed

+434
-141
lines changed

.devcontainer/CHANGELOG.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
## [Unreleased]
44

5+
### Added
6+
7+
#### Documentation
8+
- **DevContainer CLI guide** — dedicated Getting Started page for terminal-only workflows without VS Code
9+
- **v2 Migration Guide** — path changes, automatic migration, manual steps, breaking changes, and troubleshooting
10+
- Documented 4 previously undocumented agents in agents.md: implementer, investigator, tester, documenter
11+
- Added missing git-workflow and prompt-snippets to configuration.md enabledPlugins example
12+
- Added CONFIG_SOURCE_DIR deprecation note in environment variables reference
13+
- Added cc-orc orchestrator command to first-session launch commands table
14+
- Tabbed client-specific instructions on the installation page
15+
- Dedicated port forwarding reference page covering VS Code auto-detect, devcontainer-bridge, and SSH tunneling
16+
517
### Changed
618

719
#### Performance
@@ -14,9 +26,14 @@
1426
- Dynamic port forwarding for all ports in VS Code — previously only port 7847 was statically forwarded; now all ports auto-forward with notification
1527

1628
#### Documentation
29+
- Updated **Port Forwarding reference** — VS Code dependency warning, devcontainer-bridge platform support matrix, CLI guide cross-link
30+
- Slimmed **Installation page** — moved troubleshooting to dedicated reference page, CLI details to new CLI guide
31+
- Full documentation review — accuracy, consistency, and completeness fixes across all 30+ pages
32+
- Trimmed disabled ccms usage section from commands reference
33+
- Clarified codeforge-lsp plugin description (declarative config, not "no configuration")
34+
- Improved magic-docs agent explanation in agent-system plugin docs
35+
- Clarified plugin count as "13 local + 1 official" in reference index
1736
- Updated prerequisites and installation docs to support all DevContainer clients (VS Code, CLI, JetBrains Gateway, DevPod, Codespaces)
18-
- Added tabbed client-specific instructions on the installation page
19-
- Added dedicated port forwarding reference page covering VS Code auto-detect, devcontainer-bridge, and SSH tunneling
2037
- **Ported `.devcontainer/docs/` to docs site** — migrated content from 5 legacy reference docs into the Starlight documentation site:
2138
- New **Keybindings** page (Customization) — VS Code/Claude Code shortcut conflicts and resolution options
2239
- New **Troubleshooting** page (Reference) — 12+ problem/solution entries for build, auth, plugins, and performance issues

docs/astro.config.mjs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,14 @@ export default defineConfig({
9191
{ label: "Overview", slug: "getting-started" },
9292
{ label: "Requirements", slug: "getting-started/requirements" },
9393
{ label: "Installation", slug: "getting-started/installation" },
94+
{
95+
label: "DevContainer CLI",
96+
slug: "getting-started/devcontainer-cli",
97+
},
98+
{
99+
label: "Migrating to v2",
100+
slug: "getting-started/migrating-to-v2",
101+
},
94102
{
95103
label: "Your First Session",
96104
slug: "getting-started/first-session",

docs/src/content/docs/customization/configuration.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ The `enabledPlugins` section controls which plugins are active:
9494
"notify-hook@devs-marketplace": true,
9595
"ticket-workflow@devs-marketplace": true,
9696
"codeforge-lsp@devs-marketplace": true,
97+
"git-workflow@devs-marketplace": true,
98+
"prompt-snippets@devs-marketplace": true,
9799
"frontend-design@claude-plugins-official": true
98100
}
99101
}

docs/src/content/docs/features/agents.md

Lines changed: 57 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ CodeForge **entirely replaces** all six built-in agents with enhanced custom spe
3030

3131
The redirect is fully transparent — you can use either the built-in name or the custom name interchangeably. Asking Claude to "explore the codebase" triggers the same enhanced explorer agent whether the system selects the `Explore` type or the `explorer` type.
3232

33-
Beyond the six replacements, CodeForge adds **11 entirely new specialists** that have no built-in equivalent: architect, researcher, test-writer, refactorer, doc-writer, migrator, security-auditor, dependency-analyst, git-archaeologist, perf-profiler, debug-logs, and spec-writer. These are available only in CodeForge.
33+
Beyond the six replacements, CodeForge adds **15 entirely new specialists** that have no built-in equivalent: debug-logs, dependency-analyst, doc-writer, documenter, git-archaeologist, implementer, investigator, migrator, perf-profiler, refactorer, researcher, security-auditor, spec-writer, tester, and test-writer. These are available only in CodeForge.
3434

3535
:::tip[Why This Matters]
3636
The redirect happens at the hook level, not the prompt level. This means the upgrade is enforced — not suggested. Even if Claude's internal routing tries to use a stock Explore agent, the hook intercepts the call and swaps in the enhanced explorer before any code executes. The result is a strictly better agent every time, with zero user effort.
@@ -122,6 +122,18 @@ A technical writing specialist that creates and maintains README files, API docu
122122
"Document the public API for the user service module. Include usage examples and parameter descriptions."
123123
:::
124124

125+
### documenter
126+
127+
<span class="badge badge--orange">Full</span> <span class="badge badge--blue">Opus</span> <span class="badge badge--purple">documentation-patterns</span> <span class="badge badge--purple">specification-writing</span>
128+
129+
A documentation and specification lifecycle agent. Handles READMEs, API docs, inline documentation, and architectural guides alongside the full spec workflow — creating, refining, reviewing, and closing specifications. Carries 7 frontloaded skills covering both documentation patterns and all spec operations. Unlike doc-writer, the documenter works directly (no worktree isolation) and owns the spec lifecycle. Never modifies source code logic.
130+
131+
**When activated:** "Document this module," "write a README," "create a spec and document the feature," specification lifecycle tasks that combine docs and specs.
132+
133+
:::tip[documenter vs doc-writer]
134+
Use **doc-writer** for pure documentation tasks (READMEs, docstrings, API docs) where worktree isolation is preferred. Use **documenter** when documentation and specification work are interleaved — it has the full spec skill set (spec-new, spec-refine, spec-review, spec-update, spec-check) built in.
135+
:::
136+
125137
### explorer
126138

127139
<span class="badge badge--green">Read-only</span> <span class="badge badge--blue">Haiku</span>
@@ -158,6 +170,30 @@ A git history forensics specialist that traces code evolution, finds when bugs w
158170
"Trace the history of the authentication middleware. When was it introduced, who has modified it, and what were the major changes?"
159171
:::
160172

173+
### implementer
174+
175+
<span class="badge badge--orange">Full (worktree)</span> <span class="badge badge--blue">Opus</span> <span class="badge badge--purple">refactoring-patterns</span> <span class="badge badge--purple">migration-patterns</span> <span class="badge badge--purple">spec-update</span>
176+
177+
A full-stack implementation agent that handles all code modifications: writing new features, fixing bugs, refactoring existing code, and executing migrations. Runs tests after every edit via a Stop hook to catch regressions immediately. Works in a git worktree so your main branch stays clean. The broadest-scope implementation agent — use the more focused refactorer, migrator, or test-writer when the task is clearly within one domain.
178+
179+
**When activated:** General implementation tasks, feature building, bug fixes, "implement this," multi-file changes that span domains.
180+
181+
:::tip[Try this]
182+
"Implement the user notification preferences feature. Add the database model, API endpoints, and update the settings page."
183+
:::
184+
185+
### investigator
186+
187+
<span class="badge badge--green">Read-only</span> <span class="badge badge--blue">Sonnet</span> <span class="badge badge--purple">debugging</span> <span class="badge badge--purple">git-forensics</span> <span class="badge badge--purple">performance-profiling</span> <span class="badge badge--purple">dependency-management</span> <span class="badge badge--purple">documentation-patterns</span> <span class="badge badge--purple">ast-grep-patterns</span>
188+
189+
A comprehensive read-only research agent that consolidates six analysis domains: codebase exploration, web research, git history forensics, dependency auditing, log analysis, and performance profiling. Carries 6 frontloaded skills — more than any other agent — making it the go-to for complex investigations that cross domain boundaries. Never modifies files.
190+
191+
**When activated:** Complex multi-domain investigations, "investigate why," "research and analyze," tasks that combine codebase analysis with git history or dependency research.
192+
193+
:::tip[investigator vs specialists]
194+
Use the **investigator** when an investigation spans multiple domains (e.g., "why is this slow" might need codebase analysis, git history, and performance profiling). Use a focused specialist (researcher, debug-logs, git-archaeologist, perf-profiler, dependency-analyst) when the domain is clear.
195+
:::
196+
161197
### migrator
162198

163199
<span class="badge badge--orange">Full (worktree)</span> <span class="badge badge--blue">Opus</span> <span class="badge badge--purple">migration-patterns</span>
@@ -242,6 +278,18 @@ A specialist for configuring the Claude Code terminal statusline. Converts shell
242278
"Convert my current PS1 prompt to a Claude Code statusline. Include git branch, Python version, and working directory."
243279
:::
244280

281+
### tester
282+
283+
<span class="badge badge--orange">Full (worktree)</span> <span class="badge badge--blue">Opus</span> <span class="badge badge--purple">testing</span> <span class="badge badge--purple">spec-update</span>
284+
285+
A test suite creation and verification agent. Analyzes existing code, writes comprehensive tests, and ensures all tests pass before completing via a Stop hook. Supports pytest, Vitest, Jest, Go testing, and Rust test frameworks. Works in a git worktree. Functionally equivalent to test-writer with the addition of the spec-update skill for closing the spec loop after writing tests.
286+
287+
**When activated:** "Write tests for," "add test coverage," "create integration tests," test creation tasks.
288+
289+
:::tip[tester vs test-writer]
290+
These agents are nearly identical. **tester** includes the spec-update skill for spec-driven workflows. **test-writer** is the built-in replacement agent. Both produce the same quality of tests — use whichever surfaces based on your request.
291+
:::
292+
245293
### test-writer
246294

247295
<span class="badge badge--orange">Full (worktree)</span> <span class="badge badge--blue">Opus</span> <span class="badge badge--purple">testing</span>
@@ -264,24 +312,28 @@ A senior test engineer that analyzes existing code and writes comprehensive test
264312
| debug-logs | Read-only | Sonnet | -- | -- | debugging |
265313
| dependency-analyst | Read-only | Haiku | -- | Yes | dependency-management |
266314
| doc-writer | Full | Opus | Worktree | -- | documentation-patterns |
315+
| documenter | Full | Opus | -- | -- | documentation-patterns, specification-writing, spec-new, spec-update, spec-review, spec-refine, spec-check |
267316
| explorer | Read-only | Haiku | -- | -- | ast-grep-patterns |
268317
| generalist | Full | Inherited | -- | -- | spec workflow |
269318
| git-archaeologist | Read-only | Haiku | -- | -- | git-forensics |
319+
| implementer | Full | Opus | Worktree | -- | refactoring-patterns, migration-patterns, spec-update |
320+
| investigator | Read-only | Sonnet | -- | -- | documentation-patterns, git-forensics, performance-profiling, debugging, dependency-management, ast-grep-patterns |
270321
| migrator | Full | Opus | Worktree | -- | migration-patterns |
271322
| perf-profiler | Read-only | Sonnet | -- | Yes | performance-profiling |
272323
| refactorer | Full | Opus | Worktree | -- | refactoring-patterns |
273324
| researcher | Read-only | Sonnet | -- | -- | documentation-patterns |
274325
| security-auditor | Read-only | Sonnet | -- | Yes | security-checklist |
275326
| spec-writer | Read-only | Opus | -- | -- | specification-writing |
276327
| statusline-config | Full | Sonnet | -- | -- | -- |
328+
| tester | Full | Opus | Worktree | -- | testing, spec-update |
277329
| test-writer | Full | Opus | Worktree | -- | testing |
278330

279331
## Access Levels at a Glance
280332

281333
| Access Level | Agents |
282334
|-------------|--------|
283-
| **Read-only** | architect, claude-guide, debug-logs, dependency-analyst, explorer, git-archaeologist, perf-profiler, researcher, security-auditor, spec-writer |
284-
| **Full** | bash-exec, doc-writer, generalist, migrator, refactorer, statusline-config, test-writer |
335+
| **Read-only** | architect, claude-guide, debug-logs, dependency-analyst, explorer, git-archaeologist, investigator, perf-profiler, researcher, security-auditor, spec-writer |
336+
| **Full** | bash-exec, doc-writer, documenter, generalist, implementer, migrator, refactorer, statusline-config, tester, test-writer |
285337

286338
:::note[About Model Selection]
287339
Agents use different Claude models based on task complexity. Opus handles the most demanding tasks (architecture, refactoring, test writing, migration). Sonnet covers analytical tasks that need strong reasoning (security audits, research, debugging). Haiku powers fast, focused tasks (exploration, dependency analysis, git history). The generalist inherits whichever model the main session is using.
@@ -291,10 +343,10 @@ Agents use different Claude models based on task complexity. Opus handles the mo
291343

292344
Several agents include built-in safety hooks:
293345

294-
- **Read-only bash guard** — The architect, explorer, security auditor, dependency analyst, and git-archaeologist all have a PreToolUse hook that blocks any Bash command that could modify files or state.
346+
- **Read-only bash guard** — The architect, explorer, investigator, security auditor, dependency analyst, and git-archaeologist all have a PreToolUse hook that blocks any Bash command that could modify files or state.
295347
- **Git-readonly guard** — The git-archaeologist has a specialized guard that only permits read-only git subcommands (log, blame, show, diff, reflog, etc.).
296348
- **Post-edit test verification** — The refactorer runs tests automatically after every single Edit operation. If tests fail, the change is immediately reverted.
297-
- **Stop verification** — The test-writer has a Stop hook that verifies all written tests pass before the agent completes.
349+
- **Stop verification** — The test-writer and tester have a Stop hook that verifies all written tests pass before the agent completes. The implementer has a similar Stop hook that runs regression checks.
298350

299351
## Related
300352

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
---
2+
title: DevContainer CLI
3+
description: Run CodeForge from the command line without VS Code — build, connect, and manage containers using the devcontainer CLI.
4+
sidebar:
5+
order: 4
6+
---
7+
8+
The DevContainer CLI lets you build and run CodeForge containers without VS Code. Use it when you prefer terminal-only workflows, work on headless servers, or need DevContainer support in CI/CD pipelines.
9+
10+
## Install the CLI
11+
12+
```bash
13+
npm install -g @devcontainers/cli
14+
```
15+
16+
Requires Node.js 16.13+ or 18+ (when installing via npm). Verify the installation with `devcontainer --version`.
17+
18+
## Build and Start
19+
20+
From your project root (where `.devcontainer/` lives):
21+
22+
```bash
23+
devcontainer up --workspace-folder .
24+
```
25+
26+
The first build takes several minutes — it pulls the base image, installs all features, and runs post-start setup. Subsequent starts reuse cached layers and complete in seconds.
27+
28+
:::caution[Don't interrupt the first build]
29+
If the build is interrupted, Docker may cache a partial state. Rebuild from scratch:
30+
```bash
31+
devcontainer up --workspace-folder . --remove-existing-container
32+
```
33+
:::
34+
35+
## Connect to the Container
36+
37+
The recommended way to get a shell inside the container:
38+
39+
```bash
40+
devcontainer exec --workspace-folder . zsh
41+
```
42+
43+
This uses the devcontainer CLI's exec command, which respects the container's configured user and environment. You can also use `docker exec` directly — run `docker ps` to find the container name:
44+
45+
```bash
46+
docker exec -it <container-name> zsh
47+
```
48+
49+
## Run Commands
50+
51+
Execute commands without entering an interactive shell:
52+
53+
```bash
54+
# Run check-setup to verify the installation
55+
devcontainer exec --workspace-folder . check-setup
56+
57+
# Launch a Claude Code session
58+
devcontainer exec --workspace-folder . cc
59+
60+
# List installed tools
61+
devcontainer exec --workspace-folder . cc-tools
62+
```
63+
64+
## Port Forwarding
65+
66+
VS Code auto-forwards container ports to your host automatically. **The CLI does not.** You need an explicit forwarding mechanism.
67+
68+
:::caution[No automatic port forwarding]
69+
Unlike VS Code, the devcontainer CLI does not auto-forward ports. Services running inside the container (like the Claude Dashboard on port 7847) won't be accessible on your host unless you set up forwarding manually.
70+
:::
71+
72+
**Recommended:** Install [devcontainer-bridge](https://github.com/bradleybeddoes/devcontainer-bridge) (`dbr`) for dynamic, automatic port forwarding that works with any terminal client. CodeForge pre-installs the container side — you only need the host daemon:
73+
74+
```bash
75+
# On your host machine
76+
dbr host-daemon
77+
```
78+
79+
**Alternative:** Use SSH tunneling for specific ports:
80+
81+
```bash
82+
ssh -L 7847:localhost:7847 <container-user>@<container-host>
83+
```
84+
85+
See [Port Forwarding](/reference/port-forwarding/) for the full setup guide and comparison of all forwarding mechanisms.
86+
87+
## Key Differences from VS Code
88+
89+
| Capability | VS Code | DevContainer CLI |
90+
|------------|---------|------------------|
91+
| Port forwarding | Automatic | Manual — use `dbr` or SSH tunneling |
92+
| Extensions panel | GUI in sidebar | Not available |
93+
| Ports panel | Visual port management | Not available — use `docker port` or `dbr` |
94+
| Terminal management | Integrated tabs | Manual — use tmux for parallel sessions |
95+
| File editing | Built-in editor | Use your preferred editor (vim, nano, etc.) |
96+
97+
## Rebuilding
98+
99+
When you change `devcontainer.json` or feature configurations, rebuild:
100+
101+
```bash
102+
# Rebuild using cached layers (fast)
103+
devcontainer up --workspace-folder .
104+
105+
# Full rebuild from scratch (slow, but fixes cache issues)
106+
devcontainer up --workspace-folder . --remove-existing-container
107+
```
108+
109+
## Stopping the Container
110+
111+
The devcontainer CLI doesn't have a dedicated stop command. Use Docker directly:
112+
113+
```bash
114+
# Find the container name
115+
docker ps
116+
117+
# Stop the container
118+
docker stop <container-name>
119+
120+
# Or stop and remove it
121+
docker rm -f <container-name>
122+
```
123+
124+
## Tips
125+
126+
- **Use tmux** for parallel sessions inside the container. CodeForge installs tmux by default — run `tmux` after connecting to get split panes and persistent sessions.
127+
- **Connect external terminals** using the scripts in `.codeforge/scripts/``connect-external-terminal.sh` (macOS/Linux) or `connect-external-terminal.ps1` (Windows PowerShell).
128+
- **Combine with `dbr`** for the closest experience to VS Code — automatic port forwarding without needing VS Code running.
129+
130+
## Next Steps
131+
132+
- [Your First Session](/getting-started/first-session/) — start using CodeForge with Claude Code
133+
- [Port Forwarding](/reference/port-forwarding/) — detailed forwarding setup guide
134+
- [Installation](/getting-started/installation/) — full installation walkthrough

docs/src/content/docs/getting-started/first-session.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: First Session
33
description: Walkthrough of your first Claude Code session inside a CodeForge DevContainer.
44
sidebar:
5-
order: 4
5+
order: 6
66
---
77

88
You've installed CodeForge and the container is running. Now it's time to launch your first Claude Code session and see everything in action. This guide walks you through what happens when you start a session, what to try first, and how the different systems work together.
@@ -24,6 +24,7 @@ The `cc` command is a CodeForge alias that launches Claude Code with the correct
2424
| `cc` | Full CodeForge session with system prompt, plugins, and all configuration |
2525
| `claude` | Same as `cc` — an alias for convenience |
2626
| `ccw` | Writing-focused session using the writing system prompt (great for documentation) |
27+
| `cc-orc` | Orchestrator mode — delegation-first approach, useful for complex multi-agent tasks |
2728
| `ccraw` | Raw Claude Code session with no CodeForge configuration — useful for debugging |
2829

2930
:::tip[When to use ccraw]

0 commit comments

Comments
 (0)