codeforge-dev 1.13.0 → 1.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/.devcontainer/CHANGELOG.md +146 -4
  2. package/.devcontainer/CLAUDE.md +61 -276
  3. package/.devcontainer/README.md +1 -1
  4. package/.devcontainer/config/defaults/ccstatusline-settings.json +147 -0
  5. package/.devcontainer/config/defaults/main-system-prompt.md +6 -1
  6. package/.devcontainer/config/defaults/rules/spec-workflow.md +1 -55
  7. package/.devcontainer/config/file-manifest.json +14 -0
  8. package/.devcontainer/devcontainer.json +19 -1
  9. package/.devcontainer/docs/optional-features.md +0 -65
  10. package/.devcontainer/docs/plugins.md +38 -23
  11. package/.devcontainer/features/ast-grep/devcontainer-feature.json +0 -1
  12. package/.devcontainer/features/biome/install.sh +13 -0
  13. package/.devcontainer/features/ccburn/devcontainer-feature.json +0 -6
  14. package/.devcontainer/features/ccms/devcontainer-feature.json +0 -1
  15. package/.devcontainer/features/ccms/install.sh +1 -1
  16. package/.devcontainer/features/ccstatusline/devcontainer-feature.json +0 -1
  17. package/.devcontainer/features/ccstatusline/install.sh +17 -115
  18. package/.devcontainer/features/ccusage/devcontainer-feature.json +0 -6
  19. package/.devcontainer/features/chromaterm/README.md +42 -0
  20. package/.devcontainer/features/chromaterm/chromaterm.yml +35 -0
  21. package/.devcontainer/features/chromaterm/devcontainer-feature.json +22 -0
  22. package/.devcontainer/features/chromaterm/install.sh +113 -0
  23. package/.devcontainer/features/claude-monitor/devcontainer-feature.json +0 -6
  24. package/.devcontainer/features/claude-session-dashboard/README.md +2 -2
  25. package/.devcontainer/features/claude-session-dashboard/devcontainer-feature.json +2 -4
  26. package/.devcontainer/features/claude-session-dashboard/install.sh +2 -2
  27. package/.devcontainer/features/kitty-terminfo/README.md +32 -0
  28. package/.devcontainer/features/kitty-terminfo/devcontainer-feature.json +13 -0
  29. package/.devcontainer/features/kitty-terminfo/install.sh +72 -0
  30. package/.devcontainer/features/lsp-servers/devcontainer-feature.json +0 -1
  31. package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +0 -7
  32. package/.devcontainer/features/shellcheck/install.sh +6 -2
  33. package/.devcontainer/features/tree-sitter/devcontainer-feature.json +0 -7
  34. package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +37 -69
  35. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/.claude-plugin/plugin.json +0 -1
  36. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/README.md +197 -0
  37. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/architect.md +3 -1
  38. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/bash-exec.md +3 -0
  39. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/claude-guide.md +4 -1
  40. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/debug-logs.md +6 -1
  41. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/dependency-analyst.md +5 -1
  42. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/doc-writer.md +4 -1
  43. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/explorer.md +3 -1
  44. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/generalist.md +9 -1
  45. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/git-archaeologist.md +3 -0
  46. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/migrator.md +4 -1
  47. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/perf-profiler.md +4 -1
  48. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/refactorer.md +5 -1
  49. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/researcher.md +5 -1
  50. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/security-auditor.md +4 -1
  51. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/spec-writer.md +3 -1
  52. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/statusline-config.md +4 -1
  53. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/test-writer.md +4 -1
  54. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/hooks/hooks.json +23 -1
  55. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/guard-readonly-bash.py +2 -2
  56. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/inject-cwd.py +7 -4
  57. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/task-completed-check.py +166 -0
  58. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/teammate-idle-check.py +81 -0
  59. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/verify-no-regression.py +14 -10
  60. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/verify-tests-pass.py +2 -14
  61. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/README.md +17 -31
  62. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/hooks/hooks.json +5 -1
  63. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/scripts/advisory-test-runner.py +9 -8
  64. package/.devcontainer/plugins/devs-marketplace/plugins/codeforge-lsp/README.md +28 -0
  65. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/README.md +28 -0
  66. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/block-dangerous.py +2 -2
  67. package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/README.md +28 -0
  68. package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/hooks/hooks.json +0 -1
  69. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/README.md +28 -0
  70. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected-bash.py +1 -1
  71. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +2 -2
  72. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/.claude-plugin/plugin.json +0 -1
  73. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/README.md +140 -0
  74. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/hooks/hooks.json +0 -1
  75. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/commit-reminder.py +3 -2
  76. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/git-state-injector.py +18 -2
  77. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/todo-harvester.py +9 -1
  78. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/.claude-plugin/plugin.json +0 -1
  79. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/README.md +158 -0
  80. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/hooks/hooks.json +1 -14
  81. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/scripts/skill-suggester.py +189 -100
  82. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/api-design/SKILL.md +9 -6
  83. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/ast-grep-patterns/SKILL.md +7 -6
  84. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/claude-agent-sdk/SKILL.md +8 -8
  85. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/claude-code-headless/SKILL.md +8 -9
  86. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/debugging/SKILL.md +11 -7
  87. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/dependency-management/SKILL.md +10 -6
  88. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/docker/SKILL.md +8 -8
  89. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/docker-py/SKILL.md +9 -7
  90. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/documentation-patterns/SKILL.md +7 -6
  91. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/fastapi/SKILL.md +9 -8
  92. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/git-forensics/SKILL.md +11 -9
  93. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/migration-patterns/SKILL.md +7 -6
  94. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/performance-profiling/SKILL.md +10 -8
  95. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/pydantic-ai/SKILL.md +8 -7
  96. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/refactoring-patterns/SKILL.md +9 -8
  97. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/security-checklist/SKILL.md +9 -8
  98. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/skill-building/SKILL.md +7 -7
  99. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/sqlite/SKILL.md +9 -7
  100. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/svelte5/SKILL.md +7 -8
  101. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/team/SKILL.md +71 -5
  102. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/testing/SKILL.md +10 -7
  103. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/.claude-plugin/plugin.json +0 -1
  104. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/README.md +192 -0
  105. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/hooks/hooks.json +0 -1
  106. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/scripts/spec-reminder.py +3 -2
  107. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-build/SKILL.md +9 -6
  108. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-check/SKILL.md +10 -5
  109. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-init/SKILL.md +8 -4
  110. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-new/SKILL.md +8 -4
  111. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-refine/SKILL.md +10 -7
  112. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-review/SKILL.md +10 -6
  113. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-update/SKILL.md +10 -5
  114. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/specification-writing/SKILL.md +9 -9
  115. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/plugin.json +1 -2
  116. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/README.md +28 -0
  117. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/hooks/hooks.json +0 -1
  118. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/scripts/ticket-linker.py +9 -1
  119. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/README.md +104 -32
  120. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/hooks/hooks.json +49 -3
  121. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/guard-workspace-scope.py +269 -56
  122. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/inject-workspace-cwd.py +44 -0
  123. package/.devcontainer/scripts/setup-aliases.sh +13 -5
  124. package/.devcontainer/scripts/setup-config.sh +1 -0
  125. package/README.md +5 -5
  126. package/package.json +6 -2
  127. package/setup.js +3 -2
  128. package/.devcontainer/.env +0 -33
  129. package/.devcontainer/features/README.md +0 -126
  130. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/.claude-plugin/plugin.json +0 -7
  131. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/README.md +0 -81
  132. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/hooks/hooks.json +0 -17
  133. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/__pycache__/format-on-stop.cpython-314.pyc +0 -0
  134. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/format-on-stop.py +0 -297
  135. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/.claude-plugin/plugin.json +0 -7
  136. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/README.md +0 -92
  137. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/hooks/hooks.json +0 -17
  138. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/__pycache__/lint-file.cpython-314.pyc +0 -0
  139. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/lint-file.py +0 -536
  140. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/__pycache__/block-dangerous.cpython-314.pyc +0 -0
  141. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/__pycache__/guard-protected.cpython-314.pyc +0 -0
  142. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/system-prompt.md +0 -184
  143. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/__pycache__/guard-workspace-scope.cpython-314.pyc +0 -0
  144. /package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/{.claude-plugin/commands/debug.md → skills/debug/SKILL.md} +0 -0
  145. /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272create-pr.md" → skills/ticketcreate-pr/SKILL.md} +0 -0
  146. /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272new.md" → skills/ticketnew/SKILL.md} +0 -0
  147. /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272review-commit.md" → skills/ticketreview-commit/SKILL.md} +0 -0
  148. /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272work.md" → skills/ticketwork/SKILL.md} +0 -0
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ CWD context injector — injects working directory into Claude's context
4
+ on every session start, user prompt, tool call, and subagent spawn.
5
+
6
+ Fires on: SessionStart, UserPromptSubmit, PreToolUse, SubagentStart
7
+ Always exits 0 (advisory, never blocking).
8
+ """
9
+
10
+ import json
11
+ import os
12
+ import sys
13
+
14
+
15
+ def main():
16
+ cwd = os.getcwd()
17
+ try:
18
+ input_data = json.load(sys.stdin)
19
+ # Some hook events provide cwd override
20
+ cwd = input_data.get("cwd", cwd)
21
+ hook_event = input_data.get("hook_event_name", "PreToolUse")
22
+ except (json.JSONDecodeError, ValueError):
23
+ hook_event = "PreToolUse"
24
+
25
+ context = (
26
+ f"Working Directory: {cwd}\n"
27
+ f"All file operations and commands MUST target paths within {cwd}. "
28
+ f"Do not read, write, or execute commands against paths outside this directory."
29
+ )
30
+
31
+ json.dump(
32
+ {
33
+ "hookSpecificOutput": {
34
+ "hookEventName": hook_event,
35
+ "additionalContext": context,
36
+ }
37
+ },
38
+ sys.stdout,
39
+ )
40
+ sys.exit(0)
41
+
42
+
43
+ if __name__ == "__main__":
44
+ main()
@@ -70,6 +70,7 @@ for rc in ~/.bashrc ~/.zshrc; do
70
70
 
71
71
  ${BLOCK_START}
72
72
  export CLAUDE_CONFIG_DIR="${CLAUDE_CONFIG_DIR}"
73
+ export GH_CONFIG_DIR="${GH_CONFIG_DIR:-/workspaces/.gh}"
73
74
  export LANG=en_US.UTF-8
74
75
  export LC_ALL=en_US.UTF-8
75
76
 
@@ -82,10 +83,17 @@ else
82
83
  _CLAUDE_BIN=claude
83
84
  fi
84
85
 
85
- alias cc='CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 command "\$_CLAUDE_BIN" --system-prompt-file "\$CLAUDE_CONFIG_DIR/main-system-prompt.md" --permission-mode plan --allow-dangerously-skip-permissions'
86
- alias claude='CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 command "\$_CLAUDE_BIN" --system-prompt-file "\$CLAUDE_CONFIG_DIR/main-system-prompt.md" --permission-mode plan --allow-dangerously-skip-permissions'
86
+ # ChromaTerm wrapper (if ct is installed, wrap claude through it)
87
+ if command -v ct >/dev/null 2>&1; then
88
+ _CLAUDE_WRAP="ct"
89
+ else
90
+ _CLAUDE_WRAP="command"
91
+ fi
92
+
93
+ alias cc='CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 "\$_CLAUDE_WRAP" "\$_CLAUDE_BIN" --system-prompt-file "\$CLAUDE_CONFIG_DIR/main-system-prompt.md" --permission-mode plan --allow-dangerously-skip-permissions'
94
+ alias claude='CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 "\$_CLAUDE_WRAP" "\$_CLAUDE_BIN" --system-prompt-file "\$CLAUDE_CONFIG_DIR/main-system-prompt.md" --permission-mode plan --allow-dangerously-skip-permissions'
87
95
  alias ccraw='command "\$_CLAUDE_BIN"'
88
- alias ccw='CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 command "\$_CLAUDE_BIN" --system-prompt-file "\$CLAUDE_CONFIG_DIR/writing-system-prompt.md" --permission-mode plan --allow-dangerously-skip-permissions'
96
+ alias ccw='CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 "\$_CLAUDE_WRAP" "\$_CLAUDE_BIN" --system-prompt-file "\$CLAUDE_CONFIG_DIR/writing-system-prompt.md" --permission-mode plan --allow-dangerously-skip-permissions'
89
97
 
90
98
  cc-tools() {
91
99
  echo "CodeForge Available Tools"
@@ -93,9 +101,9 @@ cc-tools() {
93
101
  printf " %-20s %s\n" "COMMAND" "STATUS"
94
102
  echo " ────────────────────────────────────"
95
103
  for cmd in claude cc ccw ccraw ccusage ccburn claude-monitor \\
96
- ccms cargo ruff biome dprint shfmt shellcheck hadolint \\
104
+ ccms ct cargo ruff biome dprint shfmt shellcheck hadolint \\
97
105
  ast-grep tree-sitter pyright typescript-language-server \\
98
- agent-browser gh docker git jq tmux bun go; do
106
+ agent-browser gh docker git jq tmux bun go infocmp; do
99
107
  if command -v "\$cmd" >/dev/null 2>&1; then
100
108
  ver=\$("\$cmd" --version 2>/dev/null | head -1 || echo "installed")
101
109
  printf " %-20s ✓ %s\n" "\$cmd" "\$ver"
@@ -45,6 +45,7 @@ expand_vars() {
45
45
  local val="$1"
46
46
  val="${val//\$\{CLAUDE_CONFIG_DIR\}/$CLAUDE_CONFIG_DIR}"
47
47
  val="${val//\$\{WORKSPACE_ROOT\}/$WORKSPACE_ROOT}"
48
+ val="${val//\$\{HOME\}/$HOME}"
48
49
  # Warn on any remaining unresolved ${...} tokens
49
50
  if [[ "$val" =~ \$\{[^}]+\} ]]; then
50
51
  warn "Unresolved variable in: $val"
package/README.md CHANGED
@@ -66,13 +66,13 @@ tree-sitter (JS/TS/Python), ast-grep, Pyright, TypeScript LSP
66
66
 
67
67
  `claude`, `cc` (wrapper), `ccw` (writing mode wrapper), `ccusage`, `ccburn`, `ccstatusline`, `claude-monitor`
68
68
 
69
- ### Custom Features (18)
69
+ ### Custom Features (21)
70
70
 
71
- tmux, agent-browser, claude-monitor, ccusage, ccburn, ccstatusline, ast-grep, tree-sitter, lsp-servers, biome, ruff, shfmt, shellcheck, hadolint, dprint, ccms, notify-hook, mcp-qdrant
71
+ tmux, agent-browser, claude-monitor, ccusage, ccburn, ccstatusline, ast-grep, tree-sitter, lsp-servers, biome, ruff, shfmt, shellcheck, hadolint, dprint, ccms, notify-hook, mcp-qdrant, chromaterm, kitty-terminfo, claude-session-dashboard
72
72
 
73
- ### Agents (17) & Skills (28)
73
+ ### Agents (17) & Skills (34)
74
74
 
75
- The `code-directive` plugin includes 17 specialized agents (architect, explorer, test-writer, security-auditor, etc.) and 28 domain-specific coding reference skills (fastapi, svelte5, docker, testing, spec-workflow, security-checklist, etc.).
75
+ The `agent-system` plugin includes 17 specialized agents (architect, explorer, test-writer, security-auditor, etc.). The `skill-engine` plugin provides 21 general coding skills, `spec-workflow` adds 8 spec lifecycle skills, and `ticket-workflow` provides 4 ticket management skills.
76
76
 
77
77
  ## Quick Start
78
78
 
@@ -102,7 +102,7 @@ npm publish
102
102
 
103
103
  ## Changelog
104
104
 
105
- See [CHANGELOG.md](.devcontainer/CHANGELOG.md) for release history. Current version: **1.12.0** (2026-02-18).
105
+ See [CHANGELOG.md](.devcontainer/CHANGELOG.md) for release history. Current version: **1.14.0** (2026-02-23).
106
106
 
107
107
  ## Further Reading
108
108
 
package/package.json CHANGED
@@ -1,13 +1,17 @@
1
1
  {
2
2
  "name": "codeforge-dev",
3
- "version": "1.13.0",
3
+ "version": "1.14.2",
4
4
  "description": "Complete development container that sets up Claude Code with modular devcontainer features, modern dev tools, and persistent configurations. Drop it into any project and get a production-ready AI development environment in minutes.",
5
5
  "main": "setup.js",
6
6
  "bin": {
7
7
  "codeforge": "setup.js"
8
8
  },
9
9
  "scripts": {
10
- "test": "node test.js"
10
+ "test": "node test.js",
11
+ "prepublishOnly": "npm test",
12
+ "docs:dev": "npm run dev --prefix docs",
13
+ "docs:build": "npm run build --prefix docs",
14
+ "docs:preview": "npm run preview --prefix docs"
11
15
  },
12
16
  "keywords": [
13
17
  "devcontainer",
package/setup.js CHANGED
@@ -10,6 +10,7 @@ const DEFAULT_PRESERVE = [
10
10
  "config/defaults/settings.json",
11
11
  "config/defaults/main-system-prompt.md",
12
12
  "config/defaults/keybindings.json",
13
+ "config/defaults/ccstatusline-settings.json",
13
14
  "config/file-manifest.json",
14
15
  ".codeforge-preserve",
15
16
  ];
@@ -244,8 +245,8 @@ function printNextSteps() {
244
245
  function printFeatures() {
245
246
  console.log("Features included:");
246
247
  console.log(" - Claude Code CLI with optimized tool configuration");
247
- console.log(" - MCP servers: Qdrant (vector memory), Reasoner");
248
- console.log(" - Development tools: Node.js LTS, Python 3.14, Go, Bun");
248
+ console.log(" - MCP servers: Qdrant (vector memory)");
249
+ console.log(" - Development tools: Node.js LTS, Python 3.14, Rust, Bun");
249
250
  console.log(" - Persistent configuration and shell history");
250
251
  console.log("");
251
252
  }
@@ -1,33 +0,0 @@
1
- # CodeForge 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: add cc alias to shell rc files
12
- SETUP_ALIASES=true
13
-
14
- # Setup: configure Git and NPM auth from .secrets file
15
- SETUP_AUTH=true
16
-
17
- # Setup: install official Anthropic plugins
18
- SETUP_PLUGINS=true
19
-
20
- # Setup: auto-update Claude Code CLI to latest on container start (runs in background)
21
- SETUP_UPDATE_CLAUDE=true
22
-
23
- # Setup: configure VS Code Shift+Enter keybinding for Claude Code terminal
24
- SETUP_TERMINAL=true
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
-
32
- # Plugin blacklist (comma-separated plugin names to skip during auto-install)
33
- PLUGIN_BLACKLIST=""
@@ -1,126 +0,0 @@
1
- # CodeForge DevContainer Features
2
-
3
- This directory contains DevContainer Features for AI coding agent environments. These features follow the [DevContainer Features specification](https://containers.dev/implementors/features/) and can be published to OCI registries for distribution.
4
-
5
- ## Available Features
6
-
7
- | Feature | Description | Status |
8
- |---------|-------------|--------|
9
- | `tmux` | Terminal multiplexer with Catppuccin theme for Agent Teams | ✅ |
10
- | `agent-browser` | Headless browser automation for AI agents | ✅ |
11
- | `claude-monitor` | Real-time token usage monitoring | ✅ |
12
- | `ccusage` | Token usage analytics CLI | ✅ |
13
- | `ccburn` | Visual token burn rate tracker with pace indicators | ✅ |
14
- | `ccstatusline` | 6-line powerline status display (v1.1.0) | ✅ |
15
- | `ast-grep` | Structural code search using AST patterns | ✅ |
16
- | `tree-sitter` | Parser with JS/TS/Python grammars | ✅ |
17
- | `lsp-servers` | Pyright and TypeScript language servers | ✅ |
18
- | `biome` | Fast JS/TS/JSON/CSS formatter | ✅ |
19
- | `ruff` | Fast Python linter and formatter | ✅ |
20
- | `shfmt` | Shell script formatter | ✅ (disabled by default) |
21
- | `shellcheck` | Static analysis for shell scripts | ✅ (disabled by default) |
22
- | `hadolint` | Dockerfile linter | ✅ (disabled by default) |
23
- | `dprint` | Pluggable formatter for Markdown/YAML/TOML | ✅ (disabled by default) |
24
- | `ccms` | Claude Code session history search | ✅ |
25
- | `notify-hook` | Desktop notifications on Claude completion | ✅ |
26
- | `mcp-qdrant` | Qdrant vector database MCP server | ✅ (optional) |
27
- | `claude-code` | Fallback config for Anthropic's official Claude Code feature | ✅ (config only) |
28
-
29
- > **Note**: Claude Code itself is installed via `ghcr.io/anthropics/devcontainer-features/claude-code:1` (Anthropic's official feature). The local `claude-code/` directory provides only fallback configuration.
30
-
31
- ## Feature Structure
32
-
33
- Each feature follows this structure:
34
-
35
- ```
36
- feature-name/
37
- ├── devcontainer-feature.json # Feature metadata and options
38
- ├── install.sh # Installation script (executable)
39
- └── README.md # Feature documentation
40
- ```
41
-
42
- ## Development Workflow
43
-
44
- ### Creating a New Feature
45
-
46
- 1. **Create directory**: `mkdir features/feature-name`
47
- 2. **Add metadata**: Create `devcontainer-feature.json`
48
- 3. **Write installer**: Create `install.sh` (make executable)
49
- 4. **Document**: Create `README.md`
50
- 5. **Test locally**: Reference in devcontainer.json
51
-
52
- ### Local Testing
53
-
54
- To test a feature locally before publishing:
55
-
56
- ```json
57
- {
58
- "features": {
59
- "./features/feature-name": {
60
- "option1": "value1"
61
- }
62
- }
63
- }
64
- ```
65
-
66
- ### Publishing Features
67
-
68
- Features will be published to GitHub Container Registry (GHCR):
69
-
70
- ```
71
- ghcr.io/yourorg/codeforge-features/feature-name:1
72
- ```
73
-
74
- **Publishing workflow** (future):
75
- - Push to main branch
76
- - GitHub Actions builds and publishes
77
- - Tags create versioned releases
78
-
79
- ## Feature Guidelines
80
-
81
- ### Granularity
82
- - **One feature = One tool/service**
83
- - Bundle only if tools are always used together
84
- - See project README for guidance
85
-
86
- ### Options
87
- - Use clear, descriptive option names
88
- - Provide sensible defaults
89
- - Support environment variable substitution: `"${env:VAR}"`
90
- - Document all options in README
91
-
92
- ### Installation
93
- - Must be idempotent (safe to run multiple times)
94
- - Check if already installed before installing
95
- - Use appropriate user (not always root)
96
- - Clean up on failure
97
-
98
- ### Configuration
99
- - Generate necessary config files
100
- - Provide helper scripts for manual setup
101
- - Print clear installation summary
102
- - Show next steps to user
103
-
104
- ## Migration from Modules
105
-
106
- CodeForge modules have been converted to DevContainer Features:
107
-
108
- | Old Module | New Feature | Status |
109
- |-----------|-------------|---------|
110
- | mcp_qdrant | mcp-qdrant | ✅ Complete |
111
-
112
- ## Resources
113
-
114
- - [DevContainer Features Specification](https://containers.dev/implementors/features/)
115
- - [Feature Authoring Guide](https://containers.dev/guide/author-a-feature)
116
- - [Feature Best Practices](https://containers.dev/guide/feature-authoring-best-practices)
117
- - [CodeForge Documentation](../../README.md)
118
-
119
- ## Contributing
120
-
121
- Features are part of the CodeForge project. See main repository for contribution guidelines.
122
-
123
- ---
124
-
125
- **Status**: Active Development
126
- **Last Updated**: 2026-02-08
@@ -1,7 +0,0 @@
1
- {
2
- "name": "auto-formatter",
3
- "description": "Batch-formats edited files at Stop (Ruff for Python, gofmt for Go, Biome for JS/TS/CSS/JSON/GraphQL/HTML, shfmt for Shell, dprint for Markdown/YAML/TOML/Dockerfile, rustfmt for Rust)",
4
- "author": {
5
- "name": "AnExiledDev"
6
- }
7
- }
@@ -1,81 +0,0 @@
1
- # auto-formatter
2
-
3
- Claude Code plugin that batch-formats edited files when Claude finishes responding. Reads file paths collected by the `code-directive` plugin's `collect-edited-files.py` hook and formats each file based on its extension.
4
-
5
- ## What It Does
6
-
7
- When Claude stops responding, the plugin reads the session's list of edited files and formats each one using the appropriate tool:
8
-
9
- | Language / File Type | Formatter | Fallback |
10
- |----------------------|-----------|----------|
11
- | Python (`.py`, `.pyi`) | [ruff format](https://docs.astral.sh/ruff/) | [black](https://github.com/psf/black) |
12
- | Go (`.go`) | gofmt (bundled with Go) | — |
13
- | JS/TS/CSS/JSON/GraphQL/HTML (`.js`, `.jsx`, `.ts`, `.tsx`, `.css`, `.json`, `.jsonc`, `.graphql`, `.gql`, `.html`, `.vue`, `.svelte`, `.astro`) | [biome](https://biomejs.dev/) check --write | — |
14
- | Shell (`.sh`, `.bash`, `.zsh`, `.mksh`, `.bats`) | [shfmt](https://github.com/mvdan/sh) | — |
15
- | Markdown/YAML/TOML (`.md`, `.markdown`, `.yaml`, `.yml`, `.toml`) | [dprint](https://dprint.dev/) | — |
16
- | Dockerfile | dprint | — |
17
- | Rust (`.rs`) | rustfmt (bundled with Rust) | — |
18
-
19
- All formatting is non-blocking. Missing tools are silently skipped. The plugin always exits 0 — it will never interrupt Claude.
20
-
21
- ## How It Works
22
-
23
- ### Hook Lifecycle
24
-
25
- ```
26
- code-directive's collect-edited-files.py (PostToolUse on Edit/Write)
27
-
28
- └─→ Appends edited file path to /tmp/claude-edited-files-{session_id}
29
-
30
- │ ... Claude keeps working ...
31
-
32
- Claude stops responding (Stop event)
33
-
34
- └─→ format-on-stop.py reads the temp file, deduplicates paths,
35
- formats each file by extension, then cleans up the temp file
36
- ```
37
-
38
- ### Dependency on code-directive
39
-
40
- This plugin does **not** collect file paths itself. It relies on the `code-directive` plugin's `collect-edited-files.py` PostToolUse hook to write edited file paths to `/tmp/claude-edited-files-{session_id}`. Both plugins must be enabled for formatting to work.
41
-
42
- ### Biome Discovery
43
-
44
- Biome is resolved in this order:
45
- 1. **Project-local**: walks up from the edited file looking for `node_modules/.bin/biome`
46
- 2. **Global**: checks PATH via `which biome`
47
-
48
- ### dprint Configuration
49
-
50
- The dprint formatter looks for a config file at `/usr/local/share/dprint/dprint.json`. If this file doesn't exist, dprint formatting is skipped.
51
-
52
- ### Timeouts
53
-
54
- | Scope | Timeout |
55
- |-------|---------|
56
- | Entire Stop hook | 15s |
57
- | Individual tool invocation | 10-12s |
58
-
59
- ## Conflict Warning
60
-
61
- Do **not** enable this plugin alongside `auto-code-quality`. That plugin bundles its own formatter with the same functionality. Enabling both won't corrupt data (different temp file prefixes: `claude-edited-files-*` vs `claude-cq-*`), but files would be formatted twice.
62
-
63
- ## Plugin Structure
64
-
65
- ```
66
- auto-formatter/
67
- ├── .claude-plugin/
68
- │ └── plugin.json # Plugin metadata
69
- ├── hooks/
70
- │ └── hooks.json # Stop hook registration
71
- ├── scripts/
72
- │ └── format-on-stop.py # Batch formatter (Stop)
73
- └── README.md # This file
74
- ```
75
-
76
- ## Requirements
77
-
78
- - Python 3.11+
79
- - Claude Code with plugin hook support
80
- - `code-directive` plugin enabled (provides the file path collector)
81
- - Install the formatting tools for the languages you work with — everything is optional
@@ -1,17 +0,0 @@
1
- {
2
- "description": "Batch-format collected files when Claude stops responding",
3
- "hooks": {
4
- "Stop": [
5
- {
6
- "matcher": "",
7
- "hooks": [
8
- {
9
- "type": "command",
10
- "command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/format-on-stop.py",
11
- "timeout": 15
12
- }
13
- ]
14
- }
15
- ]
16
- }
17
- }