codeforge-dev 1.10.0 → 1.12.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 +7 -1
- package/.devcontainer/.gitignore +1 -0
- package/.devcontainer/CHANGELOG.md +138 -0
- package/.devcontainer/CLAUDE.md +87 -8
- package/.devcontainer/README.md +55 -18
- package/.devcontainer/config/defaults/main-system-prompt.md +132 -152
- package/.devcontainer/config/defaults/rules/session-search.md +66 -0
- package/.devcontainer/config/defaults/rules/spec-workflow.md +39 -12
- package/.devcontainer/config/defaults/settings.json +2 -1
- package/.devcontainer/config/defaults/writing-system-prompt.md +185 -0
- package/.devcontainer/config/file-manifest.json +12 -0
- package/.devcontainer/connect-external-terminal.ps1 +1 -1
- package/.devcontainer/devcontainer.json +40 -10
- package/.devcontainer/docs/configuration-reference.md +3 -0
- package/.devcontainer/docs/plugins.md +9 -2
- package/.devcontainer/docs/troubleshooting.md +2 -2
- package/.devcontainer/features/README.md +8 -9
- package/.devcontainer/features/agent-browser/devcontainer-feature.json +21 -21
- package/.devcontainer/features/agent-browser/install.sh +0 -7
- package/.devcontainer/features/ast-grep/devcontainer-feature.json +22 -22
- package/.devcontainer/features/biome/devcontainer-feature.json +12 -14
- package/.devcontainer/features/ccms/README.md +50 -0
- package/.devcontainer/features/ccms/devcontainer-feature.json +21 -0
- package/.devcontainer/features/ccms/install.sh +122 -0
- package/.devcontainer/features/ccstatusline/install.sh +24 -2
- package/.devcontainer/features/lsp-servers/devcontainer-feature.json +43 -43
- package/.devcontainer/features/mcp-qdrant/poststart-hook.sh +2 -1
- package/.devcontainer/features/ruff/devcontainer-feature.json +17 -19
- package/.devcontainer/features/tmux/install.sh +2 -2
- package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +8 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/README.md +81 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/README.md +92 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/README.md +250 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/architect.md +1 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/claude-guide.md +2 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/debug-logs.md +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/dependency-analyst.md +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/doc-writer.md +4 -4
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/explorer.md +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/generalist.md +2 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/git-archaeologist.md +2 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/researcher.md +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/security-auditor.md +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/spec-writer.md +8 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/hooks/hooks.json +10 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/skill-suggester.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/git-state-injector.py +15 -4
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/inject-cwd.py +37 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/skill-suggester.py +24 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/spec-reminder.py +3 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-build/SKILL.md +353 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-build/references/review-checklist.md +175 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-check/SKILL.md +15 -14
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-init/SKILL.md +12 -11
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-init/references/backlog-template.md +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-init/references/milestones-template.md +32 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-new/SKILL.md +17 -18
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-new/references/template.md +12 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-review/SKILL.md +229 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-update/SKILL.md +6 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/specification-writing/SKILL.md +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/codeforge-lsp/.claude-plugin/plugin.json +38 -5
- package/.devcontainer/plugins/devs-marketplace/plugins/codeforge-lsp/README.md +41 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/README.md +72 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/block-dangerous.py +73 -47
- package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/README.md +42 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/README.md +86 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/hooks/hooks.json +25 -15
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected-bash.py +122 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +3 -3
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/README.md +96 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/.claude-plugin/plugin.json +7 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/README.md +94 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/hooks/hooks.json +17 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/__pycache__/guard-workspace-scope.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/guard-workspace-scope.py +132 -0
- package/.devcontainer/scripts/check-setup.sh +1 -1
- package/.devcontainer/scripts/setup-aliases.sh +68 -75
- package/.devcontainer/scripts/setup-projects.sh +23 -16
- package/.devcontainer/scripts/setup.sh +48 -5
- package/README.md +17 -8
- package/package.json +1 -2
- package/.devcontainer/features/mcp-reasoner/README.md +0 -177
- package/.devcontainer/features/mcp-reasoner/devcontainer-feature.json +0 -25
- package/.devcontainer/features/mcp-reasoner/install.sh +0 -184
- package/.devcontainer/features/mcp-reasoner/poststart-hook.sh +0 -67
- package/.devcontainer/features/splitrail/README.md +0 -140
- package/.devcontainer/features/splitrail/devcontainer-feature.json +0 -39
- package/.devcontainer/features/splitrail/install.sh +0 -136
- package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-init/references/roadmap-template.md +0 -33
package/.devcontainer/.env
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CodeForge Environment Configuration
|
|
2
2
|
|
|
3
3
|
# Paths
|
|
4
4
|
CLAUDE_CONFIG_DIR=/workspaces/.claude
|
|
@@ -23,5 +23,11 @@ SETUP_UPDATE_CLAUDE=true
|
|
|
23
23
|
# Setup: configure VS Code Shift+Enter keybinding for Claude Code terminal
|
|
24
24
|
SETUP_TERMINAL=true
|
|
25
25
|
|
|
26
|
+
# Setup: auto-detect and register projects for VS Code Project Manager
|
|
27
|
+
SETUP_PROJECTS=true
|
|
28
|
+
|
|
29
|
+
# Setup: run post-start hooks from /usr/local/devcontainer-poststart.d/
|
|
30
|
+
SETUP_POSTSTART=true
|
|
31
|
+
|
|
26
32
|
# Plugin blacklist (comma-separated plugin names to skip during auto-install)
|
|
27
33
|
PLUGIN_BLACKLIST=""
|
package/.devcontainer/.gitignore
CHANGED
|
@@ -1,5 +1,143 @@
|
|
|
1
1
|
# CodeForge Devcontainer Changelog
|
|
2
2
|
|
|
3
|
+
## [v1.12.0] - 2026-02-18
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
#### Plugin README Documentation
|
|
8
|
+
- **9 new README files** for all marketplace plugins: auto-formatter, auto-linter, code-directive, codeforge-lsp, dangerous-command-blocker, notify-hook, protected-files-guard, ticket-workflow, workspace-scope-guard. Each documents purpose, hook lifecycle, protected patterns, and plugin structure
|
|
9
|
+
|
|
10
|
+
#### Protected Files Guard: Bash Hook
|
|
11
|
+
- **`guard-protected-bash.py`** — new PreToolUse/Bash hook blocking bash commands that write to protected file paths (companion to existing Edit/Write guard). Covers `>`, `>>`, `tee`, `cp`, `mv`, `sed -i` targeting `.env`, lock files, `.git`, certificates, and credentials
|
|
12
|
+
|
|
13
|
+
#### Devcontainer Secrets Declaration
|
|
14
|
+
- **`secrets` block** in devcontainer.json declaring `GH_TOKEN`, `NPM_TOKEN`, `GH_USERNAME`, `GH_EMAIL` with documentation URLs for VS Code Codespaces/devcontainer secret management
|
|
15
|
+
|
|
16
|
+
#### Post-Start Hook System
|
|
17
|
+
- **`run_poststart_hooks()`** in setup.sh — runs executable `.sh` scripts from `/usr/local/devcontainer-poststart.d/`; controlled by `SETUP_POSTSTART` env flag (default: true)
|
|
18
|
+
|
|
19
|
+
#### Git Worktree Support
|
|
20
|
+
- **System prompt `<git_worktrees>` section** — layout convention, creation commands, project detection, and safety rules
|
|
21
|
+
- **CLAUDE.md documentation** — full worktree section with layout, creation, detection, and compatibility details
|
|
22
|
+
- **setup-projects.sh** — `.worktrees/` explicit scanning at depth 3, `.git` file detection via `gitdir:` check, `"worktree"` tag in Project Manager
|
|
23
|
+
- **protected-files-guard** — `.git` regex updated from `\.git/` to `\.git(/|$)` to cover worktree `.git` pointer files
|
|
24
|
+
|
|
25
|
+
#### Other
|
|
26
|
+
- **`CLAUDECODE=null` env var** — unsets the detection flag in `remoteEnv` to allow nested Claude Code sessions (claude-in-claude)
|
|
27
|
+
- **Go runtime option** — commented-out `ghcr.io/devcontainers/features/go:1` entry in devcontainer.json for easy opt-in
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
#### Feature Version Pinning
|
|
32
|
+
- All local features pinned from `"latest"` to explicit versions: agent-browser `0.11.1`, ast-grep `0.40.5`, biome `2.4.2`, ruff `0.15.1`, pyright `1.1.408`, typescript-language-server `5.1.3`, TypeScript `5.9.3`
|
|
33
|
+
- External features pinned to minor versions: node `1.6`, github-cli `1.0`, docker-outside-of-docker `1.7`, uv `1.0`, rust `1.4`, claude-code `1.1`
|
|
34
|
+
|
|
35
|
+
#### Default Shell: bash → zsh
|
|
36
|
+
- VS Code terminal default profile changed from bash to zsh
|
|
37
|
+
- Explicit `zsh` profile added to terminal profile list
|
|
38
|
+
- Claude Teams tmux profile shell changed from bash to zsh
|
|
39
|
+
|
|
40
|
+
#### Security Hardening
|
|
41
|
+
- **dangerous-command-blocker** — 7 new blocked patterns: Docker container escape (`--privileged`, host root mount), destructive Docker ops (`stop/rm/kill/rmi`), bare force push (no branch specified), `find -exec rm`, `find -delete`, `git clean -f`, `rm -rf ../`. JSON parse failures now fail closed (exit 2 instead of 0)
|
|
42
|
+
- **protected-files-guard** — JSON parse failures fail closed (exit 2 instead of 0)
|
|
43
|
+
|
|
44
|
+
#### Build & Setup
|
|
45
|
+
- **ccms build cache** — install.sh checks `.build-cache/bin/ccms` before cargo building; caches binary after first build for faster rebuilds; pinned to commit `f90d259a4476`
|
|
46
|
+
- **setup.sh** — `setup-update-claude.sh` now runs in background (non-blocking container start); script failure output displayed for diagnostics; new `background` status indicator in summary
|
|
47
|
+
- **inotify-tools moved to build time** — tmux feature installs inotify-tools via apt at build; setup-projects.sh no longer attempts runtime apt-get install
|
|
48
|
+
- **Container memory** — recommended from 4GB/8GB to 6GB/12GB in troubleshooting docs
|
|
49
|
+
|
|
50
|
+
#### Writing System Prompt
|
|
51
|
+
- New **Emotional Architecture** section — cognitive-emotional loop, controlled emotion principle, autism framing for POV characters
|
|
52
|
+
- Expanded metaphor guidance — secondary sources beyond primary domain, "would he think this?" test
|
|
53
|
+
- Refined show-don't-tell rules — naming emotion permitted when it adds weight, brief internal processing after major events required
|
|
54
|
+
- Character profile additions — emotional architecture and trigger fields
|
|
55
|
+
|
|
56
|
+
#### Other
|
|
57
|
+
- **connect-external-terminal.ps1** — tmux session directory respects `WORKSPACE_ROOT` env var with fallback
|
|
58
|
+
- **setup-projects.sh** — inotifywait exclude pattern narrowed from `\.git/` to `\.git` for worktree compatibility
|
|
59
|
+
- **README.md** — 5 new badges (changelog, last commit, npm downloads, Node.js, issues), updated tool/feature/skill counts, added Rust/Bun/ccw, changelog section
|
|
60
|
+
- **CLAUDE.md** — expanded ccw description, fixed Bun registry reference, documented setup-auth.sh/check-setup.sh, added CLAUDECODE/env flags/experimental vars/git worktrees/rules system sections, skill count 17→28
|
|
61
|
+
- **Documentation** — `SETUP_TERMINAL`/`SETUP_POSTSTART` in configuration reference, `CLAUDECODE=null` env var, workspace-scope-guard in plugins.md
|
|
62
|
+
- **Agent definitions** — minor path/prompt fixes across 8 agents (claude-guide, debug-logs, dependency-analyst, explorer, generalist, git-archaeologist, researcher, security-auditor)
|
|
63
|
+
- **.gitignore** — added `.build-cache/` exclusion
|
|
64
|
+
|
|
65
|
+
### Removed
|
|
66
|
+
|
|
67
|
+
- **mcp-reasoner feature** — entire feature directory deleted (README, devcontainer-feature.json, install.sh, poststart-hook.sh)
|
|
68
|
+
- **splitrail feature** — entire feature directory deleted (README, devcontainer-feature.json, install.sh)
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## [v1.11.0] - 2026-02-17
|
|
73
|
+
|
|
74
|
+
### Added
|
|
75
|
+
|
|
76
|
+
#### New Feature: ccms (Session History Search)
|
|
77
|
+
- **`ccms` devcontainer feature** — Rust-based CLI for searching Claude Code session JSONL files. Installed via `cargo install`. Supports boolean queries, role filtering, time scoping, project isolation, and JSON output
|
|
78
|
+
- **`session-search.md` rule** — global rule requiring project-scoped `ccms` usage and documenting CLI flags/query syntax
|
|
79
|
+
- **Rust runtime** — added `ghcr.io/devcontainers/features/rust:1` as a devcontainer feature (required by ccms)
|
|
80
|
+
- **System prompt `<session_search>` section** — inline reference for ccms usage with key flags and examples
|
|
81
|
+
- **Context management updated** — `<context_management>` now references ccms as the primary recovery tool for compacted sessions (three-source recovery: session history → source files → plan/requirement files)
|
|
82
|
+
|
|
83
|
+
#### New Feature: ccw (Writing Mode)
|
|
84
|
+
- **`ccw` alias** — launches Claude with `writing-system-prompt.md` for creative-writing tasks
|
|
85
|
+
- **`writing-system-prompt.md`** — dedicated system prompt for writing mode, distributed via file-manifest
|
|
86
|
+
|
|
87
|
+
#### New Plugin: workspace-scope-guard
|
|
88
|
+
- **`workspace-scope-guard`** — safety plugin that blocks writes and warns on reads outside the working directory. Registered in marketplace.json and enabled by default in settings.json
|
|
89
|
+
|
|
90
|
+
#### New Skills: spec-build, spec-review (code-directive plugin — 28 skills total)
|
|
91
|
+
- **`/spec-build`** — orchestrates the full implementation lifecycle from an approved spec: plan, build, review, and close in one pass. 5-phase workflow with acceptance criteria markers (`[ ]` → `[~]` → `[x]`)
|
|
92
|
+
- **`/spec-review`** — standalone deep implementation review against a spec. Reads code, verifies requirements and acceptance criteria, recommends `/spec-update` when done
|
|
93
|
+
|
|
94
|
+
#### New Hook: inject-cwd.py
|
|
95
|
+
- **`inject-cwd.py`** (PostToolUse, all tools) — injects current working directory into every tool response via `additionalContext`
|
|
96
|
+
|
|
97
|
+
#### Status Line: CWD Widget
|
|
98
|
+
- **`ccstatusline-cwd`** — new custom-command widget showing the basename of Claude Code's working directory. Layout expanded from 7 to 8 lines (16 → 17 widgets)
|
|
99
|
+
|
|
100
|
+
### Changed
|
|
101
|
+
|
|
102
|
+
#### setup-aliases.sh Idempotency Fix
|
|
103
|
+
- **Block-marker strategy** — replaced cleanup+guard approach (which left aliases missing on re-run) with a delete-and-rewrite strategy using `START`/`END` block markers. The managed block is removed wholesale by sed range match, then always re-written fresh — no guard/`continue` needed
|
|
104
|
+
- **Legacy cleanup expanded** — added removal of v1.10.0 orphaned aliases/exports/`_CLAUDE_BIN`/`cc-tools()` that existed outside block markers, in addition to pre-v1.10.0 function forms
|
|
105
|
+
- **cc-tools expanded** — added `ccw`, `ccms`, `cargo` to the tool listing
|
|
106
|
+
|
|
107
|
+
#### Spec Workflow: Version-Based → Domain-Based Organization
|
|
108
|
+
- **Directory structure** — specs now live in domain subfolders (`.specs/{domain}/{feature}.md`) instead of version directories (`.specs/v0.1.0/feature.md`)
|
|
109
|
+
- **ROADMAP.md → MILESTONES.md** — version tracker renamed to milestone tracker throughout all skills, templates, and system prompt
|
|
110
|
+
- **`**Version:**` → `**Domain:**`** — spec template metadata field renamed across spec-new template, spec-writer agent, specification-writing skill, spec-update, spec-check
|
|
111
|
+
- **`roadmap-template.md` → `milestones-template.md`** — reference template replaced
|
|
112
|
+
- **Acceptance criteria markers** — three-state progress tracking: `[ ]` (not started), `[~]` (implemented, not yet verified), `[x]` (verified). Used by `/spec-build` phases and recognized by `/spec-check` and `/spec-update`
|
|
113
|
+
- **Spec lifecycle expanded** — `/spec-review` inserted before `/spec-update` in the recommended post-implementation workflow. `spec-reminder.py` advisory message updated accordingly
|
|
114
|
+
- **Agent skill lists** — architect, generalist, and spec-writer agents gained `/spec-review` access
|
|
115
|
+
|
|
116
|
+
#### LSP Plugin: Declarative Server Configuration
|
|
117
|
+
- **`codeforge-lsp/plugin.json`** — added `lspServers` block with pyright (Python), typescript-language-server (JS/TS), and gopls (Go) declarative configurations replacing implicit setup
|
|
118
|
+
|
|
119
|
+
#### git-state-injector.py Enhancements
|
|
120
|
+
- **Working directory injection** — always outputs cwd with scope restriction message, even outside git repos
|
|
121
|
+
- **cwd from hook input** — reads `cwd` from Claude Code's hook JSON input (falls back to `os.getcwd()`)
|
|
122
|
+
|
|
123
|
+
#### System Prompt Formatting
|
|
124
|
+
- **Line unwrapping** — long wrapped lines consolidated to single lines throughout (no content changes, only formatting)
|
|
125
|
+
|
|
126
|
+
#### Documentation
|
|
127
|
+
- **CLAUDE.md** — added `ccw`, `ccms` commands; added `writing-system-prompt.md` to directory tree and config table; added workspace-scope-guard to plugin list; skill count 17 → 28; added Rust to `version: "none"` support; updated setup-aliases.sh description
|
|
128
|
+
- **README.md** — added Safety Plugins section; updated spec workflow commands/lifecycle/structure for domain-based organization; added `/spec-build` and `/spec-review` to skill table; fixed system prompt override path (`system-prompt.md` → `main-system-prompt.md`)
|
|
129
|
+
- **claude-guide agent** — fixed system prompt path reference (`system-prompt.md` → `main-system-prompt.md`)
|
|
130
|
+
- **doc-writer agent** — "Version ships" → "Milestone ships" terminology
|
|
131
|
+
- **marketplace.json** — skill count updated (16 → 28); workspace-scope-guard added
|
|
132
|
+
- **skill-suggester.py** — added keyword mappings for `spec-build` and `spec-review`
|
|
133
|
+
- **spec-workflow.md rule** — added `/spec-build` and `/spec-review` rules (#10, #11); added acceptance criteria markers section; updated directory convention to domain-based
|
|
134
|
+
|
|
135
|
+
### Removed
|
|
136
|
+
|
|
137
|
+
- **`spec-init/references/roadmap-template.md`** — replaced by `milestones-template.md`
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
3
141
|
## [v1.10.0] - 2026-02-13
|
|
4
142
|
|
|
5
143
|
### Added
|
package/.devcontainer/CLAUDE.md
CHANGED
|
@@ -14,7 +14,8 @@ CodeForge devcontainer for AI-assisted development with Claude Code.
|
|
|
14
14
|
│ │ └── defaults/ # Files copied per manifest
|
|
15
15
|
│ │ ├── settings.json # Claude Code settings
|
|
16
16
|
│ │ ├── keybindings.json # Claude Code keybindings
|
|
17
|
-
│ │
|
|
17
|
+
│ │ ├── main-system-prompt.md
|
|
18
|
+
│ │ └── writing-system-prompt.md
|
|
18
19
|
│ ├── features/ # Custom devcontainer features
|
|
19
20
|
│ ├── plugins/ # Local plugin marketplace
|
|
20
21
|
│ │ └── devs-marketplace/
|
|
@@ -22,7 +23,7 @@ CodeForge devcontainer for AI-assisted development with Claude Code.
|
|
|
22
23
|
├── .claude/ # Runtime Claude config (created on first run)
|
|
23
24
|
│ ├── settings.json # Active settings (managed by file-manifest.json)
|
|
24
25
|
│ ├── keybindings.json # Active keybindings
|
|
25
|
-
│ └── system-prompt.md
|
|
26
|
+
│ └── main-system-prompt.md # Active system prompt
|
|
26
27
|
└── .gh/ # GitHub CLI config (persists across rebuilds)
|
|
27
28
|
└── hosts.yml # Authenticated hosts
|
|
28
29
|
```
|
|
@@ -37,6 +38,7 @@ CodeForge devcontainer for AI-assisted development with Claude Code.
|
|
|
37
38
|
| `config/defaults/settings.json` | Claude Code defaults: model, tokens, permissions, plugins |
|
|
38
39
|
| `config/defaults/keybindings.json` | Claude Code keybindings (empty by default — customizable) |
|
|
39
40
|
| `config/defaults/main-system-prompt.md` | Default system prompt defining assistant behavior |
|
|
41
|
+
| `config/defaults/writing-system-prompt.md` | Creative-writing system prompt used by `ccw` alias |
|
|
40
42
|
|
|
41
43
|
> **Note**: Config file copying is controlled by `config/file-manifest.json`. Each entry specifies `overwrite`: `"if-changed"` (default, sha256-based), `"always"`, or `"never"`. Persistent changes go in `.devcontainer/config/defaults/settings.json`.
|
|
42
44
|
|
|
@@ -47,12 +49,14 @@ CodeForge devcontainer for AI-assisted development with Claude Code.
|
|
|
47
49
|
| `claude` | Run Claude Code with auto-configuration (prefers native binary at `~/.local/bin/claude`) |
|
|
48
50
|
| `cc` | Shorthand for `claude` with config |
|
|
49
51
|
| `ccraw` | Vanilla Claude Code without any config (bypasses function override) |
|
|
52
|
+
| `ccw` | Claude Code with the writing system prompt — uses `writing-system-prompt.md` instead of `main-system-prompt.md`, optimized for creative and technical writing tasks |
|
|
50
53
|
| `ccusage` | Analyze token usage history |
|
|
51
54
|
| `ccburn` | Real-time token burn rate visualization |
|
|
52
55
|
| `agent-browser` | Headless Chromium for browser automation (Playwright-based) |
|
|
53
56
|
| `gh` | GitHub CLI for repo operations |
|
|
54
57
|
| `uv` | Fast Python package manager |
|
|
55
58
|
| `ast-grep` | Structural code search |
|
|
59
|
+
| `ccms` | Search Claude Code session history (project-scoped) |
|
|
56
60
|
| `cc-tools` | List all installed tools with version info |
|
|
57
61
|
| `check-setup` | Verify CodeForge setup health |
|
|
58
62
|
|
|
@@ -103,13 +107,16 @@ When `version` is set to `"none"`, the feature's `install.sh` exits immediately
|
|
|
103
107
|
The auto-formatter and auto-linter plugins gracefully skip missing tools at runtime.
|
|
104
108
|
|
|
105
109
|
**All local features support this pattern:**
|
|
106
|
-
ast-grep, biome, ccstatusline, claude-monitor, dprint, hadolint, lsp-servers, mcp-qdrant, mcp-reasoner, notify-hook, ruff, shfmt, shellcheck, splitrail, tmux
|
|
110
|
+
ast-grep, biome, ccms, ccstatusline, claude-monitor, dprint, hadolint, lsp-servers, mcp-qdrant, mcp-reasoner, notify-hook, ruff, shfmt, shellcheck, splitrail, tmux
|
|
107
111
|
|
|
108
112
|
**External features with `version: "none"` support:**
|
|
109
113
|
`ghcr.io/devcontainers/features/node`, `ghcr.io/devcontainers/features/github-cli`, `ghcr.io/devcontainers/features/docker-outside-of-docker`, `ghcr.io/devcontainers/features/go` (all official Microsoft features)
|
|
110
114
|
|
|
111
115
|
**External features without `version: "none"` support:**
|
|
112
|
-
`ghcr.io/devcontainers-extra/features/uv`, `ghcr.io/anthropics/devcontainer-features/claude-code`, `ghcr.io/
|
|
116
|
+
`ghcr.io/devcontainers-extra/features/uv`, `ghcr.io/anthropics/devcontainer-features/claude-code`, `ghcr.io/rails/devcontainer/features/bun`
|
|
117
|
+
|
|
118
|
+
**External features with `version: "none"` support (Rust):**
|
|
119
|
+
`ghcr.io/devcontainers/features/rust` (official Microsoft feature)
|
|
113
120
|
|
|
114
121
|
> **Convention**: Every new local feature must include a `version` option (default `"latest"`) in its `devcontainer-feature.json` and a skip guard at the top of `install.sh`:
|
|
115
122
|
> ```bash
|
|
@@ -127,11 +134,13 @@ Scripts in `./scripts/` run via `postStartCommand`:
|
|
|
127
134
|
|--------|---------|
|
|
128
135
|
| `setup.sh` | Main orchestrator |
|
|
129
136
|
| `setup-config.sh` | Copies config files per `config/file-manifest.json` to destinations |
|
|
130
|
-
| `setup-aliases.sh` | Creates `cc`/`claude`/`ccraw` shell aliases (prefers native binary at `~/.local/bin/claude` via `_CLAUDE_BIN`) |
|
|
137
|
+
| `setup-aliases.sh` | Creates `cc`/`claude`/`ccraw`/`ccw` shell aliases (prefers native binary at `~/.local/bin/claude` via `_CLAUDE_BIN`) |
|
|
131
138
|
| `setup-plugins.sh` | Registers local marketplace + installs official Anthropic plugins |
|
|
132
139
|
| `setup-update-claude.sh` | Installs native Claude Code binary on first run; background auto-updates on subsequent starts |
|
|
133
140
|
| `setup-terminal.sh` | Configures VS Code Shift+Enter keybinding for Claude Code multi-line input |
|
|
134
141
|
| `setup-projects.sh` | Auto-detects projects for VS Code Project Manager |
|
|
142
|
+
| `setup-auth.sh` | Configures Git and NPM auth from `.secrets` file or environment variables |
|
|
143
|
+
| `check-setup.sh` | Verifies CodeForge setup health (binary paths, config files, features) |
|
|
135
144
|
| `setup-symlink-claude.sh` | Symlinks ~/.claude for third-party tool compatibility |
|
|
136
145
|
|
|
137
146
|
### External Terminal
|
|
@@ -141,6 +150,8 @@ Scripts in `./scripts/` run via `postStartCommand`:
|
|
|
141
150
|
.devcontainer/connect-external-terminal.sh
|
|
142
151
|
```
|
|
143
152
|
|
|
153
|
+
On Windows, use `connect-external-terminal.ps1` (PowerShell equivalent).
|
|
154
|
+
|
|
144
155
|
## Installed Plugins
|
|
145
156
|
|
|
146
157
|
Plugins are declared in `config/defaults/settings.json` under `enabledPlugins` and auto-activated on container start:
|
|
@@ -156,7 +167,8 @@ Plugins are declared in `config/defaults/settings.json` under `enabledPlugins` a
|
|
|
156
167
|
- `protected-files-guard@devs-marketplace` — Blocks edits to secrets/lock files
|
|
157
168
|
- `auto-formatter@devs-marketplace` — Batch-formats edited files at Stop (Ruff for Python, Biome for JS/TS/CSS/JSON/GraphQL/HTML; also supports shfmt, dprint, gofmt, rustfmt when installed)
|
|
158
169
|
- `auto-linter@devs-marketplace` — Auto-lints edited files at Stop (Pyright + Ruff for Python, Biome for JS/TS/CSS/GraphQL; also supports ShellCheck, hadolint, go vet, clippy when installed)
|
|
159
|
-
- `code-directive@devs-marketplace` — 17 custom agents,
|
|
170
|
+
- `code-directive@devs-marketplace` — 17 custom agents, 28 skills, syntax validation, skill suggestions, agent redirect hook
|
|
171
|
+
- `workspace-scope-guard@devs-marketplace` — Blocks writes and warns on reads outside the working directory
|
|
160
172
|
|
|
161
173
|
### Local Marketplace
|
|
162
174
|
|
|
@@ -172,12 +184,13 @@ plugins/devs-marketplace/
|
|
|
172
184
|
├── auto-formatter/ # Batch formatter (Stop hook)
|
|
173
185
|
├── auto-linter/ # Pyright linter
|
|
174
186
|
├── code-directive/ # Agents, skills + hooks
|
|
187
|
+
├── workspace-scope-guard/ # Workspace scope enforcement
|
|
175
188
|
└── ...
|
|
176
189
|
```
|
|
177
190
|
|
|
178
191
|
## Agents & Skills
|
|
179
192
|
|
|
180
|
-
The `code-directive` plugin includes 17 custom agent definitions and
|
|
193
|
+
The `code-directive` plugin includes 17 custom agent definitions and 28 coding reference skills.
|
|
181
194
|
|
|
182
195
|
**Agents** (`plugins/devs-marketplace/plugins/code-directive/agents/`):
|
|
183
196
|
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
|
|
@@ -185,7 +198,7 @@ architect, bash-exec, claude-guide, debug-logs, dependency-analyst, doc-writer,
|
|
|
185
198
|
The `redirect-builtin-agents.py` hook (PreToolUse/Task) transparently swaps built-in agent types to these custom agents (e.g., Explore→explorer, Plan→architect).
|
|
186
199
|
|
|
187
200
|
**Skills** (`plugins/devs-marketplace/plugins/code-directive/skills/`):
|
|
188
|
-
claude-agent-sdk, claude-code-headless, debugging, docker, docker-py, fastapi, git-forensics, performance-profiling, pydantic-ai, refactoring-patterns, security-checklist, skill-building, spec-refine, specification-writing, sqlite, svelte5, testing
|
|
201
|
+
api-design, ast-grep-patterns, claude-agent-sdk, claude-code-headless, debugging, dependency-management, docker, docker-py, documentation-patterns, fastapi, git-forensics, migration-patterns, performance-profiling, pydantic-ai, refactoring-patterns, security-checklist, skill-building, spec-build, spec-check, spec-init, spec-new, spec-refine, spec-review, spec-update, specification-writing, sqlite, svelte5, testing
|
|
189
202
|
|
|
190
203
|
## VS Code Keybinding Conflicts
|
|
191
204
|
|
|
@@ -214,6 +227,64 @@ Key environment variables set in the container:
|
|
|
214
227
|
| `GH_CONFIG_DIR` | `/workspaces/.gh` |
|
|
215
228
|
| `ANTHROPIC_MODEL` | `claude-opus-4-6` |
|
|
216
229
|
| `TMPDIR` | `/workspaces/.tmp` |
|
|
230
|
+
| `CLAUDECODE` | `null` (unset) |
|
|
231
|
+
|
|
232
|
+
Setting `"CLAUDECODE": null` in `remoteEnv` unsets this variable inside the container, which allows nested Claude Code sessions (claude-in-claude) that would otherwise be blocked by the outer session's detection flag.
|
|
233
|
+
|
|
234
|
+
All setup steps are controlled by boolean flags in `.devcontainer/.env`. Set any to `false` to disable:
|
|
235
|
+
`SETUP_CONFIG`, `SETUP_ALIASES`, `SETUP_AUTH`, `SETUP_PLUGINS`, `SETUP_UPDATE_CLAUDE`, `SETUP_TERMINAL`, `SETUP_PROJECTS`, `SETUP_POSTSTART`.
|
|
236
|
+
|
|
237
|
+
### Experimental Environment Variables
|
|
238
|
+
|
|
239
|
+
These are set in `config/defaults/settings.json` under `env` and control Claude Code experimental features:
|
|
240
|
+
|
|
241
|
+
| Variable | Value | Description |
|
|
242
|
+
|----------|-------|-------------|
|
|
243
|
+
| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | `1` | Enables Agent Teams (multi-agent orchestration) |
|
|
244
|
+
| `CLAUDE_CODE_EFFORT_LEVEL` | `high` | Sets reasoning effort level |
|
|
245
|
+
| `CLAUDE_CODE_ENABLE_TASKS` | `true` | Enables the task/todo system |
|
|
246
|
+
| `CLAUDE_CODE_PLAN_MODE_INTERVIEW_PHASE` | `true` | Enables interview phase before plan execution |
|
|
247
|
+
| `CLAUDE_CODE_PLAN_V2_AGENT_COUNT` | `3` | Number of agents in Plan V2 orchestration |
|
|
248
|
+
| `CLAUDE_CODE_PLAN_MODE_REQUIRED` | `true` | Forces plan mode for teammate agents |
|
|
249
|
+
| `ENABLE_CLAUDE_CODE_SM_COMPACT` | `1` | Enables smart compaction for context management |
|
|
250
|
+
| `CLAUDE_CODE_FORCE_GLOBAL_CACHE` | `1` | Forces global prompt caching |
|
|
251
|
+
| `FORCE_AUTOUPDATE_PLUGINS` | `1` | Auto-updates plugins on every session start |
|
|
252
|
+
|
|
253
|
+
## Git Worktrees
|
|
254
|
+
|
|
255
|
+
CodeForge supports git worktrees for working on multiple branches simultaneously.
|
|
256
|
+
|
|
257
|
+
### Layout
|
|
258
|
+
|
|
259
|
+
Worktrees live in a `.worktrees/` directory alongside the main repo:
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
/workspaces/projects/
|
|
263
|
+
├── CodeForge/ # main repo (.git directory)
|
|
264
|
+
└── .worktrees/ # worktree container
|
|
265
|
+
├── feature-a/ # worktree checkout (.git file)
|
|
266
|
+
└── bugfix-b/ # worktree checkout (.git file)
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Creating Compatible Worktrees
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
cd /workspaces/projects/CodeForge
|
|
273
|
+
mkdir -p /workspaces/projects/.worktrees
|
|
274
|
+
git worktree add /workspaces/projects/.worktrees/my-branch my-branch
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### Project Detection
|
|
278
|
+
|
|
279
|
+
- `setup-projects.sh` scans `.worktrees/` directories at depth 3 (inside container dirs like `projects/`)
|
|
280
|
+
- Worktrees are detected by their `.git` file (containing `gitdir:`) and tagged with both `"git"` and `"worktree"` in Project Manager
|
|
281
|
+
- Each worktree appears as an independent project in VS Code Project Manager
|
|
282
|
+
|
|
283
|
+
### Compatibility
|
|
284
|
+
|
|
285
|
+
- `workspace-scope-guard` resolves worktree paths correctly via `os.path.realpath()`
|
|
286
|
+
- `protected-files-guard` protects both `.git/` directories and `.git` files (worktree pointers)
|
|
287
|
+
- Read-only agents (e.g., git-archaeologist) can use `git worktree list` but cannot add/remove worktrees
|
|
217
288
|
|
|
218
289
|
## Modifying Behavior
|
|
219
290
|
|
|
@@ -223,3 +294,11 @@ Key environment variables set in the container:
|
|
|
223
294
|
4. **Add a custom config file**: Add an entry to `config/file-manifest.json` with `src`, `dest`, and optional `overwrite`/`destFilename`
|
|
224
295
|
5. **Add features**: Add to `"features"` in `devcontainer.json`
|
|
225
296
|
6. **Disable auto-setup**: Set variables to `false` in `.env`
|
|
297
|
+
|
|
298
|
+
## Rules System
|
|
299
|
+
|
|
300
|
+
Rules live in `config/defaults/rules/` and are copied to `.claude/rules/` by the file manifest (`config/file-manifest.json`) on every container start. Unlike CLAUDE.md (which loads on demand when entering a project), rules load automatically on every Claude Code session.
|
|
301
|
+
|
|
302
|
+
**Current rules**: `spec-workflow.md`, `workspace-scope.md`, `session-search.md`
|
|
303
|
+
|
|
304
|
+
**Adding custom rules**: Create a `.md` file in `config/defaults/rules/`, then add a manifest entry in `config/file-manifest.json` pointing to `${CLAUDE_CONFIG_DIR}/rules` as the destination. The rule will be deployed on the next container start.
|
package/.devcontainer/README.md
CHANGED
|
@@ -144,7 +144,8 @@ claude --resume # Resume previous session
|
|
|
144
144
|
| Python 3.14 | Base language runtime |
|
|
145
145
|
| Node.js LTS | JavaScript runtime |
|
|
146
146
|
| TypeScript | Via Node.js |
|
|
147
|
-
| Go |
|
|
147
|
+
| Go | Optional — uncomment Go feature in `devcontainer.json` to enable |
|
|
148
|
+
| Rust | Latest stable via devcontainer feature |
|
|
148
149
|
| Bun | Fast JavaScript runtime and toolkit |
|
|
149
150
|
|
|
150
151
|
### Package Managers
|
|
@@ -203,7 +204,9 @@ Copy `.devcontainer/.env.example` to `.devcontainer/.env` and customize:
|
|
|
203
204
|
| `SETUP_AUTH` | `true` | Configure Git/NPM auth from `.secrets` |
|
|
204
205
|
| `SETUP_PLUGINS` | `true` | Install official plugins + register marketplace |
|
|
205
206
|
| `SETUP_UPDATE_CLAUDE` | `true` | Auto-update Claude Code on container start |
|
|
207
|
+
| `SETUP_TERMINAL` | `true` | Configure VS Code Shift+Enter keybinding for Claude Code terminal |
|
|
206
208
|
| `SETUP_PROJECTS` | `true` | Auto-detect projects for VS Code Project Manager |
|
|
209
|
+
| `SETUP_POSTSTART` | `true` | Run post-start hooks from `/usr/local/devcontainer-poststart.d/` |
|
|
207
210
|
| `PLUGIN_BLACKLIST` | `""` | Comma-separated plugin names to skip |
|
|
208
211
|
|
|
209
212
|
### Claude Code Settings
|
|
@@ -243,11 +246,11 @@ For conflicting shortcuts, use Meta (Alt) variants or add custom keybindings.
|
|
|
243
246
|
|
|
244
247
|
### System Prompt
|
|
245
248
|
|
|
246
|
-
The default system prompt is in `.devcontainer/config/defaults/main-system-prompt.md`. Override it by creating a `.claude/system-prompt.md` in your project directory.
|
|
249
|
+
The default system prompt is in `.devcontainer/config/defaults/main-system-prompt.md`. Override it by creating a `.claude/main-system-prompt.md` in your project directory.
|
|
247
250
|
|
|
248
251
|
## Custom Features
|
|
249
252
|
|
|
250
|
-
CodeForge includes
|
|
253
|
+
CodeForge includes custom devcontainer features. Any feature can be disabled by setting `"version": "none"` in `devcontainer.json` — the entry stays in place for easy re-enabling. Each feature's README documents its options and dependencies.
|
|
251
254
|
|
|
252
255
|
| Feature | Description |
|
|
253
256
|
|---------|-------------|
|
|
@@ -261,13 +264,44 @@ CodeForge includes several custom devcontainer features:
|
|
|
261
264
|
| `tree-sitter` | Parser with JS/TS/Python grammars |
|
|
262
265
|
| `lsp-servers` | Pyright and TypeScript language servers |
|
|
263
266
|
| `biome` | Fast JS/TS/JSON/CSS formatter (global install) |
|
|
267
|
+
| `ruff` | Fast Python linter and formatter |
|
|
268
|
+
| `shfmt` | Shell script formatter (disabled by default) |
|
|
269
|
+
| `shellcheck` | Static analysis for shell scripts (disabled by default) |
|
|
270
|
+
| `hadolint` | Dockerfile linter (disabled by default) |
|
|
271
|
+
| `dprint` | Pluggable formatter for Markdown/YAML/TOML (disabled by default) |
|
|
272
|
+
| `ccms` | Claude Code session history search |
|
|
264
273
|
| `notify-hook` | Desktop notifications on Claude completion |
|
|
265
274
|
| `mcp-qdrant` | Qdrant vector database MCP server (optional) |
|
|
266
|
-
|
|
275
|
+
|
|
276
|
+
## Safety Plugins
|
|
277
|
+
|
|
278
|
+
| Plugin | Description |
|
|
279
|
+
|--------|-------------|
|
|
280
|
+
| `dangerous-command-blocker` | Blocks destructive bash commands (rm -rf, sudo rm, chmod 777, force push) |
|
|
281
|
+
| `protected-files-guard` | Blocks modifications to .env, lock files, .git/, and credentials |
|
|
282
|
+
| `workspace-scope-guard` | Enforces working directory scope — blocks writes and warns on reads outside the project |
|
|
283
|
+
|
|
284
|
+
### auto-code-quality (Not Active by Default)
|
|
285
|
+
|
|
286
|
+
A self-contained combined auto-formatter and auto-linter plugin available in the marketplace at `plugins/devs-marketplace/plugins/auto-code-quality/`. It bundles formatting and linting into a single plugin with a three-phase pipeline: collect edited files (PostToolUse), batch format (Stop), and batch lint (Stop). Supports the same languages as auto-formatter + auto-linter. **Do not enable alongside auto-formatter or auto-linter** — they overlap in functionality.
|
|
287
|
+
|
|
288
|
+
## Alias Management
|
|
289
|
+
|
|
290
|
+
Features create shell aliases during container build (e.g., `ccusage`, `ccburn`). Separately, `setup-aliases.sh` creates a managed block in `~/.bashrc` and `~/.zshrc` on every container start for `cc`, `claude`, `ccraw`, `ccw`, and `cc-tools`. Both coexist without conflict — feature aliases are installed at build time while setup aliases are refreshed at start time.
|
|
291
|
+
|
|
292
|
+
## Credential Management
|
|
293
|
+
|
|
294
|
+
Three methods for providing GitHub/NPM credentials, in order of precedence:
|
|
295
|
+
|
|
296
|
+
1. **Environment variables** — Set `GH_TOKEN`, `GH_USERNAME`, `GH_EMAIL`, `NPM_TOKEN` as environment variables (e.g., via Codespaces secrets or `localEnv` in `devcontainer.json`)
|
|
297
|
+
2. **`.secrets` file** — Create `.devcontainer/.secrets` with token values (see template at `.secrets.example`). Auto-configured by `setup-auth.sh` on container start
|
|
298
|
+
3. **Interactive login** — Run `gh auth login` for GitHub CLI, then set git identity manually
|
|
299
|
+
|
|
300
|
+
All methods persist across container rebuilds via the bind-mounted `/workspaces/.gh/` directory.
|
|
267
301
|
|
|
268
302
|
## Agents & Skills
|
|
269
303
|
|
|
270
|
-
The `code-directive` plugin includes
|
|
304
|
+
The `code-directive` plugin includes 17 custom agent definitions and 28 coding reference skills.
|
|
271
305
|
|
|
272
306
|
### Custom Agents (17)
|
|
273
307
|
|
|
@@ -293,11 +327,11 @@ Agent definitions in `plugins/devs-marketplace/plugins/code-directive/agents/` p
|
|
|
293
327
|
| `statusline-config` | ccstatusline configuration |
|
|
294
328
|
| `test-writer` | Test authoring with pass verification |
|
|
295
329
|
|
|
296
|
-
### Skills (
|
|
330
|
+
### Skills (28)
|
|
297
331
|
|
|
298
332
|
Skills in `plugins/devs-marketplace/plugins/code-directive/skills/` provide domain-specific coding references:
|
|
299
333
|
|
|
300
|
-
`claude-agent-sdk` · `claude-code-headless` · `debugging` · `docker` · `docker-py` · `fastapi` · `git-forensics` · `performance-profiling` · `pydantic-ai` · `refactoring-patterns` · `security-checklist` · `skill-building` · `spec-refine` · `specification-writing` · `sqlite` · `svelte5` · `testing`
|
|
334
|
+
`api-design` · `ast-grep-patterns` · `claude-agent-sdk` · `claude-code-headless` · `debugging` · `dependency-management` · `docker` · `docker-py` · `documentation-patterns` · `fastapi` · `git-forensics` · `migration-patterns` · `performance-profiling` · `pydantic-ai` · `refactoring-patterns` · `security-checklist` · `skill-building` · `spec-build` · `spec-check` · `spec-init` · `spec-new` · `spec-refine` · `spec-review` · `spec-update` · `specification-writing` · `sqlite` · `svelte5` · `testing`
|
|
301
335
|
|
|
302
336
|
## Specification Workflow
|
|
303
337
|
|
|
@@ -307,7 +341,7 @@ CodeForge includes a specification-driven development workflow. Every non-trivia
|
|
|
307
341
|
|
|
308
342
|
```bash
|
|
309
343
|
/spec-init # Bootstrap .specs/ directory (first time only)
|
|
310
|
-
/spec-new auth-flow
|
|
344
|
+
/spec-new auth-flow # Create a feature spec (domain is inferred)
|
|
311
345
|
/spec-refine auth-flow # Validate assumptions with user
|
|
312
346
|
# ... implement the feature ...
|
|
313
347
|
/spec-update auth-flow # As-built update after implementation
|
|
@@ -317,7 +351,7 @@ CodeForge includes a specification-driven development workflow. Every non-trivia
|
|
|
317
351
|
### The Lifecycle
|
|
318
352
|
|
|
319
353
|
1. **Backlog** — features live in `.specs/BACKLOG.md` with priority grades (P0–P3)
|
|
320
|
-
2. **
|
|
354
|
+
2. **Milestone** — when starting a milestone, pull features from backlog into `.specs/MILESTONES.md`
|
|
321
355
|
3. **Spec** — `/spec-new` creates a spec from the standard template with all requirements tagged `[assumed]`
|
|
322
356
|
4. **Refine** — `/spec-refine` walks through every assumption with the user, converting `[assumed]` → `[user-approved]`. The spec's approval status moves from `draft` → `user-approved`. **No implementation begins until approved.**
|
|
323
357
|
5. **Implement** — build the feature using the spec's acceptance criteria as the definition of done
|
|
@@ -337,26 +371,29 @@ A spec-reminder advisory hook fires at Stop when code was modified but specs wer
|
|
|
337
371
|
|
|
338
372
|
| Skill | Purpose |
|
|
339
373
|
|-------|---------|
|
|
340
|
-
| `/spec-init` | Bootstrap `.specs/` directory with
|
|
374
|
+
| `/spec-init` | Bootstrap `.specs/` directory with MILESTONES and BACKLOG |
|
|
341
375
|
| `/spec-new` | Create a feature spec from the standard template |
|
|
342
376
|
| `/spec-refine` | Validate assumptions and get user approval (required before implementation) |
|
|
343
377
|
| `/spec-update` | As-built update after implementation |
|
|
344
378
|
| `/spec-check` | Audit all specs for health issues |
|
|
379
|
+
| `/spec-build` | Orchestrate full implementation from an approved spec (plan, build, review, close) |
|
|
380
|
+
| `/spec-review` | Standalone deep implementation review against a spec |
|
|
345
381
|
| `/specification-writing` | EARS format templates and acceptance criteria patterns |
|
|
346
382
|
|
|
347
383
|
### Directory Structure
|
|
348
384
|
|
|
349
385
|
```
|
|
350
386
|
.specs/
|
|
351
|
-
├──
|
|
352
|
-
├── BACKLOG.md
|
|
353
|
-
├──
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
387
|
+
├── MILESTONES.md # Milestone tracker linking to feature specs
|
|
388
|
+
├── BACKLOG.md # Priority-graded feature backlog
|
|
389
|
+
├── auth/ # Domain folder
|
|
390
|
+
│ ├── login-flow.md # Feature spec
|
|
391
|
+
│ └── oauth.md # Feature spec
|
|
392
|
+
└── search/ # Domain folder
|
|
393
|
+
└── full-text.md # Feature spec
|
|
357
394
|
```
|
|
358
395
|
|
|
359
|
-
Specs aim for ~200 lines each
|
|
396
|
+
All specs live in domain subfolders. Specs aim for ~200 lines each; split into separate specs in the domain folder when longer.
|
|
360
397
|
|
|
361
398
|
## Project Manager
|
|
362
399
|
|
|
@@ -389,7 +426,7 @@ Common issues and solutions. For detailed troubleshooting, see [docs/troubleshoo
|
|
|
389
426
|
**CodeForge Documentation**:
|
|
390
427
|
- [Configuration Reference](docs/configuration-reference.md) — all env vars and config options
|
|
391
428
|
- [Plugin System](docs/plugins.md) — plugin architecture and per-plugin docs
|
|
392
|
-
- [Optional Features](docs/optional-features.md) — mcp-qdrant
|
|
429
|
+
- [Optional Features](docs/optional-features.md) — mcp-qdrant and other optional components
|
|
393
430
|
- [Keybinding Customization](docs/keybindings.md) — resolving VS Code conflicts
|
|
394
431
|
- [Troubleshooting](docs/troubleshooting.md) — common issues and solutions
|
|
395
432
|
|