codeforge-dev 1.4.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 (131) hide show
  1. package/.devcontainer/.env +22 -0
  2. package/.devcontainer/CHANGELOG.md +197 -0
  3. package/.devcontainer/CLAUDE.md +117 -0
  4. package/.devcontainer/README.md +222 -0
  5. package/.devcontainer/config/main-system-prompt.md +502 -0
  6. package/.devcontainer/config/settings.json +47 -0
  7. package/.devcontainer/devcontainer.json +94 -0
  8. package/.devcontainer/features/README.md +113 -0
  9. package/.devcontainer/features/agent-browser/README.md +65 -0
  10. package/.devcontainer/features/agent-browser/devcontainer-feature.json +23 -0
  11. package/.devcontainer/features/agent-browser/install.sh +79 -0
  12. package/.devcontainer/features/ast-grep/README.md +24 -0
  13. package/.devcontainer/features/ast-grep/devcontainer-feature.json +24 -0
  14. package/.devcontainer/features/ast-grep/install.sh +51 -0
  15. package/.devcontainer/features/ccstatusline/README.md +296 -0
  16. package/.devcontainer/features/ccstatusline/devcontainer-feature.json +19 -0
  17. package/.devcontainer/features/ccstatusline/install.sh +290 -0
  18. package/.devcontainer/features/ccusage/README.md +205 -0
  19. package/.devcontainer/features/ccusage/devcontainer-feature.json +38 -0
  20. package/.devcontainer/features/ccusage/install.sh +132 -0
  21. package/.devcontainer/features/claude-code/README.md +498 -0
  22. package/.devcontainer/features/claude-code/config/settings.json +36 -0
  23. package/.devcontainer/features/claude-code/config/system-prompt.md +118 -0
  24. package/.devcontainer/features/claude-code/config/world-building-sp.md +1432 -0
  25. package/.devcontainer/features/claude-code/devcontainer-feature.json +42 -0
  26. package/.devcontainer/features/claude-code/install.sh +466 -0
  27. package/.devcontainer/features/claude-monitor/README.md +74 -0
  28. package/.devcontainer/features/claude-monitor/devcontainer-feature.json +38 -0
  29. package/.devcontainer/features/claude-monitor/install.sh +99 -0
  30. package/.devcontainer/features/lsp-servers/README.md +85 -0
  31. package/.devcontainer/features/lsp-servers/devcontainer-feature.json +40 -0
  32. package/.devcontainer/features/lsp-servers/install.sh +116 -0
  33. package/.devcontainer/features/mcp-qdrant/CHANGES.md +399 -0
  34. package/.devcontainer/features/mcp-qdrant/README.md +474 -0
  35. package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +57 -0
  36. package/.devcontainer/features/mcp-qdrant/install.sh +295 -0
  37. package/.devcontainer/features/mcp-qdrant/poststart-hook.sh +129 -0
  38. package/.devcontainer/features/mcp-reasoner/README.md +177 -0
  39. package/.devcontainer/features/mcp-reasoner/devcontainer-feature.json +20 -0
  40. package/.devcontainer/features/mcp-reasoner/install.sh +177 -0
  41. package/.devcontainer/features/mcp-reasoner/poststart-hook.sh +67 -0
  42. package/.devcontainer/features/notify-hook/README.md +86 -0
  43. package/.devcontainer/features/notify-hook/devcontainer-feature.json +23 -0
  44. package/.devcontainer/features/notify-hook/install.sh +38 -0
  45. package/.devcontainer/features/splitrail/README.md +140 -0
  46. package/.devcontainer/features/splitrail/devcontainer-feature.json +34 -0
  47. package/.devcontainer/features/splitrail/install.sh +129 -0
  48. package/.devcontainer/features/tree-sitter/README.md +138 -0
  49. package/.devcontainer/features/tree-sitter/devcontainer-feature.json +52 -0
  50. package/.devcontainer/features/tree-sitter/install.sh +173 -0
  51. package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +106 -0
  52. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/.claude-plugin/plugin.json +7 -0
  53. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/hooks/hooks.json +17 -0
  54. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/format-file.py +101 -0
  55. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/.claude-plugin/plugin.json +7 -0
  56. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/hooks/hooks.json +17 -0
  57. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/lint-file.py +137 -0
  58. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/.claude-plugin/plugin.json +8 -0
  59. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/claude-code-headless/SKILL.md +387 -0
  60. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/claude-code-headless/references/cli-flags-and-output.md +312 -0
  61. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/claude-code-headless/references/sdk-and-mcp.md +569 -0
  62. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker/SKILL.md +309 -0
  63. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker/references/compose-services.md +438 -0
  64. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker/references/dockerfile-patterns.md +340 -0
  65. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker-py/SKILL.md +412 -0
  66. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker-py/references/container-lifecycle.md +388 -0
  67. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker-py/references/resources-and-security.md +444 -0
  68. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/SKILL.md +344 -0
  69. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/references/middleware-and-lifespan.md +254 -0
  70. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/references/pydantic-models.md +245 -0
  71. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/references/routing-and-dependencies.md +255 -0
  72. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/references/sse-and-streaming.md +318 -0
  73. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/pydantic-ai/SKILL.md +345 -0
  74. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/pydantic-ai/references/agents-and-tools.md +271 -0
  75. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/pydantic-ai/references/models-and-streaming.md +422 -0
  76. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/skill-building/SKILL.md +220 -0
  77. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/skill-building/references/cross-vendor-principles.md +139 -0
  78. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/skill-building/references/patterns-and-antipatterns.md +376 -0
  79. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/skill-building/references/skill-authoring-patterns.md +356 -0
  80. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/SKILL.md +329 -0
  81. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/references/advanced-queries.md +314 -0
  82. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/references/javascript-patterns.md +323 -0
  83. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/references/python-patterns.md +354 -0
  84. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/references/schema-and-pragmas.md +326 -0
  85. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/SKILL.md +356 -0
  86. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/ai-sdk-svelte.md +128 -0
  87. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/component-patterns.md +332 -0
  88. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/layercake.md +203 -0
  89. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/migration-guide.md +350 -0
  90. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/runes-and-reactivity.md +328 -0
  91. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/spa-and-routing.md +262 -0
  92. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/svelte-dnd-action.md +181 -0
  93. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/testing/SKILL.md +414 -0
  94. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/testing/references/fastapi-testing.md +411 -0
  95. package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/testing/references/svelte-testing.md +538 -0
  96. package/.devcontainer/plugins/devs-marketplace/plugins/codeforge-lsp/.claude-plugin/plugin.json +7 -0
  97. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/.claude-plugin/plugin.json +7 -0
  98. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/hooks/hooks.json +17 -0
  99. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/block-dangerous.py +110 -0
  100. package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/.claude-plugin/plugin.json +7 -0
  101. package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/hooks/hooks.json +17 -0
  102. package/.devcontainer/plugins/devs-marketplace/plugins/planning-reminder/.claude-plugin/plugin.json +7 -0
  103. package/.devcontainer/plugins/devs-marketplace/plugins/planning-reminder/hooks/hooks.json +17 -0
  104. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/.claude-plugin/plugin.json +7 -0
  105. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/hooks/hooks.json +17 -0
  106. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +108 -0
  107. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/commands/ticket/357/200/272create-pr.md +337 -0
  108. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/commands/ticket/357/200/272new.md +166 -0
  109. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/commands/ticket/357/200/272review-commit.md +290 -0
  110. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/commands/ticket/357/200/272work.md +257 -0
  111. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/plugin.json +8 -0
  112. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/system-prompt.md +184 -0
  113. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/.claude-plugin/plugin.json +6 -0
  114. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/config/planning-instructions.md +14 -0
  115. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/functional-conjuring-map.md +989 -0
  116. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/hooks/hooks.json +33 -0
  117. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/__pycache__/post-enhance-task.cpython-314.pyc +0 -0
  118. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/enhance-planning.py +71 -0
  119. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/enhancers/enhance-plan.sh +68 -0
  120. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/enhancers/enhance-task.sh +120 -0
  121. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/post-enhance-plan.py +133 -0
  122. package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/post-enhance-task.py +253 -0
  123. package/.devcontainer/scripts/setup-aliases.sh +80 -0
  124. package/.devcontainer/scripts/setup-config.sh +28 -0
  125. package/.devcontainer/scripts/setup-irie-claude.sh +32 -0
  126. package/.devcontainer/scripts/setup-plugins.sh +80 -0
  127. package/.devcontainer/scripts/setup.sh +58 -0
  128. package/LICENSE.txt +674 -0
  129. package/README.md +267 -0
  130. package/package.json +44 -0
  131. package/setup.js +83 -0
@@ -0,0 +1,22 @@
1
+ # ClaudePod Environment Configuration
2
+
3
+ # Paths
4
+ CLAUDE_CONFIG_DIR=/workspaces/.claude
5
+ # CONFIG_SOURCE_DIR is derived from script location; uncomment to override:
6
+ # CONFIG_SOURCE_DIR=/custom/path/to/config
7
+
8
+ # Setup: copy config files to CLAUDE_CONFIG_DIR
9
+ SETUP_CONFIG=true
10
+
11
+ # Setup: overwrite existing config files (false = skip if exists)
12
+ OVERWRITE_CONFIG=true
13
+
14
+ # Setup: add cc alias to shell rc files
15
+ SETUP_ALIASES=true
16
+
17
+ # Setup: install official Anthropic plugins
18
+ SETUP_PLUGINS=true
19
+
20
+ # Plugin blacklist (comma-separated plugin names to skip during auto-install)
21
+ # Example: PLUGIN_BLACKLIST="workflow-enhancer,auto-formatter"
22
+ PLUGIN_BLACKLIST="workflow-enhancer"
@@ -0,0 +1,197 @@
1
+ # CodeForge Devcontainer Changelog
2
+
3
+ ## [v1.3.1] - 2025-01-24
4
+
5
+ ### Fixed
6
+
7
+ - **Plugin installation**: Fixed invalid plugin.json schema causing installation failures
8
+ - Removed `$schema`, `category`, `version`, `lspServers` keys from individual plugin.json files
9
+ - These fields now correctly reside only in `marketplace.json`
10
+ - **setup-plugins.sh**: Fixed path resolution for marketplace discovery
11
+ - Changed from `${containerWorkspaceFolder:-.}` to `SCRIPT_DIR` relative path
12
+ - Script now works correctly regardless of working directory
13
+
14
+ ### Changed
15
+
16
+ - **Consolidated LSP setup**: Merged `setup-lsp.sh` into `setup-plugins.sh`
17
+ - Single script now handles both official and local marketplace plugins
18
+ - Removed `SETUP_LSP` environment variable (no longer needed)
19
+ - **settings.json**: Updated Claude Code configuration
20
+ - Increased `MAX_THINKING_TOKENS` from 14999 to 63999
21
+ - Added `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`: 80 (auto-compact at 80% context)
22
+ - Added `CLAUDE_CODE_SHELL`: zsh
23
+ - Added `FORCE_AUTOUPDATE_PLUGINS`: true
24
+ - Added `autoUpdatesChannel`: "latest"
25
+
26
+ ### Removed
27
+
28
+ - **setup-lsp.sh**: Deleted (functionality consolidated into setup-plugins.sh)
29
+
30
+ ---
31
+
32
+ ## [v1.3.0] - 2025-01-24
33
+
34
+ ### Added
35
+
36
+ #### Code Quality Hooks
37
+ - **dangerous-command-blocker**: PreToolUse hook blocks dangerous bash commands
38
+ - Blocks `rm -rf /`, `rm -rf ~`, `sudo rm`, `chmod 777`
39
+ - Blocks `git push --force` to main/master
40
+ - Blocks writes to system directories (`/usr`, `/etc`, `/bin`)
41
+ - Blocks disk formatting (`mkfs.*`, `dd of=/dev/`)
42
+ - **protected-files-guard**: PreToolUse hook blocks modifications to sensitive files
43
+ - Blocks `.env`, `.env.*` environment files
44
+ - Blocks `.git/` directory
45
+ - Blocks lock files (`package-lock.json`, `yarn.lock`, `poetry.lock`, etc.)
46
+ - Blocks certificates/keys (`.pem`, `.key`, `.crt`)
47
+ - Blocks credential files and auth directories (`.ssh/`, `.aws/`)
48
+ - **auto-formatter**: PostToolUse hook auto-formats edited files
49
+ - Python files via Black (`/usr/local/py-utils/bin/black`)
50
+ - Go files via gofmt (`/usr/local/go/bin/gofmt`)
51
+ - **auto-linter**: PostToolUse hook auto-lints edited files
52
+ - Python files via Pyright with JSON output parsing
53
+ - **planning-reminder**: PreToolUse hook encourages plan-before-implement workflow
54
+
55
+ #### Features
56
+ - **notify-hook feature**: Desktop notifications when Claude finishes responding
57
+ - OSC escape sequences for terminal notification support
58
+ - Optional audio bell
59
+ - VS Code extension recommendation for terminal notifications
60
+ - **agent-browser feature**: Headless browser automation CLI for AI agents
61
+ - Accessibility tree snapshots for AI navigation
62
+ - Screenshots and PDF capture
63
+ - Element interaction and cookie management
64
+ - **Go LSP (gopls)**: Full Go language server support
65
+ - Added `gopls` to codeforge-lsp plugin configuration
66
+ - Added `goplsVersion` option to lsp-servers feature
67
+ - Supports `.go`, `.mod`, `.sum` file extensions
68
+ - **Go language**: Added `ghcr.io/devcontainers/features/go:1` feature
69
+
70
+ #### Plugins
71
+ - **ticket-workflow plugin**: EARS-based ticket workflow with GitHub integration
72
+ - `/ticket:new` - Transform requirements into EARS-formatted GitHub issues
73
+ - `/ticket:work` - Create technical implementation plans from tickets
74
+ - `/ticket:review-commit` - Thorough code review with requirements verification
75
+ - `/ticket:create-pr` - Create PRs with aggressive security/architecture review
76
+ - **notify-hook plugin**: Claude Code hook integration for completion notifications
77
+ - **codeforge-lsp plugin.json**: Proper plugin structure for LSP servers
78
+
79
+ #### Commands & Aliases
80
+ - **ccraw alias**: Runs vanilla Claude Code without any config
81
+ - Bypasses the function override via `command claude`
82
+ - Useful for debugging or running without custom system prompt
83
+
84
+ #### Documentation
85
+ - **System prompt**: Added `<tools_reference>` section with all available tools
86
+ - **System prompt**: Added `<browser_automation>` section with usage guidance
87
+
88
+ ### Changed
89
+
90
+ - **claude command**: Now behaves the same as `cc` (auto-creates local config)
91
+ - Uses `command claude` internally to call the actual binary
92
+ - Both `claude` and `cc` auto-setup `.claude/system-prompt.md` and `.claude/settings.json`
93
+ - **Container name**: Now includes project folder name for multi-project clarity
94
+ - Format: `CodeForge - ${localWorkspaceFolderBasename}`
95
+ - **setup-lsp.sh**: Replaced hard-coded plugin list with dynamic discovery
96
+ - Now reads all plugins from `marketplace.json` using `jq`
97
+ - Automatically installs new plugins when added to marketplace
98
+ - **System prompt**: Updated to use correct Claude Code tool names
99
+ - Fixed plan mode references: `PlanMode` → `EnterPlanMode` / `ExitPlanMode`
100
+ - Added explicit tool names throughout directives
101
+ - **Plugin installation**: Reduced from 7 plugins to 1 official plugin (frontend-design skill)
102
+
103
+ ### Removed
104
+
105
+ - `code-review@claude-plugins-official` (command plugin)
106
+ - `commit-commands@claude-plugins-official` (command plugin)
107
+ - `pr-review-toolkit@claude-plugins-official` (command + agent plugin)
108
+ - `code-simplifier` npx installation block
109
+
110
+ ### Files Created
111
+
112
+ ```
113
+ .devcontainer/
114
+ ├── features/
115
+ │ ├── agent-browser/
116
+ │ │ ├── devcontainer-feature.json
117
+ │ │ ├── install.sh
118
+ │ │ └── README.md
119
+ │ └── notify-hook/
120
+ │ ├── devcontainer-feature.json
121
+ │ ├── install.sh
122
+ │ └── README.md
123
+ └── plugins/devs-marketplace/plugins/
124
+ ├── auto-formatter/
125
+ │ ├── .claude-plugin/plugin.json
126
+ │ ├── hooks/hooks.json
127
+ │ └── scripts/format-file.py
128
+ ├── auto-linter/
129
+ │ ├── .claude-plugin/plugin.json
130
+ │ ├── hooks/hooks.json
131
+ │ └── scripts/lint-file.py
132
+ ├── codeforge-lsp/
133
+ │ └── .claude-plugin/plugin.json
134
+ ├── dangerous-command-blocker/
135
+ │ ├── .claude-plugin/plugin.json
136
+ │ ├── hooks/hooks.json
137
+ │ └── scripts/block-dangerous.py
138
+ ├── notify-hook/
139
+ │ ├── .claude-plugin/plugin.json
140
+ │ └── hooks/hooks.json
141
+ ├── planning-reminder/
142
+ │ ├── .claude-plugin/plugin.json
143
+ │ └── hooks/hooks.json
144
+ ├── protected-files-guard/
145
+ │ ├── .claude-plugin/plugin.json
146
+ │ ├── hooks/hooks.json
147
+ │ └── scripts/guard-protected.py
148
+ └── ticket-workflow/
149
+ └── .claude-plugin/
150
+ ├── plugin.json
151
+ ├── system-prompt.md
152
+ └── commands/
153
+ ├── ticket:new.md
154
+ ├── ticket:work.md
155
+ ├── ticket:review-commit.md
156
+ └── ticket:create-pr.md
157
+ ```
158
+
159
+ ### Files Modified
160
+
161
+ - `.devcontainer/devcontainer.json` - Added features, VS Code settings, dynamic name
162
+ - `.devcontainer/config/main-system-prompt.md` - Tools reference, browser automation
163
+ - `.devcontainer/scripts/setup-aliases.sh` - Claude function override, ccraw alias
164
+ - `.devcontainer/scripts/setup-lsp.sh` - Dynamic plugin discovery
165
+ - `.devcontainer/scripts/setup-plugins.sh` - Trimmed to frontend-design only
166
+ - `.devcontainer/features/lsp-servers/install.sh` - Added gopls installation
167
+ - `.devcontainer/features/lsp-servers/devcontainer-feature.json` - Added goplsVersion
168
+ - `.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json` - All new plugins
169
+ - `.devcontainer/CLAUDE.md` - Updated plugin docs, local marketplace section
170
+ - `.devcontainer/README.md` - Added agent-browser, Go to tools tables
171
+
172
+ ---
173
+
174
+ ## [v1.2.3] - 2025-01-19
175
+
176
+ ### Changed
177
+ - Added `--force` flag support
178
+ - Removed devpod references
179
+
180
+ ---
181
+
182
+ ## [v1.2.0] - 2025-01-19
183
+
184
+ ### Added
185
+ - **GitHub CLI**: Added `ghcr.io/devcontainers/features/github-cli:1` feature
186
+ - **Official Anthropic Plugins**: New `setup-plugins.sh` script
187
+ - **SETUP_PLUGINS** environment variable
188
+ - **GitHub CLI Credential Persistence**: `GH_CONFIG_DIR=/workspaces/.gh`
189
+ - **README.md**: Comprehensive documentation
190
+ - **CLAUDE.md**: Development guide for Claude Code
191
+
192
+ ### Changed
193
+ - **Plan Mode Default**: Changed `defaultMode` from `"dontAsk"` to `"plan"`
194
+ - **cc Command**: Replaced simple alias with smart function
195
+
196
+ ### Removed
197
+ - **Specwright**: Completely removed (setup script, aliases, plugin files, ORCHESTRATOR.md)
@@ -0,0 +1,117 @@
1
+ # DevContainer Development Guide
2
+
3
+ CodeForge devcontainer for AI-assisted development with Claude Code.
4
+
5
+ ## Directory Structure
6
+
7
+ ```
8
+ /workspaces/
9
+ ├── .devcontainer/ # Container configuration (this directory)
10
+ │ ├── devcontainer.json # Main container definition
11
+ │ ├── .env # Environment variables
12
+ │ ├── config/ # Default configurations
13
+ │ │ ├── settings.json # Claude Code settings
14
+ │ │ └── main-system-prompt.md
15
+ │ ├── features/ # Custom devcontainer features
16
+ │ ├── plugins/ # Local plugin marketplace
17
+ │ │ └── devs-marketplace/
18
+ │ └── scripts/ # Setup scripts
19
+ ├── .claude/ # Runtime Claude config (created on first run)
20
+ │ ├── settings.json # Active settings
21
+ │ └── system-prompt.md # Active system prompt
22
+ └── .gh/ # GitHub CLI config (persists across rebuilds)
23
+ └── hosts.yml # Authenticated hosts
24
+ ```
25
+
26
+ ## Key Configuration Files
27
+
28
+ | File | Purpose |
29
+ |------|---------|
30
+ | `devcontainer.json` | Container definition: base image, features, mounts, environment |
31
+ | `.env` | Environment variables controlling setup behavior |
32
+ | `config/settings.json` | Claude Code defaults: model, tokens, permissions, plugins |
33
+ | `config/main-system-prompt.md` | Default system prompt defining assistant behavior |
34
+
35
+ ## Commands
36
+
37
+ | Command | Purpose |
38
+ |---------|---------|
39
+ | `claude` | Run Claude Code with auto-configuration (creates local `.claude/` if needed) |
40
+ | `cc` | Shorthand for `claude` with config |
41
+ | `ccraw` | Vanilla Claude Code without any config (bypasses function override) |
42
+ | `ccusage` | Analyze token usage history |
43
+ | `gh` | GitHub CLI for repo operations |
44
+ | `uv` | Fast Python package manager |
45
+ | `ast-grep` | Structural code search |
46
+
47
+ ## Feature Development
48
+
49
+ Custom features live in `./features/`. Each feature follows the [devcontainer feature spec](https://containers.dev/implementors/features/):
50
+
51
+ ```
52
+ features/
53
+ └── my-feature/
54
+ ├── devcontainer-feature.json # Metadata and options
55
+ ├── install.sh # Installation script
56
+ └── README.md # Documentation
57
+ ```
58
+
59
+ To test a feature locally, reference it in `devcontainer.json`:
60
+ ```json
61
+ "features": {
62
+ "./features/my-feature": {}
63
+ }
64
+ ```
65
+
66
+ ## Setup Scripts
67
+
68
+ Scripts in `./scripts/` run via `postStartCommand`:
69
+
70
+ | Script | Purpose |
71
+ |--------|---------|
72
+ | `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 |
77
+
78
+ ## Installed Plugins
79
+
80
+ Automatically installed on container start:
81
+
82
+ - `frontend-design@claude-plugins-official` (skill)
83
+ - `codeforge-lsp@devs-marketplace` (LSP for Python + TypeScript/JavaScript)
84
+
85
+ ### Local Marketplace
86
+
87
+ The `devs-marketplace` in `plugins/` provides locally-managed plugins:
88
+
89
+ ```
90
+ plugins/devs-marketplace/
91
+ ├── .claude-plugin/
92
+ │ └── marketplace.json # Marketplace manifest
93
+ └── plugins/
94
+ └── codeforge-lsp/ # Combined LSP plugin
95
+ └── .claude-plugin/
96
+ └── plugin.json
97
+ ```
98
+
99
+ This gives full control over LSP configuration without external dependencies.
100
+
101
+ ## Environment Variables
102
+
103
+ Key environment variables set in the container:
104
+
105
+ | Variable | Value |
106
+ |----------|-------|
107
+ | `WORKSPACE_ROOT` | `/workspaces` |
108
+ | `CLAUDE_CONFIG_DIR` | `/workspaces/.claude` |
109
+ | `GH_CONFIG_DIR` | `/workspaces/.gh` |
110
+ | `ANTHROPIC_MODEL` | `claude-opus-4-5-20251101` |
111
+
112
+ ## Modifying Behavior
113
+
114
+ 1. **Change default model**: Edit `config/settings.json`, update `"model"` field
115
+ 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`
@@ -0,0 +1,222 @@
1
+ # CodeForge DevContainer
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.svg)](https://www.npmjs.com/package/codeforge)
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
13
+
14
+ ## Quick Start
15
+
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)
21
+ ```bash
22
+ claude
23
+ ```
24
+ Follow the prompts to authenticate via browser or API key.
25
+
26
+ 3. **Start Claude Code**
27
+ ```bash
28
+ cc
29
+ ```
30
+
31
+ ## Authentication
32
+
33
+ Claude Code supports multiple authentication methods. On first run, you'll be prompted to choose:
34
+
35
+ ### Browser Login (Recommended)
36
+
37
+ ```bash
38
+ claude
39
+ ```
40
+
41
+ Select "Login with browser" and complete authentication in your browser. This uses your Claude.ai account.
42
+
43
+ ### API Key
44
+
45
+ For programmatic access or environments without browsers:
46
+
47
+ ```bash
48
+ export ANTHROPIC_API_KEY="sk-ant-..."
49
+ claude
50
+ ```
51
+
52
+ Get an API key from [console.anthropic.com](https://console.anthropic.com/).
53
+
54
+ ### Credential Persistence
55
+
56
+ Authentication credentials are stored in `/workspaces/.claude/` and persist across container rebuilds.
57
+
58
+ For more options, see the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code).
59
+
60
+ ## GitHub CLI Authentication
61
+
62
+ GitHub CLI (`gh`) is pre-installed for repository operations like pushing code, creating pull requests, and accessing private repositories.
63
+
64
+ ### Interactive Login (Recommended)
65
+
66
+ ```bash
67
+ gh auth login
68
+ ```
69
+
70
+ Follow the prompts:
71
+ 1. Select **GitHub.com** (or your enterprise server)
72
+ 2. Choose your preferred protocol: **HTTPS** (recommended) or **SSH**
73
+ 3. Authenticate via **browser** (easiest) or paste a personal access token
74
+
75
+ ### Token-Based Login
76
+
77
+ For automated setups or environments without browser access:
78
+
79
+ ```bash
80
+ # From a file
81
+ gh auth login --with-token < ~/github-token.txt
82
+
83
+ # From environment variable
84
+ echo "$GITHUB_TOKEN" | gh auth login --with-token
85
+ ```
86
+
87
+ Generate a token at [github.com/settings/tokens](https://github.com/settings/tokens) with appropriate scopes (typically `repo`, `read:org`).
88
+
89
+ ### Verifying Authentication
90
+
91
+ ```bash
92
+ gh auth status
93
+ ```
94
+
95
+ Expected output shows your authenticated account and token scopes.
96
+
97
+ ### Credential Persistence
98
+
99
+ 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
+
101
+ **You only need to authenticate once.** After running `gh auth login`, your credentials will survive container rebuilds and be available in future sessions.
102
+
103
+ ## Available Tools
104
+
105
+ ### Languages & Runtimes
106
+ | Tool | Description |
107
+ |------|-------------|
108
+ | Python 3.14 | Base language runtime |
109
+ | Node.js LTS | JavaScript runtime |
110
+ | TypeScript | Via Node.js |
111
+ | Go | Latest stable via devcontainer feature |
112
+
113
+ ### Package Managers
114
+ | Tool | Description |
115
+ |------|-------------|
116
+ | `uv` | Fast Python package manager (pip alternative) |
117
+ | `npm` | Node.js package manager |
118
+ | `pip` / `pipx` | Python package installers |
119
+
120
+ ### Development Tools
121
+ | Tool | Description |
122
+ |------|-------------|
123
+ | `gh` | GitHub CLI for repository operations |
124
+ | `docker` | Container CLI (connects to host Docker) |
125
+ | `git` | Version control |
126
+ | `jq` | JSON processor |
127
+ | `curl` | HTTP client |
128
+ | `agent-browser` | Headless browser automation for AI agents |
129
+
130
+ ### Code Intelligence
131
+ | Tool | Description |
132
+ |------|-------------|
133
+ | tree-sitter | AST parsing for JavaScript, TypeScript, Python |
134
+ | ast-grep | Structural code search and rewriting |
135
+ | Pyright | Python language server |
136
+ | TypeScript LSP | TypeScript/JavaScript language server |
137
+
138
+ ### Claude Code Tools
139
+ | Tool | Description |
140
+ |------|-------------|
141
+ | `claude` | Claude Code CLI |
142
+ | `cc` | Wrapper with auto-configuration |
143
+ | `ccusage` | Token usage analyzer |
144
+ | `ccstatusline` | Status line for sessions |
145
+ | `claude-monitor` | Real-time usage tracking |
146
+
147
+ ## Using Claude Code
148
+
149
+ ### The `cc` Command
150
+
151
+ The `cc` command is a wrapper that:
152
+ - Creates a project-local `.claude/` directory if missing
153
+ - Copies default configuration files
154
+ - Launches Claude Code with the project's system prompt
155
+
156
+ ```bash
157
+ cc # Start Claude Code in current directory
158
+ cc "explain this" # Start with an initial prompt
159
+ ```
160
+
161
+ ### Direct CLI
162
+
163
+ For more control, use the `claude` command directly:
164
+
165
+ ```bash
166
+ claude # Basic invocation
167
+ claude --help # View all options
168
+ claude --resume # Resume previous session
169
+ ```
170
+
171
+ ## Configuration
172
+
173
+ ### Environment Variables
174
+
175
+ Edit `.devcontainer/.env` to customize behavior:
176
+
177
+ | Variable | Default | Description |
178
+ |----------|---------|-------------|
179
+ | `CLAUDE_CONFIG_DIR` | `/workspaces/.claude` | Claude configuration directory |
180
+ | `SETUP_CONFIG` | `true` | Copy config files during setup |
181
+ | `OVERWRITE_CONFIG` | `true` | Overwrite existing configs |
182
+ | `SETUP_ALIASES` | `true` | Add `cc` alias to shell |
183
+ | `SETUP_PLUGINS` | `true` | Install official plugins |
184
+
185
+ ### Claude Code Settings
186
+
187
+ Default settings are in `.devcontainer/config/settings.json`. These are copied to `/workspaces/.claude/settings.json` on first run.
188
+
189
+ Key defaults:
190
+ - **Model**: Claude Opus 4.5
191
+ - **Default mode**: Plan (prompts before executing)
192
+ - **Max output tokens**: 64,000
193
+
194
+ ### System Prompt
195
+
196
+ 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.
197
+
198
+ ## Custom Features
199
+
200
+ CodeForge includes several custom devcontainer features:
201
+
202
+ | Feature | Description |
203
+ |---------|-------------|
204
+ | `claude-monitor` | Real-time token usage monitoring with ML predictions |
205
+ | `ccusage` | Usage analytics CLI |
206
+ | `ccstatusline` | Compact powerline status display |
207
+ | `ast-grep` | Structural code search using AST patterns |
208
+ | `tree-sitter` | Parser with JS/TS/Python grammars |
209
+ | `lsp-servers` | Pyright and TypeScript language servers |
210
+
211
+ ## Essential Gotchas
212
+
213
+ - **Authentication required**: Run `claude` once to authenticate before using `cc`
214
+ - **Plan mode default**: The container starts in "plan" mode, which prompts for approval before making changes
215
+ - **Project-local config**: The `cc` command creates `.claude/` in your current directory for project-specific settings
216
+ - **GitHub auth persists**: Run `gh auth login` once; credentials survive container rebuilds (stored in `/workspaces/.gh/`)
217
+
218
+ ## Further Reading
219
+
220
+ - [Claude Code Documentation](https://docs.anthropic.com/en/docs/claude-code)
221
+ - [Dev Containers Specification](https://containers.dev/)
222
+ - [GitHub CLI Manual](https://cli.github.com/manual/)