codeforge-dev 1.14.1 → 2.0.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/{.devcontainer/config/defaults → .codeforge/config}/ccstatusline-settings.json +44 -6
- package/.codeforge/config/main-system-prompt.md +412 -0
- package/.codeforge/config/orchestrator-system-prompt.md +333 -0
- package/{.devcontainer/config/defaults → .codeforge/config}/settings.json +7 -2
- package/{.devcontainer/config → .codeforge}/file-manifest.json +15 -9
- package/{.devcontainer → .codeforge/scripts}/connect-external-terminal.sh +3 -1
- package/.devcontainer/.env.example +17 -5
- package/.devcontainer/.secrets.example +3 -0
- package/.devcontainer/CHANGELOG.md +224 -3
- package/.devcontainer/CLAUDE.md +26 -43
- package/.devcontainer/README.md +35 -20
- package/.devcontainer/devcontainer.json +36 -17
- package/.devcontainer/features/agent-browser/install.sh +3 -0
- package/.devcontainer/features/ast-grep/install.sh +3 -0
- package/.devcontainer/features/biome/install.sh +3 -0
- package/.devcontainer/features/ccburn/devcontainer-feature.json +0 -5
- package/.devcontainer/features/ccburn/install.sh +2 -0
- package/.devcontainer/features/ccms/install.sh +2 -0
- package/.devcontainer/features/ccstatusline/README.md +7 -6
- package/.devcontainer/features/ccstatusline/install.sh +9 -4
- package/.devcontainer/features/ccusage/devcontainer-feature.json +0 -5
- package/.devcontainer/features/ccusage/install.sh +2 -0
- package/.devcontainer/features/chromaterm/chromaterm.yml +2 -2
- package/.devcontainer/features/chromaterm/install.sh +2 -0
- package/.devcontainer/features/claude-code-native/README.md +47 -0
- package/.devcontainer/features/claude-code-native/devcontainer-feature.json +29 -0
- package/.devcontainer/features/claude-code-native/install.sh +131 -0
- package/.devcontainer/features/claude-monitor/devcontainer-feature.json +0 -5
- package/.devcontainer/features/claude-monitor/install.sh +2 -0
- package/.devcontainer/features/claude-session-dashboard/README.md +2 -2
- package/.devcontainer/features/claude-session-dashboard/devcontainer-feature.json +1 -2
- package/.devcontainer/features/claude-session-dashboard/install.sh +3 -0
- package/.devcontainer/features/dprint/install.sh +2 -0
- package/.devcontainer/features/hadolint/install.sh +2 -0
- package/.devcontainer/features/kitty-terminfo/README.md +3 -1
- package/.devcontainer/features/kitty-terminfo/install.sh +2 -0
- package/.devcontainer/features/lsp-servers/install.sh +4 -0
- package/.devcontainer/features/mcp-qdrant/CHANGES.md +3 -3
- package/.devcontainer/features/mcp-qdrant/README.md +1 -0
- package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +1 -7
- package/.devcontainer/features/mcp-qdrant/install.sh +9 -2
- package/.devcontainer/features/mcp-qdrant/poststart-hook.sh +9 -2
- package/.devcontainer/features/notify-hook/devcontainer-feature.json +1 -1
- package/.devcontainer/features/notify-hook/install.sh +2 -0
- package/.devcontainer/features/ruff/install.sh +2 -0
- package/.devcontainer/features/shellcheck/install.sh +2 -0
- package/.devcontainer/features/shfmt/install.sh +2 -0
- package/.devcontainer/features/tmux/README.md +3 -3
- package/.devcontainer/features/tmux/install.sh +3 -1
- package/.devcontainer/features/tree-sitter/devcontainer-feature.json +0 -6
- package/.devcontainer/features/tree-sitter/install.sh +4 -0
- package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +27 -11
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/README.md +20 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/architect.md +182 -29
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/bash-exec.md +9 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/claude-guide.md +13 -4
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/debug-logs.md +24 -5
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/dependency-analyst.md +16 -5
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/documenter.md +412 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/explorer.md +18 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/generalist.md +36 -10
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/git-archaeologist.md +10 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/implementer.md +260 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/investigator.md +262 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/migrator.md +10 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/perf-profiler.md +21 -5
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/refactorer.md +18 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/researcher.md +23 -5
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/security-auditor.md +20 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/spec-writer.md +12 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/statusline-config.md +12 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/test-writer.md +22 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/guard-readonly-bash.py +9 -5
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/redirect-builtin-agents.py +2 -5
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/README.md +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/scripts/advisory-test-runner.py +4 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/README.md +3 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/block-dangerous.py +89 -15
- package/.devcontainer/plugins/devs-marketplace/plugins/git-workflow/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/git-workflow/README.md +125 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/git-workflow/skills/pr-review/SKILL.md +325 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/git-workflow/skills/ship/SKILL.md +314 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/prompt-snippets/.claude-plugin/plugin.json +5 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/prompt-snippets/README.md +52 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/prompt-snippets/skills/ps/SKILL.md +37 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/README.md +2 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected-bash.py +80 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +4 -4
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/README.md +30 -14
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/hooks/hooks.json +13 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/collect-session-edits.py +44 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/commit-reminder.py +89 -10
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/.claude-plugin/plugin.json +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/README.md +19 -11
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/scripts/skill-suggester.py +476 -282
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/team/SKILL.md +4 -4
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/worktree/SKILL.md +227 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/worktree/references/manual-worktree-commands.md +238 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/worktree/references/parallel-workflow-patterns.md +228 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-build/SKILL.md +2 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/scripts/ticket-linker.py +2 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/README.md +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/guard-workspace-scope.py +69 -31
- package/.devcontainer/scripts/check-setup.sh +5 -3
- package/.devcontainer/scripts/preflight.sh +113 -0
- package/.devcontainer/scripts/setup-aliases.sh +13 -8
- package/.devcontainer/scripts/setup-auth.sh +46 -0
- package/.devcontainer/scripts/setup-config.sh +29 -10
- package/.devcontainer/scripts/setup-migrate-claude.sh +80 -0
- package/.devcontainer/scripts/setup-migrate-codeforge.sh +60 -0
- package/.devcontainer/scripts/setup-plugins.sh +5 -5
- package/.devcontainer/scripts/setup-projects.sh +4 -2
- package/.devcontainer/scripts/setup-terminal.sh +3 -1
- package/.devcontainer/scripts/setup-update-claude.sh +22 -27
- package/.devcontainer/scripts/setup.sh +78 -5
- package/LICENSE.txt +14 -0
- package/README.md +82 -7
- package/package.json +4 -1
- package/setup.js +392 -21
- package/.devcontainer/config/defaults/main-system-prompt.md +0 -664
- package/.devcontainer/docs/configuration-reference.md +0 -93
- package/.devcontainer/docs/keybindings.md +0 -100
- package/.devcontainer/docs/optional-features.md +0 -64
- package/.devcontainer/docs/plugins.md +0 -176
- package/.devcontainer/docs/troubleshooting.md +0 -128
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/doc-writer.md +0 -334
- package/.devcontainer/scripts/setup-symlink-claude.sh +0 -36
- /package/{.devcontainer/config/defaults → .codeforge/config}/keybindings.json +0 -0
- /package/{.devcontainer/config/defaults → .codeforge/config}/rules/session-search.md +0 -0
- /package/{.devcontainer/config/defaults → .codeforge/config}/rules/spec-workflow.md +0 -0
- /package/{.devcontainer/config/defaults → .codeforge/config}/rules/workspace-scope.md +0 -0
- /package/{.devcontainer/config/defaults → .codeforge/config}/writing-system-prompt.md +0 -0
- /package/{.devcontainer → .codeforge/scripts}/connect-external-terminal.ps1 +0 -0
|
@@ -1,18 +1,239 @@
|
|
|
1
1
|
# CodeForge Devcontainer Changelog
|
|
2
2
|
|
|
3
|
-
## [
|
|
3
|
+
## [v2.0.1] — 2026-03-02
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
#### Official Plugins
|
|
7
|
+
- **Expanded Anthropic official plugins** — added `code-review`, `feature-dev`, and `pr-review-toolkit` from `anthropics/claude-code`
|
|
8
|
+
- **Migrated plugin identifiers** — switched from `@claude-plugins-official` to `@anthropics/claude-code` format
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
#### Protected Files Guard
|
|
12
|
+
- **Allowed `.env.example` edits** — `.env.example` is no longer blocked by the `.env.*` pattern; actual secret files (`.env.local`, `.env.production`, etc.) remain protected
|
|
4
13
|
|
|
5
14
|
### Fixed
|
|
15
|
+
- Plugin count updated 14→17 across all docs pages and README
|
|
16
|
+
- Agent/skill counts corrected in README (17→21 agents, 35→38 skills)
|
|
17
|
+
- Protected-files-guard README error handling table: "fails open" → "fails closed"
|
|
18
|
+
- Merged stale `[Unreleased]` changelog entries into v2.0.0; updated test counts (241→289)
|
|
19
|
+
|
|
20
|
+
## [v2.0.0] — 2026-02-26
|
|
21
|
+
|
|
22
|
+
### .codeforge/ Configuration System
|
|
23
|
+
- New `.codeforge/` directory centralizes all user-customizable configuration files
|
|
24
|
+
- Checksum-based modification detection preserves user changes during updates
|
|
25
|
+
- `codeforge config apply` CLI command deploys config files to `~/.claude/` (same as container start)
|
|
26
|
+
- Auto-migration from `.devcontainer/config/defaults/` to `.codeforge/config/` for existing users
|
|
27
|
+
- `.codeforge/.codeforge-preserve` for listing additional files to preserve during updates
|
|
28
|
+
- Config files moved from `.devcontainer/config/defaults/` to `.codeforge/config/`
|
|
29
|
+
- File manifest moved from `.devcontainer/config/file-manifest.json` to `.codeforge/file-manifest.json`
|
|
30
|
+
- Terminal connection scripts moved from `.devcontainer/` to `.codeforge/scripts/`
|
|
31
|
+
- `CONFIG_SOURCE_DIR` env var deprecated in favor of `CODEFORGE_DIR`
|
|
32
|
+
- `--force` updates now use checksum comparison for `.codeforge/` files (writes `.default` instead of `.codeforge-new`)
|
|
33
|
+
- `--reset` preserves `.codeforge/` user modifications (only `.devcontainer/` is wiped)
|
|
34
|
+
- v2 migration marker moved to `.codeforge/.markers/v2-migrated`
|
|
35
|
+
- Container start auto-migrates `.devcontainer/config/defaults/` to `.codeforge/config/` if needed
|
|
36
|
+
- Moved `.claude` directory from `/workspaces/.claude` to `~/.claude` (home directory)
|
|
37
|
+
- Added Docker named volume for persistence across rebuilds (per-instance isolation via `${devcontainerId}`)
|
|
38
|
+
- `CLAUDE_CONFIG_DIR` now defaults to `~/.claude`
|
|
39
|
+
|
|
40
|
+
### System Prompts
|
|
41
|
+
- **Main system prompt redesigned** — reorganized from 672 to 462 lines; personality, core directives, and response guidelines at the top
|
|
42
|
+
- **Personality section** — communication style (casual-professional, direct, terse), humor rules, honesty approach, AuDHD-aware patterns, good/bad response examples; replaces the empty `<identity>` tag
|
|
43
|
+
- **Compressed specification management** — 98 to 28 lines; full template and enforcement workflow moved to loadable skills
|
|
44
|
+
- **Compressed code standards** — removed textbook principle recitations (SOLID, DRY/KISS/YAGNI by name); kept only concrete actionable rules
|
|
45
|
+
- **Browser automation** and **git worktrees** sections moved to loadable skills
|
|
46
|
+
- **Context-passing protocol** in orchestration — mandatory instructions for including gathered context, file paths, and constraints when spawning subagents
|
|
47
|
+
- Absorbed `<assumption_surfacing>` into `<core_directives>`, `<professional_objectivity>` into `<personality>`
|
|
48
|
+
- Deduplicated team composition examples; consolidated "no filler" instructions
|
|
49
|
+
- **`<git_worktrees>` section** — updated for Claude Code native worktree convention (`<repo>/.claude/worktrees/`), `EnterWorktree` tool guidance, `.worktreeinclude` documentation
|
|
50
|
+
|
|
51
|
+
### Orchestrator Mode
|
|
52
|
+
- **`cc-orc` alias** — new Claude Code entry point using `orchestrator-system-prompt.md` for delegation-first operation
|
|
53
|
+
- **`orchestrator-system-prompt.md`** — slim prompt (~250 lines) with delegation model, agent catalog, question surfacing protocol, planning gates, spec enforcement, and action safety
|
|
54
|
+
|
|
55
|
+
### Agent System
|
|
56
|
+
- **4 workhorse agents** — `investigator` (consolidated read-only research, sonnet), `implementer` (consolidated read-write implementation, opus/worktree), `tester` (enhanced test agent, opus/worktree), `documenter` (consolidated docs + specs, opus)
|
|
57
|
+
- **Question Surfacing Protocol** — all 4 workhorse agents STOP and return `## BLOCKED: Questions` on ambiguities
|
|
58
|
+
- **All 21 agents now have communication protocols** — read-only: "Handling Uncertainty"; write-capable: "Question Surfacing Protocol"
|
|
59
|
+
- **Architect agent overhaul** — anti-fluff enforcement (20+ banned patterns), team orchestration planning, complexity scaling (simple/moderate/complex), concrete edit ordering (Models→Services→Routes→Tests→Config), rollback strategy for schema/API changes, 3 new examples
|
|
60
|
+
- **Generalist rewritten as last-resort** — description explicitly warns when a specialist might be better
|
|
61
|
+
- **Investigator narrowed** — repositioned from catch-all to "cross-domain investigations spanning 2+ specialist areas"
|
|
62
|
+
- **Agent merges** — tester→test-writer (single test agent), doc-writer→documenter (single docs agent)
|
|
63
|
+
- **Bash guard hooks** added to researcher, debug-logs, perf-profiler (prevents state-changing commands in read-only agents)
|
|
64
|
+
- **Improved agent descriptions for routing accuracy** — trigger phrases, overlap boundaries between security-auditor/dependency-analyst, explorer/researcher
|
|
65
|
+
- **Resolved communication protocol contradictions** across all agent behavioral rules
|
|
66
|
+
- Agent count increased from 17 to 21 (4 workhorse + 17 specialist)
|
|
67
|
+
- Agent-system README updated with workhorse agent table, per-agent hooks, plugin structure
|
|
68
|
+
|
|
69
|
+
### Skill Engine
|
|
70
|
+
- **Weighted scoring** — suggestion phrases carry confidence weights (0.0–1.0) instead of binary match
|
|
71
|
+
- **Negative patterns** — substrings that instantly disqualify skills (prevents fastapi triggering for pydantic-ai)
|
|
72
|
+
- **Context guards** — low-confidence matches (< 0.6) require confirming context word
|
|
73
|
+
- **Ranked results capped at 3** — sorted by score then priority tier; eliminates suggestion floods
|
|
74
|
+
- **Priority tiers** — explicit commands (10) > technology skills (7) > patterns (5) > generic (3)
|
|
75
|
+
- **worktree skill** — git worktree creation, management, cleanup, `EnterWorktree` tool, `.worktreeinclude` setup
|
|
76
|
+
|
|
77
|
+
### Plugins
|
|
78
|
+
- **Expanded Anthropic official plugins** — added `code-review`, `feature-dev`, and `pr-review-toolkit` from `anthropics/claude-code`
|
|
79
|
+
- **Migrated plugin identifiers** — switched from `@claude-plugins-official` to `@anthropics/claude-code` format
|
|
80
|
+
- **Git workflow** — `/ship` (commit/push/PR with code review and approval) and `/pr:review` (PR review by number/URL, posts findings as comment)
|
|
81
|
+
- **Prompt snippets** — `/ps` command for quick behavioral mode switches (noaction, brief, plan, go, review, ship, deep, hold, recall, wait); composable (`/ps noaction brief`)
|
|
82
|
+
|
|
83
|
+
### Claude Code Installation
|
|
84
|
+
- **Native binary** via Anthropic's official installer (`https://claude.ai/install.sh`) replacing npm-based feature
|
|
85
|
+
- **Auto-updater works without root** — native binary at `~/.local/bin/claude` owned by container user
|
|
86
|
+
- **Post-start onboarding hook** (`99-claude-onboarding.sh`) — ensures `hasCompletedOnboarding: true` when token auth configured
|
|
87
|
+
- Update script captures errors to log (was discarding via `&>/dev/null`)
|
|
88
|
+
- Simplified to native-binary-only (removed npm fallback, `claude install` bootstrap)
|
|
89
|
+
- Alias resolution simplified — `_CLAUDE_BIN` resolves directly to native binary
|
|
90
|
+
- POSIX redirect, bash-required installer shell, quoted `${TARGET}`, directory pre-creation
|
|
91
|
+
|
|
92
|
+
### Testing
|
|
93
|
+
- **289 pytest tests** covering 6 critical plugin scripts (previously zero tests):
|
|
94
|
+
- `block-dangerous.py` (62), `guard-workspace-scope.py` (40), `guard-protected.py` (56), `guard-protected-bash.py` (49), `guard-readonly-bash.py` (69), `redirect-builtin-agents.py` (13)
|
|
95
|
+
- `test:plugins` and `test:all` npm scripts
|
|
96
|
+
- Python plugin tests (`pytest`) added to CI pipeline (Q3-08)
|
|
97
|
+
|
|
98
|
+
### Authentication
|
|
99
|
+
- `CLAUDE_AUTH_TOKEN` support in `.secrets` for long-lived tokens from `claude setup-token`
|
|
100
|
+
- Auto-creates `.credentials.json` from token on container start (idempotent)
|
|
101
|
+
- `CLAUDE_AUTH_TOKEN` in devcontainer.json secrets declaration
|
|
102
|
+
|
|
103
|
+
### Security
|
|
104
|
+
- Removed environment variable injection vector in agent redirect log path (S2-01)
|
|
105
|
+
- Narrowed config deployment allowed destinations from `/usr/local` to `/usr/local/share` (S2-09)
|
|
106
|
+
- Protected files guard now fails closed on unexpected errors instead of failing open (S2-04)
|
|
107
|
+
- Protected-files-guard blocks `.credentials.json` modifications
|
|
108
|
+
- Replaced `eval` tilde expansion with `getent passwd` lookup (prevents shell injection)
|
|
109
|
+
- Auth token JSON-escaped before writing; credential directory with restrictive umask (700)
|
|
110
|
+
- `setup.js` path traversal prevention — `configApply()` validates source/destination paths
|
|
111
|
+
|
|
112
|
+
### Performance
|
|
113
|
+
- Commented out Rust toolchain feature — saves ~1.23 GB image size
|
|
114
|
+
- Commented out ccms feature (requires Rust)
|
|
115
|
+
- Updated Bun to latest (was pinned to 1.3.9)
|
|
116
|
+
- npm cache cleanup across 6 features: agent-browser, ast-grep, biome, claude-session-dashboard, lsp-servers, tree-sitter (saves ~96 MB)
|
|
117
|
+
|
|
118
|
+
### Port Forwarding
|
|
119
|
+
- Dynamic forwarding for all ports in VS Code (was only port 7847)
|
|
120
|
+
- **devcontainer-bridge (dbr)** — automatic port discovery and forwarding outside VS Code via [devcontainer-bridge](https://github.com/bradleybeddoes/devcontainer-bridge)
|
|
121
|
+
|
|
122
|
+
### Terminal & Color
|
|
123
|
+
- `TERM` and `COLORTERM=truecolor` in `remoteEnv` (Docker defaults to 8-color `xterm`)
|
|
124
|
+
- `TERM` forwards host terminal type via `${localEnv:TERM:xterm-256color}` (e.g., `xterm-kitty`)
|
|
125
|
+
- Terminal color defaults in managed shell block for tmux panes, `docker exec`, SSH sessions
|
|
126
|
+
- kitty-terminfo docs updated for `localEnv` forwarding
|
|
127
|
+
|
|
128
|
+
### Status Bar
|
|
129
|
+
- Distinct background colors per token widget (blue=input, magenta=output, yellow=cached, green=total)
|
|
130
|
+
- Bold 2-char labels (In, Ou, Ca, Tt) fused to data widgets, `rawValue: true` on model widget
|
|
131
|
+
- CLAUDE.md "Status Bar Widgets" section with widget properties and conventions
|
|
132
|
+
|
|
133
|
+
### Dangerous Command Blocker
|
|
134
|
+
- Force push block now suggests `git merge` as workaround
|
|
135
|
+
- Block `--force-with-lease` — all force push variants now blocked uniformly
|
|
136
|
+
- Block remote branch deletion (`git push origin --delete`, colon-refspec `git push origin :branch`)
|
|
137
|
+
- Handles prefix bypasses (`\rm`, `command rm`, `env rm`) and symbolic chmod (S2-03)
|
|
138
|
+
- Fixed README — error handling documented as "fails open" but code actually fails closed
|
|
139
|
+
|
|
140
|
+
### Guards
|
|
141
|
+
- **Allowed `.env.example` edits** — `.env.example` is no longer blocked by the `.env.*` pattern; actual secret files (`.env.local`, `.env.production`, etc.) remain protected
|
|
142
|
+
- Fixed greedy alternation in write-target regex — `>>` now matched before `>` (Q3-01)
|
|
143
|
+
- Unified write-target extraction patterns across guards — protected-files bash guard expanded from 5 to 20 patterns (C1-02)
|
|
144
|
+
- Multi-target command support — `rm`, `touch`, `mkdir`, `chmod`, `chown` with multiple file operands now check all targets
|
|
145
|
+
- Bare `git stash` (equivalent to push) now blocked in read-only mode (Q3-04)
|
|
146
|
+
- Fixed git global flag handling — `git -C /path stash list` no longer misidentifies the stash subcommand
|
|
147
|
+
|
|
148
|
+
### Session Context & Code Quality
|
|
149
|
+
- **Commit reminder** — switched to advisory (was blocking); tiered logic for meaningful changes; only fires when session modified files
|
|
150
|
+
- **Advisory test runner** — reads from correct tmp file prefix (`claude-cq-edited` instead of `claude-edited-files`)
|
|
151
|
+
|
|
152
|
+
### Scripts & Migration
|
|
153
|
+
- Replaced `setup-symlink-claude.sh` with `setup-migrate-claude.sh` (one-time migration)
|
|
154
|
+
- Migration script hardened — `cp -a` archive mode, marker-based idempotency, critical file verification, ownership fixup
|
|
155
|
+
- `.env` deprecation guard — `setup.sh` detects stale `CLAUDE_CONFIG_DIR=/workspaces/.claude`, overrides and auto-comments
|
|
156
|
+
- `setup.sh` `CODEFORGE_DIR` uses default-assignment (`:=`) to preserve user-defined values
|
|
157
|
+
- Container runtime pre-flight check — validates Docker/Podman before build, OS-specific remediation
|
|
158
|
+
|
|
159
|
+
### CI/CD & Public Repo
|
|
160
|
+
- **Tag-triggered release workflow** (`v*` tags only) — prevents accidental releases from version bumps in PRs
|
|
161
|
+
- CI workflow (Node 18, `npm test` + Biome check), CodeQL security analysis, Dependabot (weekly npm + GitHub Actions)
|
|
162
|
+
- Bug report + feature request templates, PR template, issue template config
|
|
163
|
+
- CONTRIBUTING.md, CLA.md, dual licensing notice, CI badge, SPDX headers on all 36 source files
|
|
164
|
+
|
|
165
|
+
### Bug Fixes
|
|
166
|
+
- Bun PATH in non-interactive shells
|
|
167
|
+
- ChromaTerm regex lookbehinds — PCRE2 compatibility
|
|
168
|
+
- CCStatusLine `CONFIG_SOURCE_DIR` deprecation guard, template directory permissions, silent copy failure reporting
|
|
169
|
+
- `marketplace.json` schema — plugin `source` fields changed from bare names to relative paths
|
|
170
|
+
- skill-engine worktree skill weighted tuples (was plain strings, caused crash)
|
|
171
|
+
- dangerous-command-blocker fail closed on exceptions (was fail-open)
|
|
172
|
+
- ticket-workflow redundant `ValueError` removed
|
|
173
|
+
- workspace-scope-guard maxsplit in variable assignment detection
|
|
174
|
+
- Shell scripts — executable bit on `check-setup.sh`, quoted `PLUGIN_BLACKLIST`, `set -uo pipefail` in tmux installer, `command -v` replacing deprecated `which`, normalized `&>` redirects
|
|
175
|
+
- `implementer.md` — PostToolUse hook changed to Stop hook with 120s timeout
|
|
176
|
+
- `tester.md` — Stop hook timeout 30s→120s
|
|
177
|
+
- Stale merge conflict marker in first-session docs
|
|
178
|
+
|
|
179
|
+
### Documentation
|
|
180
|
+
- **DevContainer CLI guide** — dedicated Getting Started page for terminal-only workflows
|
|
181
|
+
- **v2 Migration Guide** — path changes, automatic migration, manual steps, breaking changes, troubleshooting
|
|
182
|
+
- **Ported `.devcontainer/docs/` to docs site** — Keybindings page, Troubleshooting page (12+ entries), Optional Features page, merged env vars and .secrets docs
|
|
183
|
+
- Versioned docs infrastructure (starlight-versions plugin)
|
|
184
|
+
- Fixed docs site URL to `https://codeforge.core-directive.com` (custom domain, no base path)
|
|
185
|
+
- Replaced `anexileddev.github.io/CodeForge/` URLs with custom domain across all files
|
|
186
|
+
- README: "Why CodeForge?" section, architecture overview, configuration summary
|
|
187
|
+
- Agent/skill/plugin count updates (21 agents, 38 skills, 14 plugins) across all docs pages
|
|
188
|
+
- Missing plugin pages for git-workflow and prompt-snippets
|
|
189
|
+
- Port Forwarding reference, CLI guide cross-link, slimmed Installation page
|
|
190
|
+
- Documented 4 workhorse agents, cc-orc command, CONFIG_SOURCE_DIR deprecation, CLAUDE_AUTH_TOKEN setup
|
|
191
|
+
- Added missing git-workflow and prompt-snippets to configuration.md enabledPlugins example
|
|
192
|
+
- Tabbed client-specific instructions on the installation page
|
|
193
|
+
- MD040 compliance (language specifiers on fenced code blocks)
|
|
194
|
+
- Architecture docs — `.checksums/` and `.markers/` in `.codeforge/` tree
|
|
195
|
+
- Troubleshooting — "Reset to Defaults" renamed to "How to Reset", clarified `--reset` behavior
|
|
196
|
+
- Removed `.devcontainer/docs/` directory (all content migrated to docs site)
|
|
197
|
+
- All docs reference `~/.claude` as default config path
|
|
198
|
+
|
|
199
|
+
### Removed
|
|
200
|
+
- `setup-symlink-claude.sh` — replaced by `setup-migrate-claude.sh`
|
|
201
|
+
- **Todo+** VS Code extension (`fabiospampinato.vscode-todo-plus`)
|
|
6
202
|
|
|
7
|
-
|
|
203
|
+
## [v1.14.2] - 2026-02-24
|
|
204
|
+
|
|
205
|
+
### Added
|
|
206
|
+
|
|
207
|
+
#### Prompt Snippets Plugin
|
|
208
|
+
- **New plugin: `prompt-snippets`** — single `/ps` slash command for quick behavioral mode switches (noaction, brief, plan, go, review, ship, deep, hold, recall, wait)
|
|
209
|
+
- Snippets inject short directives that persist for the conversation (e.g., `/ps noaction` → "Investigate and report only. Take no action.")
|
|
210
|
+
- Composable: `/ps noaction brief` applies multiple snippets at once
|
|
211
|
+
- Isolated from skill-engine auto-suggestion (`disable-model-invocation: true`) and independently toggleable via `enabledPlugins`
|
|
212
|
+
|
|
213
|
+
### Changed
|
|
214
|
+
|
|
215
|
+
#### Docs
|
|
216
|
+
- **First Session page** — trimmed from 198 to 128 lines by consolidating "What Happens Automatically" into a concise summary, replacing full agent/skill tables with brief teasers linking to their dedicated pages
|
|
217
|
+
- **Installation Troubleshooting** — expanded from 4 to 10 FAQ entries covering `npx` failures, VS Code extension issues, Docker permissions on Linux, WSL 2 integration, port conflicts, and slow rebuilds
|
|
218
|
+
|
|
219
|
+
### Fixed
|
|
220
|
+
|
|
221
|
+
#### CI: Release Workflow (v1.14.1)
|
|
8
222
|
- **test.js** — settings.json path updated from `config/settings.json` to `config/defaults/settings.json` to match config externalization refactor
|
|
9
223
|
- **test.js** — Test 5 (executable check) result now included in exit condition; previously a failure was logged but did not affect the exit code
|
|
10
224
|
- **setup.js** — file permissions changed from 644 to 755 (executable) to match shebang and `bin` declaration in package.json
|
|
11
225
|
|
|
12
|
-
#### CI: Publish DevContainer Features Workflow
|
|
226
|
+
#### CI: Publish DevContainer Features Workflow (v1.14.1)
|
|
13
227
|
- **features/README.md** — removed from features directory; `devcontainers/action@v1` treated it as a feature subdirectory and failed looking for `README.md/devcontainer-feature.json`
|
|
14
228
|
- **11 devcontainer-feature.json files** — removed `"maintainer"` field (not in the DevContainer Feature spec schema, causing strict validation failure): ast-grep, ccburn, ccms, ccstatusline, ccusage, chromaterm, claude-monitor, claude-session-dashboard, lsp-servers, mcp-qdrant, tree-sitter
|
|
15
229
|
|
|
230
|
+
#### CI: Publish DevContainer Features Workflow (v1.14.2)
|
|
231
|
+
- **6 devcontainer-feature.json files** — removed `"proposals"` field that coexisted with `"enum"` on the same option (spec schema treats them as mutually exclusive via `anyOf`): ccburn, ccusage, claude-monitor, claude-session-dashboard, mcp-qdrant, tree-sitter
|
|
232
|
+
|
|
233
|
+
#### Docs
|
|
234
|
+
- **Active sidebar item** — increased background opacity from 0.08 to 0.14, added `font-weight: 600` and `color: var(--sl-color-accent-high)` for readable contrast against inactive items
|
|
235
|
+
- **Stale skill counts** — 5 pages (First Session, Getting Started index, Features index) referenced "21 skills" instead of the correct total of 34 across all plugins (skill-engine: 21, spec-workflow: 8, ticket-workflow: 4, agent-system: 1)
|
|
236
|
+
|
|
16
237
|
## [v1.14.0] - 2026-02-24
|
|
17
238
|
|
|
18
239
|
### Fixed (CodeRabbit review)
|
package/.devcontainer/CLAUDE.md
CHANGED
|
@@ -2,57 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
CodeForge devcontainer for AI-assisted development with Claude Code.
|
|
4
4
|
|
|
5
|
-
## Directory Structure
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
.devcontainer/
|
|
9
|
-
├── devcontainer.json # Container definition
|
|
10
|
-
├── .env # Setup flags (SETUP_CONFIG, SETUP_ALIASES, etc.)
|
|
11
|
-
├── config/
|
|
12
|
-
│ ├── file-manifest.json # Declarative config file deployment
|
|
13
|
-
│ └── defaults/ # Source files deployed on start via file-manifest
|
|
14
|
-
│ ├── settings.json # Model, permissions, plugins, env vars
|
|
15
|
-
│ ├── main-system-prompt.md
|
|
16
|
-
│ ├── ccstatusline-settings.json # Status bar widget layout
|
|
17
|
-
│ └── rules/ # Deployed to .claude/rules/
|
|
18
|
-
├── features/ # Custom devcontainer features
|
|
19
|
-
├── plugins/devs-marketplace/ # Local plugin marketplace
|
|
20
|
-
└── scripts/ # Setup scripts (run via postStartCommand)
|
|
21
|
-
```
|
|
22
|
-
|
|
23
5
|
## Key Configuration
|
|
24
6
|
|
|
25
7
|
| File | Purpose |
|
|
26
8
|
|------|---------|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
9
|
+
| `.codeforge/config/settings.json` | Model, tokens, permissions, plugins, env vars |
|
|
10
|
+
| `.codeforge/config/main-system-prompt.md` | System prompt defining assistant behavior |
|
|
11
|
+
| `.codeforge/config/orchestrator-system-prompt.md` | Orchestrator mode prompt (delegation-first) |
|
|
12
|
+
| `.codeforge/config/ccstatusline-settings.json` | Status bar widget layout (deployed to ~/.config/ccstatusline/) |
|
|
13
|
+
| `.codeforge/file-manifest.json` | Controls which config files deploy and when |
|
|
31
14
|
| `devcontainer.json` | Container definition: image, features, mounts |
|
|
32
15
|
| `.env` | Boolean flags controlling setup steps |
|
|
33
16
|
|
|
34
|
-
Config files deploy via
|
|
17
|
+
Config files deploy via `.codeforge/file-manifest.json` on every container start. Most deploy to `~/.claude/`; ccstatusline config deploys to `~/.config/ccstatusline/`. Each entry supports `overwrite`: `"if-changed"` (default, sha256), `"always"`, or `"never"`. Supported variables: `${CLAUDE_CONFIG_DIR}`, `${WORKSPACE_ROOT}`, `${HOME}`.
|
|
35
18
|
|
|
36
19
|
## Commands
|
|
37
20
|
|
|
38
21
|
| Command | Purpose |
|
|
39
22
|
|---------|---------|
|
|
40
23
|
| `cc` / `claude` | Run Claude Code with auto-configuration |
|
|
24
|
+
| `codeforge config apply` | Deploy config files to `~/.claude/` (same as container start) |
|
|
41
25
|
| `ccraw` | Vanilla Claude Code (bypasses config) |
|
|
42
26
|
| `ccw` | Claude Code with writing system prompt |
|
|
43
|
-
| `
|
|
27
|
+
| `cc-orc` | Claude Code in orchestrator mode (delegation-first) |
|
|
28
|
+
| `ccms` | Session history search _(disabled — requires Rust toolchain; uncomment in devcontainer.json to enable)_ |
|
|
44
29
|
| `ccusage` / `ccburn` | Token usage analysis / burn rate |
|
|
45
30
|
| `agent-browser` | Headless Chromium (Playwright-based) |
|
|
46
31
|
| `check-setup` | Verify CodeForge setup health |
|
|
47
32
|
| `claude-dashboard` | Session analytics dashboard (port 7847) |
|
|
33
|
+
| `dbr` | Dynamic port forwarding ([devcontainer-bridge](https://github.com/bradleybeddoes/devcontainer-bridge)) |
|
|
48
34
|
| `cc-tools` | List all installed tools with versions |
|
|
49
35
|
|
|
50
36
|
## Plugins
|
|
51
37
|
|
|
52
38
|
Declared in `settings.json` under `enabledPlugins`, auto-activated on start:
|
|
53
39
|
|
|
54
|
-
- **agent-system** —
|
|
55
|
-
- **skill-engine** —
|
|
40
|
+
- **agent-system** — 21 custom agents (4 workhorse + 17 specialist) + built-in agent redirection
|
|
41
|
+
- **skill-engine** — 22 general coding skills + auto-suggestion
|
|
56
42
|
- **spec-workflow** — 8 spec lifecycle skills + spec-reminder hook
|
|
57
43
|
- **session-context** — Git state injection, TODO harvesting, commit reminders
|
|
58
44
|
- **auto-code-quality** — Auto-format + auto-lint + advisory test runner
|
|
@@ -61,37 +47,34 @@ Declared in `settings.json` under `enabledPlugins`, auto-activated on start:
|
|
|
61
47
|
- **protected-files-guard** — Blocks edits to secrets/lock files
|
|
62
48
|
- **codeforge-lsp** — LSP for Python + TypeScript/JavaScript
|
|
63
49
|
- **ticket-workflow** — EARS ticket workflow + auto-linking
|
|
50
|
+
- **git-workflow** — Standalone ship (commit/push/PR) + PR review
|
|
64
51
|
- **notify-hook** — Desktop notifications on completion
|
|
65
52
|
- **frontend-design** (Anthropic official) — UI/frontend design skill
|
|
53
|
+
- **code-review** (Anthropic official) — Code review skill
|
|
54
|
+
- **feature-dev** (Anthropic official) — Feature development skill
|
|
55
|
+
- **pr-review-toolkit** (Anthropic official) — PR review commands + agents
|
|
56
|
+
- **prompt-snippets** — Quick behavioral mode switches via /ps command
|
|
66
57
|
|
|
67
58
|
## Rules System
|
|
68
59
|
|
|
69
|
-
Rules in
|
|
60
|
+
Rules in `.codeforge/config/rules/` deploy to `.claude/rules/` on every container start. They load into ALL sessions automatically.
|
|
70
61
|
|
|
71
62
|
**Current rules:** `spec-workflow.md`, `workspace-scope.md`, `session-search.md`
|
|
72
63
|
|
|
73
|
-
**Adding rules:** Create `.md` in
|
|
64
|
+
**Adding rules:** Create `.md` in `.codeforge/config/rules/`, add a manifest entry in `.codeforge/file-manifest.json`.
|
|
74
65
|
|
|
75
|
-
##
|
|
66
|
+
## Authentication & Persistence
|
|
76
67
|
|
|
77
|
-
|
|
78
|
-
|----------|-------|
|
|
79
|
-
| `CLAUDE_CONFIG_DIR` | `/workspaces/.claude` |
|
|
80
|
-
| `ANTHROPIC_MODEL` | `claude-opus-4-6` |
|
|
81
|
-
| `WORKSPACE_ROOT` | `/workspaces` |
|
|
68
|
+
The `~/.claude/` directory is backed by a Docker named volume (`codeforge-claude-config-${devcontainerId}`), persisting config, credentials, and session data across container rebuilds. Each devcontainer instance gets an isolated volume.
|
|
82
69
|
|
|
83
|
-
|
|
70
|
+
**Token authentication:** Set `CLAUDE_AUTH_TOKEN` in `.devcontainer/.secrets` (or as a Codespaces secret) with a long-lived token from `claude setup-token`. On container start, `setup-auth.sh` auto-creates `~/.claude/.credentials.json` with `600` permissions. If `.credentials.json` already exists, token injection is skipped (idempotent). Tokens must match `sk-ant-*` format.
|
|
84
71
|
|
|
85
72
|
## Modifying Behavior
|
|
86
73
|
|
|
87
|
-
1. **Change model**: Edit
|
|
88
|
-
2. **Change system prompt**: Edit
|
|
89
|
-
3. **Add config file**:
|
|
74
|
+
1. **Change model**: Edit `.codeforge/config/settings.json` → `"model"` field
|
|
75
|
+
2. **Change system prompt**: Edit `.codeforge/config/main-system-prompt.md`
|
|
76
|
+
3. **Add config file**: Place in `.codeforge/config/`, add entry to `.codeforge/file-manifest.json`
|
|
90
77
|
4. **Add features**: Add to `"features"` in `devcontainer.json`
|
|
91
78
|
5. **Disable features**: Set `"version": "none"` in the feature's config
|
|
92
79
|
6. **Disable setup steps**: Set flags to `false` in `.env`
|
|
93
|
-
7. **Customize status bar**: Edit
|
|
94
|
-
|
|
95
|
-
## Features
|
|
96
|
-
|
|
97
|
-
Custom features in `./features/` follow the [devcontainer feature spec](https://containers.dev/implementors/features/). Every local feature supports `"version": "none"` to skip installation. Claude Code is installed via `ghcr.io/anthropics/devcontainer-features/claude-code:1`.
|
|
80
|
+
7. **Customize status bar**: Edit `.codeforge/config/ccstatusline-settings.json`
|
package/.devcontainer/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# CodeForge Usage Guide
|
|
2
2
|
|
|
3
|
-
Everything you need to know once you're inside the devcontainer.
|
|
3
|
+
Everything you need to know once you're inside the devcontainer. These instructions apply regardless of which client you used to start the container — VS Code, the `devcontainer` CLI, JetBrains Gateway, DevPod, or GitHub Codespaces.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
@@ -40,7 +40,20 @@ Get an API key from [console.anthropic.com](https://console.anthropic.com/).
|
|
|
40
40
|
|
|
41
41
|
### Credential Persistence
|
|
42
42
|
|
|
43
|
-
Authentication credentials are stored in
|
|
43
|
+
Authentication credentials are stored in `~/.claude/` and persist across container rebuilds via a Docker named volume.
|
|
44
|
+
|
|
45
|
+
### Long-Lived Token Authentication
|
|
46
|
+
|
|
47
|
+
For headless or automated environments, you can use a long-lived auth token instead of browser login:
|
|
48
|
+
|
|
49
|
+
1. Generate a token: `claude setup-token`
|
|
50
|
+
2. Add to `.devcontainer/.secrets`:
|
|
51
|
+
```bash
|
|
52
|
+
CLAUDE_AUTH_TOKEN=sk-ant-oat01-your-token-here
|
|
53
|
+
```
|
|
54
|
+
3. On next container start, `setup-auth.sh` will create `~/.claude/.credentials.json` automatically.
|
|
55
|
+
|
|
56
|
+
You can also set `CLAUDE_AUTH_TOKEN` as a Codespaces secret for cloud environments.
|
|
44
57
|
|
|
45
58
|
For more options, see the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code).
|
|
46
59
|
|
|
@@ -111,7 +124,7 @@ Expected output shows your authenticated account and token scopes.
|
|
|
111
124
|
|
|
112
125
|
### Credential Persistence
|
|
113
126
|
|
|
114
|
-
GitHub CLI credentials are automatically persisted across container rebuilds. The container is configured to store credentials in `/workspaces/.gh/` (via `GH_CONFIG_DIR`), which is part of the bind-mounted workspace.
|
|
127
|
+
GitHub CLI credentials are automatically persisted across container rebuilds. The container is configured to store credentials in `/workspaces/.gh/` (via `GH_CONFIG_DIR`), which is part of the bind-mounted workspace. Claude Code credentials persist via a Docker named volume mounted at `~/.claude/`.
|
|
115
128
|
|
|
116
129
|
**You only need to authenticate once.** After running `gh auth login` or configuring `.secrets`, your credentials will survive container rebuilds and be available in future sessions.
|
|
117
130
|
|
|
@@ -119,7 +132,7 @@ GitHub CLI credentials are automatically persisted across container rebuilds. Th
|
|
|
119
132
|
|
|
120
133
|
### The `cc` Command
|
|
121
134
|
|
|
122
|
-
The `cc` command is an alias that launches Claude Code with the project's system prompt and plan-mode permissions. For Agent Teams split-pane support, use the **"Claude Teams (tmux)"** terminal profile in VS Code (dropdown next to the `+` button) or connect via
|
|
135
|
+
The `cc` command is an alias that launches Claude Code with the project's system prompt and plan-mode permissions. For Agent Teams split-pane support, use the **"Claude Teams (tmux)"** terminal profile in VS Code (dropdown next to the `+` button) or connect via `.codeforge/scripts/connect-external-terminal.sh`.
|
|
123
136
|
|
|
124
137
|
```bash
|
|
125
138
|
cc # Start Claude Code in current directory
|
|
@@ -199,7 +212,7 @@ Copy `.devcontainer/.env.example` to `.devcontainer/.env` and customize:
|
|
|
199
212
|
|
|
200
213
|
| Variable | Default | Description |
|
|
201
214
|
|----------|---------|-------------|
|
|
202
|
-
| `CLAUDE_CONFIG_DIR` | `/
|
|
215
|
+
| `CLAUDE_CONFIG_DIR` | `/home/vscode/.claude` | Claude configuration directory |
|
|
203
216
|
| `SETUP_CONFIG` | `true` | Copy config files during setup (per `file-manifest.json`) |
|
|
204
217
|
| `SETUP_ALIASES` | `true` | Add `cc`/`claude`/`ccraw` aliases to shell |
|
|
205
218
|
| `SETUP_AUTH` | `true` | Configure Git/NPM auth from `.secrets` |
|
|
@@ -212,7 +225,7 @@ Copy `.devcontainer/.env.example` to `.devcontainer/.env` and customize:
|
|
|
212
225
|
|
|
213
226
|
### Claude Code Settings
|
|
214
227
|
|
|
215
|
-
Default settings are in `.
|
|
228
|
+
Default settings are in `.codeforge/config/settings.json`. File copying is controlled by `.codeforge/file-manifest.json`, which specifies per-file overwrite behavior (`"if-changed"`, `"always"`, or `"never"`).
|
|
216
229
|
|
|
217
230
|
To add a custom config file, append an entry to `file-manifest.json`:
|
|
218
231
|
```json
|
|
@@ -230,7 +243,7 @@ Key defaults:
|
|
|
230
243
|
|
|
231
244
|
### Keybindings
|
|
232
245
|
|
|
233
|
-
Default keybindings are in `.
|
|
246
|
+
Default keybindings are in `.codeforge/config/keybindings.json` (empty by default — Claude Code defaults apply). Customize by adding entries to the `bindings` array.
|
|
234
247
|
|
|
235
248
|
**VS Code Terminal Passthrough**: `Ctrl+P` and `Ctrl+F` are configured to pass through to the terminal (via `terminal.integrated.commandsToSkipShell`) so Claude Code receives them. Other VS Code shortcuts that conflict with Claude Code:
|
|
236
249
|
|
|
@@ -247,7 +260,7 @@ For conflicting shortcuts, use Meta (Alt) variants or add custom keybindings.
|
|
|
247
260
|
|
|
248
261
|
### System Prompt
|
|
249
262
|
|
|
250
|
-
The default system prompt is in `.
|
|
263
|
+
The default system prompt is in `.codeforge/config/main-system-prompt.md`. Override it by creating a `.claude/main-system-prompt.md` in your project directory.
|
|
251
264
|
|
|
252
265
|
## Custom Features
|
|
253
266
|
|
|
@@ -301,6 +314,8 @@ Three methods for providing GitHub/NPM credentials, in order of precedence:
|
|
|
301
314
|
|
|
302
315
|
All methods persist across container rebuilds via the bind-mounted `/workspaces/.gh/` directory.
|
|
303
316
|
|
|
317
|
+
4. **`.secrets` file with `CLAUDE_AUTH_TOKEN`** — Long-lived Claude auth token from `claude setup-token`. Auto-creates `~/.claude/.credentials.json` on container start.
|
|
318
|
+
|
|
304
319
|
## Agents & Skills
|
|
305
320
|
|
|
306
321
|
Agents and skills are distributed across focused plugins (replacing the former `code-directive` monolith).
|
|
@@ -316,7 +331,7 @@ Agent definitions in `plugins/devs-marketplace/plugins/agent-system/agents/` pro
|
|
|
316
331
|
| `claude-guide` | Claude Code feature guidance |
|
|
317
332
|
| `debug-logs` | Log analysis and error diagnosis |
|
|
318
333
|
| `dependency-analyst` | Dependency analysis and upgrades |
|
|
319
|
-
| `
|
|
334
|
+
| `documenter` | Documentation, specs, and spec lifecycle |
|
|
320
335
|
| `explorer` | Fast codebase search and navigation |
|
|
321
336
|
| `generalist` | General-purpose multi-step tasks |
|
|
322
337
|
| `git-archaeologist` | Git history forensics |
|
|
@@ -329,11 +344,11 @@ Agent definitions in `plugins/devs-marketplace/plugins/agent-system/agents/` pro
|
|
|
329
344
|
| `statusline-config` | ccstatusline configuration |
|
|
330
345
|
| `test-writer` | Test authoring with pass verification |
|
|
331
346
|
|
|
332
|
-
### General Skills (
|
|
347
|
+
### General Skills (22) — `skill-engine` plugin
|
|
333
348
|
|
|
334
349
|
Skills in `plugins/devs-marketplace/plugins/skill-engine/skills/` provide domain-specific coding references:
|
|
335
350
|
|
|
336
|
-
`api-design` · `ast-grep-patterns` · `claude-agent-sdk` · `claude-code-headless` · `debugging` · `dependency-management` · `docker` · `docker-py` · `documentation-patterns` · `fastapi` · `git-forensics` · `migration-patterns` · `performance-profiling` · `pydantic-ai` · `refactoring-patterns` · `security-checklist` · `skill-building` · `sqlite` · `svelte5` · `team` · `testing`
|
|
351
|
+
`api-design` · `ast-grep-patterns` · `claude-agent-sdk` · `claude-code-headless` · `debugging` · `dependency-management` · `docker` · `docker-py` · `documentation-patterns` · `fastapi` · `git-forensics` · `migration-patterns` · `performance-profiling` · `pydantic-ai` · `refactoring-patterns` · `security-checklist` · `skill-building` · `sqlite` · `svelte5` · `team` · `testing` · `worktree`
|
|
337
352
|
|
|
338
353
|
### Spec Skills (8) — `spec-workflow` plugin
|
|
339
354
|
|
|
@@ -411,20 +426,20 @@ The `setup-projects.sh` script auto-detects projects under `/workspaces/` and ma
|
|
|
411
426
|
|
|
412
427
|
- **Authentication required**: Run `claude` once to authenticate before using `cc`
|
|
413
428
|
- **Plan mode default**: The container starts in "plan" mode, which prompts for approval before making changes
|
|
414
|
-
- **Config is managed by manifest**:
|
|
429
|
+
- **Config is managed by manifest**: `.codeforge/file-manifest.json` controls which files are copied and when — default `overwrite: "if-changed"` uses sha256 comparison. Persistent changes go in `.codeforge/config/settings.json`
|
|
415
430
|
- **GitHub auth persists**: Run `gh auth login` once or configure `.secrets`; credentials survive container rebuilds
|
|
416
|
-
- **Agent Teams needs tmux**: Split panes only work inside tmux. Use the "Claude Teams (tmux)" VS Code terminal profile or
|
|
431
|
+
- **Agent Teams needs tmux**: Split panes only work inside tmux. Use the "Claude Teams (tmux)" VS Code terminal profile or `.codeforge/scripts/connect-external-terminal.sh` from WezTerm/iTerm2
|
|
417
432
|
|
|
418
433
|
## Troubleshooting
|
|
419
434
|
|
|
420
|
-
Common issues and solutions. For detailed troubleshooting, see [
|
|
435
|
+
Common issues and solutions. For detailed troubleshooting, see the [Troubleshooting](https://codeforge.core-directive.com/reference/troubleshooting/) page on the docs site.
|
|
421
436
|
|
|
422
437
|
| Problem | Solution |
|
|
423
438
|
|---------|----------|
|
|
424
439
|
| `cc: command not found` | Run `source ~/.bashrc` or open a new terminal |
|
|
425
440
|
| `claude` fails during startup | Background update may be in progress — wait 10s and retry |
|
|
426
441
|
| GitHub push fails | Run `gh auth status` to check authentication |
|
|
427
|
-
| Plugin not loading | Check `enabledPlugins` in
|
|
442
|
+
| Plugin not loading | Check `enabledPlugins` in `.codeforge/config/settings.json` |
|
|
428
443
|
| Feature not installed | Check `devcontainer.json` for `"version": "none"` |
|
|
429
444
|
| Tool version/status | Run `cc-tools` to list all tools with version info |
|
|
430
445
|
| Full health check | Run `check-setup` to verify setup status |
|
|
@@ -432,11 +447,11 @@ Common issues and solutions. For detailed troubleshooting, see [docs/troubleshoo
|
|
|
432
447
|
## Further Reading
|
|
433
448
|
|
|
434
449
|
**CodeForge Documentation**:
|
|
435
|
-
- [Configuration Reference](
|
|
436
|
-
- [Plugin System](
|
|
437
|
-
- [Optional Features](
|
|
438
|
-
- [Keybinding Customization](
|
|
439
|
-
- [Troubleshooting](
|
|
450
|
+
- [Configuration Reference](https://codeforge.core-directive.com/customization/configuration/) — all env vars and config options
|
|
451
|
+
- [Plugin System](https://codeforge.core-directive.com/plugins/) — plugin architecture and per-plugin docs
|
|
452
|
+
- [Optional Features](https://codeforge.core-directive.com/customization/optional-features/) — mcp-qdrant and other optional components, disabling features
|
|
453
|
+
- [Keybinding Customization](https://codeforge.core-directive.com/customization/keybindings/) — resolving VS Code conflicts
|
|
454
|
+
- [Troubleshooting](https://codeforge.core-directive.com/reference/troubleshooting/) — common issues and solutions
|
|
440
455
|
|
|
441
456
|
**External**:
|
|
442
457
|
- [Claude Code Documentation](https://docs.anthropic.com/en/docs/claude-code)
|