Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .devcontainer/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,18 @@

### Fixed

#### Post-Integration Review Fixes
- **skill-engine** — worktree skill definition uses weighted tuples (was plain strings, caused crash)
- **dangerous-command-blocker** — fail closed on unexpected exceptions (was fail-open)
- **ticket-workflow** — remove redundant `ValueError` from exception handlers
- **workspace-scope-guard** — use maxsplit in variable assignment detection
- **Shell scripts** — add executable bit to `check-setup.sh`, quote `PLUGIN_BLACKLIST` variable, add `set -uo pipefail` to tmux installer, replace deprecated `which` with `command -v`, normalize `&>` redirects in setup scripts
- **Documentation** — update agent count to 21, skill count to 38, plugin count to 14 across all docs site pages
- **Documentation** — add missing plugin pages for git-workflow and prompt-snippets
- **Documentation** — add `cc-orc` and `dbr` to commands reference
- **Documentation** — remove merge conflict marker from first-session.md
- **Documentation** — update architecture.md directory tree with new plugins

#### CodeRabbit Review Fixes
- **`implementer.md`** — changed PostToolUse hook (fires every Edit) to Stop hook (fires once at task end) with 120s timeout; prevents redundant test runs during multi-file tasks
- **`tester.md`** — increased Stop hook timeout from 30s to 120s to accommodate larger test suites
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/connect-external-terminal.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ echo "Found container: $CONTAINER_NAME ($CONTAINER_ID)"
echo ""

# Check if tmux is available in the container
if ! docker exec "$CONTAINER_ID" which tmux >/dev/null 2>&1; then
if ! docker exec "$CONTAINER_ID" command -v tmux >/dev/null 2>&1; then
echo "ERROR: tmux is not installed in the container."
echo "Rebuild the devcontainer to install the tmux feature."
exit 1
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/features/tmux/install.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-only
# Copyright (c) 2026 Marcus Krueger
set -e
set -euo pipefail

VERSION="${VERSION:-latest}"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,9 +127,9 @@ def main():
# Fail closed: can't parse means can't verify safety
sys.exit(2)
except Exception as e:
# Log error but don't block on hook failure
# Fail closed: unexpected errors should block, not allow
print(f"Hook error: {e}", file=sys.stderr)
sys.exit(0)
sys.exit(2)


if __name__ == "__main__":
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -546,18 +546,19 @@
},
"worktree": {
"phrases": [
"create a worktree",
"work in a worktree",
"git worktree",
"worktree",
"parallel branches",
"isolate my work",
"clean up worktrees",
"list worktrees",
"set up a worktree",
"enter worktree",
("create a worktree", 0.9),
("work in a worktree", 0.8),
("git worktree", 0.9),
("worktree", 0.7),
("parallel branches", 0.6),
("isolate my work", 0.5),
("clean up worktrees", 0.8),
("list worktrees", 0.7),
("set up a worktree", 0.8),
("enter worktree", 0.8),
],
"terms": ["worktree", "EnterWorktree", "WorktreeCreate"],
"priority": 5,
},
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ def fetch_ticket(number: int) -> str | None:

try:
data = json.loads(result.stdout)
except (json.JSONDecodeError, ValueError):
except json.JSONDecodeError:
return None

title = data.get("title", "(no title)")
Expand Down Expand Up @@ -103,7 +103,7 @@ def main():

try:
data = json.loads(raw)
except (json.JSONDecodeError, ValueError):
except json.JSONDecodeError:
sys.exit(0)

prompt = data.get("prompt", "")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ def extract_primary_command(command: str) -> str:
while i < len(tokens):
tok = tokens[i]
# Skip inline variable assignments: VAR=value
if "=" in tok and not tok.startswith("-") and tok.split("=")[0].isidentifier():
if "=" in tok and not tok.startswith("-") and tok.split("=", 1)[0].isidentifier():
i += 1
continue
# Skip sudo and its flags
Expand Down
Empty file modified .devcontainer/scripts/check-setup.sh
100644 → 100755
Empty file.
2 changes: 1 addition & 1 deletion .devcontainer/scripts/setup-plugins.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ if [ -d "$MARKETPLACE_PATH/plugins" ]; then
plugin_name=$(basename "$plugin_dir")

# Skip blacklisted plugins
if echo ",$PLUGIN_BLACKLIST," | grep -q ",$plugin_name,"; then
if echo ",${PLUGIN_BLACKLIST}," | grep -q ",$plugin_name,"; then
echo "[setup-plugins] Skipping $plugin_name (blacklisted)"
continue
fi
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/scripts/setup-projects.sh
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ start_watcher() {
fi

# Check if inotifywait is available (installed by tmux feature at build time)
if ! command -v inotifywait &>/dev/null; then
if ! command -v inotifywait >/dev/null 2>&1; then
echo "$LOG_PREFIX WARNING: inotify-tools not installed, watcher disabled"
return 1
fi
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/scripts/setup-terminal.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ fi
# === Merge or create keybindings ===
BINDING='{"key":"shift+enter","command":"workbench.action.terminal.sendSequence","args":{"text":"\\u001b\\r"},"when":"terminalFocus"}'

if [ -f "$KEYBINDINGS_FILE" ] && command -v jq &>/dev/null; then
if [ -f "$KEYBINDINGS_FILE" ] && command -v jq >/dev/null 2>&1; then
# Merge into existing keybindings
if jq empty "$KEYBINDINGS_FILE" 2>/dev/null; then
jq ". + [$BINDING]" "$KEYBINDINGS_FILE" >"$KEYBINDINGS_FILE.tmp" &&
Expand Down
4 changes: 2 additions & 2 deletions docs/src/content/docs/features/agents.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: Agents
description: Complete reference for all 17 CodeForge agents — capabilities, tool access, and use cases.
description: Complete reference for all 21 CodeForge agents — capabilities, tool access, and use cases.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Agent count claim and on-page reference content are out of sync.

Lines 3/8 now state 21 agents, but the detailed reference matrix/sections in this page still cover fewer agents. Please reconcile by adding the missing agent docs or adjusting the claim until the full set is documented.

As per coding guidelines, user-facing documentation changes must be reflected accurately in relevant pages under docs/.

Also applies to: 8-8

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/src/content/docs/features/agents.md` at line 3, The frontmatter claim
"description: Complete reference for all 21 CodeForge agents" is out of sync
with the page content; either add the missing agent documentation entries to the
reference matrix and detailed sections or reduce the number in the description
to match the documented agents. Update the page content by adding the missing
agent sections (names, capabilities, tools, and use cases) to the existing
reference matrix and detail blocks, and ensure any index lists, navigation
anchors, and counts are updated accordingly so the on-page agent count and the
"description" text remain consistent.

sidebar:
order: 2
---

CodeForge provides 17 specialized agents, each configured with a focused system prompt, specific tool access, and domain expertise. Claude automatically delegates to the appropriate agent based on your request — ask about architecture and you get the architect; ask for a security review and you get the security auditor.
CodeForge provides 21 specialized agents, each configured with a focused system prompt, specific tool access, and domain expertise. Claude automatically delegates to the appropriate agent based on your request — ask about architecture and you get the architect; ask for a security review and you get the security auditor.

## How Agents Work

Expand Down
30 changes: 15 additions & 15 deletions docs/src/content/docs/features/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,24 @@ This section is your reference guide to everything CodeForge provides. Whether y

Out of the box, CodeForge gives you:

- **17 specialized AI agents** with focused expertise and safety-calibrated tool access
- **34 domain knowledge packs** (skills) for frameworks, patterns, and workflows
- **21 CLI tools** for session management, code quality, and development
- **21 specialized AI agents** with focused expertise and safety-calibrated tool access
- **38 domain knowledge packs** (skills) for frameworks, patterns, and workflows
- **22 CLI tools** for session management, code quality, and development
- **3 layers of code intelligence** — AST-based search, syntax parsing, and LSP semantic analysis
- **12 plugins** that wire everything together with hooks, guards, and automation
- **14 plugins** that wire everything together with hooks, guards, and automation

All of these features work together. An agent can load skills for domain expertise, use CLI tools for code quality checks, and leverage code intelligence for precise navigation — all orchestrated automatically.

## AI Agents

CodeForge includes **17 specialized AI agents**, each with focused expertise, calibrated tool access, and a detailed system prompt that shapes its behavior. When you ask Claude a question, the agent system automatically delegates to the right specialist — an architect for design questions, a security auditor for vulnerability reviews, a test writer for coverage gaps.
CodeForge includes **21 specialized AI agents**, each with focused expertise, calibrated tool access, and a detailed system prompt that shapes its behavior. When you ask Claude a question, the agent system automatically delegates to the right specialist — an architect for design questions, a security auditor for vulnerability reviews, a test writer for coverage gaps.

Agents fall into two categories:

- **Read-only agents** (10 total) — can search, read, and analyze your codebase but never modify it. These include the architect, explorer, security auditor, researcher, dependency analyst, and spec-writer.
- **Full-access agents** (7 total) — can read, write, and execute commands. These include the test writer, refactorer, migrator, doc writer, and generalist.
- **Read-only agents** (11 total) — can search, read, and analyze your codebase but never modify it. These include the architect, explorer, investigator, security auditor, researcher, dependency analyst, and spec-writer.
- **Full-access agents** (10 total) — can read, write, and execute commands. These include the implementer, tester, documenter, test writer, refactorer, migrator, doc writer, and generalist.

A key distinction: CodeForge doesn't just add new agents — it **replaces Claude Code's six built-in agent types entirely**. A `PreToolUse` hook intercepts every agent spawn and transparently redirects stock agents (Explore, Plan, general-purpose, Bash, claude-code-guide, statusline-setup) to enhanced custom specialists with frontloaded skills, calibrated models, and safety hooks. You never interact with a generic agent — every request is silently upgraded. The remaining 11 agents (test-writer, refactorer, security-auditor, and others) are entirely new specialists with no built-in equivalent.
A key distinction: CodeForge doesn't just add new agents — it **replaces Claude Code's six built-in agent types entirely**. A `PreToolUse` hook intercepts every agent spawn and transparently redirects stock agents (Explore, Plan, general-purpose, Bash, claude-code-guide, statusline-setup) to enhanced custom specialists with frontloaded skills, calibrated models, and safety hooks. You never interact with a generic agent — every request is silently upgraded. The remaining 15 agents (test-writer, refactorer, security-auditor, and others) are entirely new specialists with no built-in equivalent.

Key safety features set CodeForge agents apart:

Expand All @@ -39,11 +39,11 @@ Key safety features set CodeForge agents apart:
- **Hook enforcement** — read-only agents have bash guards that block any command that could modify files. The refactorer runs tests after every single edit. The test writer verifies all tests pass before completing.
- **Built-in replacement** — all six of Claude Code's stock agents are intercepted at the hook level and replaced with strictly better specialists. This is enforced, not suggested.

[View all 17 agents →](./agents/)
[View all 21 agents →](./agents/)

## Skills

**34 domain-specific knowledge packs** give Claude deep expertise in frameworks, patterns, and workflows. The skill engine provides 21 core skills covering frameworks, practices, and Claude/CodeForge topics. Additional skills come from the spec-workflow (8), ticket-workflow (4), and agent-system (1) plugins. When you start discussing FastAPI routes or Svelte 5 runes, the skill engine detects the context and auto-suggests the relevant skill. Once loaded, the skill injects structured knowledge — best practices, code patterns, API references, and common pitfalls — directly into Claude's context for the current task.
**38 domain-specific knowledge packs** give Claude deep expertise in frameworks, patterns, and workflows. The skill engine provides 22 core skills covering frameworks, practices, and Claude/CodeForge topics. Additional skills come from the spec-workflow (8), ticket-workflow (4), git-workflow (2), agent-system (1), and prompt-snippets (1) plugins. When you start discussing FastAPI routes or Svelte 5 runes, the skill engine detects the context and auto-suggests the relevant skill. Once loaded, the skill injects structured knowledge — best practices, code patterns, API references, and common pitfalls — directly into Claude's context for the current task.

Each skill is built around a "mental model" — a concise explanation of how a technology works, followed by concrete patterns, code examples, and guidance. This is not generic documentation; skills encode the kind of working knowledge a senior specialist carries.

Expand All @@ -55,11 +55,11 @@ Skills cover three categories:
| **Practices** | Testing, Debugging, Security, Refactoring, API Design | Methodology, checklists, and established patterns |
| **Claude & CodeForge** | Agent SDK, Headless Mode, Skill Building, Spec Writing | Guidance for building on and extending CodeForge itself |

[View all 34 skills →](./skills/)
[View all 38 skills →](./skills/)

## CLI Tools

CodeForge pre-installs **21 tools and utilities** covering session management, code quality, language runtimes, and development infrastructure. Every tool is available on your `PATH` from the first terminal session — run `cc-tools` to see everything installed and its version.
CodeForge pre-installs **22 tools and utilities** covering session management, code quality, language runtimes, and development infrastructure. Every tool is available on your `PATH` from the first terminal session — run `cc-tools` to see everything installed and its version.

Highlights include:

Expand Down Expand Up @@ -89,9 +89,9 @@ CodeForge installs LSP servers for Python (Pyright), TypeScript/JavaScript, and

| Category | Count | Highlights |
|----------|-------|------------|
| [Agents](./agents/) | 17 | Architect, Explorer, Security Auditor, Test Writer, Refactorer, and 12 more |
| [Skills](./skills/) | 34 | FastAPI, Svelte 5, Docker, Testing, Debugging, Security, and 28 more |
| [CLI Tools](./tools/) | 21 | Session search, token tracking, code quality, formatters, and runtimes |
| [Agents](./agents/) | 21 | Architect, Explorer, Security Auditor, Test Writer, Refactorer, and 16 more |
| [Skills](./skills/) | 38 | FastAPI, Svelte 5, Docker, Testing, Debugging, Security, and 32 more |
| [CLI Tools](./tools/) | 22 | Session search, token tracking, code quality, formatters, and runtimes |
| [Code Intelligence](./code-intelligence/) | 3 | ast-grep, tree-sitter, LSP servers for Python/TS/Go |

## How Features Are Delivered
Expand Down
2 changes: 1 addition & 1 deletion docs/src/content/docs/features/skills.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Skills
description: Complete reference for all 22 CodeForge skills — domain knowledge packs for frameworks, patterns, and workflows.
description: Complete reference for all 38 CodeForge skills — domain knowledge packs for frameworks, patterns, and workflows.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

“Complete reference for all 38 skills” overstates current page content.

Line 3 claims full coverage of all 38 skills, but this page currently documents a smaller subset. Please either add the missing skill entries or soften the description to avoid a false completeness claim.

Suggested wording fallback
-description: Complete reference for all 38 CodeForge skills — domain knowledge packs for frameworks, patterns, and workflows.
+description: Reference for CodeForge skills — domain knowledge packs for frameworks, patterns, and workflows.

As per coding guidelines, user-facing documentation changes must be reflected accurately in relevant pages under docs/.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
description: Complete reference for all 38 CodeForge skills — domain knowledge packs for frameworks, patterns, and workflows.
description: Reference for CodeForge skills — domain knowledge packs for frameworks, patterns, and workflows.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/src/content/docs/features/skills.md` at line 3, Update the front-matter
description line in docs/src/content/docs/features/skills.md to accurately
reflect the current content: either add the missing skill entries to fully
document all 38 skills or change the description string ("description: Complete
reference for all 38 CodeForge skills — domain knowledge packs for frameworks,
patterns, and workflows.") to a softened phrasing (e.g., "Overview of available
CodeForge skills" or "Reference for the documented subset of CodeForge skills")
so the page doesn't claim complete coverage; ensure the revised text is saved in
the file's description field and that any linked docs pages are updated
consistently.

sidebar:
order: 3
---
Expand Down
7 changes: 3 additions & 4 deletions docs/src/content/docs/getting-started/first-session.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ If something isn't working as expected in a CodeForge session, try `ccraw` to se
When your session starts, several systems activate behind the scenes. You don't need to configure any of this — it just works.

- **System prompt** — gives Claude context about your project, coding standards, and how to communicate. Customizable via [System Prompts](../customization/system-prompts/).
- **Plugin hooks** — 12 plugins fire automatically at key moments: blocking dangerous commands, guarding workspace scope, injecting git state, running code quality checks, and more. See the [Plugins Overview](../plugins/) for details on each one.
- **Plugin hooks** — 14 plugins fire automatically at key moments: blocking dangerous commands, guarding workspace scope, injecting git state, running code quality checks, and more. See the [Plugins Overview](../plugins/) for details on each one.
- **Session context** — Claude always knows your current branch, uncommitted changes, recent commits, and active TODOs without you having to explain it.

## What to Try First
Expand Down Expand Up @@ -96,15 +96,14 @@ claude-dashboard

## Agents and Skills

CodeForge includes **17 specialized agents** and **34 skills** that activate automatically based on what you're working on. You don't need to memorize names — just describe what you want, and Claude delegates to the right specialist. The examples in "What to Try First" above show this in action.
CodeForge includes **21 specialized agents** and **38 skills** that activate automatically based on what you're working on. You don't need to memorize names — just describe what you want, and Claude delegates to the right specialist. The examples in "What to Try First" above show this in action.

- **[Agents](../features/agents/)** — specialized AI personas for architecture, debugging, testing, security, migrations, and more
- **[Skills](../features/skills/)** — domain-specific knowledge packs (FastAPI, Docker, Svelte, debugging patterns, etc.) that the skill engine suggests automatically or you invoke with slash commands like `/spec-new`

## Understanding the Status Line

If your terminal supports it, CodeForge provides a status line that shows session information at a glance. The `ccstatusline` feature adds session metadata to your terminal prompt, so you always know which session you're in and its current state.
>>>>>>> b9f14e6 (Add worktree skill for git worktree lifecycle guidance)

## Tips for Effective Sessions

Expand All @@ -127,7 +126,7 @@ The session context plugin reminds you to commit when there are significant unco
## Next Steps

- [Plugins Overview](../plugins/) — understand how each plugin enhances your workflow
- [Agents](../features/agents/) — explore all 17 specialized agents in detail
- [Agents](../features/agents/) — explore all 21 specialized agents in detail
- [Skills](../features/skills/) — browse the complete skill catalog
- [Configuration](../customization/configuration/) — customize CodeForge to match your preferences
- [Commands Reference](../reference/commands/) — full reference for all CLI commands
Loading
Loading