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.
Files changed (133) hide show
  1. package/{.devcontainer/config/defaults → .codeforge/config}/ccstatusline-settings.json +44 -6
  2. package/.codeforge/config/main-system-prompt.md +412 -0
  3. package/.codeforge/config/orchestrator-system-prompt.md +333 -0
  4. package/{.devcontainer/config/defaults → .codeforge/config}/settings.json +7 -2
  5. package/{.devcontainer/config → .codeforge}/file-manifest.json +15 -9
  6. package/{.devcontainer → .codeforge/scripts}/connect-external-terminal.sh +3 -1
  7. package/.devcontainer/.env.example +17 -5
  8. package/.devcontainer/.secrets.example +3 -0
  9. package/.devcontainer/CHANGELOG.md +224 -3
  10. package/.devcontainer/CLAUDE.md +26 -43
  11. package/.devcontainer/README.md +35 -20
  12. package/.devcontainer/devcontainer.json +36 -17
  13. package/.devcontainer/features/agent-browser/install.sh +3 -0
  14. package/.devcontainer/features/ast-grep/install.sh +3 -0
  15. package/.devcontainer/features/biome/install.sh +3 -0
  16. package/.devcontainer/features/ccburn/devcontainer-feature.json +0 -5
  17. package/.devcontainer/features/ccburn/install.sh +2 -0
  18. package/.devcontainer/features/ccms/install.sh +2 -0
  19. package/.devcontainer/features/ccstatusline/README.md +7 -6
  20. package/.devcontainer/features/ccstatusline/install.sh +9 -4
  21. package/.devcontainer/features/ccusage/devcontainer-feature.json +0 -5
  22. package/.devcontainer/features/ccusage/install.sh +2 -0
  23. package/.devcontainer/features/chromaterm/chromaterm.yml +2 -2
  24. package/.devcontainer/features/chromaterm/install.sh +2 -0
  25. package/.devcontainer/features/claude-code-native/README.md +47 -0
  26. package/.devcontainer/features/claude-code-native/devcontainer-feature.json +29 -0
  27. package/.devcontainer/features/claude-code-native/install.sh +131 -0
  28. package/.devcontainer/features/claude-monitor/devcontainer-feature.json +0 -5
  29. package/.devcontainer/features/claude-monitor/install.sh +2 -0
  30. package/.devcontainer/features/claude-session-dashboard/README.md +2 -2
  31. package/.devcontainer/features/claude-session-dashboard/devcontainer-feature.json +1 -2
  32. package/.devcontainer/features/claude-session-dashboard/install.sh +3 -0
  33. package/.devcontainer/features/dprint/install.sh +2 -0
  34. package/.devcontainer/features/hadolint/install.sh +2 -0
  35. package/.devcontainer/features/kitty-terminfo/README.md +3 -1
  36. package/.devcontainer/features/kitty-terminfo/install.sh +2 -0
  37. package/.devcontainer/features/lsp-servers/install.sh +4 -0
  38. package/.devcontainer/features/mcp-qdrant/CHANGES.md +3 -3
  39. package/.devcontainer/features/mcp-qdrant/README.md +1 -0
  40. package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +1 -7
  41. package/.devcontainer/features/mcp-qdrant/install.sh +9 -2
  42. package/.devcontainer/features/mcp-qdrant/poststart-hook.sh +9 -2
  43. package/.devcontainer/features/notify-hook/devcontainer-feature.json +1 -1
  44. package/.devcontainer/features/notify-hook/install.sh +2 -0
  45. package/.devcontainer/features/ruff/install.sh +2 -0
  46. package/.devcontainer/features/shellcheck/install.sh +2 -0
  47. package/.devcontainer/features/shfmt/install.sh +2 -0
  48. package/.devcontainer/features/tmux/README.md +3 -3
  49. package/.devcontainer/features/tmux/install.sh +3 -1
  50. package/.devcontainer/features/tree-sitter/devcontainer-feature.json +0 -6
  51. package/.devcontainer/features/tree-sitter/install.sh +4 -0
  52. package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +27 -11
  53. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/README.md +20 -6
  54. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/architect.md +182 -29
  55. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/bash-exec.md +9 -0
  56. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/claude-guide.md +13 -4
  57. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/debug-logs.md +24 -5
  58. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/dependency-analyst.md +16 -5
  59. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/documenter.md +412 -0
  60. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/explorer.md +18 -6
  61. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/generalist.md +36 -10
  62. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/git-archaeologist.md +10 -1
  63. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/implementer.md +260 -0
  64. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/investigator.md +262 -0
  65. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/migrator.md +10 -0
  66. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/perf-profiler.md +21 -5
  67. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/refactorer.md +18 -8
  68. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/researcher.md +23 -5
  69. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/security-auditor.md +20 -6
  70. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/spec-writer.md +12 -0
  71. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/statusline-config.md +12 -2
  72. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/test-writer.md +22 -7
  73. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/guard-readonly-bash.py +9 -5
  74. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/redirect-builtin-agents.py +2 -5
  75. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/README.md +1 -1
  76. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/scripts/advisory-test-runner.py +4 -2
  77. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/README.md +3 -2
  78. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/block-dangerous.py +89 -15
  79. package/.devcontainer/plugins/devs-marketplace/plugins/git-workflow/.claude-plugin/plugin.json +7 -0
  80. package/.devcontainer/plugins/devs-marketplace/plugins/git-workflow/README.md +125 -0
  81. package/.devcontainer/plugins/devs-marketplace/plugins/git-workflow/skills/pr-review/SKILL.md +325 -0
  82. package/.devcontainer/plugins/devs-marketplace/plugins/git-workflow/skills/ship/SKILL.md +314 -0
  83. package/.devcontainer/plugins/devs-marketplace/plugins/prompt-snippets/.claude-plugin/plugin.json +5 -0
  84. package/.devcontainer/plugins/devs-marketplace/plugins/prompt-snippets/README.md +52 -0
  85. package/.devcontainer/plugins/devs-marketplace/plugins/prompt-snippets/skills/ps/SKILL.md +37 -0
  86. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/README.md +2 -2
  87. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected-bash.py +80 -6
  88. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +4 -4
  89. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/README.md +30 -14
  90. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/hooks/hooks.json +13 -1
  91. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/collect-session-edits.py +44 -0
  92. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/commit-reminder.py +89 -10
  93. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/.claude-plugin/plugin.json +1 -1
  94. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/README.md +19 -11
  95. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/scripts/skill-suggester.py +476 -282
  96. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/team/SKILL.md +4 -4
  97. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/worktree/SKILL.md +227 -0
  98. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/worktree/references/manual-worktree-commands.md +238 -0
  99. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/worktree/references/parallel-workflow-patterns.md +228 -0
  100. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-build/SKILL.md +2 -2
  101. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/scripts/ticket-linker.py +2 -2
  102. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/README.md +1 -1
  103. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/guard-workspace-scope.py +69 -31
  104. package/.devcontainer/scripts/check-setup.sh +5 -3
  105. package/.devcontainer/scripts/preflight.sh +113 -0
  106. package/.devcontainer/scripts/setup-aliases.sh +13 -8
  107. package/.devcontainer/scripts/setup-auth.sh +46 -0
  108. package/.devcontainer/scripts/setup-config.sh +29 -10
  109. package/.devcontainer/scripts/setup-migrate-claude.sh +80 -0
  110. package/.devcontainer/scripts/setup-migrate-codeforge.sh +60 -0
  111. package/.devcontainer/scripts/setup-plugins.sh +5 -5
  112. package/.devcontainer/scripts/setup-projects.sh +4 -2
  113. package/.devcontainer/scripts/setup-terminal.sh +3 -1
  114. package/.devcontainer/scripts/setup-update-claude.sh +22 -27
  115. package/.devcontainer/scripts/setup.sh +78 -5
  116. package/LICENSE.txt +14 -0
  117. package/README.md +82 -7
  118. package/package.json +4 -1
  119. package/setup.js +392 -21
  120. package/.devcontainer/config/defaults/main-system-prompt.md +0 -664
  121. package/.devcontainer/docs/configuration-reference.md +0 -93
  122. package/.devcontainer/docs/keybindings.md +0 -100
  123. package/.devcontainer/docs/optional-features.md +0 -64
  124. package/.devcontainer/docs/plugins.md +0 -176
  125. package/.devcontainer/docs/troubleshooting.md +0 -128
  126. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/doc-writer.md +0 -334
  127. package/.devcontainer/scripts/setup-symlink-claude.sh +0 -36
  128. /package/{.devcontainer/config/defaults → .codeforge/config}/keybindings.json +0 -0
  129. /package/{.devcontainer/config/defaults → .codeforge/config}/rules/session-search.md +0 -0
  130. /package/{.devcontainer/config/defaults → .codeforge/config}/rules/spec-workflow.md +0 -0
  131. /package/{.devcontainer/config/defaults → .codeforge/config}/rules/workspace-scope.md +0 -0
  132. /package/{.devcontainer/config/defaults → .codeforge/config}/writing-system-prompt.md +0 -0
  133. /package/{.devcontainer → .codeforge/scripts}/connect-external-terminal.ps1 +0 -0
@@ -1,18 +1,239 @@
1
1
  # CodeForge Devcontainer Changelog
2
2
 
3
- ## [v1.14.1] - 2026-02-24
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
- #### CI: Release Workflow
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)
@@ -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
- | `config/defaults/settings.json` | Model, tokens, permissions, plugins, env vars |
28
- | `config/defaults/main-system-prompt.md` | System prompt defining assistant behavior |
29
- | `config/defaults/ccstatusline-settings.json` | Status bar widget layout (deployed to ~/.config/ccstatusline/) |
30
- | `config/file-manifest.json` | Controls which config files deploy and when |
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 `file-manifest.json` on every container start. Most deploy to `/workspaces/.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}`.
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
- | `ccms` | Search session history (project-scoped) |
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** — 17 custom agents + built-in agent redirection
55
- - **skill-engine** — 21 general coding skills + auto-suggestion
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 `config/defaults/rules/` deploy to `.claude/rules/` on every container start. They load into ALL sessions automatically.
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 `config/defaults/rules/`, add a manifest entry in `file-manifest.json`.
64
+ **Adding rules:** Create `.md` in `.codeforge/config/rules/`, add a manifest entry in `.codeforge/file-manifest.json`.
74
65
 
75
- ## Environment
66
+ ## Authentication & Persistence
76
67
 
77
- | Variable | Value |
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
- All experimental feature flags are in `settings.json` under `env`. Setup steps controlled by boolean flags in `.env`.
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 `config/defaults/settings.json` → `"model"` field
88
- 2. **Change system prompt**: Edit `config/defaults/main-system-prompt.md`
89
- 3. **Add config file**: Add entry to `config/file-manifest.json`
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 `config/defaults/ccstatusline-settings.json`
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`
@@ -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 `/workspaces/.claude/` and persist across container rebuilds.
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 `connect-external-terminal.sh`.
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` | `/workspaces/.claude` | Claude configuration directory |
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 `.devcontainer/config/defaults/settings.json`. File copying is controlled by `config/file-manifest.json`, which specifies per-file overwrite behavior (`"if-changed"`, `"always"`, or `"never"`).
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 `.devcontainer/config/defaults/keybindings.json` (empty by default — Claude Code defaults apply). Customize by adding entries to the `bindings` array.
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 `.devcontainer/config/defaults/main-system-prompt.md`. Override it by creating a `.claude/main-system-prompt.md` in your project directory.
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
- | `doc-writer` | Documentation authoring |
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 (21) — `skill-engine` plugin
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**: `config/file-manifest.json` controls which files are copied and when — default `overwrite: "if-changed"` uses sha256 comparison. Persistent changes go in `.devcontainer/config/defaults/settings.json`
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 `connect-external-terminal.sh` from WezTerm/iTerm2
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 [docs/troubleshooting.md](docs/troubleshooting.md).
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 `config/defaults/settings.json` |
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](docs/configuration-reference.md) — all env vars and config options
436
- - [Plugin System](docs/plugins.md) — plugin architecture and per-plugin docs
437
- - [Optional Features](docs/optional-features.md) — mcp-qdrant and other optional components, disabling features
438
- - [Keybinding Customization](docs/keybindings.md) — resolving VS Code conflicts
439
- - [Troubleshooting](docs/troubleshooting.md) — common issues and solutions
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)