codeforge-dev 1.8.0 → 1.9.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 (39) hide show
  1. package/.devcontainer/CHANGELOG.md +51 -0
  2. package/.devcontainer/CLAUDE.md +1 -1
  3. package/.devcontainer/config/defaults/rules/spec-workflow.md +67 -0
  4. package/.devcontainer/config/defaults/rules/workspace-scope.md +7 -0
  5. package/.devcontainer/config/defaults/settings.json +63 -66
  6. package/.devcontainer/config/file-manifest.json +30 -18
  7. package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +104 -97
  8. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/.claude-plugin/plugin.json +7 -0
  9. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/README.md +158 -0
  10. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/hooks/hooks.json +39 -0
  11. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/scripts/collect-edited-files.py +47 -0
  12. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/scripts/format-on-stop.py +297 -0
  13. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/scripts/lint-file.py +536 -0
  14. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/scripts/syntax-validator.py +146 -0
  15. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/architect.md +77 -1
  16. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/debug-logs.md +18 -0
  17. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/dependency-analyst.md +18 -0
  18. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/doc-writer.md +86 -1
  19. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/explorer.md +18 -0
  20. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/generalist.md +142 -8
  21. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/git-archaeologist.md +18 -0
  22. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/migrator.md +108 -1
  23. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/perf-profiler.md +24 -0
  24. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/refactorer.md +97 -1
  25. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/researcher.md +33 -1
  26. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/security-auditor.md +24 -0
  27. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/spec-writer.md +29 -1
  28. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/test-writer.md +96 -1
  29. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/hooks/hooks.json +100 -95
  30. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/spec-reminder.py +121 -0
  31. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-check/SKILL.md +86 -0
  32. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-init/SKILL.md +97 -0
  33. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-init/references/backlog-template.md +7 -0
  34. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-init/references/roadmap-template.md +13 -0
  35. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-new/SKILL.md +101 -0
  36. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-new/references/template.md +110 -0
  37. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/spec-update/SKILL.md +124 -0
  38. package/.devcontainer/scripts/setup-config.sh +86 -83
  39. package/package.json +42 -42
@@ -1,5 +1,56 @@
1
1
  # CodeForge Devcontainer Changelog
2
2
 
3
+ ## [v1.9.0] - 2026-02-10
4
+
5
+ ### Added
6
+
7
+ #### Agent Context Inheritance (code-directive plugin)
8
+ - **Project Context Discovery** — all 14 project-interacting agents now read `.claude/rules/*.md` and CLAUDE.md files before starting work. Agents walk up the directory tree from their working directory to the workspace root, applying conventions from each level (deeper files take precedence)
9
+ - **Execution Discipline** — 7 agents (generalist, refactorer, migrator, test-writer, doc-writer, architect, researcher) gain structured pre/post-work verification: read before writing, verify after writing, no silent deviations, failure diagnosis before retry
10
+ - **Code Standards** — 5 agents (generalist full; refactorer, migrator, test-writer, architect compact) gain SOLID, DRY/KISS/YAGNI, function size limits, error handling rules, and forbidden patterns (god classes, magic numbers, dead code)
11
+ - **Professional Objectivity** — 10 agents gain explicit instruction to prioritize technical accuracy over agreement, present evidence when it conflicts with assumptions
12
+ - **Communication Standards** — all 14 agents gain response brevity rules: substance-first responses, no preamble, explicit uncertainty marking, file:line references
13
+ - **Documentation Convention** — 2 write agents (generalist, migrator) gain inline comment guidance (explain "why", not "what")
14
+ - **Context Management** — generalist gains instruction to continue working normally when context runs low
15
+ - **Testing Guidance** — generalist gains testing standards (verify behavior not implementation, max 3 mocks per test)
16
+ - **Scope Discipline** — refactorer gains explicit constraint: never expand scope beyond the requested refactoring
17
+ - **Tiered approach**: Tier 1 (generalist, 139→268 lines, all blocks), Tier 2 (4 write agents, full blocks), Tier 3 (9 read-only agents, compact blocks). 3 agents skipped (bash-exec, claude-guide, statusline-config — no project context needed)
18
+
19
+ #### Specification Workflow System (code-directive plugin — 4 new skills, 25 total)
20
+ - **`/spec-new`** — creates a new spec from the standard template in `.specs/`
21
+ - **`/spec-update`** — performs as-built spec update after implementation (checks off criteria, adds implementation notes, updates paths)
22
+ - **`/spec-check`** — audits spec health: stale specs, missing coverage, orphaned files
23
+ - **`/spec-init`** — bootstraps `.specs/` directory structure for projects that don't have one
24
+ - **`spec-reminder.py`** `[Stop]` — new advisory hook reminds about spec updates when implementation work is detected
25
+ - **Spec skills assigned to agents** — generalist and spec-writer agents gain spec skill access in frontmatter
26
+
27
+ #### Default Rules Distribution
28
+ - **`config/defaults/rules/`** — new directory containing default `.claude/rules/` files distributed to all projects via file-manifest
29
+ - **`spec-workflow.md`** — rule enforcing spec-before-implementation workflow, ≤200 line spec limit, `.specs/` directory convention, as-built update requirement
30
+ - **`workspace-scope.md`** — rule restricting file operations to the current project directory
31
+
32
+ #### New Plugin: auto-code-quality
33
+ - **Self-contained code quality plugin** — combines auto-formatter + auto-linter into a single drop-in plugin with independent temp file namespace (`claude-cq-*`). Includes all 7 formatters (Ruff, Biome, gofmt, shfmt, dprint, rustfmt, Black fallback) and 7 linters (Pyright, Ruff, Biome, ShellCheck, go vet, hadolint, clippy) plus syntax validation. Designed for use outside the CodeForge devcontainer where auto-formatter and auto-linter aren't available separately
34
+
35
+ ### Changed
36
+
37
+ #### Config System
38
+ - **`file-manifest.json`** — added 2 new entries for default rules files (`defaults/rules/spec-workflow.md`, `defaults/rules/workspace-scope.md`) targeting `${CLAUDE_CONFIG_DIR}/rules`
39
+ - **`setup-config.sh` bug fix** — fixed bash field-collapse bug where empty `destFilename` caused subsequent fields to shift. Uses `__NONE__` sentinel in jq output to prevent `read` from collapsing consecutive tab delimiters
40
+
41
+ #### Plugin References
42
+ - **`frontend-design` plugin name corrected** — fixed `frontend-design@claude-code-plugins` → `frontend-design@claude-plugins-official` in both `settings.json` and `CLAUDE.md`
43
+
44
+ #### Code-Directive Plugin
45
+ - **`hooks.json`** — added `spec-reminder.py` to Stop hooks (now 3 Stop hooks: advisory-test-runner, commit-reminder, spec-reminder)
46
+ - **`marketplace.json`** — added `auto-code-quality` plugin entry (10 plugins total, was 9)
47
+ - **Agent definitions** — 14 of 17 agents updated with orchestrator-mirrored instructions (see Agent Context Inheritance above)
48
+
49
+ #### Formatting
50
+ - **Whitespace normalization** — `settings.json`, `file-manifest.json`, `marketplace.json`, `hooks.json`, `package.json`, `setup-config.sh` reformatted to consistent tab indentation
51
+
52
+ ---
53
+
3
54
  ## [v1.8.0] - 2026-02-09
4
55
 
5
56
  ### Added
@@ -125,7 +125,7 @@ Scripts in `./scripts/` run via `postStartCommand`:
125
125
  Plugins are declared in `config/defaults/settings.json` under `enabledPlugins` and auto-activated on container start:
126
126
 
127
127
  ### Official (Anthropic)
128
- - `frontend-design@claude-code-plugins` — UI/frontend design skill
128
+ - `frontend-design@claude-plugins-official` — UI/frontend design skill
129
129
 
130
130
  ### Local Marketplace (devs-marketplace)
131
131
  - `codeforge-lsp@devs-marketplace` — LSP for Python + TypeScript/JavaScript
@@ -0,0 +1,67 @@
1
+ # Specification Workflow
2
+
3
+ Every project uses `.specs/` as the specification directory. These rules are mandatory.
4
+
5
+ ## Rules
6
+
7
+ 1. Every non-trivial feature MUST have a spec before implementation begins.
8
+ Use `/spec-new` to create one from the standard template.
9
+ 2. Every implementation MUST end with an as-built spec update.
10
+ Use `/spec-update` to perform the update.
11
+ 3. Specs MUST be ≤200 lines. Split by feature boundary if larger;
12
+ link via a parent overview (≤50 lines).
13
+ 4. Specs MUST reference file paths, never reproduce source code,
14
+ schemas, or type definitions inline. The code is the source of truth.
15
+ 5. Each spec file MUST be independently loadable — include version,
16
+ status, last-updated, intent, key files, and acceptance criteria.
17
+ 6. Before starting a new version, MUST run `/spec-check` to audit spec health.
18
+ 7. To bootstrap `.specs/` for a project that doesn't have one, use `/spec-init`.
19
+
20
+ ## Directory Convention
21
+
22
+ `.specs/` at the project root. Version-organized:
23
+
24
+ ```
25
+ .specs/
26
+ ├── v0.1.0.md # Single-file spec for small versions
27
+ ├── v0.2.0/ # Directory for multi-feature versions
28
+ │ ├── _overview.md # Feature matrix + architecture decisions
29
+ │ ├── feature-a.md
30
+ │ └── feature-b.md
31
+ ├── ROADMAP.md # What each version delivers and why (≤150 lines)
32
+ └── BACKLOG.md # Deferred items not yet scheduled
33
+ ```
34
+
35
+ ## Standard Template
36
+
37
+ Every spec follows this structure:
38
+
39
+ ```
40
+ # Feature: [Name]
41
+ **Version:** v0.X.0
42
+ **Status:** implemented | partial | planned
43
+ **Last Updated:** YYYY-MM-DD
44
+
45
+ ## Intent
46
+ ## Acceptance Criteria
47
+ ## Key Files
48
+ ## Schema / Data Model (reference file paths only)
49
+ ## API Endpoints (Method | Path | Description)
50
+ ## Requirements (EARS format: FR-1, NFR-1)
51
+ ## Dependencies
52
+ ## Out of Scope
53
+ ## Implementation Notes (post-implementation only)
54
+ ## Discrepancies (spec vs reality gaps)
55
+ ```
56
+
57
+ ## As-Built Workflow
58
+
59
+ After implementing a feature:
60
+ 1. Find the spec: Glob `.specs/**/*.md`
61
+ 2. Set status to "implemented" or "partial"
62
+ 3. Check off acceptance criteria with passing tests
63
+ 4. Add Implementation Notes for any deviations
64
+ 5. Update file paths if they changed
65
+ 6. Update Last Updated date
66
+
67
+ If no spec exists and the change is substantial, create one.
@@ -0,0 +1,7 @@
1
+ # Workspace Scoping Rule
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.
6
+
7
+ Do not suggest changes to files in sibling project directories.
@@ -1,70 +1,67 @@
1
1
  {
2
- "cleanupPeriodDays": 60,
3
- "autoCompact": true,
4
- "alwaysThinkingEnabled": true,
5
- "env": {
6
- "ANTHROPIC_MODEL": "claude-opus-4-6",
7
- "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-6",
8
- "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5-20250929",
9
- "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001",
10
- "BASH_DEFAULT_TIMEOUT_MS": "240000",
11
- "BASH_MAX_TIMEOUT_MS": "600000",
12
- "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "64000",
13
- "MAX_MCP_OUTPUT_TOKENS": "10000",
14
- "MAX_THINKING_TOKENS": "63999",
15
- "MCP_TIMEOUT": "120000",
16
- "MCP_TOOL_TIMEOUT": "30000",
17
- "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "95",
18
- "CLAUDE_CODE_SHELL": "zsh",
19
- "FORCE_AUTOUPDATE_PLUGINS": "1",
2
+ "cleanupPeriodDays": 60,
3
+ "autoCompact": true,
4
+ "alwaysThinkingEnabled": true,
5
+ "env": {
6
+ "ANTHROPIC_MODEL": "claude-opus-4-6",
7
+ "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-6",
8
+ "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5-20250929",
9
+ "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001",
10
+ "BASH_DEFAULT_TIMEOUT_MS": "240000",
11
+ "BASH_MAX_TIMEOUT_MS": "600000",
12
+ "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "64000",
13
+ "MAX_MCP_OUTPUT_TOKENS": "10000",
14
+ "MAX_THINKING_TOKENS": "63999",
15
+ "MCP_TIMEOUT": "120000",
16
+ "MCP_TOOL_TIMEOUT": "30000",
17
+ "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "95",
18
+ "CLAUDE_CODE_SHELL": "zsh",
19
+ "FORCE_AUTOUPDATE_PLUGINS": "1",
20
20
 
21
- "ENABLE_TOOL_SEARCH": "auto:5",
22
- "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1",
23
- "CLAUDE_CODE_EFFORT_LEVEL": "high",
24
- "CLAUDE_CODE_ENABLE_TASKS": "true",
25
- "CLAUDE_CODE_DISABLE_AUTO_MEMORY": "0",
26
- "ENABLE_CLAUDE_CODE_SM_COMPACT": "1",
27
- "CLAUDE_CODE_FORCE_GLOBAL_CACHE": "1",
28
- "CLAUDE_CODE_PLAN_MODE_INTERVIEW_PHASE": "true",
29
- "CLAUDE_CODE_PLAN_V2_AGENT_COUNT": "3",
30
- "CLAUDE_CODE_PLAN_MODE_REQUIRED": "true",
21
+ "ENABLE_TOOL_SEARCH": "auto:5",
22
+ "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1",
23
+ "CLAUDE_CODE_EFFORT_LEVEL": "high",
24
+ "CLAUDE_CODE_ENABLE_TASKS": "true",
25
+ "CLAUDE_CODE_DISABLE_AUTO_MEMORY": "0",
26
+ "ENABLE_CLAUDE_CODE_SM_COMPACT": "1",
27
+ "CLAUDE_CODE_FORCE_GLOBAL_CACHE": "1",
28
+ "CLAUDE_CODE_PLAN_MODE_INTERVIEW_PHASE": "true",
29
+ "CLAUDE_CODE_PLAN_V2_AGENT_COUNT": "3",
30
+ "CLAUDE_CODE_PLAN_MODE_REQUIRED": "true",
31
31
 
32
- "CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY": "5",
33
- "CLAUDE_CODE_MAX_RETRIES": "1",
34
- "BASH_MAX_OUTPUT_LENGTH": "15000",
35
- "TASK_MAX_OUTPUT_LENGTH": "64000"
36
- },
37
- "teammateMode": "auto",
38
- "effortLevel": "high",
39
- "includeCoAuthoredBy": false,
40
- "permissions": {
41
- "allow": [
42
- "Read(/workspaces/*)",
43
- "WebFetch(domain:*)"
44
- ],
45
- "deny": [],
46
- "ask": [],
47
- "defaultMode": "plan",
48
- "additionalDirectories": []
49
- },
50
- "model": "opus",
51
- "enabledMcpjsonServers": [],
52
- "disabledMcpjsonServers": [],
53
- "hooks": {},
54
- "statusLine": {
55
- "type": "command",
56
- "command": "/usr/local/bin/ccstatusline-wrapper"
57
- },
58
- "enabledPlugins": {
59
- "frontend-design@claude-code-plugins": true,
60
- "codeforge-lsp@devs-marketplace": true,
61
- "ticket-workflow@devs-marketplace": true,
62
- "notify-hook@devs-marketplace": true,
63
- "dangerous-command-blocker@devs-marketplace": true,
64
- "protected-files-guard@devs-marketplace": true,
65
- "auto-formatter@devs-marketplace": true,
66
- "auto-linter@devs-marketplace": true,
67
- "code-directive@devs-marketplace": true
68
- },
69
- "autoUpdatesChannel": "latest"
32
+ "CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY": "5",
33
+ "CLAUDE_CODE_MAX_RETRIES": "1",
34
+ "BASH_MAX_OUTPUT_LENGTH": "15000",
35
+ "TASK_MAX_OUTPUT_LENGTH": "64000"
36
+ },
37
+ "teammateMode": "auto",
38
+ "effortLevel": "high",
39
+ "includeCoAuthoredBy": false,
40
+ "permissions": {
41
+ "allow": ["Read(/workspaces/*)", "WebFetch(domain:*)"],
42
+ "deny": [],
43
+ "ask": [],
44
+ "defaultMode": "plan",
45
+ "additionalDirectories": []
46
+ },
47
+ "model": "opus",
48
+ "enabledMcpjsonServers": [],
49
+ "disabledMcpjsonServers": [],
50
+ "hooks": {},
51
+ "statusLine": {
52
+ "type": "command",
53
+ "command": "/usr/local/bin/ccstatusline-wrapper"
54
+ },
55
+ "enabledPlugins": {
56
+ "frontend-design@claude-plugins-official": true,
57
+ "codeforge-lsp@devs-marketplace": true,
58
+ "ticket-workflow@devs-marketplace": true,
59
+ "notify-hook@devs-marketplace": true,
60
+ "dangerous-command-blocker@devs-marketplace": true,
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
65
+ },
66
+ "autoUpdatesChannel": "latest"
70
67
  }
@@ -1,20 +1,32 @@
1
1
  [
2
- {
3
- "src": "defaults/settings.json",
4
- "dest": "${CLAUDE_CONFIG_DIR}",
5
- "enabled": true,
6
- "overwrite": "if-changed"
7
- },
8
- {
9
- "src": "defaults/keybindings.json",
10
- "dest": "${CLAUDE_CONFIG_DIR}",
11
- "enabled": true,
12
- "overwrite": "if-changed"
13
- },
14
- {
15
- "src": "defaults/main-system-prompt.md",
16
- "dest": "${CLAUDE_CONFIG_DIR}",
17
- "enabled": true,
18
- "overwrite": "if-changed"
19
- }
2
+ {
3
+ "src": "defaults/settings.json",
4
+ "dest": "${CLAUDE_CONFIG_DIR}",
5
+ "enabled": true,
6
+ "overwrite": "if-changed"
7
+ },
8
+ {
9
+ "src": "defaults/keybindings.json",
10
+ "dest": "${CLAUDE_CONFIG_DIR}",
11
+ "enabled": true,
12
+ "overwrite": "if-changed"
13
+ },
14
+ {
15
+ "src": "defaults/main-system-prompt.md",
16
+ "dest": "${CLAUDE_CONFIG_DIR}",
17
+ "enabled": true,
18
+ "overwrite": "if-changed"
19
+ },
20
+ {
21
+ "src": "defaults/rules/spec-workflow.md",
22
+ "dest": "${CLAUDE_CONFIG_DIR}/rules",
23
+ "enabled": true,
24
+ "overwrite": "if-changed"
25
+ },
26
+ {
27
+ "src": "defaults/rules/workspace-scope.md",
28
+ "dest": "${CLAUDE_CONFIG_DIR}/rules",
29
+ "enabled": true,
30
+ "overwrite": "if-changed"
31
+ }
20
32
  ]
@@ -1,99 +1,106 @@
1
1
  {
2
- "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3
- "name": "devs-marketplace",
4
- "description": "CodeForge plugin marketplace for development tools",
5
- "owner": {
6
- "name": "AnExiledDev"
7
- },
8
- "plugins": [
9
- {
10
- "name": "codeforge-lsp",
11
- "description": "LSP servers for CodeForge (Python, TypeScript, Go)",
12
- "version": "1.0.0",
13
- "source": "./plugins/codeforge-lsp",
14
- "category": "development",
15
- "lspServers": {
16
- "pyright": {
17
- "command": "pyright-langserver",
18
- "args": ["--stdio"],
19
- "extensionToLanguage": {
20
- ".py": "python",
21
- ".pyi": "python"
22
- }
23
- },
24
- "typescript": {
25
- "command": "typescript-language-server",
26
- "args": ["--stdio"],
27
- "extensionToLanguage": {
28
- ".ts": "typescript",
29
- ".tsx": "typescriptreact",
30
- ".js": "javascript",
31
- ".jsx": "javascriptreact",
32
- ".mts": "typescript",
33
- ".cts": "typescript",
34
- ".mjs": "javascript",
35
- ".cjs": "javascript"
36
- }
37
- },
38
- "gopls": {
39
- "command": "gopls",
40
- "args": ["serve"],
41
- "extensionToLanguage": {
42
- ".go": "go",
43
- ".mod": "go.mod",
44
- ".sum": "go.sum"
45
- }
46
- }
47
- }
48
- },
49
- {
50
- "name": "ticket-workflow",
51
- "description": "EARS-based ticket workflow with GitHub integration",
52
- "version": "1.0.0",
53
- "source": "./plugins/ticket-workflow",
54
- "category": "workflow"
55
- },
56
- {
57
- "name": "notify-hook",
58
- "description": "Desktop notifications and audio chime when Claude finishes responding",
59
- "version": "1.0.0",
60
- "source": "./plugins/notify-hook",
61
- "category": "productivity"
62
- },
63
- {
64
- "name": "dangerous-command-blocker",
65
- "description": "Blocks dangerous bash commands (rm -rf, sudo rm, chmod 777, force push)",
66
- "version": "1.0.0",
67
- "source": "./plugins/dangerous-command-blocker",
68
- "category": "safety"
69
- },
70
- {
71
- "name": "protected-files-guard",
72
- "description": "Blocks modifications to .env, lock files, .git/, and credentials",
73
- "version": "1.0.0",
74
- "source": "./plugins/protected-files-guard",
75
- "category": "safety"
76
- },
77
- {
78
- "name": "auto-formatter",
79
- "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)",
80
- "version": "1.0.0",
81
- "source": "./plugins/auto-formatter",
82
- "category": "development"
83
- },
84
- {
85
- "name": "auto-linter",
86
- "description": "Auto-lints edited files at Stop (Pyright + Ruff for Python, Biome for JS/TS/CSS/GraphQL, ShellCheck for Shell, go vet for Go, hadolint for Dockerfile, clippy for Rust)",
87
- "version": "1.0.0",
88
- "source": "./plugins/auto-linter",
89
- "category": "development"
90
- },
91
- {
92
- "name": "code-directive",
93
- "description": "17 custom agents, 16 coding skills, agent redirection, syntax validation, and skill auto-suggestion",
94
- "version": "1.0.0",
95
- "source": "./plugins/code-directive",
96
- "category": "development"
97
- }
98
- ]
2
+ "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3
+ "name": "devs-marketplace",
4
+ "description": "CodeForge plugin marketplace for development tools",
5
+ "owner": {
6
+ "name": "AnExiledDev"
7
+ },
8
+ "plugins": [
9
+ {
10
+ "name": "codeforge-lsp",
11
+ "description": "LSP servers for CodeForge (Python, TypeScript, Go)",
12
+ "version": "1.0.0",
13
+ "source": "./plugins/codeforge-lsp",
14
+ "category": "development",
15
+ "lspServers": {
16
+ "pyright": {
17
+ "command": "pyright-langserver",
18
+ "args": ["--stdio"],
19
+ "extensionToLanguage": {
20
+ ".py": "python",
21
+ ".pyi": "python"
22
+ }
23
+ },
24
+ "typescript": {
25
+ "command": "typescript-language-server",
26
+ "args": ["--stdio"],
27
+ "extensionToLanguage": {
28
+ ".ts": "typescript",
29
+ ".tsx": "typescriptreact",
30
+ ".js": "javascript",
31
+ ".jsx": "javascriptreact",
32
+ ".mts": "typescript",
33
+ ".cts": "typescript",
34
+ ".mjs": "javascript",
35
+ ".cjs": "javascript"
36
+ }
37
+ },
38
+ "gopls": {
39
+ "command": "gopls",
40
+ "args": ["serve"],
41
+ "extensionToLanguage": {
42
+ ".go": "go",
43
+ ".mod": "go.mod",
44
+ ".sum": "go.sum"
45
+ }
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "name": "ticket-workflow",
51
+ "description": "EARS-based ticket workflow with GitHub integration",
52
+ "version": "1.0.0",
53
+ "source": "./plugins/ticket-workflow",
54
+ "category": "workflow"
55
+ },
56
+ {
57
+ "name": "notify-hook",
58
+ "description": "Desktop notifications and audio chime when Claude finishes responding",
59
+ "version": "1.0.0",
60
+ "source": "./plugins/notify-hook",
61
+ "category": "productivity"
62
+ },
63
+ {
64
+ "name": "dangerous-command-blocker",
65
+ "description": "Blocks dangerous bash commands (rm -rf, sudo rm, chmod 777, force push)",
66
+ "version": "1.0.0",
67
+ "source": "./plugins/dangerous-command-blocker",
68
+ "category": "safety"
69
+ },
70
+ {
71
+ "name": "protected-files-guard",
72
+ "description": "Blocks modifications to .env, lock files, .git/, and credentials",
73
+ "version": "1.0.0",
74
+ "source": "./plugins/protected-files-guard",
75
+ "category": "safety"
76
+ },
77
+ {
78
+ "name": "auto-formatter",
79
+ "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)",
80
+ "version": "1.0.0",
81
+ "source": "./plugins/auto-formatter",
82
+ "category": "development"
83
+ },
84
+ {
85
+ "name": "auto-linter",
86
+ "description": "Auto-lints edited files at Stop (Pyright + Ruff for Python, Biome for JS/TS/CSS/GraphQL, ShellCheck for Shell, go vet for Go, hadolint for Dockerfile, clippy for Rust)",
87
+ "version": "1.0.0",
88
+ "source": "./plugins/auto-linter",
89
+ "category": "development"
90
+ },
91
+ {
92
+ "name": "code-directive",
93
+ "description": "17 custom agents, 16 coding skills, agent redirection, syntax validation, and skill auto-suggestion",
94
+ "version": "1.0.0",
95
+ "source": "./plugins/code-directive",
96
+ "category": "development"
97
+ },
98
+ {
99
+ "name": "auto-code-quality",
100
+ "description": "Self-contained code quality: auto-format + auto-lint edited files (Ruff/Black, Biome, gofmt, shfmt, dprint, rustfmt, Pyright, ShellCheck, go vet, hadolint, clippy)",
101
+ "version": "1.0.0",
102
+ "source": "./plugins/auto-code-quality",
103
+ "category": "development"
104
+ }
105
+ ]
99
106
  }
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "auto-code-quality",
3
+ "description": "Self-contained code quality plugin: collects edited files, batch-formats at Stop (Ruff/Black 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), batch-lints at Stop (Pyright + Ruff for Python, Biome for JS/TS/CSS/GraphQL, ShellCheck for Shell, go vet for Go, hadolint for Dockerfile, clippy for Rust), and validates JSON/JSONC/YAML/TOML syntax on edit",
4
+ "author": {
5
+ "name": "AnExiledDev"
6
+ }
7
+ }