codeforge-dev 1.5.8 → 1.7.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 (80) hide show
  1. package/.devcontainer/.env +2 -1
  2. package/.devcontainer/CHANGELOG.md +56 -0
  3. package/.devcontainer/CLAUDE.md +65 -15
  4. package/.devcontainer/README.md +65 -4
  5. package/.devcontainer/config/keybindings.json +5 -0
  6. package/.devcontainer/config/main-system-prompt.md +63 -2
  7. package/.devcontainer/config/settings.json +25 -6
  8. package/.devcontainer/devcontainer.json +18 -2
  9. package/.devcontainer/features/README.md +21 -7
  10. package/.devcontainer/features/ccburn/README.md +60 -0
  11. package/.devcontainer/features/ccburn/devcontainer-feature.json +38 -0
  12. package/.devcontainer/features/ccburn/install.sh +174 -0
  13. package/.devcontainer/features/ccstatusline/README.md +22 -21
  14. package/.devcontainer/features/ccstatusline/devcontainer-feature.json +1 -1
  15. package/.devcontainer/features/ccstatusline/install.sh +48 -16
  16. package/.devcontainer/features/claude-code/config/settings.json +60 -24
  17. package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +1 -1
  18. package/.devcontainer/features/mcp-reasoner/devcontainer-feature.json +1 -1
  19. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/__pycache__/format-on-stop.cpython-314.pyc +0 -0
  20. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/format-on-stop.py +21 -6
  21. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/__pycache__/lint-file.cpython-314.pyc +0 -0
  22. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/lint-file.py +7 -10
  23. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/REVIEW-RUBRIC.md +440 -0
  24. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/architect.md +190 -0
  25. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/bash-exec.md +173 -0
  26. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/claude-guide.md +155 -0
  27. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/dependency-analyst.md +248 -0
  28. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/doc-writer.md +233 -0
  29. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/explorer.md +235 -0
  30. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/generalist.md +125 -0
  31. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/git-archaeologist.md +242 -0
  32. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/migrator.md +195 -0
  33. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/perf-profiler.md +265 -0
  34. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/refactorer.md +209 -0
  35. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/researcher.md +195 -0
  36. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/security-auditor.md +289 -0
  37. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/spec-writer.md +284 -0
  38. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/statusline-config.md +188 -0
  39. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/test-writer.md +245 -0
  40. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/hooks/hooks.json +12 -0
  41. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/guard-readonly-bash.cpython-314.pyc +0 -0
  42. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/redirect-builtin-agents.cpython-314.pyc +0 -0
  43. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/skill-suggester.cpython-314.pyc +0 -0
  44. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/syntax-validator.cpython-314.pyc +0 -0
  45. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/verify-no-regression.cpython-314.pyc +0 -0
  46. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/verify-tests-pass.cpython-314.pyc +0 -0
  47. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/guard-readonly-bash.py +611 -0
  48. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/redirect-builtin-agents.py +83 -0
  49. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/skill-suggester.py +85 -2
  50. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/syntax-validator.py +9 -4
  51. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/verify-no-regression.py +221 -0
  52. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/verify-tests-pass.py +176 -0
  53. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/claude-agent-sdk/SKILL.md +599 -0
  54. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/claude-agent-sdk/references/sdk-typescript-reference.md +954 -0
  55. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/git-forensics/SKILL.md +276 -0
  56. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/git-forensics/references/advanced-commands.md +332 -0
  57. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/git-forensics/references/investigation-playbooks.md +319 -0
  58. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/performance-profiling/SKILL.md +341 -0
  59. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/performance-profiling/references/interpreting-results.md +235 -0
  60. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/performance-profiling/references/tool-commands.md +395 -0
  61. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/refactoring-patterns/SKILL.md +344 -0
  62. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/refactoring-patterns/references/safe-transformations.md +247 -0
  63. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/refactoring-patterns/references/smell-catalog.md +332 -0
  64. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/security-checklist/SKILL.md +277 -0
  65. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/security-checklist/references/owasp-patterns.md +269 -0
  66. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/security-checklist/references/secrets-patterns.md +253 -0
  67. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/specification-writing/SKILL.md +288 -0
  68. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/specification-writing/references/criteria-patterns.md +245 -0
  69. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/specification-writing/references/ears-templates.md +239 -0
  70. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/__pycache__/guard-protected.cpython-314.pyc +0 -0
  71. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +40 -39
  72. package/.devcontainer/scripts/setup-aliases.sh +10 -5
  73. package/.devcontainer/scripts/setup-config.sh +2 -0
  74. package/.devcontainer/scripts/setup-plugins.sh +38 -46
  75. package/.devcontainer/scripts/setup-projects.sh +175 -0
  76. package/.devcontainer/scripts/setup-symlink-claude.sh +36 -0
  77. package/.devcontainer/scripts/setup-update-claude.sh +11 -8
  78. package/.devcontainer/scripts/setup.sh +4 -2
  79. package/package.json +1 -1
  80. package/.devcontainer/scripts/setup-irie-claude.sh +0 -32
@@ -21,5 +21,6 @@ SETUP_PLUGINS=true
21
21
  SETUP_UPDATE_CLAUDE=true
22
22
 
23
23
  # Plugin blacklist (comma-separated plugin names to skip during auto-install)
24
- # Example: PLUGIN_BLACKLIST="workflow-enhancer,auto-formatter"
24
+ # workflow-enhancer: Not fully implemented yet — scaffolding only
25
+ # planning-reminder: Redundant with Claude Code v2.1+ which auto-switches to plan mode
25
26
  PLUGIN_BLACKLIST="workflow-enhancer,planning-reminder"
@@ -1,5 +1,61 @@
1
1
  # CodeForge Devcontainer Changelog
2
2
 
3
+ ## [v1.7.0] - 2026-02-08
4
+
5
+ ### Added
6
+
7
+ - **ccburn feature** — new devcontainer feature for visual token burn rate tracking with shell aliases and statusline wrapper
8
+ - **Session resume widget** — ccstatusline displays copyable `cc --resume {sessionId}` command on line 5
9
+ - **Burn rate widget** — ccstatusline line 6 shows live ccburn compact output with pace indicators (session/weekly/sonnet limits)
10
+ - **17 custom agent definitions** — code-directive plugin now includes specialized agents: architect, bash-exec, claude-guide, debug-logs, dependency-analyst, doc-writer, explorer, generalist, git-archaeologist, migrator, perf-profiler, refactorer, researcher, security-auditor, spec-writer, statusline-config, test-writer
11
+ - **6 new skills** — claude-agent-sdk, git-forensics, performance-profiling, refactoring-patterns, security-checklist, specification-writing
12
+ - **Agent redirect hook** — `redirect-builtin-agents.py` (PreToolUse/Task) transparently swaps built-in agent types (Explore→explorer, Plan→architect, etc.) to enhanced custom agents
13
+ - **Readonly bash guard** — `guard-readonly-bash.py` blocks write operations for read-only agents
14
+ - **Regression test hooks** — `verify-no-regression.py` (PostToolUse for refactorer) and `verify-tests-pass.py` (Stop for test-writer)
15
+ - **REVIEW-RUBRIC.md** — quality standards document for agent/skill development
16
+ - **Keybindings configuration** — new `config/keybindings.json` with schema support
17
+ - **VS Code terminal passthrough** — `Ctrl+P` and `Ctrl+F` pass through to Claude Code via `terminal.integrated.commandsToSkipShell`
18
+ - **claude-agent-sdk skill** — new code-directive skill for Claude Agent SDK TypeScript integration
19
+ - **OVERWRITE_CONFIG documentation** — documented ephemeral settings behavior
20
+ - **Project Manager integration** — `setup-projects.sh` auto-detects projects under `/workspaces/`, watches for changes via inotifywait, maintains `projects.json`
21
+ - **Claude config symlink** — `setup-symlink-claude.sh` symlinks `~/.claude` → `$CLAUDE_CONFIG_DIR` for third-party tool compatibility
22
+ - **Project Manager VS Code extension** — `alefragnani.project-manager` added to devcontainer
23
+
24
+ ### Changed
25
+
26
+ - **ccstatusline layout** — expanded from 3→6 lines (13→16 widgets), reorganized into logical groups (core metrics, tokens, git, session, totals, burn rate)
27
+ - **ccstatusline version** — bumped from 1.0.0 to 1.1.0
28
+ - **Plugin declarations centralized** — all 9 marketplace plugins declared in `enabledPlugins` in `config/settings.json`
29
+ - **setup-plugins.sh cache sync** — re-added plugin install loop to sync cache from source on every container start; added `.env` fallback so `PLUGIN_BLACKLIST` works on standalone invocation
30
+ - **Feature-level config synced** — `features/claude-code/config/settings.json` mirrors main config (model → `claude-opus-4-6`, `MAX_THINKING_TOKENS` → `63999`, `cleanupPeriodDays` → `60`, all env vars)
31
+ - **8 new env vars** — `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`, `CLAUDE_CODE_MAX_RETRIES`, `BASH_MAX_OUTPUT_LENGTH`, `TASK_MAX_OUTPUT_LENGTH`, `CLAUDE_CODE_PLAN_MODE_INTERVIEW_PHASE`, `CLAUDE_CODE_PLAN_V2_AGENT_COUNT`, `CLAUDE_CODE_PLAN_MODE_REQUIRED`, `CLAUDE_CODE_FORCE_GLOBAL_CACHE`
32
+ - **setup-config.sh** — added `chown` for correct ownership; added keybindings.json to copy pipeline
33
+ - **setup-aliases.sh** — added idempotency guard
34
+ - **TMPDIR consistency** — `setup-update-claude.sh` and `ccstatusline/install.sh` use `${TMPDIR:-/tmp}`
35
+ - **installsAfter references** — mcp-qdrant and mcp-reasoner updated from `./features/claude-code` to `ghcr.io/anthropics/devcontainer-features/claude-code:1`
36
+ - **code-directive hooks.json** — added PreToolUse/Task hook for agent redirection
37
+ - **Auto-linter timeout** — pyright reduced from 55s to 10s
38
+ - **Auto-formatter tool paths** — resolved via `which` first
39
+ - **Protected-files-guard regex** — tightened `id_rsa` pattern
40
+ - **Syntax-validator JSONC regex** — handles URLs containing `://`
41
+ - **Skill-suggester keywords** — consolidated claude-agent-sdk phrases; added "compose" to docker
42
+ - **redirect-builtin-agents.py fix** — `updatedInput` now preserves all original tool input fields (Claude Code replaces rather than merges)
43
+ - **System prompt hardened** — added anti-fabrication rule, failure recovery strategy, and silent-violation guard to `execution_discipline` and `rule_precedence`
44
+
45
+ ### Removed
46
+
47
+ - **setup-irie-claude.sh** — deleted (personal script, no longer invoked)
48
+ - **output-style widget** — removed from ccstatusline (low value)
49
+
50
+ ### Documentation
51
+
52
+ - **CLAUDE.md** — added keybindings.json, updated plugins list, fixed model name, documented VS Code conflicts, documented OVERWRITE_CONFIG, added agents/skills sections, added new scripts
53
+ - **README.md** — fixed max output tokens, added keybindings section, added agents/skills, added project manager
54
+ - **features/README.md** — full rewrite listing all features
55
+ - **CHANGELOG.md** — squashed v1.6.0 + v1.6.1 into this entry
56
+
57
+ ---
58
+
3
59
  ## [v1.5.8] - 2026-02-06
4
60
 
5
61
  ### Changed
@@ -11,13 +11,15 @@ CodeForge devcontainer for AI-assisted development with Claude Code.
11
11
  │ ├── .env # Environment variables
12
12
  │ ├── config/ # Default configurations
13
13
  │ │ ├── settings.json # Claude Code settings
14
+ │ │ ├── keybindings.json # Claude Code keybindings
14
15
  │ │ └── main-system-prompt.md
15
16
  │ ├── features/ # Custom devcontainer features
16
17
  │ ├── plugins/ # Local plugin marketplace
17
18
  │ │ └── devs-marketplace/
18
19
  │ └── scripts/ # Setup scripts
19
20
  ├── .claude/ # Runtime Claude config (created on first run)
20
- │ ├── settings.json # Active settings
21
+ │ ├── settings.json # Active settings (OVERWRITE_CONFIG=true → rebuilt each start)
22
+ │ ├── keybindings.json # Active keybindings
21
23
  │ └── system-prompt.md # Active system prompt
22
24
  └── .gh/ # GitHub CLI config (persists across rebuilds)
23
25
  └── hosts.yml # Authenticated hosts
@@ -30,8 +32,11 @@ CodeForge devcontainer for AI-assisted development with Claude Code.
30
32
  | `devcontainer.json` | Container definition: base image, features, mounts, environment |
31
33
  | `.env` | Environment variables controlling setup behavior |
32
34
  | `config/settings.json` | Claude Code defaults: model, tokens, permissions, plugins |
35
+ | `config/keybindings.json` | Claude Code keybindings (empty by default — customizable) |
33
36
  | `config/main-system-prompt.md` | Default system prompt defining assistant behavior |
34
37
 
38
+ > **Note**: `OVERWRITE_CONFIG=true` (default) means `.claude/settings.json` is overwritten on every container start. All persistent changes must go in `.devcontainer/config/settings.json`.
39
+
35
40
  ## Commands
36
41
 
37
42
  | Command | Purpose |
@@ -63,6 +68,8 @@ To test a feature locally, reference it in `devcontainer.json`:
63
68
  }
64
69
  ```
65
70
 
71
+ > **Note**: The old `./features/claude-code` local feature is no longer used. Claude Code is installed via `ghcr.io/anthropics/devcontainer-features/claude-code:1` (Anthropic's official feature). The local `features/claude-code/` directory contains only a fallback config for the feature's install script.
72
+
66
73
  ## Setup Scripts
67
74
 
68
75
  Scripts in `./scripts/` run via `postStartCommand`:
@@ -70,17 +77,29 @@ Scripts in `./scripts/` run via `postStartCommand`:
70
77
  | Script | Purpose |
71
78
  |--------|---------|
72
79
  | `setup.sh` | Main orchestrator |
73
- | `setup-config.sh` | Copies config files to `/workspaces/.claude/` |
74
- | `setup-aliases.sh` | Creates `cc` shell function |
75
- | `setup-lsp.sh` | Installs LSP plugins from local marketplace |
76
- | `setup-plugins.sh` | Installs official Anthropic plugins |
80
+ | `setup-config.sh` | Copies config files (settings, keybindings, system prompt) to `/workspaces/.claude/` |
81
+ | `setup-aliases.sh` | Creates `cc`/`claude`/`ccraw` shell aliases |
82
+ | `setup-plugins.sh` | Registers local marketplace + installs official Anthropic plugins |
83
+ | `setup-update-claude.sh` | Background auto-update of Claude Code binary |
84
+ | `setup-projects.sh` | Auto-detects projects for VS Code Project Manager |
85
+ | `setup-symlink-claude.sh` | Symlinks ~/.claude for third-party tool compatibility |
77
86
 
78
87
  ## Installed Plugins
79
88
 
80
- Automatically installed on container start:
89
+ Plugins are declared in `config/settings.json` under `enabledPlugins` and auto-activated on container start:
90
+
91
+ ### Official (Anthropic)
92
+ - `frontend-design@claude-code-plugins` — UI/frontend design skill
81
93
 
82
- - `frontend-design@claude-plugins-official` (skill)
83
- - `codeforge-lsp@devs-marketplace` (LSP for Python + TypeScript/JavaScript)
94
+ ### Local Marketplace (devs-marketplace)
95
+ - `codeforge-lsp@devs-marketplace` LSP for Python + TypeScript/JavaScript
96
+ - `ticket-workflow@devs-marketplace` — EARS-based ticket workflow with GitHub integration
97
+ - `notify-hook@devs-marketplace` — Desktop notifications on completion
98
+ - `dangerous-command-blocker@devs-marketplace` — Blocks destructive bash commands
99
+ - `protected-files-guard@devs-marketplace` — Blocks edits to secrets/lock files
100
+ - `auto-formatter@devs-marketplace` — Auto-formats Python/Go/JS/TS on stop
101
+ - `auto-linter@devs-marketplace` — Auto-lints Python files via Pyright
102
+ - `code-directive@devs-marketplace` — 17 custom agents, 16 skills, syntax validation, skill suggestions, agent redirect hook
84
103
 
85
104
  ### Local Marketplace
86
105
 
@@ -91,12 +110,41 @@ plugins/devs-marketplace/
91
110
  ├── .claude-plugin/
92
111
  │ └── marketplace.json # Marketplace manifest
93
112
  └── plugins/
94
- └── codeforge-lsp/ # Combined LSP plugin
95
- └── .claude-plugin/
96
- └── plugin.json
113
+ ├── codeforge-lsp/ # Combined LSP plugin
114
+ ├── ticket-workflow/ # EARS ticket workflow
115
+ ├── auto-formatter/ # Batch formatter (Stop hook)
116
+ ├── auto-linter/ # Pyright linter
117
+ ├── code-directive/ # Agents, skills + hooks
118
+ └── ...
97
119
  ```
98
120
 
99
- This gives full control over LSP configuration without external dependencies.
121
+ ## Agents & Skills
122
+
123
+ The `code-directive` plugin includes 17 custom agent definitions and 16 coding reference skills.
124
+
125
+ **Agents** (`plugins/devs-marketplace/plugins/code-directive/agents/`):
126
+ architect, bash-exec, claude-guide, debug-logs, dependency-analyst, doc-writer, explorer, generalist, git-archaeologist, migrator, perf-profiler, refactorer, researcher, security-auditor, spec-writer, statusline-config, test-writer
127
+
128
+ The `redirect-builtin-agents.py` hook (PreToolUse/Task) transparently swaps built-in agent types to these custom agents (e.g., Explore→explorer, Plan→architect).
129
+
130
+ **Skills** (`plugins/devs-marketplace/plugins/code-directive/skills/`):
131
+ 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
132
+
133
+ ## VS Code Keybinding Conflicts
134
+
135
+ Claude Code runs inside VS Code's integrated terminal. VS Code intercepts some shortcuts before they reach the terminal:
136
+
137
+ | Shortcut | VS Code Action | Claude Code Action |
138
+ |----------|---------------|-------------------|
139
+ | `Ctrl+G` | Go to Line | `chat:externalEditor` |
140
+ | `Ctrl+S` | Save File | `chat:stash` |
141
+ | `Ctrl+T` | Open Symbol | `app:toggleTodos` |
142
+ | `Ctrl+O` | Open File | `app:toggleTranscript` |
143
+ | `Ctrl+B` | Toggle Sidebar | `task:background` |
144
+ | `Ctrl+P` | Quick Open | `chat:modelPicker` |
145
+ | `Ctrl+R` | Open Recent | `history:search` |
146
+
147
+ `Ctrl+P` and `Ctrl+F` are configured to pass through to the terminal via `terminal.integrated.commandsToSkipShell` in `devcontainer.json`. For other conflicts, use Meta (Alt) variants or customize via `config/keybindings.json`.
100
148
 
101
149
  ## Environment Variables
102
150
 
@@ -107,11 +155,13 @@ Key environment variables set in the container:
107
155
  | `WORKSPACE_ROOT` | `/workspaces` |
108
156
  | `CLAUDE_CONFIG_DIR` | `/workspaces/.claude` |
109
157
  | `GH_CONFIG_DIR` | `/workspaces/.gh` |
110
- | `ANTHROPIC_MODEL` | `claude-opus-4-5-20251101` |
158
+ | `ANTHROPIC_MODEL` | `claude-opus-4-6` |
159
+ | `TMPDIR` | `/workspaces/.tmp` |
111
160
 
112
161
  ## Modifying Behavior
113
162
 
114
163
  1. **Change default model**: Edit `config/settings.json`, update `"model"` field
115
164
  2. **Change system prompt**: Edit `config/main-system-prompt.md`
116
- 3. **Add features**: Add to `"features"` in `devcontainer.json`
117
- 4. **Disable auto-setup**: Set variables to `false` in `.env`
165
+ 3. **Change keybindings**: Edit `config/keybindings.json`
166
+ 4. **Add features**: Add to `"features"` in `devcontainer.json`
167
+ 5. **Disable auto-setup**: Set variables to `false` in `.env`
@@ -143,7 +143,8 @@ GitHub CLI credentials are automatically persisted across container rebuilds. Th
143
143
  | `claude` | Claude Code CLI |
144
144
  | `cc` | Wrapper with auto-configuration |
145
145
  | `ccusage` | Token usage analyzer |
146
- | `ccstatusline` | Status line for sessions |
146
+ | `ccburn` | Visual token burn rate tracker with pace indicators |
147
+ | `ccstatusline` | 6-line powerline status display (v1.1.0) |
147
148
  | `claude-monitor` | Real-time usage tracking |
148
149
 
149
150
  ## Using Claude Code
@@ -188,7 +189,24 @@ Default settings are in `.devcontainer/config/settings.json`. These are copied t
188
189
  Key defaults:
189
190
  - **Model**: Claude Opus 4-6
190
191
  - **Default mode**: Plan (prompts before executing)
191
- - **Max output tokens**: 128,000
192
+ - **Max output tokens**: 64,000
193
+
194
+ ### Keybindings
195
+
196
+ Default keybindings are in `.devcontainer/config/keybindings.json` (empty by default — Claude Code defaults apply). Customize by adding entries to the `bindings` array.
197
+
198
+ **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:
199
+
200
+ | Shortcut | VS Code Action | Claude Code Action |
201
+ |----------|---------------|-------------------|
202
+ | `Ctrl+G` | Go to Line | `chat:externalEditor` |
203
+ | `Ctrl+S` | Save File | `chat:stash` |
204
+ | `Ctrl+T` | Open Symbol | `app:toggleTodos` |
205
+ | `Ctrl+O` | Open File | `app:toggleTranscript` |
206
+ | `Ctrl+B` | Toggle Sidebar | `task:background` |
207
+ | `Ctrl+R` | Open Recent | `history:search` |
208
+
209
+ For conflicting shortcuts, use Meta (Alt) variants or add custom keybindings.
192
210
 
193
211
  ### System Prompt
194
212
 
@@ -200,14 +218,57 @@ CodeForge includes several custom devcontainer features:
200
218
 
201
219
  | Feature | Description |
202
220
  |---------|-------------|
221
+ | `tmux` | Terminal multiplexer with Catppuccin theme for Agent Teams |
222
+ | `agent-browser` | Headless browser automation for AI agents |
203
223
  | `claude-monitor` | Real-time token usage monitoring with ML predictions |
204
224
  | `ccusage` | Usage analytics CLI |
205
- | `ccstatusline` | Compact powerline status display |
225
+ | `ccburn` | Visual token burn rate tracker with pace indicators |
226
+ | `ccstatusline` | 6-line powerline status display (v1.1.0) |
206
227
  | `ast-grep` | Structural code search using AST patterns |
207
228
  | `tree-sitter` | Parser with JS/TS/Python grammars |
208
229
  | `lsp-servers` | Pyright and TypeScript language servers |
209
- | `tmux` | Terminal multiplexer with Catppuccin theme for Agent Teams |
210
230
  | `biome` | Fast JS/TS/JSON/CSS formatter (global install) |
231
+ | `notify-hook` | Desktop notifications on Claude completion |
232
+ | `mcp-qdrant` | Qdrant vector database MCP server (optional) |
233
+ | `mcp-reasoner` | Enhanced AI reasoning MCP server (optional) |
234
+
235
+ ## Agents & Skills
236
+
237
+ The `code-directive` plugin includes specialized agent definitions and coding reference skills.
238
+
239
+ ### Custom Agents (17)
240
+
241
+ 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.
242
+
243
+ | Agent | Purpose |
244
+ |-------|---------|
245
+ | `architect` | System design and implementation planning |
246
+ | `bash-exec` | Command execution specialist |
247
+ | `claude-guide` | Claude Code feature guidance |
248
+ | `debug-logs` | Log analysis and error diagnosis |
249
+ | `dependency-analyst` | Dependency analysis and upgrades |
250
+ | `doc-writer` | Documentation authoring |
251
+ | `explorer` | Fast codebase search and navigation |
252
+ | `generalist` | General-purpose multi-step tasks |
253
+ | `git-archaeologist` | Git history forensics |
254
+ | `migrator` | Code migration and upgrades |
255
+ | `perf-profiler` | Performance profiling |
256
+ | `refactorer` | Code refactoring with regression checks |
257
+ | `researcher` | Research and information gathering |
258
+ | `security-auditor` | Security vulnerability analysis |
259
+ | `spec-writer` | Specification and requirements authoring |
260
+ | `statusline-config` | ccstatusline configuration |
261
+ | `test-writer` | Test authoring with pass verification |
262
+
263
+ ### Skills (16)
264
+
265
+ Skills in `plugins/devs-marketplace/plugins/code-directive/skills/` provide domain-specific coding references:
266
+
267
+ `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`
268
+
269
+ ## Project Manager
270
+
271
+ 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
272
 
212
273
  ## Essential Gotchas
213
274
 
@@ -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>
@@ -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
  }
@@ -24,6 +24,7 @@
24
24
  "./features/agent-browser",
25
25
  "./features/claude-monitor",
26
26
  "./features/ccusage",
27
+ "./features/ccburn",
27
28
  "./features/ccstatusline",
28
29
  "./features/ast-grep",
29
30
  "./features/tree-sitter",
@@ -56,6 +57,11 @@
56
57
  "installer": "uv",
57
58
  "username": "automatic"
58
59
  },
60
+ "./features/ccburn": {
61
+ "version": "latest",
62
+ "shells": "both",
63
+ "username": "automatic"
64
+ },
59
65
  "./features/ccstatusline": {
60
66
  "username": "automatic"
61
67
  },
@@ -89,14 +95,24 @@
89
95
  },
90
96
  "terminal.integrated.defaultProfile.linux": "bash",
91
97
  "terminal.integrated.enableBell": true,
98
+ "terminal.integrated.commandsToSkipShell": [
99
+ "-workbench.action.quickOpen",
100
+ "-workbench.action.terminal.focusFind"
101
+ ],
92
102
  "remote.extensionKind": {
93
103
  "wenbopan.vscode-terminal-osc-notifier": ["ui"]
94
- }
104
+ },
105
+ "projectManager.git.baseFolders": ["/workspaces"],
106
+ "projectManager.git.maxDepthRecursion": 1,
107
+ "projectManager.showProjectNameInStatusBar": true,
108
+ "projectManager.openInNewWindowWhenClickingInStatusBar": false,
109
+ "projectManager.projectsLocation": "/workspaces/.config/project-manager"
95
110
  },
96
111
  "extensions": [
97
112
  "wenbopan.vscode-terminal-osc-notifier",
98
113
  "GitHub.vscode-github-actions",
99
- "fabiospampinato.vscode-todo-plus"
114
+ "fabiospampinato.vscode-todo-plus",
115
+ "alefragnani.project-manager"
100
116
  ]
101
117
  }
102
118
  },
@@ -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
@@ -0,0 +1,60 @@
1
+ # ccburn - Visual Token Burn Rate Tracker
2
+
3
+ Real-time burn-up charts and pace tracking for Claude Code usage limits.
4
+
5
+ ## Quick Start
6
+
7
+ ```bash
8
+ # Full TUI dashboard (auto-detects active limit)
9
+ ccburn
10
+
11
+ # 5-hour rolling session limit
12
+ ccburn session
13
+
14
+ # 7-day weekly limit
15
+ ccburn weekly
16
+
17
+ # Single-line output for status bars
18
+ ccburn --compact --once
19
+
20
+ # JSON output for scripting
21
+ ccburn --json --once
22
+ ```
23
+
24
+ ## Features
25
+
26
+ - **Burn-up charts** — Live-updating terminal graphics showing usage over time
27
+ - **Pace indicators** — 🧊 Cool (behind pace) | 🔥 On pace | 🚨 Too hot (ahead)
28
+ - **Burn rate** — %/hour via linear regression, with trend classification
29
+ - **Predictions** — Time-to-100% estimates and projection lines
30
+ - **Multiple limits** — Session (5h), Weekly (7d), Weekly Sonnet, Monthly
31
+ - **SQLite history** — 7-day retention at `~/.ccburn/history.db`
32
+ - **Compact mode** — Single-line output for embedding in statuslines
33
+
34
+ ## Display Modes
35
+
36
+ | Mode | Flag | Description |
37
+ |------|------|-------------|
38
+ | Full TUI | (default) | Interactive dashboard with charts and gauges |
39
+ | Compact | `--compact` | Single line: `Session: 🧊 45% (2h14m) \| Weekly: 🔥 12%` |
40
+ | JSON | `--json` | Structured output with all metrics |
41
+ | Once | `--once` | Single snapshot, no live updates |
42
+
43
+ ## Statusline Integration
44
+
45
+ This feature installs a wrapper at `/usr/local/bin/ccburn-statusline` for use with
46
+ ccstatusline's `custom-command` widget. The wrapper handles:
47
+
48
+ - Missing OAuth credentials (shows "awaiting auth")
49
+ - First-run npx caching (shows "unavailable" if download fails)
50
+ - API errors (graceful fallback messages)
51
+
52
+ ## Requirements
53
+
54
+ - Node.js (via devcontainer node feature)
55
+ - Claude Code OAuth credentials at `~/.claude/.credentials.json`
56
+
57
+ ## Documentation
58
+
59
+ - [GitHub Repository](https://github.com/JuanjoFuchs/ccburn)
60
+ - [ccburn Specification](https://github.com/JuanjoFuchs/ccburn/blob/main/docs/ccburn-spec.md)
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "ccburn",
3
+ "version": "1.0.0",
4
+ "name": "ccburn - Visual Token Burn Rate Tracker",
5
+ "description": "Installs ccburn CLI for real-time burn-up charts and pace tracking of Claude Code usage limits",
6
+ "maintainer": "AnExiledDev",
7
+ "documentationURL": "https://github.com/JuanjoFuchs/ccburn",
8
+ "options": {
9
+ "version": {
10
+ "type": "string",
11
+ "description": "ccburn version to use (e.g., 'latest', '0.4.2')",
12
+ "default": "latest"
13
+ },
14
+ "shells": {
15
+ "type": "string",
16
+ "description": "Which shells to configure (bash, zsh, or both)",
17
+ "default": "both",
18
+ "enum": [
19
+ "bash",
20
+ "zsh",
21
+ "both"
22
+ ],
23
+ "proposals": [
24
+ "bash",
25
+ "zsh",
26
+ "both"
27
+ ]
28
+ },
29
+ "username": {
30
+ "type": "string",
31
+ "description": "Container user to install for",
32
+ "default": "automatic"
33
+ }
34
+ },
35
+ "installsAfter": [
36
+ "ghcr.io/devcontainers/features/node:1"
37
+ ]
38
+ }