codeforge-dev 1.5.8 → 1.8.0

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 (176) hide show
  1. package/.devcontainer/.env +4 -5
  2. package/.devcontainer/.env.example +29 -0
  3. package/.devcontainer/.gitignore +8 -0
  4. package/.devcontainer/.secrets.example +12 -0
  5. package/.devcontainer/CHANGELOG.md +186 -0
  6. package/.devcontainer/CLAUDE.md +108 -21
  7. package/.devcontainer/README.md +173 -57
  8. package/.devcontainer/config/defaults/keybindings.json +5 -0
  9. package/.devcontainer/config/{main-system-prompt.md → defaults/main-system-prompt.md} +135 -2
  10. package/.devcontainer/config/{settings.json → defaults/settings.json} +25 -6
  11. package/.devcontainer/config/file-manifest.json +20 -0
  12. package/.devcontainer/devcontainer.json +38 -2
  13. package/.devcontainer/docs/configuration-reference.md +90 -0
  14. package/.devcontainer/docs/keybindings.md +100 -0
  15. package/.devcontainer/docs/optional-features.md +129 -0
  16. package/.devcontainer/docs/plugins.md +154 -0
  17. package/.devcontainer/docs/troubleshooting.md +128 -0
  18. package/.devcontainer/features/README.md +21 -7
  19. package/.devcontainer/features/agent-browser/install.sh +6 -0
  20. package/.devcontainer/features/ast-grep/install.sh +6 -0
  21. package/.devcontainer/features/biome/README.md +27 -0
  22. package/.devcontainer/features/biome/install.sh +6 -0
  23. package/.devcontainer/features/ccburn/README.md +60 -0
  24. package/.devcontainer/features/ccburn/devcontainer-feature.json +38 -0
  25. package/.devcontainer/features/ccburn/install.sh +180 -0
  26. package/.devcontainer/features/ccstatusline/README.md +22 -21
  27. package/.devcontainer/features/ccstatusline/devcontainer-feature.json +6 -1
  28. package/.devcontainer/features/ccstatusline/install.sh +55 -16
  29. package/.devcontainer/features/ccusage/install.sh +6 -0
  30. package/.devcontainer/features/claude-monitor/install.sh +6 -0
  31. package/.devcontainer/features/dprint/README.md +30 -0
  32. package/.devcontainer/features/dprint/devcontainer-feature.json +18 -0
  33. package/.devcontainer/features/dprint/install.sh +131 -0
  34. package/.devcontainer/features/hadolint/README.md +35 -0
  35. package/.devcontainer/features/hadolint/devcontainer-feature.json +13 -0
  36. package/.devcontainer/features/hadolint/install.sh +86 -0
  37. package/.devcontainer/features/lsp-servers/devcontainer-feature.json +5 -0
  38. package/.devcontainer/features/lsp-servers/install.sh +7 -0
  39. package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +6 -1
  40. package/.devcontainer/features/mcp-qdrant/install.sh +13 -6
  41. package/.devcontainer/features/mcp-reasoner/devcontainer-feature.json +6 -1
  42. package/.devcontainer/features/mcp-reasoner/install.sh +8 -1
  43. package/.devcontainer/features/notify-hook/devcontainer-feature.json +5 -0
  44. package/.devcontainer/features/notify-hook/install.sh +7 -0
  45. package/.devcontainer/features/ruff/README.md +26 -0
  46. package/.devcontainer/features/ruff/devcontainer-feature.json +21 -0
  47. package/.devcontainer/features/ruff/install.sh +74 -0
  48. package/.devcontainer/features/shellcheck/README.md +38 -0
  49. package/.devcontainer/features/shellcheck/devcontainer-feature.json +13 -0
  50. package/.devcontainer/features/shellcheck/install.sh +24 -0
  51. package/.devcontainer/features/shfmt/README.md +37 -0
  52. package/.devcontainer/features/shfmt/devcontainer-feature.json +13 -0
  53. package/.devcontainer/features/shfmt/install.sh +85 -0
  54. package/.devcontainer/features/splitrail/devcontainer-feature.json +5 -0
  55. package/.devcontainer/features/splitrail/install.sh +7 -0
  56. package/.devcontainer/features/tmux/install.sh +8 -0
  57. package/.devcontainer/features/tree-sitter/install.sh +6 -0
  58. package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +3 -10
  59. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/.claude-plugin/plugin.json +1 -1
  60. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/__pycache__/format-on-stop.cpython-314.pyc +0 -0
  61. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/format-on-stop.py +133 -13
  62. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/.claude-plugin/plugin.json +1 -1
  63. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/hooks/hooks.json +4 -5
  64. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/__pycache__/lint-file.cpython-314.pyc +0 -0
  65. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/lint-file.py +477 -78
  66. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/.claude-plugin/plugin.json +1 -1
  67. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/AGENT-REDIRECTION.md +226 -0
  68. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/REVIEW-RUBRIC.md +440 -0
  69. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/architect.md +207 -0
  70. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/bash-exec.md +173 -0
  71. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/claude-guide.md +146 -0
  72. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/debug-logs.md +2 -0
  73. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/dependency-analyst.md +250 -0
  74. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/doc-writer.md +246 -0
  75. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/explorer.md +237 -0
  76. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/generalist.md +134 -0
  77. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/git-archaeologist.md +242 -0
  78. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/migrator.md +201 -0
  79. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/perf-profiler.md +265 -0
  80. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/refactorer.md +213 -0
  81. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/researcher.md +195 -0
  82. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/security-auditor.md +289 -0
  83. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/spec-writer.md +297 -0
  84. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/statusline-config.md +188 -0
  85. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/test-writer.md +248 -0
  86. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/hooks/hooks.json +51 -0
  87. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/advisory-test-runner.cpython-314.pyc +0 -0
  88. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/collect-edited-files.cpython-314.pyc +0 -0
  89. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/commit-reminder.cpython-314.pyc +0 -0
  90. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/git-state-injector.cpython-314.pyc +0 -0
  91. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/guard-readonly-bash.cpython-314.pyc +0 -0
  92. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/redirect-builtin-agents.cpython-314.pyc +0 -0
  93. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/skill-suggester.cpython-314.pyc +0 -0
  94. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/syntax-validator.cpython-314.pyc +0 -0
  95. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/ticket-linker.cpython-314.pyc +0 -0
  96. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/todo-harvester.cpython-314.pyc +0 -0
  97. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/verify-no-regression.cpython-314.pyc +0 -0
  98. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/verify-tests-pass.cpython-314.pyc +0 -0
  99. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/advisory-test-runner.py +174 -0
  100. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/collect-edited-files.py +8 -6
  101. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/commit-reminder.py +90 -0
  102. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/git-state-injector.py +114 -0
  103. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/guard-readonly-bash.py +611 -0
  104. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/redirect-builtin-agents.py +83 -0
  105. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/skill-suggester.py +146 -2
  106. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/syntax-validator.py +9 -4
  107. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/ticket-linker.py +137 -0
  108. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/todo-harvester.py +130 -0
  109. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/verify-no-regression.py +221 -0
  110. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/verify-tests-pass.py +176 -0
  111. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/api-design/SKILL.md +224 -0
  112. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/api-design/references/error-handling.md +166 -0
  113. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/api-design/references/rest-conventions.md +215 -0
  114. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/ast-grep-patterns/SKILL.md +211 -0
  115. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/ast-grep-patterns/references/language-patterns.md +327 -0
  116. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/claude-agent-sdk/SKILL.md +599 -0
  117. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/claude-agent-sdk/references/sdk-typescript-reference.md +954 -0
  118. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/dependency-management/SKILL.md +134 -0
  119. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/dependency-management/references/ecosystem-commands.md +264 -0
  120. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/dependency-management/references/license-compliance.md +80 -0
  121. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/documentation-patterns/SKILL.md +153 -0
  122. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/documentation-patterns/references/api-doc-templates.md +221 -0
  123. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/documentation-patterns/references/docstring-formats.md +296 -0
  124. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/git-forensics/SKILL.md +276 -0
  125. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/git-forensics/references/advanced-commands.md +332 -0
  126. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/git-forensics/references/investigation-playbooks.md +319 -0
  127. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/migration-patterns/SKILL.md +150 -0
  128. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/migration-patterns/references/javascript-migrations.md +179 -0
  129. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/migration-patterns/references/python-migrations.md +141 -0
  130. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/performance-profiling/SKILL.md +341 -0
  131. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/performance-profiling/references/interpreting-results.md +235 -0
  132. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/performance-profiling/references/tool-commands.md +395 -0
  133. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/refactoring-patterns/SKILL.md +344 -0
  134. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/refactoring-patterns/references/safe-transformations.md +247 -0
  135. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/refactoring-patterns/references/smell-catalog.md +332 -0
  136. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/security-checklist/SKILL.md +277 -0
  137. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/security-checklist/references/owasp-patterns.md +269 -0
  138. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/security-checklist/references/secrets-patterns.md +253 -0
  139. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/specification-writing/SKILL.md +320 -0
  140. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/specification-writing/references/criteria-patterns.md +245 -0
  141. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/specification-writing/references/ears-templates.md +239 -0
  142. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/__pycache__/block-dangerous.cpython-314.pyc +0 -0
  143. package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/hooks/hooks.json +1 -1
  144. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/__pycache__/guard-protected.cpython-314.pyc +0 -0
  145. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +40 -39
  146. package/.devcontainer/scripts/check-setup.sh +72 -0
  147. package/.devcontainer/scripts/setup-aliases.sh +51 -6
  148. package/.devcontainer/scripts/setup-auth.sh +74 -0
  149. package/.devcontainer/scripts/setup-config.sh +112 -20
  150. package/.devcontainer/scripts/setup-plugins.sh +38 -46
  151. package/.devcontainer/scripts/setup-projects.sh +175 -0
  152. package/.devcontainer/scripts/setup-symlink-claude.sh +36 -0
  153. package/.devcontainer/scripts/setup-update-claude.sh +19 -8
  154. package/.devcontainer/scripts/setup.sh +49 -14
  155. package/README.md +23 -190
  156. package/package.json +1 -1
  157. package/setup.js +245 -71
  158. package/.devcontainer/features/claude-code/README.md +0 -498
  159. package/.devcontainer/features/claude-code/config/settings.json +0 -36
  160. package/.devcontainer/features/claude-code/config/system-prompt.md +0 -118
  161. package/.devcontainer/features/claude-code/config/world-building-sp.md +0 -1432
  162. package/.devcontainer/features/claude-code/devcontainer-feature.json +0 -42
  163. package/.devcontainer/features/claude-code/install.sh +0 -466
  164. package/.devcontainer/plugins/devs-marketplace/plugins/planning-reminder/.claude-plugin/plugin.json +0 -7
  165. package/.devcontainer/plugins/devs-marketplace/plugins/planning-reminder/hooks/hooks.json +0 -17
  166. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/.claude-plugin/plugin.json +0 -6
  167. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/config/planning-instructions.md +0 -14
  168. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/functional-conjuring-map.md +0 -989
  169. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/hooks/hooks.json +0 -33
  170. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/__pycache__/post-enhance-task.cpython-314.pyc +0 -0
  171. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/enhance-planning.py +0 -71
  172. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/enhancers/enhance-plan.sh +0 -68
  173. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/enhancers/enhance-task.sh +0 -120
  174. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/post-enhance-plan.py +0 -133
  175. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/post-enhance-task.py +0 -253
  176. package/.devcontainer/scripts/setup-irie-claude.sh +0 -32
@@ -1,34 +1,21 @@
1
- # CodeForge DevContainer
1
+ # CodeForge Usage Guide
2
2
 
3
- [![License: GPL-3.0](https://img.shields.io/badge/License-GPL%203.0-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
4
- [![npm version](https://img.shields.io/npm/v/codeforge-dev.svg)](https://www.npmjs.com/package/codeforge-dev)
5
-
6
- A curated development environment optimized for AI-powered coding with Claude Code. CodeForge comes pre-configured with language servers, code intelligence tools, and official Anthropic plugins to streamline your development workflow.
7
-
8
- ## Prerequisites
9
-
10
- - **Docker Desktop** (or compatible container runtime like Podman)
11
- - **VS Code** with the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers), or **GitHub Codespaces**
12
- - **Claude Code authentication** - see [Authentication](#authentication) section
3
+ Everything you need to know once you're inside the devcontainer.
13
4
 
14
5
  ## Quick Start
15
6
 
16
- 1. **Open in Container**
17
- - VS Code: Open the folder, then select "Reopen in Container" from the command palette
18
- - Codespaces: Create a new codespace from this repository
19
-
20
- 2. **Authenticate** (first time only)
7
+ 1. **Authenticate** (first time only)
21
8
  ```bash
22
9
  claude
23
10
  ```
24
11
  Follow the prompts to authenticate via browser or API key.
25
12
 
26
- 3. **Start Claude Code**
13
+ 2. **Start Claude Code**
27
14
  ```bash
28
15
  cc
29
16
  ```
30
17
 
31
- ## Authentication
18
+ ## Claude Code Authentication
32
19
 
33
20
  Claude Code supports multiple authentication methods. On first run, you'll be prompted to choose:
34
21
 
@@ -57,11 +44,39 @@ Authentication credentials are stored in `/workspaces/.claude/` and persist acro
57
44
 
58
45
  For more options, see the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code).
59
46
 
60
- ## GitHub CLI Authentication
47
+ ## GitHub & NPM Authentication
61
48
 
62
- GitHub CLI (`gh`) is pre-installed for repository operations like pushing code, creating pull requests, and accessing private repositories.
49
+ ### Automatic Auth via `.secrets` (Recommended)
50
+
51
+ CodeForge can automatically configure GitHub CLI, git identity, and NPM auth on every container start. Copy the template and fill in your tokens:
52
+
53
+ ```bash
54
+ cp .devcontainer/.secrets.example .devcontainer/.secrets
55
+ ```
56
+
57
+ Edit `.devcontainer/.secrets`:
58
+
59
+ ```bash
60
+ GH_TOKEN=ghp_your_token_here
61
+ GH_USERNAME=your-github-username
62
+ GH_EMAIL=your-email@example.com
63
+ NPM_TOKEN=npm_your_token_here
64
+ ```
65
+
66
+ On the next container start (or rebuild), `setup-auth.sh` will:
67
+ - Authenticate `gh` CLI and configure git credential helper
68
+ - Set `git config --global user.name` and `user.email`
69
+ - Set NPM registry auth token
70
+
71
+ The `.secrets` file is gitignored at two levels (root `.*` + `.devcontainer/.gitignore`) and will never be committed.
72
+
73
+ **Environment variable fallback**: For Codespaces or CI, set `GH_TOKEN`, `GH_USERNAME`, `GH_EMAIL`, and/or `NPM_TOKEN` as environment variables (e.g., via Codespaces secrets or `localEnv` in `devcontainer.json`). Environment variables take precedence over `.secrets` file values.
74
+
75
+ Disable automatic auth by setting `SETUP_AUTH=false` in `.devcontainer/.env`.
63
76
 
64
- ### Interactive Login (Recommended)
77
+ ### Interactive Login (Alternative)
78
+
79
+ GitHub CLI (`gh`) is pre-installed for repository operations like pushing code, creating pull requests, and accessing private repositories.
65
80
 
66
81
  ```bash
67
82
  gh auth login
@@ -98,7 +113,28 @@ Expected output shows your authenticated account and token scopes.
98
113
 
99
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.
100
115
 
101
- **You only need to authenticate once.** After running `gh auth login`, your credentials will survive container rebuilds and be available in future sessions.
116
+ **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
+
118
+ ## Using Claude Code
119
+
120
+ ### The `cc` Command
121
+
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`.
123
+
124
+ ```bash
125
+ cc # Start Claude Code in current directory
126
+ cc "explain this" # Start with an initial prompt
127
+ ```
128
+
129
+ ### Direct CLI
130
+
131
+ For more control, use the `claude` command directly:
132
+
133
+ ```bash
134
+ claude # Basic invocation
135
+ claude --help # View all options
136
+ claude --resume # Resume previous session
137
+ ```
102
138
 
103
139
  ## Available Tools
104
140
 
@@ -109,6 +145,7 @@ GitHub CLI credentials are automatically persisted across container rebuilds. Th
109
145
  | Node.js LTS | JavaScript runtime |
110
146
  | TypeScript | Via Node.js |
111
147
  | Go | Latest stable via devcontainer feature |
148
+ | Bun | Fast JavaScript runtime and toolkit |
112
149
 
113
150
  ### Package Managers
114
151
  | Tool | Description |
@@ -126,7 +163,12 @@ GitHub CLI credentials are automatically persisted across container rebuilds. Th
126
163
  | `jq` | JSON processor |
127
164
  | `curl` | HTTP client |
128
165
  | `tmux` | Terminal multiplexer for Agent Teams split-pane sessions |
129
- | `biome` | Fast JS/TS/JSON/CSS formatter |
166
+ | `biome` | Fast JS/TS/JSON/CSS formatter and linter |
167
+ | `ruff` | Fast Python linter and formatter (replaces Black + Flake8) |
168
+ | `shfmt` | Shell script formatter |
169
+ | `dprint` | Pluggable formatter for Markdown, YAML, TOML, Dockerfile |
170
+ | `shellcheck` | Static analysis tool for shell scripts |
171
+ | `hadolint` | Dockerfile linter |
130
172
  | `agent-browser` | Headless browser automation for AI agents |
131
173
 
132
174
  ### Code Intelligence
@@ -143,56 +185,65 @@ GitHub CLI credentials are automatically persisted across container rebuilds. Th
143
185
  | `claude` | Claude Code CLI |
144
186
  | `cc` | Wrapper with auto-configuration |
145
187
  | `ccusage` | Token usage analyzer |
146
- | `ccstatusline` | Status line for sessions |
188
+ | `ccburn` | Visual token burn rate tracker with pace indicators |
189
+ | `ccstatusline` | Status bar display (integrated into Claude Code, not standalone CLI) |
147
190
  | `claude-monitor` | Real-time usage tracking |
148
191
 
149
- ## Using Claude Code
150
-
151
- ### The `cc` Command
152
-
153
- 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`.
154
-
155
- ```bash
156
- cc # Start Claude Code in current directory
157
- cc "explain this" # Start with an initial prompt
158
- ```
159
-
160
- ### Direct CLI
161
-
162
- For more control, use the `claude` command directly:
163
-
164
- ```bash
165
- claude # Basic invocation
166
- claude --help # View all options
167
- claude --resume # Resume previous session
168
- ```
169
-
170
192
  ## Configuration
171
193
 
172
194
  ### Environment Variables
173
195
 
174
- Edit `.devcontainer/.env` to customize behavior:
196
+ Copy `.devcontainer/.env.example` to `.devcontainer/.env` and customize:
175
197
 
176
198
  | Variable | Default | Description |
177
199
  |----------|---------|-------------|
178
200
  | `CLAUDE_CONFIG_DIR` | `/workspaces/.claude` | Claude configuration directory |
179
- | `SETUP_CONFIG` | `true` | Copy config files during setup |
180
- | `OVERWRITE_CONFIG` | `true` | Overwrite existing configs |
181
- | `SETUP_ALIASES` | `true` | Add `cc` alias to shell |
182
- | `SETUP_PLUGINS` | `true` | Install official plugins |
201
+ | `SETUP_CONFIG` | `true` | Copy config files during setup (per `file-manifest.json`) |
202
+ | `SETUP_ALIASES` | `true` | Add `cc`/`claude`/`ccraw` aliases to shell |
203
+ | `SETUP_AUTH` | `true` | Configure Git/NPM auth from `.secrets` |
204
+ | `SETUP_PLUGINS` | `true` | Install official plugins + register marketplace |
205
+ | `SETUP_UPDATE_CLAUDE` | `true` | Auto-update Claude Code on container start |
206
+ | `SETUP_PROJECTS` | `true` | Auto-detect projects for VS Code Project Manager |
207
+ | `PLUGIN_BLACKLIST` | `""` | Comma-separated plugin names to skip |
183
208
 
184
209
  ### Claude Code Settings
185
210
 
186
- Default settings are in `.devcontainer/config/settings.json`. These are copied to `/workspaces/.claude/settings.json` on first run.
211
+ 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"`).
212
+
213
+ To add a custom config file, append an entry to `file-manifest.json`:
214
+ ```json
215
+ {
216
+ "src": "my-config.json",
217
+ "dest": "${WORKSPACE_ROOT}",
218
+ "overwrite": "if-changed"
219
+ }
220
+ ```
187
221
 
188
222
  Key defaults:
189
223
  - **Model**: Claude Opus 4-6
190
224
  - **Default mode**: Plan (prompts before executing)
191
- - **Max output tokens**: 128,000
225
+ - **Max output tokens**: 64,000
226
+
227
+ ### Keybindings
228
+
229
+ Default keybindings are in `.devcontainer/config/defaults/keybindings.json` (empty by default — Claude Code defaults apply). Customize by adding entries to the `bindings` array.
230
+
231
+ **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:
232
+
233
+ | Shortcut | VS Code Action | Claude Code Action |
234
+ |----------|---------------|-------------------|
235
+ | `Ctrl+G` | Go to Line | `chat:externalEditor` |
236
+ | `Ctrl+S` | Save File | `chat:stash` |
237
+ | `Ctrl+T` | Open Symbol | `app:toggleTodos` |
238
+ | `Ctrl+O` | Open File | `app:toggleTranscript` |
239
+ | `Ctrl+B` | Toggle Sidebar | `task:background` |
240
+ | `Ctrl+R` | Open Recent | `history:search` |
241
+
242
+ For conflicting shortcuts, use Meta (Alt) variants or add custom keybindings.
192
243
 
193
244
  ### System Prompt
194
245
 
195
- The default system prompt is in `.devcontainer/config/main-system-prompt.md`. Override it by creating a `.claude/system-prompt.md` in your project directory.
246
+ The default system prompt is in `.devcontainer/config/defaults/main-system-prompt.md`. Override it by creating a `.claude/system-prompt.md` in your project directory.
196
247
 
197
248
  ## Custom Features
198
249
 
@@ -200,25 +251,90 @@ CodeForge includes several custom devcontainer features:
200
251
 
201
252
  | Feature | Description |
202
253
  |---------|-------------|
254
+ | `tmux` | Terminal multiplexer with Catppuccin theme for Agent Teams |
255
+ | `agent-browser` | Headless browser automation for AI agents |
203
256
  | `claude-monitor` | Real-time token usage monitoring with ML predictions |
204
257
  | `ccusage` | Usage analytics CLI |
205
- | `ccstatusline` | Compact powerline status display |
258
+ | `ccburn` | Visual token burn rate tracker with pace indicators |
259
+ | `ccstatusline` | Status bar display (integrated into Claude Code, not standalone CLI) |
206
260
  | `ast-grep` | Structural code search using AST patterns |
207
261
  | `tree-sitter` | Parser with JS/TS/Python grammars |
208
262
  | `lsp-servers` | Pyright and TypeScript language servers |
209
- | `tmux` | Terminal multiplexer with Catppuccin theme for Agent Teams |
210
263
  | `biome` | Fast JS/TS/JSON/CSS formatter (global install) |
264
+ | `notify-hook` | Desktop notifications on Claude completion |
265
+ | `mcp-qdrant` | Qdrant vector database MCP server (optional) |
266
+ | `mcp-reasoner` | Enhanced AI reasoning MCP server (optional) |
267
+
268
+ ## Agents & Skills
269
+
270
+ The `code-directive` plugin includes specialized agent definitions and coding reference skills.
271
+
272
+ ### Custom Agents (17)
273
+
274
+ Agent definitions in `plugins/devs-marketplace/plugins/code-directive/agents/` provide enhanced behavior when spawned via the `Task` tool. The `redirect-builtin-agents.py` hook transparently swaps built-in agent types to these custom agents.
275
+
276
+ | Agent | Purpose |
277
+ |-------|---------|
278
+ | `architect` | System design and implementation planning |
279
+ | `bash-exec` | Command execution specialist |
280
+ | `claude-guide` | Claude Code feature guidance |
281
+ | `debug-logs` | Log analysis and error diagnosis |
282
+ | `dependency-analyst` | Dependency analysis and upgrades |
283
+ | `doc-writer` | Documentation authoring |
284
+ | `explorer` | Fast codebase search and navigation |
285
+ | `generalist` | General-purpose multi-step tasks |
286
+ | `git-archaeologist` | Git history forensics |
287
+ | `migrator` | Code migration and upgrades |
288
+ | `perf-profiler` | Performance profiling |
289
+ | `refactorer` | Code refactoring with regression checks |
290
+ | `researcher` | Research and information gathering |
291
+ | `security-auditor` | Security vulnerability analysis |
292
+ | `spec-writer` | Specification and requirements authoring |
293
+ | `statusline-config` | ccstatusline configuration |
294
+ | `test-writer` | Test authoring with pass verification |
295
+
296
+ ### Skills (16)
297
+
298
+ Skills in `plugins/devs-marketplace/plugins/code-directive/skills/` provide domain-specific coding references:
299
+
300
+ `claude-agent-sdk` · `claude-code-headless` · `debugging` · `docker` · `docker-py` · `fastapi` · `git-forensics` · `performance-profiling` · `pydantic-ai` · `refactoring-patterns` · `security-checklist` · `skill-building` · `specification-writing` · `sqlite` · `svelte5` · `testing`
301
+
302
+ ## Project Manager
303
+
304
+ The `setup-projects.sh` script auto-detects projects under `/workspaces/` and maintains a `projects.json` file for the [Project Manager](https://marketplace.visualstudio.com/items?itemName=alefragnani.project-manager) VS Code extension. It watches for new projects via `inotifywait` and updates the project list automatically.
211
305
 
212
306
  ## Essential Gotchas
213
307
 
214
308
  - **Authentication required**: Run `claude` once to authenticate before using `cc`
215
309
  - **Plan mode default**: The container starts in "plan" mode, which prompts for approval before making changes
216
- - **Project-local config**: Config files are auto-copied to `.claude/` on container start via `setup-config.sh`
217
- - **GitHub auth persists**: Run `gh auth login` once; credentials survive container rebuilds (stored in `/workspaces/.gh/`)
310
+ - **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`
311
+ - **GitHub auth persists**: Run `gh auth login` once or configure `.secrets`; credentials survive container rebuilds
218
312
  - **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
219
313
 
314
+ ## Troubleshooting
315
+
316
+ Common issues and solutions. For detailed troubleshooting, see [docs/troubleshooting.md](docs/troubleshooting.md).
317
+
318
+ | Problem | Solution |
319
+ |---------|----------|
320
+ | `cc: command not found` | Run `source ~/.bashrc` or open a new terminal |
321
+ | `claude` fails during startup | Background update may be in progress — wait 10s and retry |
322
+ | GitHub push fails | Run `gh auth status` to check authentication |
323
+ | Plugin not loading | Check `enabledPlugins` in `config/defaults/settings.json` |
324
+ | Feature not installed | Check `devcontainer.json` for `"version": "none"` |
325
+ | Tool version/status | Run `cc-tools` to list all tools with version info |
326
+ | Full health check | Run `check-setup` to verify setup status |
327
+
220
328
  ## Further Reading
221
329
 
330
+ **CodeForge Documentation**:
331
+ - [Configuration Reference](docs/configuration-reference.md) — all env vars and config options
332
+ - [Plugin System](docs/plugins.md) — plugin architecture and per-plugin docs
333
+ - [Optional Features](docs/optional-features.md) — mcp-qdrant, mcp-reasoner, splitrail
334
+ - [Keybinding Customization](docs/keybindings.md) — resolving VS Code conflicts
335
+ - [Troubleshooting](docs/troubleshooting.md) — common issues and solutions
336
+
337
+ **External**:
222
338
  - [Claude Code Documentation](https://docs.anthropic.com/en/docs/claude-code)
223
339
  - [Dev Containers Specification](https://containers.dev/)
224
340
  - [GitHub CLI Manual](https://cli.github.com/manual/)
@@ -0,0 +1,5 @@
1
+ {
2
+ "$schema": "https://www.schemastore.org/claude-code-keybindings.json",
3
+ "$docs": "https://code.claude.com/docs/en/keybindings",
4
+ "bindings": []
5
+ }
@@ -25,7 +25,7 @@ When in <normal_mode>:
25
25
  8. <response_guidelines>
26
26
 
27
27
  If rules conflict, follow the highest-priority rule for the active mode
28
- and explicitly note the conflict.
28
+ and explicitly note the conflict. Never silently violate a higher-priority rule.
29
29
  </rule_precedence>
30
30
 
31
31
  <operating_modes>
@@ -121,7 +121,13 @@ Main thread:
121
121
  Subagents (via `Task`):
122
122
  - Information gathering only
123
123
  - Report findings; never decide or modify
124
- - Types: `Explore` (fast search), `Plan` (design), `general-purpose` (complex), `Bash` (commands)
124
+ - Core types (auto-redirected to enhanced custom agents):
125
+ - `Explore` → `explorer` (fast codebase search, haiku, read-only)
126
+ - `Plan` → `architect` (implementation planning, opus, read-only)
127
+ - `general-purpose` → `generalist` (multi-step tasks, inherit model)
128
+ - `Bash` → `bash-exec` (command execution, sonnet)
129
+ - `claude-code-guide` → `claude-guide` (Claude Code/SDK/API help, haiku)
130
+ - `statusline-setup` → `statusline-config` (status line setup, sonnet)
125
131
 
126
132
  Agent Teams (when enabled):
127
133
  - CRITICAL: Limit to 3-5 active teammates maximum based on task complexity
@@ -145,6 +151,55 @@ Failure handling:
145
151
  - Surface errors clearly; never hide failures
146
152
  </orchestration>
147
153
 
154
+ <specialist_agents>
155
+ Specialist agents are available as teammates via the Task tool. Prefer
156
+ delegating to a specialist over doing the work yourself when the task
157
+ matches their domain.
158
+
159
+ Agents:
160
+ - researcher — codebase & web research (sonnet, read-only)
161
+ - test-writer — writes test suites (opus, auto-verify)
162
+ - refactorer — safe code transformations (opus, tests after every edit)
163
+ - security-auditor — OWASP audit & secrets scan (sonnet, read-only)
164
+ - doc-writer — README, API docs, docstrings (opus)
165
+ - migrator — framework upgrades & version bumps (opus)
166
+ - git-archaeologist — git history investigation (haiku, read-only)
167
+ - dependency-analyst — outdated/vulnerable deps (haiku, read-only)
168
+ - spec-writer — EARS requirements & acceptance criteria (opus, read-only)
169
+ - perf-profiler — profiling & benchmarks (sonnet, read-only)
170
+ - debug-logs — log analysis & diagnostics (sonnet, read-only)
171
+
172
+ Skills (auto-suggested, also loadable via Skill tool):
173
+ - fastapi, sqlite, svelte5, docker, docker-py, pydantic-ai
174
+ - testing, debugging, claude-code-headless, claude-agent-sdk
175
+ - skill-building, refactoring-patterns, security-checklist
176
+ - git-forensics, specification-writing, performance-profiling
177
+
178
+ Built-in agent redirect:
179
+ All 6 built-in agent types (Explore, Plan, general-purpose, Bash,
180
+ claude-code-guide, statusline-setup) are automatically redirected to
181
+ enhanced custom agents via a PreToolUse hook. You can use either the
182
+ built-in name or the custom name — the redirect is transparent.
183
+
184
+ Team construction:
185
+ When building agent teams, prefer custom agents over generic
186
+ `generalist` teammates when the task aligns with a specialist's
187
+ domain. Custom agents carry frontloaded skills, safety hooks, and
188
+ tailored instructions that make them more effective and safer than
189
+ a generalist agent doing the same work.
190
+
191
+ Example team compositions:
192
+ - Feature build: researcher (investigate) + test-writer (tests) + doc-writer (docs)
193
+ - Security hardening: security-auditor (find issues) + dependency-analyst (deps)
194
+ - Codebase cleanup: refactorer (transform) + test-writer (coverage gaps)
195
+ - Migration project: researcher (research guides) + migrator (execute)
196
+ - Performance work: perf-profiler (measure) + refactorer (optimize)
197
+
198
+ When a user's request clearly falls within a specialist's domain,
199
+ suggest delegation. Do not force it — the user may prefer to work
200
+ directly.
201
+ </specialist_agents>
202
+
148
203
  <structural_search>
149
204
  Prefer structural tools over text search when syntax matters:
150
205
 
@@ -258,6 +313,7 @@ Verify before assuming:
258
313
  or approach — ASK. Do not pick a default.
259
314
  - Do not assume file paths — read the filesystem to confirm.
260
315
  - Do not assume platform capabilities — research first.
316
+ - Never fabricate file paths, API signatures, tool behavior, or external facts. Verify or ask.
261
317
 
262
318
  Read before writing:
263
319
  - Before creating or modifying any file, read the target directory and
@@ -286,6 +342,11 @@ No silent deviations:
286
342
  before doing something different.
287
343
  - Never silently substitute an easier approach.
288
344
  - Never silently skip a step because it seems hard or uncertain.
345
+
346
+ When an approach fails:
347
+ - Diagnose the cause before retrying.
348
+ - Try an alternative strategy; do not repeat the failed path.
349
+ - Surface the failure and revised approach to the user.
289
350
  </execution_discipline>
290
351
 
291
352
  <code_directives>
@@ -335,6 +396,78 @@ offset = len(header) + 1 # null terminator in legacy format
335
396
  offset = len(header) + 1 # add one to header length
336
397
  </documentation>
337
398
 
399
+ <specification_management>
400
+ Specs and project-level docs live in `.specs/` at the project root.
401
+
402
+ You (the orchestrator) own spec creation and maintenance. Agents do not update
403
+ specs directly — they flag when specs need attention, and you handle it.
404
+
405
+ Folder structure:
406
+ ```
407
+ .specs/
408
+ ├── roadmap.md # What each version delivers and why (≤150 lines)
409
+ ├── lessons-learned.md # Workflow anti-patterns
410
+ ├── ci-cd.md # CI/CD pipeline, environments, deploy process
411
+ ├── v0.1.0.md # Feature spec (single file per version if ≤200 lines)
412
+ ├── v0.2.0/ # Version folder when multiple specs needed
413
+ │ ├── overview.md # Parent linking sub-specs (≤50 lines)
414
+ │ └── feature-name.md # Sub-spec per feature (≤200 lines each)
415
+ ```
416
+
417
+ Spec rules:
418
+ - ≤200 lines per spec file. Split by feature boundary if larger; link via
419
+ a parent overview (≤50 lines). Monolithic specs rot — no AI context window
420
+ can use a 4,000-line spec.
421
+ - Reference files, don't reproduce them. Write "see `src/engine/db/migrations/002.sql`
422
+ lines 48-70" — never paste full schemas, SQL DDL, or type definitions. The
423
+ code is the source of truth; duplicated snippets go stale.
424
+ - Each spec is independently loadable. Include version, status, last-updated,
425
+ intent, key file paths, and acceptance criteria in every spec file.
426
+
427
+ Standard template:
428
+ ```
429
+ # Feature: [Name]
430
+ **Version:** v0.X.0
431
+ **Status:** implemented | partial | planned
432
+ **Last Updated:** YYYY-MM-DD
433
+
434
+ ## Intent
435
+ ## Acceptance Criteria
436
+ ## Key Files
437
+ ## Schema / Data Model (reference only — no inline DDL)
438
+ ## API Endpoints (table: Method | Path | Description)
439
+ ## Requirements (EARS format: FR-1, NFR-1)
440
+ ## Dependencies
441
+ ## Out of Scope
442
+ ## Implementation Notes (as-built deviations — post-implementation only)
443
+ ## Discrepancies (spec vs reality gaps)
444
+ ```
445
+
446
+ As-built workflow (after implementing a feature):
447
+ 1. Find the feature spec: Glob `.specs/**/*.md`
448
+ 2. Set status to "implemented" or "partial"
449
+ 3. Check off acceptance criteria with passing tests
450
+ 4. Add Implementation Notes for any deviations
451
+ 5. Update file paths if they changed
452
+ 6. Update Last Updated date
453
+ If no spec exists and the change is substantial, create one or note "spec needed."
454
+
455
+ Document types — don't mix:
456
+ - Roadmap (`.specs/roadmap.md`): what each version delivers and why. No
457
+ implementation detail — that belongs in feature specs. Target: ≤150 lines.
458
+ - Feature spec (`.specs/v*.md` or `.specs/vX.Y.0/*.md`): how a feature works.
459
+ ≤200 lines.
460
+ - CI/CD (`.specs/ci-cd.md`): pipeline stages, environments, deploy process,
461
+ and automation config. Keep declarative — reference workflow files, don't
462
+ reproduce them.
463
+ - Lessons learned (`.specs/lessons-learned.md`): workflow anti-patterns.
464
+
465
+ After a version ships, update feature specs to as-built status. Delete or
466
+ merge superseded planning artifacts — don't accumulate snapshot documents.
467
+
468
+ Delegate spec writing to the spec-writer agent when creating new specs.
469
+ </specification_management>
470
+
338
471
  <code_standards>
339
472
  Files:
340
473
  - Small, focused, single reason to change
@@ -9,19 +9,30 @@
9
9
  "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001",
10
10
  "BASH_DEFAULT_TIMEOUT_MS": "240000",
11
11
  "BASH_MAX_TIMEOUT_MS": "600000",
12
- "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "true",
13
- "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "128000",
12
+ "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "64000",
14
13
  "MAX_MCP_OUTPUT_TOKENS": "10000",
15
14
  "MAX_THINKING_TOKENS": "63999",
16
15
  "MCP_TIMEOUT": "120000",
17
16
  "MCP_TOOL_TIMEOUT": "30000",
18
- "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": 95,
17
+ "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "95",
19
18
  "CLAUDE_CODE_SHELL": "zsh",
20
- "FORCE_AUTOUPDATE_PLUGINS": true,
19
+ "FORCE_AUTOUPDATE_PLUGINS": "1",
20
+
21
21
  "ENABLE_TOOL_SEARCH": "auto:5",
22
22
  "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1",
23
23
  "CLAUDE_CODE_EFFORT_LEVEL": "high",
24
- "CLAUDE_CODE_ENABLE_TASKS": "true"
24
+ "CLAUDE_CODE_ENABLE_TASKS": "true",
25
+ "CLAUDE_CODE_DISABLE_AUTO_MEMORY": "0",
26
+ "ENABLE_CLAUDE_CODE_SM_COMPACT": "1",
27
+ "CLAUDE_CODE_FORCE_GLOBAL_CACHE": "1",
28
+ "CLAUDE_CODE_PLAN_MODE_INTERVIEW_PHASE": "true",
29
+ "CLAUDE_CODE_PLAN_V2_AGENT_COUNT": "3",
30
+ "CLAUDE_CODE_PLAN_MODE_REQUIRED": "true",
31
+
32
+ "CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY": "5",
33
+ "CLAUDE_CODE_MAX_RETRIES": "1",
34
+ "BASH_MAX_OUTPUT_LENGTH": "15000",
35
+ "TASK_MAX_OUTPUT_LENGTH": "64000"
25
36
  },
26
37
  "teammateMode": "auto",
27
38
  "effortLevel": "high",
@@ -45,7 +56,15 @@
45
56
  "command": "/usr/local/bin/ccstatusline-wrapper"
46
57
  },
47
58
  "enabledPlugins": {
48
- "frontend-design@claude-code-plugins": true
59
+ "frontend-design@claude-code-plugins": true,
60
+ "codeforge-lsp@devs-marketplace": true,
61
+ "ticket-workflow@devs-marketplace": true,
62
+ "notify-hook@devs-marketplace": true,
63
+ "dangerous-command-blocker@devs-marketplace": true,
64
+ "protected-files-guard@devs-marketplace": true,
65
+ "auto-formatter@devs-marketplace": true,
66
+ "auto-linter@devs-marketplace": true,
67
+ "code-directive@devs-marketplace": true
49
68
  },
50
69
  "autoUpdatesChannel": "latest"
51
70
  }
@@ -0,0 +1,20 @@
1
+ [
2
+ {
3
+ "src": "defaults/settings.json",
4
+ "dest": "${CLAUDE_CONFIG_DIR}",
5
+ "enabled": true,
6
+ "overwrite": "if-changed"
7
+ },
8
+ {
9
+ "src": "defaults/keybindings.json",
10
+ "dest": "${CLAUDE_CONFIG_DIR}",
11
+ "enabled": true,
12
+ "overwrite": "if-changed"
13
+ },
14
+ {
15
+ "src": "defaults/main-system-prompt.md",
16
+ "dest": "${CLAUDE_CONFIG_DIR}",
17
+ "enabled": true,
18
+ "overwrite": "if-changed"
19
+ }
20
+ ]
@@ -12,6 +12,11 @@
12
12
  "TMPDIR": "/workspaces/.tmp"
13
13
  },
14
14
 
15
+ // Feature install order: external runtimes first (Node, uv, Go, Bun),
16
+ // then Claude Code (needs Node), then custom features.
17
+ // npm-dependent features (agent-browser, ccusage, ccburn, biome, lsp-servers)
18
+ // must come after Node. uv-dependent features (ruff, claude-monitor) must
19
+ // come after uv. notify-hook is last (lightweight, no dependencies).
15
20
  "overrideFeatureInstallOrder": [
16
21
  "ghcr.io/devcontainers/features/node",
17
22
  "ghcr.io/devcontainers/features/github-cli",
@@ -24,10 +29,16 @@
24
29
  "./features/agent-browser",
25
30
  "./features/claude-monitor",
26
31
  "./features/ccusage",
32
+ "./features/ccburn",
27
33
  "./features/ccstatusline",
28
34
  "./features/ast-grep",
29
35
  "./features/tree-sitter",
30
36
  "./features/lsp-servers",
37
+ "./features/ruff",
38
+ "./features/shfmt",
39
+ "./features/dprint",
40
+ "./features/shellcheck",
41
+ "./features/hadolint",
31
42
  "./features/biome",
32
43
  "./features/notify-hook"
33
44
  ],
@@ -56,6 +67,11 @@
56
67
  "installer": "uv",
57
68
  "username": "automatic"
58
69
  },
70
+ "./features/ccburn": {
71
+ "version": "latest",
72
+ "shells": "both",
73
+ "username": "automatic"
74
+ },
59
75
  "./features/ccstatusline": {
60
76
  "username": "automatic"
61
77
  },
@@ -63,6 +79,16 @@
63
79
  "./features/tree-sitter": {},
64
80
  "./features/lsp-servers": {},
65
81
  "./features/agent-browser": {},
82
+ "./features/ruff": {
83
+ "version": "latest",
84
+ "username": "automatic"
85
+ },
86
+ "./features/shfmt": {},
87
+ "./features/dprint": {
88
+ "username": "automatic"
89
+ },
90
+ "./features/shellcheck": {},
91
+ "./features/hadolint": {},
66
92
  "./features/biome": {},
67
93
  "./features/notify-hook": {
68
94
  "enableBell": true,
@@ -89,14 +115,24 @@
89
115
  },
90
116
  "terminal.integrated.defaultProfile.linux": "bash",
91
117
  "terminal.integrated.enableBell": true,
118
+ "terminal.integrated.commandsToSkipShell": [
119
+ "-workbench.action.quickOpen",
120
+ "-workbench.action.terminal.focusFind"
121
+ ],
92
122
  "remote.extensionKind": {
93
123
  "wenbopan.vscode-terminal-osc-notifier": ["ui"]
94
- }
124
+ },
125
+ "projectManager.git.baseFolders": ["/workspaces"],
126
+ "projectManager.git.maxDepthRecursion": 1,
127
+ "projectManager.showProjectNameInStatusBar": true,
128
+ "projectManager.openInNewWindowWhenClickingInStatusBar": false,
129
+ "projectManager.projectsLocation": "/workspaces/.config/project-manager"
95
130
  },
96
131
  "extensions": [
97
132
  "wenbopan.vscode-terminal-osc-notifier",
98
133
  "GitHub.vscode-github-actions",
99
- "fabiospampinato.vscode-todo-plus"
134
+ "fabiospampinato.vscode-todo-plus",
135
+ "alefragnani.project-manager"
100
136
  ]
101
137
  }
102
138
  },