codeforge-dev 1.12.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/.devcontainer/CHANGELOG.md +37 -0
  2. package/.devcontainer/CLAUDE.md +21 -13
  3. package/.devcontainer/README.md +16 -8
  4. package/.devcontainer/config/defaults/rules/workspace-scope.md +13 -4
  5. package/.devcontainer/config/defaults/settings.json +5 -3
  6. package/.devcontainer/devcontainer.json +14 -7
  7. package/.devcontainer/features/claude-session-dashboard/README.md +40 -0
  8. package/.devcontainer/features/claude-session-dashboard/devcontainer-feature.json +35 -0
  9. package/.devcontainer/features/claude-session-dashboard/install.sh +172 -0
  10. package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +24 -3
  11. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/.claude-plugin/plugin.json +8 -0
  12. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/AGENT-REDIRECTION.md +7 -12
  13. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/REVIEW-RUBRIC.md +1 -1
  14. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/claude-guide.md +1 -1
  15. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/debug-logs.md +1 -1
  16. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/dependency-analyst.md +1 -1
  17. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/explorer.md +1 -1
  18. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/generalist.md +1 -1
  19. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/git-archaeologist.md +2 -2
  20. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/researcher.md +1 -1
  21. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/security-auditor.md +1 -1
  22. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/hooks/hooks.json +29 -0
  23. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/redirect-builtin-agents.py +17 -6
  24. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/.claude-plugin/plugin.json +8 -0
  25. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/hooks/hooks.json +34 -0
  26. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/.claude-plugin/plugin.json +8 -0
  27. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/hooks/hooks.json +29 -0
  28. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/team/SKILL.md +205 -0
  29. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/.claude-plugin/plugin.json +8 -0
  30. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/hooks/hooks.json +17 -0
  31. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-init/references/roadmap-template.md +33 -0
  32. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/hooks/hooks.json +17 -0
  33. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/guard-workspace-scope.py +0 -2
  34. package/.devcontainer/scripts/setup-projects.sh +1 -1
  35. package/package.json +1 -1
  36. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/.claude-plugin/plugin.json +0 -8
  37. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/README.md +0 -250
  38. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/hooks/hooks.json +0 -112
  39. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/advisory-test-runner.cpython-314.pyc +0 -0
  40. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/collect-edited-files.cpython-314.pyc +0 -0
  41. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/commit-reminder.cpython-314.pyc +0 -0
  42. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/git-state-injector.cpython-314.pyc +0 -0
  43. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/guard-readonly-bash.cpython-314.pyc +0 -0
  44. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/redirect-builtin-agents.cpython-314.pyc +0 -0
  45. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/skill-suggester.cpython-314.pyc +0 -0
  46. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/syntax-validator.cpython-314.pyc +0 -0
  47. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/ticket-linker.cpython-314.pyc +0 -0
  48. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/todo-harvester.cpython-314.pyc +0 -0
  49. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/verify-no-regression.cpython-314.pyc +0 -0
  50. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/verify-tests-pass.cpython-314.pyc +0 -0
  51. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/collect-edited-files.py +0 -46
  52. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/syntax-validator.py +0 -146
  53. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/.claude-plugin/commands/debug.md +0 -0
  54. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/architect.md +0 -0
  55. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/bash-exec.md +0 -0
  56. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/doc-writer.md +0 -0
  57. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/migrator.md +0 -0
  58. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/perf-profiler.md +0 -0
  59. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/refactorer.md +0 -0
  60. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/spec-writer.md +0 -0
  61. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/statusline-config.md +0 -0
  62. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/test-writer.md +0 -0
  63. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/guard-readonly-bash.py +0 -0
  64. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/inject-cwd.py +0 -0
  65. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/verify-no-regression.py +0 -0
  66. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/verify-tests-pass.py +0 -0
  67. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → auto-code-quality}/scripts/advisory-test-runner.py +0 -0
  68. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → session-context}/scripts/commit-reminder.py +0 -0
  69. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → session-context}/scripts/git-state-injector.py +0 -0
  70. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → session-context}/scripts/todo-harvester.py +0 -0
  71. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/scripts/skill-suggester.py +0 -0
  72. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/api-design/SKILL.md +0 -0
  73. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/api-design/references/error-handling.md +0 -0
  74. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/api-design/references/rest-conventions.md +0 -0
  75. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/ast-grep-patterns/SKILL.md +0 -0
  76. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/ast-grep-patterns/references/language-patterns.md +0 -0
  77. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-agent-sdk/SKILL.md +0 -0
  78. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-agent-sdk/references/sdk-typescript-reference.md +0 -0
  79. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-code-headless/SKILL.md +0 -0
  80. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-code-headless/references/cli-flags-and-output.md +0 -0
  81. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-code-headless/references/sdk-and-mcp.md +0 -0
  82. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/debugging/SKILL.md +0 -0
  83. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/debugging/references/error-patterns.md +0 -0
  84. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/debugging/references/log-locations.md +0 -0
  85. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/dependency-management/SKILL.md +0 -0
  86. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/dependency-management/references/ecosystem-commands.md +0 -0
  87. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/dependency-management/references/license-compliance.md +0 -0
  88. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker/SKILL.md +0 -0
  89. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker/references/compose-services.md +0 -0
  90. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker/references/dockerfile-patterns.md +0 -0
  91. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker-py/SKILL.md +0 -0
  92. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker-py/references/container-lifecycle.md +0 -0
  93. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker-py/references/resources-and-security.md +0 -0
  94. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/documentation-patterns/SKILL.md +0 -0
  95. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/documentation-patterns/references/api-doc-templates.md +0 -0
  96. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/documentation-patterns/references/docstring-formats.md +0 -0
  97. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/SKILL.md +0 -0
  98. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/references/middleware-and-lifespan.md +0 -0
  99. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/references/pydantic-models.md +0 -0
  100. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/references/routing-and-dependencies.md +0 -0
  101. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/references/sse-and-streaming.md +0 -0
  102. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/git-forensics/SKILL.md +0 -0
  103. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/git-forensics/references/advanced-commands.md +0 -0
  104. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/git-forensics/references/investigation-playbooks.md +0 -0
  105. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/migration-patterns/SKILL.md +0 -0
  106. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/migration-patterns/references/javascript-migrations.md +0 -0
  107. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/migration-patterns/references/python-migrations.md +0 -0
  108. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/performance-profiling/SKILL.md +0 -0
  109. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/performance-profiling/references/interpreting-results.md +0 -0
  110. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/performance-profiling/references/tool-commands.md +0 -0
  111. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/pydantic-ai/SKILL.md +0 -0
  112. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/pydantic-ai/references/agents-and-tools.md +0 -0
  113. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/pydantic-ai/references/models-and-streaming.md +0 -0
  114. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/refactoring-patterns/SKILL.md +0 -0
  115. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/refactoring-patterns/references/safe-transformations.md +0 -0
  116. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/refactoring-patterns/references/smell-catalog.md +0 -0
  117. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/security-checklist/SKILL.md +0 -0
  118. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/security-checklist/references/owasp-patterns.md +0 -0
  119. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/security-checklist/references/secrets-patterns.md +0 -0
  120. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/skill-building/SKILL.md +0 -0
  121. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/skill-building/references/cross-vendor-principles.md +0 -0
  122. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/skill-building/references/patterns-and-antipatterns.md +0 -0
  123. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/skill-building/references/skill-authoring-patterns.md +0 -0
  124. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/SKILL.md +0 -0
  125. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/references/advanced-queries.md +0 -0
  126. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/references/javascript-patterns.md +0 -0
  127. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/references/python-patterns.md +0 -0
  128. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/references/schema-and-pragmas.md +0 -0
  129. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/SKILL.md +0 -0
  130. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/ai-sdk-svelte.md +0 -0
  131. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/component-patterns.md +0 -0
  132. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/layercake.md +0 -0
  133. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/migration-guide.md +0 -0
  134. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/runes-and-reactivity.md +0 -0
  135. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/spa-and-routing.md +0 -0
  136. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/svelte-dnd-action.md +0 -0
  137. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/testing/SKILL.md +0 -0
  138. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/testing/references/fastapi-testing.md +0 -0
  139. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/testing/references/svelte-testing.md +0 -0
  140. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/scripts/spec-reminder.py +0 -0
  141. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-build/SKILL.md +0 -0
  142. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-build/references/review-checklist.md +0 -0
  143. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-check/SKILL.md +0 -0
  144. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-init/SKILL.md +0 -0
  145. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-init/references/backlog-template.md +0 -0
  146. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-init/references/milestones-template.md +0 -0
  147. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-new/SKILL.md +0 -0
  148. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-new/references/template.md +0 -0
  149. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-refine/SKILL.md +0 -0
  150. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-review/SKILL.md +0 -0
  151. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-update/SKILL.md +0 -0
  152. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/specification-writing/SKILL.md +0 -0
  153. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/specification-writing/references/criteria-patterns.md +0 -0
  154. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/specification-writing/references/ears-templates.md +0 -0
  155. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → ticket-workflow}/scripts/ticket-linker.py +0 -0
@@ -1,5 +1,42 @@
1
1
  # CodeForge Devcontainer Changelog
2
2
 
3
+ ## [v1.13.0] - 2026-02-21
4
+
5
+ Claude Code is an idiot sandwich and ignored my instructions and workspace scope because it's a god damned idiot.
6
+
7
+ ### Fixed
8
+
9
+ - Feature version pins: node `1.6`→`1.7.1`, github-cli `1.0`→`1.1.0`, docker-outside-of-docker `1.7`→`1.6`, rust `1.4`→`1.5.0`, claude-code `1.1`→`1.0.5`
10
+ - setup-projects.sh: suppress background inotifywait output
11
+ - agent-system: add missing `verify-tests-pass.py` and `verify-no-regression.py` (referenced by agent defs)
12
+
13
+ ### Added
14
+
15
+ #### Plugin Architecture: Focused Plugins
16
+ - **`agent-system` plugin** — 17 custom agents with built-in agent redirection, CWD injection, and read-only bash enforcement
17
+ - **`skill-engine` plugin** — 21 coding skills with auto-suggestion hook
18
+ - **`spec-workflow` plugin** — 8 spec lifecycle skills with spec-reminder hook
19
+ - **`session-context` plugin** — session boundary hooks (git state injection, TODO harvesting, commit reminders)
20
+
21
+ #### Other
22
+ - **`ticket-workflow` hooks** — auto-links GitHub issue/PR references in user prompts via `ticket-linker.py`
23
+ - **`auto-code-quality` advisory test runner** — runs affected tests at Stop via `advisory-test-runner.py`
24
+ - **`/team` skill** — agent team creation and management with specialist catalog (in `skill-engine`)
25
+ - **`claude-session-dashboard` feature** — local analytics dashboard for Claude Code sessions (token usage, tool calls, cost estimates, activity heatmaps). Installed globally via npm with `claude-dashboard` command. Settings persist across rebuilds via symlink to `/workspaces/.claude-dashboard/`
26
+
27
+ ### Changed
28
+
29
+ - Plugin architecture: `code-directive` monolith replaced by focused plugins (`agent-system`, `skill-engine`, `spec-workflow`, `session-context`)
30
+ - `auto-code-quality` now consolidates `auto-formatter` + `auto-linter` (disabled separately, `auto-code-quality` is the superset)
31
+ - **`workspace-scope.md` rule hardened** — strict enforcement with no exceptions; all file operations must target paths within the current project directory
32
+
33
+ ### Removed
34
+
35
+ - `code-directive` plugin (replaced by `agent-system`, `skill-engine`, `spec-workflow`, `session-context`)
36
+ - `auto-formatter` and `auto-linter` disabled in settings (consolidated into `auto-code-quality`)
37
+
38
+ ---
39
+
3
40
  ## [v1.12.0] - 2026-02-18
4
41
 
5
42
  ### Added
@@ -59,6 +59,7 @@ CodeForge devcontainer for AI-assisted development with Claude Code.
59
59
  | `ccms` | Search Claude Code session history (project-scoped) |
60
60
  | `cc-tools` | List all installed tools with version info |
61
61
  | `check-setup` | Verify CodeForge setup health |
62
+ | `claude-dashboard` | Local session analytics dashboard (web UI on port 3000) |
62
63
 
63
64
  ## Feature Development
64
65
 
@@ -107,7 +108,7 @@ When `version` is set to `"none"`, the feature's `install.sh` exits immediately
107
108
  The auto-formatter and auto-linter plugins gracefully skip missing tools at runtime.
108
109
 
109
110
  **All local features support this pattern:**
110
- ast-grep, biome, ccms, ccstatusline, claude-monitor, dprint, hadolint, lsp-servers, mcp-qdrant, mcp-reasoner, notify-hook, ruff, shfmt, shellcheck, splitrail, tmux
111
+ ast-grep, biome, ccms, ccstatusline, claude-monitor, claude-session-dashboard, dprint, hadolint, lsp-servers, mcp-qdrant, mcp-reasoner, notify-hook, ruff, shfmt, shellcheck, splitrail, tmux
111
112
 
112
113
  **External features with `version: "none"` support:**
113
114
  `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)
@@ -161,13 +162,15 @@ Plugins are declared in `config/defaults/settings.json` under `enabledPlugins` a
161
162
 
162
163
  ### Local Marketplace (devs-marketplace)
163
164
  - `codeforge-lsp@devs-marketplace` — LSP for Python + TypeScript/JavaScript
164
- - `ticket-workflow@devs-marketplace` — EARS-based ticket workflow with GitHub integration
165
+ - `ticket-workflow@devs-marketplace` — EARS-based ticket workflow with GitHub integration and auto-linking hook
165
166
  - `notify-hook@devs-marketplace` — Desktop notifications on completion
166
167
  - `dangerous-command-blocker@devs-marketplace` — Blocks destructive bash commands
167
168
  - `protected-files-guard@devs-marketplace` — Blocks edits to secrets/lock files
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)
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)
170
- - `code-directive@devs-marketplace` — 17 custom agents, 28 skills, syntax validation, skill suggestions, agent redirect hook
169
+ - `agent-system@devs-marketplace` — 17 custom agents with built-in agent redirection, CWD injection, and read-only bash enforcement
170
+ - `skill-engine@devs-marketplace` — 21 coding skills with auto-suggestion hook
171
+ - `spec-workflow@devs-marketplace` — 8 spec lifecycle skills with spec-reminder hook
172
+ - `session-context@devs-marketplace` — Session boundary hooks (git state injection, TODO harvesting, commit reminders)
173
+ - `auto-code-quality@devs-marketplace` — Combined auto-format + auto-lint + advisory test runner
171
174
  - `workspace-scope-guard@devs-marketplace` — Blocks writes and warns on reads outside the working directory
172
175
 
173
176
  ### Local Marketplace
@@ -180,25 +183,30 @@ plugins/devs-marketplace/
180
183
  │ └── marketplace.json # Marketplace manifest
181
184
  └── plugins/
182
185
  ├── codeforge-lsp/ # Combined LSP plugin
183
- ├── ticket-workflow/ # EARS ticket workflow
184
- ├── auto-formatter/ # Batch formatter (Stop hook)
185
- ├── auto-linter/ # Pyright linter
186
- ├── code-directive/ # Agents, skills + hooks
186
+ ├── ticket-workflow/ # EARS ticket workflow + auto-linking hook
187
+ ├── agent-system/ # 17 custom agents + redirection
188
+ ├── skill-engine/ # 21 coding skills + auto-suggestion
189
+ ├── spec-workflow/ # 8 spec lifecycle skills
190
+ ├── session-context/ # Session boundary hooks
191
+ ├── auto-code-quality/ # Combined format + lint + test runner
187
192
  ├── workspace-scope-guard/ # Workspace scope enforcement
188
193
  └── ...
189
194
  ```
190
195
 
191
196
  ## Agents & Skills
192
197
 
193
- The `code-directive` plugin includes 17 custom agent definitions and 28 coding reference skills.
198
+ Agents and skills are distributed across focused plugins:
194
199
 
195
- **Agents** (`plugins/devs-marketplace/plugins/code-directive/agents/`):
200
+ **Agents** (`plugins/devs-marketplace/plugins/agent-system/agents/`):
196
201
  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
197
202
 
198
203
  The `redirect-builtin-agents.py` hook (PreToolUse/Task) transparently swaps built-in agent types to these custom agents (e.g., Explore→explorer, Plan→architect).
199
204
 
200
- **Skills** (`plugins/devs-marketplace/plugins/code-directive/skills/`):
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
205
+ **General Skills** (`plugins/devs-marketplace/plugins/skill-engine/skills/`):
206
+ 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, sqlite, svelte5, team, testing
207
+
208
+ **Spec Skills** (`plugins/devs-marketplace/plugins/spec-workflow/skills/`):
209
+ spec-build, spec-check, spec-init, spec-new, spec-refine, spec-review, spec-update, specification-writing
202
210
 
203
211
  ## VS Code Keybinding Conflicts
204
212
 
@@ -189,6 +189,7 @@ claude --resume # Resume previous session
189
189
  | `ccburn` | Visual token burn rate tracker with pace indicators |
190
190
  | `ccstatusline` | Status bar display (integrated into Claude Code, not standalone CLI) |
191
191
  | `claude-monitor` | Real-time usage tracking |
192
+ | `claude-dashboard` | Local session analytics dashboard (token usage, costs, timelines) |
192
193
 
193
194
  ## Configuration
194
195
 
@@ -270,6 +271,7 @@ CodeForge includes custom devcontainer features. Any feature can be disabled by
270
271
  | `hadolint` | Dockerfile linter (disabled by default) |
271
272
  | `dprint` | Pluggable formatter for Markdown/YAML/TOML (disabled by default) |
272
273
  | `ccms` | Claude Code session history search |
274
+ | `claude-session-dashboard` | Local session analytics dashboard with web UI |
273
275
  | `notify-hook` | Desktop notifications on Claude completion |
274
276
  | `mcp-qdrant` | Qdrant vector database MCP server (optional) |
275
277
 
@@ -281,9 +283,9 @@ CodeForge includes custom devcontainer features. Any feature can be disabled by
281
283
  | `protected-files-guard` | Blocks modifications to .env, lock files, .git/, and credentials |
282
284
  | `workspace-scope-guard` | Enforces working directory scope — blocks writes and warns on reads outside the project |
283
285
 
284
- ### auto-code-quality (Not Active by Default)
286
+ ### auto-code-quality
285
287
 
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.
288
+ Combined auto-formatter, auto-linter, and advisory test runner plugin at `plugins/devs-marketplace/plugins/auto-code-quality/`. Three-phase pipeline: collect edited files (PostToolUse), batch format + lint (Stop), and advisory test runner (Stop). Supports all languages from the former auto-formatter + auto-linter plugins. Replaces the separate `auto-formatter` and `auto-linter` plugins.
287
289
 
288
290
  ## Alias Management
289
291
 
@@ -301,11 +303,11 @@ All methods persist across container rebuilds via the bind-mounted `/workspaces/
301
303
 
302
304
  ## Agents & Skills
303
305
 
304
- The `code-directive` plugin includes 17 custom agent definitions and 28 coding reference skills.
306
+ Agents and skills are distributed across focused plugins (replacing the former `code-directive` monolith).
305
307
 
306
- ### Custom Agents (17)
308
+ ### Custom Agents (17) — `agent-system` plugin
307
309
 
308
- Agent definitions in `plugins/devs-marketplace/plugins/code-directive/agents/` provide enhanced behavior when spawned via the `Task` tool. The `redirect-builtin-agents.py` hook transparently swaps built-in agent types to these custom agents.
310
+ Agent definitions in `plugins/devs-marketplace/plugins/agent-system/agents/` provide enhanced behavior when spawned via the `Task` tool. The `redirect-builtin-agents.py` hook transparently swaps built-in agent types to these custom agents.
309
311
 
310
312
  | Agent | Purpose |
311
313
  |-------|---------|
@@ -327,11 +329,17 @@ Agent definitions in `plugins/devs-marketplace/plugins/code-directive/agents/` p
327
329
  | `statusline-config` | ccstatusline configuration |
328
330
  | `test-writer` | Test authoring with pass verification |
329
331
 
330
- ### Skills (28)
332
+ ### General Skills (21) — `skill-engine` plugin
331
333
 
332
- Skills in `plugins/devs-marketplace/plugins/code-directive/skills/` provide domain-specific coding references:
334
+ Skills in `plugins/devs-marketplace/plugins/skill-engine/skills/` provide domain-specific coding references:
333
335
 
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`
336
+ `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` · `sqlite` · `svelte5` · `team` · `testing`
337
+
338
+ ### Spec Skills (8) — `spec-workflow` plugin
339
+
340
+ Skills in `plugins/devs-marketplace/plugins/spec-workflow/skills/`:
341
+
342
+ `spec-build` · `spec-check` · `spec-init` · `spec-new` · `spec-refine` · `spec-review` · `spec-update` · `specification-writing`
335
343
 
336
344
  ## Specification Workflow
337
345
 
@@ -1,7 +1,16 @@
1
1
  # Workspace Scoping Rule
2
2
 
3
- When working in a project subdirectory, restrict all file operations
4
- (reads, writes, searches, globs) to the current project directory
5
- unless the user explicitly requests cross-project work.
3
+ ALL file operations (reads, writes, edits, searches, globs, bash commands)
4
+ MUST target paths within the current project directory. No exceptions.
6
5
 
7
- Do not suggest changes to files in sibling project directories.
6
+ Violations:
7
+ - Writing, editing, or creating files outside the project directory is FORBIDDEN.
8
+ - Reading or searching outside the project directory is FORBIDDEN.
9
+ - Using paths like `/workspaces/.devcontainer/` when the project is at
10
+ `/workspaces/projects/ProjectName/` is a scope violation — always use
11
+ the project-relative path (e.g., `/workspaces/projects/ProjectName/.devcontainer/`).
12
+ - This rule applies even if a file exists at both locations. The project copy
13
+ is the ONLY valid target.
14
+
15
+ Do not suggest, reference, or modify files in sibling project directories
16
+ or workspace-root directories that duplicate project content.
@@ -59,9 +59,11 @@
59
59
  "notify-hook@devs-marketplace": true,
60
60
  "dangerous-command-blocker@devs-marketplace": true,
61
61
  "protected-files-guard@devs-marketplace": true,
62
- "auto-formatter@devs-marketplace": true,
63
- "auto-linter@devs-marketplace": true,
64
- "code-directive@devs-marketplace": true,
62
+ "agent-system@devs-marketplace": true,
63
+ "skill-engine@devs-marketplace": true,
64
+ "spec-workflow@devs-marketplace": true,
65
+ "session-context@devs-marketplace": true,
66
+ "auto-code-quality@devs-marketplace": true,
65
67
  "workspace-scope-guard@devs-marketplace": true
66
68
  },
67
69
  "autoUpdatesChannel": "latest"
@@ -32,8 +32,8 @@
32
32
 
33
33
  // Feature install order: external runtimes first (Node, uv, Rust, Bun),
34
34
  // then Claude Code (needs Node), then custom features.
35
- // npm-dependent features (agent-browser, ccusage, ccburn, biome, lsp-servers)
36
- // must come after Node. uv-dependent features (ruff, claude-monitor) must
35
+ // npm-dependent features (agent-browser, ccusage, ccburn, claude-session-dashboard,
36
+ // biome, lsp-servers) must come after Node. uv-dependent features (ruff, claude-monitor) must
37
37
  // come after uv. cargo-dependent features (ccms) must come after Rust.
38
38
  // notify-hook is last (lightweight, no dependencies).
39
39
  "overrideFeatureInstallOrder": [
@@ -51,6 +51,7 @@
51
51
  "./features/ccburn",
52
52
  "./features/ccstatusline",
53
53
  "./features/ccms",
54
+ "./features/claude-session-dashboard",
54
55
  "./features/ast-grep",
55
56
  "./features/tree-sitter",
56
57
  "./features/lsp-servers",
@@ -64,22 +65,22 @@
64
65
  ],
65
66
 
66
67
  "features": {
67
- "ghcr.io/devcontainers/features/node:1.6": {
68
+ "ghcr.io/devcontainers/features/node:1.7.1": {
68
69
  "version": "lts",
69
70
  "nodeGypDependencies": true
70
71
  },
71
- "ghcr.io/devcontainers/features/github-cli:1.0": {},
72
- "ghcr.io/devcontainers/features/docker-outside-of-docker:1.7": {
72
+ "ghcr.io/devcontainers/features/github-cli:1.1.0": {},
73
+ "ghcr.io/devcontainers/features/docker-outside-of-docker:1.6": {
73
74
  "moby": false
74
75
  },
75
76
  "ghcr.io/devcontainers-extra/features/uv:1.0": {},
76
77
  "ghcr.io/rails/devcontainer/features/bun:1.0.2": {},
77
- "ghcr.io/devcontainers/features/rust:1.4": {
78
+ "ghcr.io/devcontainers/features/rust:1.5.0": {
78
79
  "version": "latest"
79
80
  },
80
81
  // Uncomment to add Go runtime (not installed by default):
81
82
  // "ghcr.io/devcontainers/features/go:1": {},
82
- "ghcr.io/anthropics/devcontainer-features/claude-code:1.1": {},
83
+ "ghcr.io/anthropics/devcontainer-features/claude-code:1.0.5": {},
83
84
  "./features/tmux": {},
84
85
  "./features/ccusage": {
85
86
  "version": "latest",
@@ -100,6 +101,12 @@
100
101
  "username": "automatic"
101
102
  },
102
103
  "./features/ccms": {},
104
+ "./features/claude-session-dashboard": {
105
+ "version": "latest",
106
+ "port": "3000",
107
+ "shells": "both",
108
+ "username": "automatic"
109
+ },
103
110
  "./features/ast-grep": {},
104
111
  "./features/tree-sitter": {},
105
112
  "./features/lsp-servers": {},
@@ -0,0 +1,40 @@
1
+ # Claude Session Dashboard (devcontainer feature)
2
+
3
+ Installs [claude-session-dashboard](https://github.com/dlupiak/claude-session-dashboard) — a local analytics dashboard for Claude Code sessions.
4
+
5
+ ## What it provides
6
+
7
+ - `claude-dashboard` command to launch the web UI
8
+ - Session browsing with full-text search and filtering
9
+ - Token usage breakdown, cost estimates, and activity heatmaps
10
+ - Tool call timeline visualization
11
+ - Per-project aggregated analytics
12
+ - Settings persisted across container rebuilds via symlink to `/workspaces/.claude-dashboard/`
13
+
14
+ ## Options
15
+
16
+ | Option | Default | Description |
17
+ |--------|---------|-------------|
18
+ | `version` | `latest` | npm package version (`latest`, `1.0.0`, or `none` to skip) |
19
+ | `port` | `3000` | Default port for the dashboard server |
20
+ | `shells` | `both` | Shell configs to add alias to (`bash`, `zsh`, `both`) |
21
+ | `username` | `automatic` | Container user to install for |
22
+
23
+ ## Usage
24
+
25
+ ```bash
26
+ # Start the dashboard (default port 3000)
27
+ claude-dashboard
28
+
29
+ # Start on a custom port
30
+ claude-dashboard -p 8080
31
+
32
+ # Show help
33
+ claude-dashboard --help
34
+ ```
35
+
36
+ The dashboard reads session data from `~/.claude/projects/` (symlinked to `/workspaces/.claude/projects/` in this devcontainer).
37
+
38
+ ## How persistence works
39
+
40
+ Dashboard settings and cache are stored at `~/.claude-dashboard/`. Since the home directory is ephemeral in devcontainers, a poststart hook symlinks `~/.claude-dashboard` → `/workspaces/.claude-dashboard/`, which is bind-mounted and survives rebuilds.
@@ -0,0 +1,35 @@
1
+ {
2
+ "id": "claude-session-dashboard",
3
+ "version": "1.0.0",
4
+ "name": "Claude Session Dashboard",
5
+ "description": "Local analytics dashboard for Claude Code sessions (token usage, tool calls, cost estimates)",
6
+ "maintainer": "AnExiledDev",
7
+ "documentationURL": "https://github.com/dlupiak/claude-session-dashboard",
8
+ "options": {
9
+ "version": {
10
+ "type": "string",
11
+ "description": "Dashboard version (e.g., 'latest', '1.0.0', 'none' to skip)",
12
+ "default": "latest"
13
+ },
14
+ "port": {
15
+ "type": "string",
16
+ "description": "Default port for the dashboard server",
17
+ "default": "3000"
18
+ },
19
+ "shells": {
20
+ "type": "string",
21
+ "description": "Which shells to configure aliases in (bash, zsh, or both)",
22
+ "default": "both",
23
+ "enum": ["bash", "zsh", "both"],
24
+ "proposals": ["bash", "zsh", "both"]
25
+ },
26
+ "username": {
27
+ "type": "string",
28
+ "description": "Container user to install for",
29
+ "default": "automatic"
30
+ }
31
+ },
32
+ "installsAfter": [
33
+ "ghcr.io/devcontainers/features/node:1"
34
+ ]
35
+ }
@@ -0,0 +1,172 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # ==============================
5
+ # Claude Session Dashboard
6
+ # DevContainer Feature Installer
7
+ # ==============================
8
+
9
+ # === IMPORT OPTIONS ===
10
+ DASHBOARD_VERSION="${VERSION:-latest}"
11
+ PORT="${PORT:-3000}"
12
+ SHELLS="${SHELLS:-both}"
13
+ USERNAME="${USERNAME:-automatic}"
14
+
15
+ # === SKIP IF DISABLED ===
16
+ if [ "${DASHBOARD_VERSION}" = "none" ]; then
17
+ echo "[claude-session-dashboard] Skipping installation (version=none)"
18
+ exit 0
19
+ fi
20
+
21
+ echo "[claude-session-dashboard] Starting installation..."
22
+
23
+ # === SOURCE NVM ===
24
+ if [ -f /usr/local/share/nvm/nvm.sh ]; then
25
+ source /usr/local/share/nvm/nvm.sh
26
+ fi
27
+
28
+ # === VALIDATE DEPENDENCIES ===
29
+ if ! command -v npm &>/dev/null; then
30
+ echo "[claude-session-dashboard] ERROR: npm is not available"
31
+ echo " Ensure the node feature is installed first"
32
+ exit 1
33
+ fi
34
+
35
+ NODE_MAJOR="$(node --version 2>/dev/null | sed 's/v\([0-9]*\).*/\1/' || echo 0)"
36
+ if [ "${NODE_MAJOR}" -lt 18 ]; then
37
+ echo "[claude-session-dashboard] ERROR: Node.js >= 18 required (found v${NODE_MAJOR})"
38
+ exit 1
39
+ fi
40
+
41
+ # === VALIDATE INPUT ===
42
+ if [[ ! "${SHELLS}" =~ ^(bash|zsh|both)$ ]]; then
43
+ echo "[claude-session-dashboard] ERROR: shells must be 'bash', 'zsh', or 'both'"
44
+ exit 1
45
+ fi
46
+
47
+ if [[ ! "${DASHBOARD_VERSION}" =~ ^[a-zA-Z0-9._-]+$ ]]; then
48
+ echo "[claude-session-dashboard] ERROR: version contains invalid characters"
49
+ exit 1
50
+ fi
51
+
52
+ # === DETECT USER ===
53
+ if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then
54
+ USERNAME=""
55
+ for CURRENT_USER in vscode node codespace; do
56
+ if id -u "${CURRENT_USER}" >/dev/null 2>&1; then
57
+ USERNAME=${CURRENT_USER}
58
+ break
59
+ fi
60
+ done
61
+ [ -z "${USERNAME}" ] && USERNAME=root
62
+ elif [ "${USERNAME}" = "none" ] || ! id -u "${USERNAME}" >/dev/null 2>&1; then
63
+ USERNAME=root
64
+ fi
65
+
66
+ USER_HOME=$(eval echo "~${USERNAME}")
67
+ if [ ! -d "${USER_HOME}" ]; then
68
+ echo "[claude-session-dashboard] ERROR: Home directory not found for user ${USERNAME}"
69
+ exit 1
70
+ fi
71
+
72
+ echo "[claude-session-dashboard] Installing for user: ${USERNAME}"
73
+
74
+ # === INSTALL VIA NPM ===
75
+ echo "[claude-session-dashboard] Installing claude-session-dashboard@${DASHBOARD_VERSION} globally..."
76
+ npm install -g "claude-session-dashboard@${DASHBOARD_VERSION}"
77
+
78
+ # === PERSISTENCE SYMLINK (POSTSTART HOOK) ===
79
+ # Settings/cache live at ~/.claude-dashboard, which is ephemeral (/home/vscode).
80
+ # Create a poststart hook to symlink it to /workspaces/.claude-dashboard for persistence.
81
+ POSTSTART_DIR="/usr/local/devcontainer-poststart.d"
82
+ HOOK_SCRIPT="${POSTSTART_DIR}/claude-dashboard-symlink.sh"
83
+
84
+ mkdir -p "${POSTSTART_DIR}"
85
+ cat > "${HOOK_SCRIPT}" << 'HOOKEOF'
86
+ #!/bin/bash
87
+ # Symlink ~/.claude-dashboard → /workspaces/.claude-dashboard for persistence
88
+ DASHBOARD_DATA="/workspaces/.claude-dashboard"
89
+ USER_HOME="${HOME:-/home/vscode}"
90
+ LINK_PATH="${USER_HOME}/.claude-dashboard"
91
+
92
+ mkdir -p "${DASHBOARD_DATA}"
93
+
94
+ # Already correct symlink — nothing to do
95
+ if [ -L "${LINK_PATH}" ]; then
96
+ CURRENT_TARGET="$(readlink "${LINK_PATH}")"
97
+ if [ "${CURRENT_TARGET}" = "${DASHBOARD_DATA}" ]; then
98
+ exit 0
99
+ fi
100
+ rm "${LINK_PATH}"
101
+ fi
102
+
103
+ # Real directory exists — merge contents, then replace with symlink
104
+ if [ -d "${LINK_PATH}" ]; then
105
+ cp -rn "${LINK_PATH}/." "${DASHBOARD_DATA}/" 2>/dev/null || true
106
+ rm -rf "${LINK_PATH}"
107
+ fi
108
+
109
+ ln -s "${DASHBOARD_DATA}" "${LINK_PATH}"
110
+ HOOKEOF
111
+ chmod +x "${HOOK_SCRIPT}"
112
+ echo "[claude-session-dashboard] Created poststart hook for settings persistence"
113
+
114
+ # === SHELL ALIASES ===
115
+ ALIAS_CMD="alias claude-dashboard=\"claude-dashboard --port ${PORT}\""
116
+
117
+ configure_shell() {
118
+ local shell_rc="$1"
119
+ local shell_name="$2"
120
+
121
+ if [ ! -f "${shell_rc}" ]; then
122
+ echo "[claude-session-dashboard] Creating ${shell_name} config: ${shell_rc}"
123
+ sudo -u "${USERNAME}" touch "${shell_rc}"
124
+ fi
125
+
126
+ if grep -q "alias claude-dashboard=" "${shell_rc}"; then
127
+ echo "[claude-session-dashboard] ${shell_name} alias already configured. Skipping..."
128
+ else
129
+ echo "[claude-session-dashboard] Adding alias to ${shell_name}"
130
+ echo "${ALIAS_CMD}" >> "${shell_rc}"
131
+ chown "${USERNAME}:${USERNAME}" "${shell_rc}" 2>/dev/null || true
132
+ fi
133
+ }
134
+
135
+ if [ "${SHELLS}" = "bash" ] || [ "${SHELLS}" = "both" ]; then
136
+ configure_shell "${USER_HOME}/.bashrc" "bash"
137
+ fi
138
+
139
+ if [ "${SHELLS}" = "zsh" ] || [ "${SHELLS}" = "both" ]; then
140
+ configure_shell "${USER_HOME}/.zshrc" "zsh"
141
+ fi
142
+
143
+ # === VERIFICATION ===
144
+ echo "[claude-session-dashboard] Verifying installation..."
145
+ if command -v claude-dashboard &>/dev/null; then
146
+ INSTALLED_VERSION="$(claude-dashboard --version 2>/dev/null || echo "unknown")"
147
+ echo "[claude-session-dashboard] ✓ claude-dashboard installed (${INSTALLED_VERSION})"
148
+ else
149
+ echo "[claude-session-dashboard] WARNING: claude-dashboard not found in PATH"
150
+ echo " The global npm install may need PATH adjustment"
151
+ echo " Try: npx claude-session-dashboard --version"
152
+ fi
153
+
154
+ # === SUMMARY ===
155
+ echo ""
156
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
157
+ echo " Claude Session Dashboard Installation Complete"
158
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
159
+ echo ""
160
+ echo "Configuration:"
161
+ echo " • User: ${USERNAME}"
162
+ echo " • Version: ${DASHBOARD_VERSION}"
163
+ echo " • Default port: ${PORT}"
164
+ echo " • Shells: ${SHELLS}"
165
+ echo " • Settings persist to: /workspaces/.claude-dashboard/"
166
+ echo ""
167
+ echo "Usage:"
168
+ echo " claude-dashboard # Start on port ${PORT}"
169
+ echo " claude-dashboard -p 8080 # Start on custom port"
170
+ echo " claude-dashboard --help # Full options"
171
+ echo ""
172
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -89,10 +89,31 @@
89
89
  "category": "development"
90
90
  },
91
91
  {
92
- "name": "code-directive",
93
- "description": "17 custom agents, 28 coding skills, agent redirection, syntax validation, and skill auto-suggestion",
92
+ "name": "agent-system",
93
+ "description": "17 custom agents with built-in agent redirection, CWD injection, and read-only bash enforcement",
94
94
  "version": "1.0.0",
95
- "source": "./plugins/code-directive",
95
+ "source": "./plugins/agent-system",
96
+ "category": "development"
97
+ },
98
+ {
99
+ "name": "skill-engine",
100
+ "description": "21 coding knowledge packs with auto-suggestion for frameworks, tools, and patterns",
101
+ "version": "1.0.0",
102
+ "source": "./plugins/skill-engine",
103
+ "category": "development"
104
+ },
105
+ {
106
+ "name": "spec-workflow",
107
+ "description": "Specification lifecycle management: creation, refinement, building, reviewing, updating, and auditing",
108
+ "version": "1.0.0",
109
+ "source": "./plugins/spec-workflow",
110
+ "category": "workflow"
111
+ },
112
+ {
113
+ "name": "session-context",
114
+ "description": "Session lifecycle hooks: git state injection, TODO harvesting, and commit reminders",
115
+ "version": "1.0.0",
116
+ "source": "./plugins/session-context",
96
117
  "category": "development"
97
118
  },
98
119
  {
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "agent-system",
3
+ "description": "17 custom agents with built-in agent redirection, CWD injection, and read-only bash enforcement",
4
+ "version": "1.0.0",
5
+ "author": {
6
+ "name": "AnExiledDev"
7
+ }
8
+ }
@@ -65,7 +65,7 @@ REDIRECT_MAP = {
65
65
  }
66
66
  ```
67
67
 
68
- When Claude decides to spawn an `Explore` agent, the hook rewrites it to `code-directive:explorer` — a custom agent with tailored instructions, tool restrictions, and model selection. The original prompt passes through unchanged.
68
+ When Claude decides to spawn an `Explore` agent, the hook rewrites it to `agent-system:explorer` — a custom agent with tailored instructions, tool restrictions, and model selection. The original prompt passes through unchanged.
69
69
 
70
70
  ### Custom Agent Definitions
71
71
 
@@ -138,7 +138,7 @@ elif "refactor" in prompt.lower():
138
138
  target = "refactorer"
139
139
  else:
140
140
  target = "generalist"
141
- updated = {**tool_input, "subagent_type": f"code-directive:{target}"}
141
+ updated = {**tool_input, "subagent_type": f"agent-system:{target}"}
142
142
  ```
143
143
 
144
144
  ### Block Certain Operations
@@ -197,7 +197,7 @@ This is how the auto-linter and syntax validator work — they inspect the resul
197
197
  ## File Layout
198
198
 
199
199
  ```
200
- code-directive/
200
+ agent-system/
201
201
  ├── agents/ # Agent definitions (17 .md files)
202
202
  │ ├── explorer.md
203
203
  │ ├── architect.md
@@ -205,15 +205,10 @@ code-directive/
205
205
  │ └── ...
206
206
  ├── hooks/
207
207
  │ └── hooks.json # Hook registrations
208
- ├── scripts/
209
- ├── redirect-builtin-agents.py # The redirection hook
210
- ├── collect-edited-files.py # Collects paths for Stop hooks
211
- │ ├── syntax-validator.py # PostToolUse syntax checks
212
- │ └── skill-suggester.py # Suggests skills on prompt
213
- └── skills/ # Skill definitions (16 directories)
214
- ├── fastapi/
215
- ├── svelte5/
216
- └── ...
208
+ └── scripts/
209
+ ├── redirect-builtin-agents.py # The redirection hook
210
+ ├── inject-cwd.py # CWD injection for subagents
211
+ └── guard-readonly-bash.py # Read-only bash enforcement
217
212
  ```
218
213
 
219
214
  ## Writing Your Own
@@ -1,6 +1,6 @@
1
1
  # Agent & Skill Quality Rubric
2
2
 
3
- > Compiled from Anthropic's official documentation, Claude Code subagent docs, skill authoring best practices, and industry research on LLM agent design patterns. This rubric drives the quality review of all agents and skills in the `code-directive` plugin.
3
+ > Compiled from Anthropic's official documentation, Claude Code subagent docs, skill authoring best practices, and industry research on LLM agent design patterns. This rubric drives the quality review of all agents in the `agent-system` plugin and skills in the `skill-engine` / `spec-workflow` plugins.
4
4
 
5
5
  ---
6
6
 
@@ -11,7 +11,7 @@ description: >-
11
11
  spawning a new instance, check if there is already a running or recently
12
12
  completed claude-guide agent that you can resume using the "resume" parameter.
13
13
  tools: Glob, Grep, Read, WebFetch, WebSearch
14
- model: sonnet
14
+ model: haiku
15
15
  color: cyan
16
16
  memory:
17
17
  scope: user