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.
- package/.devcontainer/.env +22 -0
- package/.devcontainer/CHANGELOG.md +197 -0
- package/.devcontainer/CLAUDE.md +117 -0
- package/.devcontainer/README.md +222 -0
- package/.devcontainer/config/main-system-prompt.md +502 -0
- package/.devcontainer/config/settings.json +47 -0
- package/.devcontainer/devcontainer.json +94 -0
- package/.devcontainer/features/README.md +113 -0
- package/.devcontainer/features/agent-browser/README.md +65 -0
- package/.devcontainer/features/agent-browser/devcontainer-feature.json +23 -0
- package/.devcontainer/features/agent-browser/install.sh +79 -0
- package/.devcontainer/features/ast-grep/README.md +24 -0
- package/.devcontainer/features/ast-grep/devcontainer-feature.json +24 -0
- package/.devcontainer/features/ast-grep/install.sh +51 -0
- package/.devcontainer/features/ccstatusline/README.md +296 -0
- package/.devcontainer/features/ccstatusline/devcontainer-feature.json +19 -0
- package/.devcontainer/features/ccstatusline/install.sh +290 -0
- package/.devcontainer/features/ccusage/README.md +205 -0
- package/.devcontainer/features/ccusage/devcontainer-feature.json +38 -0
- package/.devcontainer/features/ccusage/install.sh +132 -0
- package/.devcontainer/features/claude-code/README.md +498 -0
- package/.devcontainer/features/claude-code/config/settings.json +36 -0
- package/.devcontainer/features/claude-code/config/system-prompt.md +118 -0
- package/.devcontainer/features/claude-code/config/world-building-sp.md +1432 -0
- package/.devcontainer/features/claude-code/devcontainer-feature.json +42 -0
- package/.devcontainer/features/claude-code/install.sh +466 -0
- package/.devcontainer/features/claude-monitor/README.md +74 -0
- package/.devcontainer/features/claude-monitor/devcontainer-feature.json +38 -0
- package/.devcontainer/features/claude-monitor/install.sh +99 -0
- package/.devcontainer/features/lsp-servers/README.md +85 -0
- package/.devcontainer/features/lsp-servers/devcontainer-feature.json +40 -0
- package/.devcontainer/features/lsp-servers/install.sh +116 -0
- package/.devcontainer/features/mcp-qdrant/CHANGES.md +399 -0
- package/.devcontainer/features/mcp-qdrant/README.md +474 -0
- package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +57 -0
- package/.devcontainer/features/mcp-qdrant/install.sh +295 -0
- package/.devcontainer/features/mcp-qdrant/poststart-hook.sh +129 -0
- package/.devcontainer/features/mcp-reasoner/README.md +177 -0
- package/.devcontainer/features/mcp-reasoner/devcontainer-feature.json +20 -0
- package/.devcontainer/features/mcp-reasoner/install.sh +177 -0
- package/.devcontainer/features/mcp-reasoner/poststart-hook.sh +67 -0
- package/.devcontainer/features/notify-hook/README.md +86 -0
- package/.devcontainer/features/notify-hook/devcontainer-feature.json +23 -0
- package/.devcontainer/features/notify-hook/install.sh +38 -0
- package/.devcontainer/features/splitrail/README.md +140 -0
- package/.devcontainer/features/splitrail/devcontainer-feature.json +34 -0
- package/.devcontainer/features/splitrail/install.sh +129 -0
- package/.devcontainer/features/tree-sitter/README.md +138 -0
- package/.devcontainer/features/tree-sitter/devcontainer-feature.json +52 -0
- package/.devcontainer/features/tree-sitter/install.sh +173 -0
- package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +106 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/hooks/hooks.json +17 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/format-file.py +101 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/hooks/hooks.json +17 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/lint-file.py +137 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/.claude-plugin/plugin.json +8 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/claude-code-headless/SKILL.md +387 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/claude-code-headless/references/cli-flags-and-output.md +312 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/claude-code-headless/references/sdk-and-mcp.md +569 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker/SKILL.md +309 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker/references/compose-services.md +438 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker/references/dockerfile-patterns.md +340 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker-py/SKILL.md +412 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker-py/references/container-lifecycle.md +388 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/docker-py/references/resources-and-security.md +444 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/SKILL.md +344 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/references/middleware-and-lifespan.md +254 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/references/pydantic-models.md +245 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/references/routing-and-dependencies.md +255 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/fastapi/references/sse-and-streaming.md +318 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/pydantic-ai/SKILL.md +345 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/pydantic-ai/references/agents-and-tools.md +271 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/pydantic-ai/references/models-and-streaming.md +422 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/skill-building/SKILL.md +220 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/skill-building/references/cross-vendor-principles.md +139 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/skill-building/references/patterns-and-antipatterns.md +376 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/skill-building/references/skill-authoring-patterns.md +356 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/SKILL.md +329 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/references/advanced-queries.md +314 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/references/javascript-patterns.md +323 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/references/python-patterns.md +354 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/sqlite/references/schema-and-pragmas.md +326 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/SKILL.md +356 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/ai-sdk-svelte.md +128 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/component-patterns.md +332 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/layercake.md +203 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/migration-guide.md +350 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/runes-and-reactivity.md +328 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/spa-and-routing.md +262 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/svelte5/references/svelte-dnd-action.md +181 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/testing/SKILL.md +414 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/testing/references/fastapi-testing.md +411 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codedirective-skills/skills/testing/references/svelte-testing.md +538 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/codeforge-lsp/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/hooks/hooks.json +17 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/block-dangerous.py +110 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/hooks/hooks.json +17 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/planning-reminder/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/planning-reminder/hooks/hooks.json +17 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/hooks/hooks.json +17 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +108 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/commands/ticket/357/200/272create-pr.md +337 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/commands/ticket/357/200/272new.md +166 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/commands/ticket/357/200/272review-commit.md +290 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/commands/ticket/357/200/272work.md +257 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/plugin.json +8 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/system-prompt.md +184 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/.claude-plugin/plugin.json +6 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/config/planning-instructions.md +14 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/functional-conjuring-map.md +989 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/hooks/hooks.json +33 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/__pycache__/post-enhance-task.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/enhance-planning.py +71 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/enhancers/enhance-plan.sh +68 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/enhancers/enhance-task.sh +120 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/post-enhance-plan.py +133 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workflow-enhancer/scripts/post-enhance-task.py +253 -0
- package/.devcontainer/scripts/setup-aliases.sh +80 -0
- package/.devcontainer/scripts/setup-config.sh +28 -0
- package/.devcontainer/scripts/setup-irie-claude.sh +32 -0
- package/.devcontainer/scripts/setup-plugins.sh +80 -0
- package/.devcontainer/scripts/setup.sh +58 -0
- package/LICENSE.txt +674 -0
- package/README.md +267 -0
- package/package.json +44 -0
- 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
|
+
[](https://www.gnu.org/licenses/gpl-3.0)
|
|
4
|
+
[](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/)
|