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
@@ -0,0 +1,90 @@
1
+ # Configuration Reference
2
+
3
+ Quick reference for all CodeForge configuration options.
4
+
5
+ ## Which File to Edit
6
+
7
+ | Task | File to Edit |
8
+ |------|-------------|
9
+ | Change default model | `config/defaults/settings.json` |
10
+ | Change system prompt | `config/defaults/main-system-prompt.md` |
11
+ | Customize keybindings | `config/defaults/keybindings.json` |
12
+ | Control setup steps | `.env` |
13
+ | Add custom config file | `config/file-manifest.json` |
14
+ | Disable a feature | `devcontainer.json` (set `"version": "none"`) |
15
+ | Disable a plugin | `config/defaults/settings.json` (remove from `enabledPlugins`) |
16
+ | Skip a plugin install | `.env` (`PLUGIN_BLACKLIST`) |
17
+ | Change container memory | `devcontainer.json` (`runArgs`) |
18
+ | Add VS Code extension | `devcontainer.json` (`customizations.vscode.extensions`) |
19
+
20
+ ## `.env` Variables (Setup Behavior)
21
+
22
+ These control what `setup.sh` does on each container start. Copy `.env.example` to `.env` and customize.
23
+
24
+ | Variable | Default | Description |
25
+ |----------|---------|-------------|
26
+ | `CLAUDE_CONFIG_DIR` | `/workspaces/.claude` | Where Claude Code config files are stored |
27
+ | `CONFIG_SOURCE_DIR` | `(auto-detected)` | Source directory for config defaults |
28
+ | `SETUP_CONFIG` | `true` | Copy config files per `file-manifest.json` |
29
+ | `SETUP_ALIASES` | `true` | Add cc/claude/ccraw/cc-tools aliases to shell |
30
+ | `SETUP_AUTH` | `true` | Configure Git/NPM auth from `.secrets` file |
31
+ | `SETUP_PLUGINS` | `true` | Install Anthropic plugins + register local marketplace |
32
+ | `SETUP_UPDATE_CLAUDE` | `true` | Background-update Claude Code CLI binary |
33
+ | `SETUP_PROJECTS` | `true` | Auto-detect projects for VS Code Project Manager |
34
+ | `PLUGIN_BLACKLIST` | `""` | Comma-separated plugin names to skip during installation |
35
+
36
+ ## `devcontainer.json` `remoteEnv` (Container Runtime)
37
+
38
+ These environment variables are set in every terminal session inside the container.
39
+
40
+ | Variable | Value | Description |
41
+ |----------|-------|-------------|
42
+ | `WORKSPACE_ROOT` | `/workspaces` | Workspace root directory |
43
+ | `CLAUDE_CONFIG_DIR` | `/workspaces/.claude` | Claude Code config directory |
44
+ | `GH_CONFIG_DIR` | `/workspaces/.gh` | GitHub CLI config directory |
45
+ | `TMPDIR` | `/workspaces/.tmp` | Temporary files directory |
46
+
47
+ ## `config/file-manifest.json` (File Copy Rules)
48
+
49
+ Each entry in the manifest array controls how a config file is deployed:
50
+
51
+ ```json
52
+ {
53
+ "src": "defaults/settings.json",
54
+ "dest": "${CLAUDE_CONFIG_DIR}",
55
+ "destFilename": "settings.json",
56
+ "overwrite": "if-changed",
57
+ "enabled": true
58
+ }
59
+ ```
60
+
61
+ | Field | Required | Default | Description |
62
+ |-------|----------|---------|-------------|
63
+ | `src` | Yes | — | Source file path relative to `config/` |
64
+ | `dest` | Yes | — | Destination directory (supports `${CLAUDE_CONFIG_DIR}`, `${WORKSPACE_ROOT}`) |
65
+ | `destFilename` | No | basename of `src` | Override the destination filename |
66
+ | `overwrite` | No | `"if-changed"` | `"always"`, `"never"`, or `"if-changed"` (sha256 comparison) |
67
+ | `enabled` | No | `true` | Set `false` to skip this entry |
68
+
69
+ ## Feature Options
70
+
71
+ Each feature in `devcontainer.json` supports options defined in its `devcontainer-feature.json`. Common options:
72
+
73
+ | Option | Description | Used By |
74
+ |--------|-------------|---------|
75
+ | `version` | Tool version to install. `"none"` skips installation. | All local features |
76
+ | `username` | Container user to install for. `"automatic"` auto-detects. | dprint, ruff, ccusage, ccburn, etc. |
77
+ | `shells` | Which shell rc files to modify (`"both"`, `"bash"`, `"zsh"`). | ccusage, ccburn |
78
+
79
+ ## `.secrets` File (Authentication)
80
+
81
+ Create `.devcontainer/.secrets` with tokens for automatic authentication:
82
+
83
+ ```bash
84
+ GH_TOKEN=ghp_your_token_here
85
+ GH_USERNAME=your-github-username
86
+ GH_EMAIL=your-email@example.com
87
+ NPM_TOKEN=npm_your_token_here
88
+ ```
89
+
90
+ Environment variables with the same names take precedence over `.secrets` file values (useful for Codespaces).
@@ -0,0 +1,100 @@
1
+ # Keybinding Customization
2
+
3
+ Claude Code runs inside VS Code's integrated terminal. Some VS Code shortcuts are intercepted before reaching the terminal, conflicting with Claude Code's keybindings.
4
+
5
+ ## Conflicts
6
+
7
+ | Shortcut | VS Code Action | Claude Code Action |
8
+ |----------|---------------|-------------------|
9
+ | `Ctrl+G` | Go to Line | `chat:externalEditor` |
10
+ | `Ctrl+S` | Save File | `chat:stash` |
11
+ | `Ctrl+T` | Open Symbol | `app:toggleTodos` |
12
+ | `Ctrl+O` | Open File | `app:toggleTranscript` |
13
+ | `Ctrl+B` | Toggle Sidebar | `task:background` |
14
+ | `Ctrl+P` | Quick Open | `chat:modelPicker` |
15
+ | `Ctrl+R` | Open Recent | `history:search` |
16
+ | `Ctrl+F` | Find in Terminal | (navigation) |
17
+
18
+ ## Already Resolved
19
+
20
+ `Ctrl+P` and `Ctrl+F` are configured to pass through to Claude Code via `terminal.integrated.commandsToSkipShell` in `devcontainer.json`:
21
+
22
+ ```json
23
+ "terminal.integrated.commandsToSkipShell": [
24
+ "-workbench.action.quickOpen",
25
+ "-workbench.action.terminal.focusFind"
26
+ ]
27
+ ```
28
+
29
+ The `-` prefix removes the shortcut from VS Code's interception list when the terminal is focused.
30
+
31
+ ## Resolving Other Conflicts
32
+
33
+ ### Option 1: Use Meta (Alt) Variants
34
+
35
+ Claude Code binds Meta (Alt) variants for all shortcuts. Use `Alt+G` instead of `Ctrl+G`, etc. No configuration needed.
36
+
37
+ ### Option 2: Add to VS Code's Skip List
38
+
39
+ Add more shortcuts to `terminal.integrated.commandsToSkipShell` in `devcontainer.json`:
40
+
41
+ ```json
42
+ "terminal.integrated.commandsToSkipShell": [
43
+ "-workbench.action.quickOpen",
44
+ "-workbench.action.terminal.focusFind",
45
+ "-workbench.action.gotoLine",
46
+ "-workbench.action.files.save"
47
+ ]
48
+ ```
49
+
50
+ Common command IDs:
51
+ | Shortcut | Command ID |
52
+ |----------|-----------|
53
+ | `Ctrl+G` | `workbench.action.gotoLine` |
54
+ | `Ctrl+S` | `workbench.action.files.save` |
55
+ | `Ctrl+T` | `workbench.action.showAllSymbols` |
56
+ | `Ctrl+O` | `workbench.action.files.openFile` |
57
+ | `Ctrl+B` | `workbench.action.toggleSidebarVisibility` |
58
+ | `Ctrl+R` | `workbench.action.openRecent` |
59
+
60
+ ### Option 3: Custom Claude Code Keybindings
61
+
62
+ Edit `config/defaults/keybindings.json` to remap Claude Code actions to non-conflicting shortcuts:
63
+
64
+ ```json
65
+ {
66
+ "bindings": [
67
+ {
68
+ "key": "ctrl+shift+g",
69
+ "command": "chat:externalEditor",
70
+ "description": "Open external editor (remapped from Ctrl+G)"
71
+ },
72
+ {
73
+ "key": "ctrl+shift+s",
74
+ "command": "chat:stash",
75
+ "description": "Stash conversation (remapped from Ctrl+S)"
76
+ }
77
+ ]
78
+ }
79
+ ```
80
+
81
+ The keybindings file is copied to `/workspaces/.claude/keybindings.json` on container start (controlled by `file-manifest.json`).
82
+
83
+ ## Claude Code Keybinding Reference
84
+
85
+ Full list of default Claude Code shortcuts (these work when Claude Code has terminal focus):
86
+
87
+ | Key | Action |
88
+ |-----|--------|
89
+ | `Ctrl+C` / `Esc` | Cancel / Interrupt |
90
+ | `Ctrl+L` | Clear screen |
91
+ | `Ctrl+P` | Model picker |
92
+ | `Ctrl+R` | Search history |
93
+ | `Ctrl+G` | External editor |
94
+ | `Ctrl+S` | Stash conversation |
95
+ | `Ctrl+T` | Toggle todos |
96
+ | `Ctrl+O` | Toggle transcript |
97
+ | `Ctrl+B` | Background current task |
98
+ | `Ctrl+F` | Find in output |
99
+
100
+ All of these also have `Meta` (Alt) variants that work even when VS Code intercepts the `Ctrl` version.
@@ -0,0 +1,129 @@
1
+ # Optional Features
2
+
3
+ CodeForge includes several features that are available but not enabled by default. This guide covers how to enable and configure them.
4
+
5
+ ## mcp-qdrant (Vector Memory for Claude)
6
+
7
+ Adds persistent vector memory to Claude Code via a Qdrant MCP server. Claude can store and retrieve information across sessions.
8
+
9
+ ### Enabling
10
+
11
+ Add to `devcontainer.json` under `"features"`:
12
+
13
+ ```json
14
+ "./features/mcp-qdrant": {
15
+ "collectionName": "my-project-memory",
16
+ "embeddingModel": "all-MiniLM-L6-v2"
17
+ }
18
+ ```
19
+
20
+ ### Options
21
+
22
+ | Option | Default | Description |
23
+ |--------|---------|-------------|
24
+ | `collectionName` | `agent-memory` | Qdrant collection name |
25
+ | `embeddingModel` | `all-MiniLM-L6-v2` | Embedding model for vector search |
26
+ | `qdrantUrl` | (empty) | Remote Qdrant server URL. If empty, uses local storage. |
27
+ | `qdrantApiKey` | (empty) | API key for remote Qdrant server |
28
+ | `qdrantLocalPath` | `/workspaces/.qdrant/storage` | Local storage path (when no URL set) |
29
+
30
+ ### Supported Embedding Models
31
+
32
+ - `all-MiniLM-L6-v2` (default, smallest, fastest)
33
+ - `BAAI/bge-small-en-v1.5`
34
+ - `BAAI/bge-base-en-v1.5`
35
+ - `sentence-transformers/all-mpnet-base-v2`
36
+
37
+ ### Prerequisites
38
+
39
+ Already met by default container: Python 3.14 and uv are pre-installed.
40
+
41
+ ### How It Works
42
+
43
+ 1. During container build, the embedding model is pre-downloaded from GCS (not HuggingFace, to avoid network issues in containers).
44
+ 2. On container start, a post-start hook registers the Qdrant MCP server in Claude Code's `settings.json`.
45
+ 3. Claude Code can then use `qdrant-store` and `qdrant-find` tools to persist and search memories.
46
+
47
+ ### Verification
48
+
49
+ ```bash
50
+ uvx mcp-server-qdrant --help
51
+ ```
52
+
53
+ ---
54
+
55
+ ## mcp-reasoner (Enhanced Reasoning)
56
+
57
+ Adds a reasoning MCP server that gives Claude Code access to structured thinking tools (beam search, Monte Carlo tree search, etc.).
58
+
59
+ ### Enabling
60
+
61
+ Add to `devcontainer.json` under `"features"`:
62
+
63
+ ```json
64
+ "./features/mcp-reasoner": {}
65
+ ```
66
+
67
+ ### Options
68
+
69
+ | Option | Default | Description |
70
+ |--------|---------|-------------|
71
+ | `version` | `latest` | Version to install. `"none"` to skip. |
72
+ | `username` | `automatic` | Container user to install for |
73
+
74
+ ### Prerequisites
75
+
76
+ Already met by default container: Node.js LTS is pre-installed.
77
+
78
+ ### How It Works
79
+
80
+ 1. During build, clones and builds the mcp-reasoner Node.js project.
81
+ 2. On container start, a post-start hook registers it as an MCP server in `settings.json`.
82
+ 3. Claude Code gains access to reasoning tools: `beam_search`, `mcts`, `hypothesis_test`, etc.
83
+
84
+ ### Verification
85
+
86
+ ```bash
87
+ node ~/mcp-reasoner/dist/index.js --help
88
+ ```
89
+
90
+ ---
91
+
92
+ ## splitrail (Terminal Splitting)
93
+
94
+ A terminal multiplexer utility for splitting panes. Useful for Agent Teams workflows.
95
+
96
+ ### Enabling
97
+
98
+ Add to `devcontainer.json` under `"features"`:
99
+
100
+ ```json
101
+ "./features/splitrail": {}
102
+ ```
103
+
104
+ ### Prerequisites
105
+
106
+ Requires Rust toolchain. Add the Rust devcontainer feature first:
107
+
108
+ ```json
109
+ "ghcr.io/devcontainers/features/rust:1": {}
110
+ ```
111
+
112
+ Then add splitrail to `overrideFeatureInstallOrder` after the Rust feature.
113
+
114
+ ### How It Works
115
+
116
+ splitrail is a Rust-based tool that provides tmux pane management for Claude Code Agent Teams. It works alongside the tmux feature to provide split-pane terminal sessions.
117
+
118
+ ---
119
+
120
+ ## Disabling Default Features
121
+
122
+ Any feature can be disabled without removing it from `devcontainer.json` by setting `"version": "none"`:
123
+
124
+ ```json
125
+ "./features/hadolint": { "version": "none" },
126
+ "./features/shellcheck": { "version": "none" }
127
+ ```
128
+
129
+ The feature entry stays in the config for easy re-enabling — just remove `"version": "none"` or set it to `"latest"`.
@@ -0,0 +1,154 @@
1
+ # Plugin System
2
+
3
+ CodeForge includes a local plugin marketplace that provides specialized tools and hooks for Claude Code.
4
+
5
+ ## Architecture
6
+
7
+ ```
8
+ plugins/devs-marketplace/
9
+ ├── .claude-plugin/
10
+ │ └── marketplace.json # Marketplace manifest (lists all plugins)
11
+ └── plugins/
12
+ ├── codeforge-lsp/ # LSP language servers
13
+ ├── ticket-workflow/ # EARS ticket workflow
14
+ ├── notify-hook/ # Desktop notifications
15
+ ├── dangerous-command-blocker/ # Safety: block destructive commands
16
+ ├── protected-files-guard/ # Safety: protect sensitive files
17
+ ├── auto-formatter/ # Batch formatter (Stop hook)
18
+ ├── auto-linter/ # Batch linter (Stop hook)
19
+ └── code-directive/ # Agents, skills, hooks
20
+ ```
21
+
22
+ Each plugin has a `.claude-plugin/plugin.json` manifest defining its name, description, and capabilities.
23
+
24
+ ## Enabling/Disabling Plugins
25
+
26
+ Plugins are enabled in `config/defaults/settings.json` under `enabledPlugins`:
27
+
28
+ ```json
29
+ "enabledPlugins": [
30
+ "auto-formatter@devs-marketplace",
31
+ "auto-linter@devs-marketplace",
32
+ "code-directive@devs-marketplace"
33
+ ]
34
+ ```
35
+
36
+ To disable a plugin, remove its entry from the `enabledPlugins` array.
37
+
38
+ ## PLUGIN_BLACKLIST
39
+
40
+ To skip a plugin during the installation/registration step (without editing `settings.json`), add it to `PLUGIN_BLACKLIST` in `.env`:
41
+
42
+ ```bash
43
+ PLUGIN_BLACKLIST="ticket-workflow,auto-linter"
44
+ ```
45
+
46
+ This prevents the plugin from being registered on container start but doesn't remove it from `enabledPlugins`.
47
+
48
+ ---
49
+
50
+ ## Plugin Reference
51
+
52
+ ### codeforge-lsp
53
+
54
+ **Purpose**: Provides Language Server Protocol servers for code intelligence.
55
+
56
+ **Servers**:
57
+ - **Pyright** — Python type checking and completion (`.py`, `.pyi`)
58
+ - **TypeScript Language Server** — TypeScript/JavaScript (`.ts`, `.tsx`, `.js`, `.jsx`, `.mts`, `.cts`, `.mjs`, `.cjs`)
59
+ - **gopls** — Go language server (`.go`, `.mod`, `.sum`)
60
+
61
+ Claude Code automatically uses these for hover info, go-to-definition, and find-references.
62
+
63
+ ### ticket-workflow
64
+
65
+ **Purpose**: EARS-based ticket workflow with GitHub integration.
66
+
67
+ Provides structured ticket management using EARS (Easy Approach to Requirements Syntax) format. Integrates with GitHub Issues for tracking.
68
+
69
+ **Commands**: `/ticket:new`, `/ticket:work`, `/ticket:review-commit`, `/ticket:create-pr`
70
+
71
+ ### notify-hook
72
+
73
+ **Purpose**: Desktop notifications when Claude Code finishes responding.
74
+
75
+ Sends an OSC escape sequence and terminal bell when Claude completes a response, triggering desktop notifications in supported terminals (WezTerm, iTerm2, VS Code with the OSC notifier extension).
76
+
77
+ **Configuration**: Enabled via `devcontainer.json` feature options:
78
+ ```json
79
+ "./features/notify-hook": {
80
+ "enableBell": true,
81
+ "enableOsc": true
82
+ }
83
+ ```
84
+
85
+ ### dangerous-command-blocker
86
+
87
+ **Purpose**: Prevents Claude Code from executing destructive bash commands.
88
+
89
+ **Blocked patterns**:
90
+ - `rm -rf /` and variants
91
+ - `sudo rm` on system directories
92
+ - `chmod 777` on sensitive paths
93
+ - `git push --force` to protected branches
94
+ - `dd` with output to block devices
95
+ - Other destructive system commands
96
+
97
+ The blocker runs as a PreToolUse hook on Bash commands. It checks the command against a pattern list and rejects matches.
98
+
99
+ ### protected-files-guard
100
+
101
+ **Purpose**: Prevents Claude Code from modifying sensitive files.
102
+
103
+ **Protected patterns**:
104
+ - `.env` and `.secrets` files
105
+ - Lock files (`package-lock.json`, `uv.lock`, `Cargo.lock`, etc.)
106
+ - `.git/` directory contents
107
+ - Credential files and SSH keys
108
+
109
+ Runs as a PreToolUse hook on Write and Edit operations.
110
+
111
+ ### auto-formatter
112
+
113
+ **Purpose**: Batch-formats all files edited during a Claude Code session.
114
+
115
+ **Supported languages**:
116
+ | Language | Formatter |
117
+ |----------|-----------|
118
+ | Python | Ruff |
119
+ | Go | gofmt |
120
+ | JavaScript/TypeScript/CSS/JSON/GraphQL/HTML | Biome |
121
+ | Shell scripts | shfmt |
122
+ | Markdown/YAML/TOML/Dockerfile | dprint |
123
+ | Rust | rustfmt |
124
+
125
+ **How it works**: Runs as a Stop hook. When Claude Code stops (end of a conversation turn), it checks which files were edited, detects their language, and runs the appropriate formatter. Has a 30-second timeout.
126
+
127
+ ### auto-linter
128
+
129
+ **Purpose**: Batch-lints all files edited during a Claude Code session.
130
+
131
+ **Supported linters**:
132
+ | Language | Linter |
133
+ |----------|--------|
134
+ | Python | Pyright + Ruff |
135
+ | JavaScript/TypeScript/CSS/GraphQL | Biome |
136
+ | Shell scripts | ShellCheck |
137
+ | Go | go vet |
138
+ | Dockerfile | hadolint |
139
+ | Rust | clippy |
140
+
141
+ **How it works**: Runs as a Stop hook alongside auto-formatter. Checks edited files and runs the appropriate linter. Results are reported but don't block — they're informational.
142
+
143
+ ### code-directive
144
+
145
+ **Purpose**: The main intelligence layer — custom agents, coding skills, and behavior hooks.
146
+
147
+ **Components**:
148
+ - **17 custom agents** — Specialized agent definitions for different task types (architect, test-writer, refactorer, etc.)
149
+ - **16 coding skills** — Domain-specific reference materials (FastAPI, Docker, testing patterns, etc.)
150
+ - **Agent redirection hook** — Transparently swaps built-in agent types to custom agents (e.g., `Explore` → `explorer`, `Plan` → `architect`)
151
+ - **Syntax validation hook** — Validates code syntax before commits
152
+ - **Skill auto-suggestion hook** — Suggests relevant skills based on conversation context
153
+
154
+ For detailed agent and skill documentation, see the agent markdown files in `plugins/devs-marketplace/plugins/code-directive/agents/` and skill files in `plugins/devs-marketplace/plugins/code-directive/skills/`.
@@ -0,0 +1,128 @@
1
+ # Troubleshooting
2
+
3
+ Common issues and solutions for the CodeForge devcontainer.
4
+
5
+ ## Container Build Failures
6
+
7
+ **Problem**: Container fails to build during feature installation.
8
+
9
+ - Check Docker has sufficient memory (4GB+ recommended). CodeForge sets `--memory=4g` by default.
10
+ - If a specific feature fails, disable it temporarily by setting `"version": "none"` in `devcontainer.json`.
11
+ - Check internet connectivity — most features download binaries from GitHub releases.
12
+ - If hitting GitHub API rate limits during build, set `GH_TOKEN` or `GITHUB_TOKEN` as an environment variable.
13
+
14
+ **Problem**: Build is slow or hangs.
15
+
16
+ - The mcp-qdrant feature downloads an embedding model (~90MB). This is normal on first build.
17
+ - The mcp-reasoner feature clones and builds a Node.js project. This takes 1-2 minutes.
18
+ - Use `"version": "none"` to skip optional features you don't need.
19
+
20
+ ## Authentication Issues
21
+
22
+ **Problem**: `claude` command fails with authentication error.
23
+
24
+ - Run `claude` once interactively to complete authentication.
25
+ - If using API key auth, verify `ANTHROPIC_API_KEY` is set correctly.
26
+ - Background update may be in progress — wait 10 seconds and retry.
27
+
28
+ **Problem**: `gh` CLI not authenticated.
29
+
30
+ - Run `gh auth status` to check current state.
31
+ - Run `gh auth login` for interactive setup.
32
+ - Or configure `.devcontainer/.secrets` with `GH_TOKEN` for automatic auth on container start.
33
+ - Credentials persist in `/workspaces/.gh/` across rebuilds.
34
+
35
+ **Problem**: Git push fails with permission error.
36
+
37
+ - Run `gh auth status` to verify authentication.
38
+ - Check git remote URL: `git remote -v`. HTTPS remotes require `gh` auth; SSH remotes require SSH keys.
39
+ - Verify `git config --global user.name` and `user.email` are set.
40
+
41
+ **Problem**: NPM publish/install fails with 401.
42
+
43
+ - Set `NPM_TOKEN` in `.devcontainer/.secrets` or as environment variable.
44
+ - Verify token: `npm whoami`.
45
+
46
+ ## Feature Installation Failures
47
+
48
+ **Problem**: Feature checksum verification fails.
49
+
50
+ - This usually means a corrupted download. Rebuild the container to retry.
51
+ - If persistent, the release may have been re-tagged. Try pinning a specific version in `devcontainer.json`.
52
+
53
+ **Problem**: Feature download fails after retries.
54
+
55
+ - Check internet connectivity.
56
+ - GitHub may be experiencing issues — check [githubstatus.com](https://www.githubstatus.com/).
57
+ - Set `GH_TOKEN` environment variable to avoid rate limiting.
58
+
59
+ **Problem**: Permission denied during feature install.
60
+
61
+ - Features run as root during build. This shouldn't happen in normal use.
62
+ - If modifying features, ensure `install.sh` has `chmod +x` and starts with `#!/bin/bash`.
63
+
64
+ ## Plugin Issues
65
+
66
+ **Problem**: Plugin not loading or not appearing in Claude Code.
67
+
68
+ - Check `enabledPlugins` in `config/defaults/settings.json` — the plugin must be listed there.
69
+ - Verify the plugin directory exists under `plugins/devs-marketplace/plugins/`.
70
+ - Run `check-setup` to verify core configuration is correct.
71
+ - Check plugin blacklist: ensure it's not in `PLUGIN_BLACKLIST` in `.env`.
72
+
73
+ **Problem**: Auto-formatter or auto-linter not running.
74
+
75
+ - These run on the Stop hook — they only trigger when Claude Code stops (end of conversation turn).
76
+ - Verify the underlying tools are installed: `cc-tools` lists all available tools.
77
+ - Check the 30-second timeout hasn't been exceeded (large file sets may hit this).
78
+
79
+ ## Agent Teams / tmux Issues
80
+
81
+ **Problem**: Split panes not working.
82
+
83
+ - Agent Teams requires tmux. Use the **"Claude Teams (tmux)"** terminal profile in VS Code.
84
+ - Verify tmux is installed: `tmux -V`.
85
+ - If using an external terminal, connect via `connect-external-terminal.sh`.
86
+
87
+ **Problem**: tmux Unicode/emoji rendering broken.
88
+
89
+ - Ensure locale is set: `echo $LANG` should show `en_US.UTF-8`.
90
+ - If not, run `source ~/.bashrc` or open a new terminal.
91
+
92
+ ## "Command Not Found" Errors
93
+
94
+ **Problem**: `cc: command not found` or similar.
95
+
96
+ - Run `source ~/.bashrc` (or `~/.zshrc`) to reload aliases.
97
+ - Or open a new terminal.
98
+ - Verify setup ran: check for `# Claude Code environment and aliases` in your rc file.
99
+
100
+ **Problem**: Tool not found (e.g., `ruff`, `dprint`).
101
+
102
+ - Run `cc-tools` to see which tools are installed.
103
+ - Check if the feature was disabled with `"version": "none"` in `devcontainer.json`.
104
+ - Some tools (like `ruff`) install to `~/.local/bin` — ensure it's in your PATH.
105
+
106
+ ## Performance Issues
107
+
108
+ **Problem**: Container is slow or running out of memory.
109
+
110
+ - CodeForge defaults to 4GB RAM / 8GB swap. Increase in `devcontainer.json` `runArgs`.
111
+ - Disable features you don't need with `"version": "none"`.
112
+ - The background Claude Code update runs once on startup — it's not persistent.
113
+
114
+ **Problem**: Slow startup.
115
+
116
+ - First start is slower due to `postStartCommand` running all setup scripts.
117
+ - Subsequent starts skip unchanged config files (sha256 comparison).
118
+ - Disable steps you don't need via `.env` (e.g., `SETUP_PROJECTS=false`).
119
+
120
+ ## How to Reset to Defaults
121
+
122
+ 1. **Reset config files**: Delete `/workspaces/.claude/` and restart the container. `setup-config.sh` will recopy all files from `config/defaults/`.
123
+
124
+ 2. **Reset aliases**: Delete the `# Claude Code environment and aliases` block from `~/.bashrc` and `~/.zshrc`, then run `bash /workspaces/.devcontainer/scripts/setup-aliases.sh`.
125
+
126
+ 3. **Full reset**: Rebuild the container from scratch (VS Code: "Dev Containers: Rebuild Container").
127
+
128
+ 4. **Reset a single feature**: Set it to `"version": "none"`, rebuild, then set it back to the desired version and rebuild again.
@@ -4,11 +4,25 @@ This directory contains DevContainer Features for AI coding agent environments.
4
4
 
5
5
  ## Available Features
6
6
 
7
- ### mcp-qdrant
8
- Vector database integration via Qdrant MCP server. Enables semantic search, embeddings management, and RAG workflows.
9
-
10
- **Status**:Complete
11
- **Documentation**: [mcp-qdrant/README.md](./mcp-qdrant/README.md)
7
+ | Feature | Description | Status |
8
+ |---------|-------------|--------|
9
+ | `tmux` | Terminal multiplexer with Catppuccin theme for Agent Teams | ✅ |
10
+ | `agent-browser` | Headless browser automation for AI agents | |
11
+ | `claude-monitor` | Real-time token usage monitoring | ✅ |
12
+ | `ccusage` | Token usage analytics CLI | ✅ |
13
+ | `ccburn` | Visual token burn rate tracker with pace indicators | ✅ New |
14
+ | `ccstatusline` | 6-line powerline status display (v1.1.0) | ✅ |
15
+ | `ast-grep` | Structural code search using AST patterns | ✅ |
16
+ | `tree-sitter` | Parser with JS/TS/Python grammars | ✅ |
17
+ | `lsp-servers` | Pyright and TypeScript language servers | ✅ |
18
+ | `biome` | Fast JS/TS/JSON/CSS formatter | ✅ |
19
+ | `notify-hook` | Desktop notifications on Claude completion | ✅ |
20
+ | `splitrail` | Git worktree management for parallel branches | ✅ |
21
+ | `mcp-qdrant` | Qdrant vector database MCP server | ✅ (optional) |
22
+ | `mcp-reasoner` | Enhanced AI reasoning MCP server | ✅ (optional) |
23
+ | `claude-code` | Fallback config for Anthropic's official Claude Code feature | ✅ (config only) |
24
+
25
+ > **Note**: Claude Code itself is installed via `ghcr.io/anthropics/devcontainer-features/claude-code:1` (Anthropic's official feature). The local `claude-code/` directory provides only fallback configuration.
12
26
 
13
27
  ## Feature Structure
14
28
 
@@ -90,9 +104,9 @@ CodeForge modules are being converted to DevContainer Features:
90
104
  | Old Module | New Feature | Status |
91
105
  |-----------|-------------|---------|
92
106
  | mcp_qdrant | mcp-qdrant | ✅ Complete |
107
+ | mcp_reasoner | mcp-reasoner | ✅ Complete |
93
108
  | mcp_browser | mcp-browser | 🔜 Planned |
94
109
  | mcp_sourcerer | mcp-sourcerer | 🔜 Planned |
95
- | mcp_reasoner | mcp-reasoner | 🔜 Planned |
96
110
  | mcp_obsidian | mcp-obsidian | 🔜 Planned |
97
111
  | mcp_code_runner | mcp-code-runner | 🔜 Planned |
98
112
 
@@ -110,4 +124,4 @@ Features are part of the CodeForge project. See main repository for contribution
110
124
  ---
111
125
 
112
126
  **Status**: Active Development
113
- **Last Updated**: 2025-11-11
127
+ **Last Updated**: 2026-02-08
@@ -4,6 +4,12 @@ set -euo pipefail
4
4
  VERSION="${VERSION:-latest}"
5
5
  USERNAME="${USERNAME:-automatic}"
6
6
 
7
+ # Skip installation if version is "none"
8
+ if [ "${VERSION}" = "none" ]; then
9
+ echo "[agent-browser] Skipping installation (version=none)"
10
+ exit 0
11
+ fi
12
+
7
13
  # Set headless as default for containers (bundled Chromium, no display needed)
8
14
  export AGENT_BROWSER_HEADLESS=true
9
15
 
@@ -4,6 +4,12 @@ set -euo pipefail
4
4
  VERSION="${VERSION:-latest}"
5
5
  USERNAME="${USERNAME:-automatic}"
6
6
 
7
+ # Skip installation if version is "none"
8
+ if [ "${VERSION}" = "none" ]; then
9
+ echo "[ast-grep] Skipping installation (version=none)"
10
+ exit 0
11
+ fi
12
+
7
13
  echo "[ast-grep] Starting installation..."
8
14
  echo "[ast-grep] Version: ${VERSION}"
9
15