mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-05-20 19:29:58 +08:00
Completes the install-target matrix for Claude Code. Until now, ECC's Claude support was home-scope only (~/.claude/) via the `claude` target. This adds a project-scope counterpart (./.claude/) via a new `claude-project` target so teams can install ECC per-repo without contaminating ~/.claude/ — matching the existing project-scope adapters for Cursor, Antigravity, Gemini, CodeBuddy, Joycode, and Zed. Symmetric with `claude`: - Same namespace under rules/ecc and skills/ecc - Same docs/<locale> handling for --locale - Same hooks placeholder substitution for hooks.json - Reuses claude-home's destination-mapping logic 1:1 Use cases: - Monorepos with multiple Flow-managed projects - Teams that want ECC scoped per-project without touching ~/.claude/ - Per-project skill/rule isolation when global install isn't desirable No breaking change: existing --target claude continues to route to claude-home (user-scope) unchanged. New target is opt-in. Tests ----- - 4 new tests in tests/lib/install-targets.test.js (root resolution, lookup-by-id, plan parity with claude, foreign-path filtering) - All install-target regression guards (schema enum / SUPPORTED_INSTALL_TARGETS) still pass - End-to-end smoke: `--target claude-project --profile minimal --dry-run` emits 359 ops with destinations rooted at <projectRoot>/.claude/ (parity with --target claude which emits 359 ops rooted at ~/.claude/)
65 lines
1.2 KiB
JSON
65 lines
1.2 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "ECC Install Config",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"version"
|
|
],
|
|
"properties": {
|
|
"$schema": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"version": {
|
|
"type": "integer",
|
|
"const": 1
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"enum": [
|
|
"claude",
|
|
"claude-project",
|
|
"cursor",
|
|
"antigravity",
|
|
"codex",
|
|
"gemini",
|
|
"opencode",
|
|
"codebuddy",
|
|
"joycode",
|
|
"qwen",
|
|
"zed"
|
|
]
|
|
},
|
|
"profile": {
|
|
"type": "string",
|
|
"pattern": "^[a-z0-9-]+$"
|
|
},
|
|
"modules": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[a-z0-9-]+$"
|
|
}
|
|
},
|
|
"include": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^(baseline|lang|framework|capability):[a-z0-9-]+$"
|
|
}
|
|
},
|
|
"exclude": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^(baseline|lang|framework|capability):[a-z0-9-]+$"
|
|
}
|
|
},
|
|
"options": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|