mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-05-12 15:47:27 +08:00
docs: salvage ECC onboarding guide commands
This commit is contained in:
committed by
Affaan Mustafa
parent
e5229cec92
commit
10d160b95e
@@ -11,7 +11,7 @@
|
||||
{
|
||||
"name": "ecc",
|
||||
"source": "./",
|
||||
"description": "The most comprehensive Claude Code plugin — 54 agents, 207 skills, 70 legacy command shims, selective install profiles, and production-ready hooks for TDD, security scanning, code review, and continuous learning",
|
||||
"description": "The most comprehensive Claude Code plugin — 54 agents, 208 skills, 72 legacy command shims, selective install profiles, and production-ready hooks for TDD, security scanning, code review, and continuous learning",
|
||||
"version": "2.0.0-rc.1",
|
||||
"author": {
|
||||
"name": "Affaan Mustafa",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "ecc",
|
||||
"version": "2.0.0-rc.1",
|
||||
"description": "Battle-tested Claude Code plugin for engineering teams — 54 agents, 207 skills, 70 legacy command shims, production-ready hooks, and selective install workflows evolved through continuous real-world use",
|
||||
"description": "Battle-tested Claude Code plugin for engineering teams — 54 agents, 208 skills, 72 legacy command shims, production-ready hooks, and selective install workflows evolved through continuous real-world use",
|
||||
"author": {
|
||||
"name": "Affaan Mustafa",
|
||||
"url": "https://x.com/affaanmustafa"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Everything Claude Code (ECC) — Agent Instructions
|
||||
|
||||
This is a **production-ready AI coding plugin** providing 54 specialized agents, 207 skills, 70 commands, and automated hook workflows for software development.
|
||||
This is a **production-ready AI coding plugin** providing 54 specialized agents, 208 skills, 72 commands, and automated hook workflows for software development.
|
||||
|
||||
**Version:** 2.0.0-rc.1
|
||||
|
||||
@@ -147,8 +147,8 @@ Troubleshoot failures: check test isolation → verify mocks → fix implementat
|
||||
|
||||
```
|
||||
agents/ — 54 specialized subagents
|
||||
skills/ — 207 workflow skills and domain knowledge
|
||||
commands/ — 70 slash commands
|
||||
skills/ — 208 workflow skills and domain knowledge
|
||||
commands/ — 72 slash commands
|
||||
hooks/ — Trigger-based automations
|
||||
rules/ — Always-follow guidelines (common + per-language)
|
||||
scripts/ — Cross-platform Node.js utilities
|
||||
|
||||
12
README.md
12
README.md
@@ -89,7 +89,7 @@ This repo is the raw code only. The guides explain everything.
|
||||
### v2.0.0-rc.1 — Surface Refresh, Operator Workflows, and ECC 2.0 Alpha (Apr 2026)
|
||||
|
||||
- **Dashboard GUI** — New Tkinter-based desktop application (`ecc_dashboard.py` or `npm run dashboard`) with dark/light theme toggle, font customization, and project logo in header and taskbar.
|
||||
- **Public surface synced to the live repo** — metadata, catalog counts, plugin manifests, and install-facing docs now match the actual OSS surface: 54 agents, 207 skills, and 70 legacy command shims.
|
||||
- **Public surface synced to the live repo** — metadata, catalog counts, plugin manifests, and install-facing docs now match the actual OSS surface: 54 agents, 208 skills, and 72 legacy command shims.
|
||||
- **Operator and outbound workflow expansion** — `brand-voice`, `social-graph-ranker`, `connections-optimizer`, `customer-billing-ops`, `ecc-tools-cost-audit`, `google-workspace-ops`, `project-flow-ops`, and `workspace-surface-audit` round out the operator lane.
|
||||
- **Media and launch tooling** — `manim-video`, `remotion-video-creation`, and upgraded social publishing surfaces make technical explainers and launch content part of the same system.
|
||||
- **Framework and product surface growth** — `nestjs-patterns`, richer Codex/OpenCode install surfaces, and expanded cross-harness packaging keep the repo usable beyond Claude Code alone.
|
||||
@@ -358,7 +358,7 @@ If you stacked methods, clean up in this order:
|
||||
/plugin list ecc@ecc
|
||||
```
|
||||
|
||||
**That's it!** You now have access to 54 agents, 207 skills, and 70 legacy command shims.
|
||||
**That's it!** You now have access to 54 agents, 208 skills, and 72 legacy command shims.
|
||||
|
||||
### Dashboard GUI
|
||||
|
||||
@@ -1350,8 +1350,8 @@ The configuration is automatically detected from `.opencode/opencode.json`.
|
||||
| Feature | Claude Code | OpenCode | Status |
|
||||
|---------|-------------|----------|--------|
|
||||
| Agents | PASS: 54 agents | PASS: 12 agents | **Claude Code leads** |
|
||||
| Commands | PASS: 70 commands | PASS: 35 commands | **Claude Code leads** |
|
||||
| Skills | PASS: 207 skills | PASS: 37 skills | **Claude Code leads** |
|
||||
| Commands | PASS: 72 commands | PASS: 35 commands | **Claude Code leads** |
|
||||
| Skills | PASS: 208 skills | PASS: 37 skills | **Claude Code leads** |
|
||||
| Hooks | PASS: 8 event types | PASS: 11 events | **OpenCode has more!** |
|
||||
| Rules | PASS: 29 rules | PASS: 13 instructions | **Claude Code leads** |
|
||||
| MCP Servers | PASS: 14 servers | PASS: Full | **Full parity** |
|
||||
@@ -1455,8 +1455,8 @@ ECC is the **first plugin to maximize every major AI coding tool**. Here's how e
|
||||
| Feature | Claude Code | Cursor IDE | Codex CLI | OpenCode |
|
||||
|---------|------------|------------|-----------|----------|
|
||||
| **Agents** | 54 | Shared (AGENTS.md) | Shared (AGENTS.md) | 12 |
|
||||
| **Commands** | 70 | Shared | Instruction-based | 35 |
|
||||
| **Skills** | 207 | Shared | 10 (native format) | 37 |
|
||||
| **Commands** | 72 | Shared | Instruction-based | 35 |
|
||||
| **Skills** | 208 | Shared | 10 (native format) | 37 |
|
||||
| **Hook Events** | 8 types | 15 types | None yet | 11 types |
|
||||
| **Hook Scripts** | 20+ scripts | 16 scripts (DRY adapter) | N/A | Plugin hooks |
|
||||
| **Rules** | 34 (common + lang) | 34 (YAML frontmatter) | Instruction-based | 13 instructions |
|
||||
|
||||
@@ -160,7 +160,7 @@ Copy-Item -Recurse rules/typescript "$HOME/.claude/rules/"
|
||||
/plugin list ecc@ecc
|
||||
```
|
||||
|
||||
**完成!** 你现在可以使用 54 个代理、207 个技能和 70 个命令。
|
||||
**完成!** 你现在可以使用 54 个代理、208 个技能和 72 个命令。
|
||||
|
||||
### multi-* 命令需要额外配置
|
||||
|
||||
|
||||
@@ -152,6 +152,7 @@ commands:
|
||||
- cpp-build
|
||||
- cpp-review
|
||||
- cpp-test
|
||||
- ecc-guide
|
||||
- evolve
|
||||
- fastapi-review
|
||||
- feature-dev
|
||||
@@ -190,6 +191,7 @@ commands:
|
||||
- pm2
|
||||
- projects
|
||||
- promote
|
||||
- project-init
|
||||
- prp-commit
|
||||
- prp-implement
|
||||
- prp-plan
|
||||
|
||||
93
commands/ecc-guide.md
Normal file
93
commands/ecc-guide.md
Normal file
@@ -0,0 +1,93 @@
|
||||
---
|
||||
description: Navigate ECC's current agents, skills, commands, hooks, install profiles, and docs from the live repository surface.
|
||||
---
|
||||
|
||||
# /ecc-guide
|
||||
|
||||
Use this command as a conversational map of Everything Claude Code. It should help the user discover the right ECC surface for their task without dumping the entire README or stale catalog counts.
|
||||
|
||||
## Usage
|
||||
|
||||
```text
|
||||
/ecc-guide
|
||||
/ecc-guide setup
|
||||
/ecc-guide skills
|
||||
/ecc-guide commands
|
||||
/ecc-guide hooks
|
||||
/ecc-guide install
|
||||
/ecc-guide find: <query>
|
||||
/ecc-guide <feature-or-file-name>
|
||||
```
|
||||
|
||||
## Operating Rules
|
||||
|
||||
1. Read current repository files before answering when the checkout is available.
|
||||
2. Prefer current filesystem/catalog data over hard-coded counts.
|
||||
3. Keep the first answer short, then offer specific drill-down paths.
|
||||
4. Link users to canonical files instead of copying long sections.
|
||||
5. Do not invent commands, skills, agents, or install profiles that are not present.
|
||||
|
||||
## What To Inspect
|
||||
|
||||
Use these files as the canonical map:
|
||||
|
||||
- `README.md` for install paths, reset/uninstall guidance, and high-level positioning
|
||||
- `AGENTS.md` for contributor and project-structure guidance
|
||||
- `agent.yaml` for exported agent and command surface
|
||||
- `commands/` for maintained slash-command shims
|
||||
- `skills/*/SKILL.md` for reusable skill workflows
|
||||
- `agents/*.md` for delegated agent roles
|
||||
- `hooks/README.md` and `hooks/hooks.json` for hook behavior
|
||||
- `manifests/install-*.json` for selective install modules, components, and profiles
|
||||
- `scripts/ci/catalog.js --json` for live catalog counts when running inside ECC
|
||||
|
||||
## Response Patterns
|
||||
|
||||
### No Arguments
|
||||
|
||||
Give a compact menu:
|
||||
|
||||
- setup and install
|
||||
- choosing skills
|
||||
- command compatibility shims
|
||||
- agents and delegation
|
||||
- hooks and safety
|
||||
- troubleshooting an install
|
||||
- finding a specific feature
|
||||
|
||||
Then ask what they want to do next.
|
||||
|
||||
### Topic Lookup
|
||||
|
||||
For topics like `skills`, `commands`, `hooks`, `install`, or `agents`:
|
||||
|
||||
1. Summarize the current surface in 3-6 bullets.
|
||||
2. Point to the canonical directories/files.
|
||||
3. Suggest one or two commands that can verify the state.
|
||||
4. Avoid exhaustive lists unless the user asks for one.
|
||||
|
||||
### Search Mode
|
||||
|
||||
For `find: <query>`:
|
||||
|
||||
1. Search the relevant files with `rg`.
|
||||
2. Group results by surface: skills, commands, agents, rules, docs, hooks.
|
||||
3. Return the strongest matches first with file paths.
|
||||
4. Recommend the next action for each match.
|
||||
|
||||
### Feature Lookup
|
||||
|
||||
For a specific feature name:
|
||||
|
||||
1. Check exact paths first, such as `skills/<name>/SKILL.md`, `commands/<name>.md`, and `agents/<name>.md`.
|
||||
2. If exact lookup fails, search with `rg`.
|
||||
3. Explain what the feature does, when to use it, and what file is canonical.
|
||||
4. Mention adjacent features only when they reduce confusion.
|
||||
|
||||
## Related Commands
|
||||
|
||||
- `/project-init` for stack-aware ECC onboarding of a target project
|
||||
- `/harness-audit` for deterministic repo readiness scoring
|
||||
- `/skill-health` for skill quality checks
|
||||
- `/skill-create` for extracting a new skill from local git history
|
||||
- `/security-scan` for Claude/OpenCode configuration security review
|
||||
86
commands/project-init.md
Normal file
86
commands/project-init.md
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
description: Detect a project's stack and produce a dry-run ECC onboarding plan using the repository's install manifests and stack mappings.
|
||||
---
|
||||
|
||||
# /project-init
|
||||
|
||||
Create a safe, reviewable ECC onboarding plan for the current project. This command should start in dry-run mode and only write files after explicit user approval.
|
||||
|
||||
## Usage
|
||||
|
||||
```text
|
||||
/project-init
|
||||
/project-init --dry-run
|
||||
/project-init --target claude
|
||||
/project-init --target cursor
|
||||
/project-init --skills continuous-learning-v2,security-review
|
||||
/project-init --config ecc-install.json
|
||||
```
|
||||
|
||||
## Safety Rules
|
||||
|
||||
1. Default to dry-run. Do not modify `CLAUDE.md`, settings files, rules, skills, or install state until the user approves the concrete plan.
|
||||
2. Preserve existing project guidance. If `CLAUDE.md`, `.claude/settings.local.json`, `.cursor/`, `.codex/`, `.gemini/`, `.opencode/`, `.codebuddy/`, `.joycode/`, or `.qwen/` already exists, inspect it and propose a merge/append plan instead of overwriting.
|
||||
3. Use ECC's installer and manifest tooling. Do not hand-copy files or clone arbitrary remotes as an install shortcut.
|
||||
4. Keep permissions narrow. Any generated settings should match detected build/test/lint tools and avoid broad shell access.
|
||||
5. Report exactly what would change before applying anything.
|
||||
|
||||
## Detection Inputs
|
||||
|
||||
Read the current project root and detect stack signals from:
|
||||
|
||||
- package manager files: `package.json`, `package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`, `bun.lockb`
|
||||
- language manifests: `pyproject.toml`, `requirements.txt`, `go.mod`, `Cargo.toml`, `pom.xml`, `build.gradle`, `build.gradle.kts`
|
||||
- framework files: `next.config.*`, `vite.config.*`, `tailwind.config.*`, `Dockerfile`, `docker-compose.yml`
|
||||
- ECC config: `ecc-install.json`
|
||||
- optional stack map: `config/project-stack-mappings.json` in the ECC repo
|
||||
|
||||
When the ECC checkout is available, use `config/project-stack-mappings.json` as the stack-to-rules/skills reference. If the file is unavailable, fall back to the installed ECC manifests and explicit user choices.
|
||||
|
||||
## Planning Flow
|
||||
|
||||
1. Identify the target harness. Default to `claude` unless the user asks for `cursor`, `codex`, `gemini`, `opencode`, `codebuddy`, `joycode`, or `qwen`.
|
||||
2. Detect stacks from project files and show the evidence for each match.
|
||||
3. Resolve the smallest useful ECC plan:
|
||||
- project has an `ecc-install.json`: `node scripts/install-plan.js --config ecc-install.json --json`
|
||||
- user named a profile: `node scripts/install-plan.js --profile <profile> --target <target> --json`
|
||||
- user named skills: `node scripts/install-plan.js --skills <skill-ids> --target <target> --json`
|
||||
- only language stacks are detected: use the legacy language install dry-run with those language names
|
||||
4. Run a dry-run apply command before writing:
|
||||
|
||||
```bash
|
||||
node scripts/install-apply.js --target <target> --dry-run --json <language-or-profile-args>
|
||||
```
|
||||
|
||||
5. Summarize detected stacks, selected modules/components/skills, target paths, skipped unsupported modules, and files that would be changed.
|
||||
6. Ask for approval before applying the non-dry-run command.
|
||||
|
||||
## Output Contract
|
||||
|
||||
Return:
|
||||
|
||||
1. detected stack evidence
|
||||
2. proposed target harness
|
||||
3. exact dry-run command used
|
||||
4. exact apply command to run after approval
|
||||
5. files/directories that would be created or changed
|
||||
6. warnings about existing files, broad permissions, missing scripts, or unsupported targets
|
||||
|
||||
## CLAUDE.md Guidance
|
||||
|
||||
If the user wants a `CLAUDE.md` starter, generate it separately from the installer plan and keep it minimal:
|
||||
|
||||
- build command, if detected
|
||||
- test command, if detected
|
||||
- lint/typecheck command, if detected
|
||||
- dev server command, if detected
|
||||
- repo-specific notes from existing package scripts or manifests
|
||||
|
||||
Never replace an existing `CLAUDE.md` without showing a diff and receiving approval.
|
||||
|
||||
## Related
|
||||
|
||||
- `config/project-stack-mappings.json` for stack-to-surface hints
|
||||
- `scripts/install-plan.js` for deterministic plan resolution
|
||||
- `scripts/install-apply.js` for dry-run and apply operations
|
||||
- `/ecc-guide` for interactive feature discovery before installing
|
||||
539
config/project-stack-mappings.json
Normal file
539
config/project-stack-mappings.json
Normal file
@@ -0,0 +1,539 @@
|
||||
{
|
||||
"version": 1,
|
||||
"description": "Maps project indicator files to ECC skills, rules, hooks, and default commands. Used by /project-init to auto-configure projects.",
|
||||
"stacks": [
|
||||
{
|
||||
"id": "typescript",
|
||||
"name": "TypeScript / JavaScript",
|
||||
"indicators": [
|
||||
{ "file": "tsconfig.json" },
|
||||
{ "file": "tsconfig.*.json" },
|
||||
{ "file": "package.json", "contains": "typescript" }
|
||||
],
|
||||
"rules": ["common", "typescript"],
|
||||
"skills": [
|
||||
"coding-standards",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["npx tsc --noEmit", "npm run build"],
|
||||
"test": ["npm test", "npx jest", "npx vitest"],
|
||||
"lint": ["npx eslint .", "npx tsc --noEmit"],
|
||||
"format": ["npx prettier --write ."]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["npx tsc", "npx eslint", "npx prettier", "npm test", "npm run *", "npx jest", "npx vitest"],
|
||||
"deny": ["npm publish"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "javascript",
|
||||
"name": "JavaScript (Node.js)",
|
||||
"indicators": [
|
||||
{ "file": "package.json" },
|
||||
{ "file": ".eslintrc*" },
|
||||
{ "file": "eslint.config.*" }
|
||||
],
|
||||
"rules": ["common", "typescript"],
|
||||
"skills": [
|
||||
"coding-standards",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["npm run build"],
|
||||
"test": ["npm test", "npx jest", "npx vitest"],
|
||||
"lint": ["npx eslint ."],
|
||||
"format": ["npx prettier --write ."]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["npx eslint", "npx prettier", "npm test", "npm run *", "npx jest", "npx vitest"],
|
||||
"deny": ["npm publish"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "react",
|
||||
"name": "React",
|
||||
"indicators": [
|
||||
{ "file": "package.json", "contains": "\"react\":" }
|
||||
],
|
||||
"rules": ["common", "typescript", "web"],
|
||||
"skills": [
|
||||
"coding-standards",
|
||||
"frontend-patterns",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["npm run build"],
|
||||
"test": ["npm test", "npx jest", "npx vitest"],
|
||||
"lint": ["npx eslint ."],
|
||||
"format": ["npx prettier --write ."]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["npx eslint", "npx prettier", "npm test", "npm run *", "npx jest", "npx vitest"],
|
||||
"deny": ["npm publish"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "nextjs",
|
||||
"name": "Next.js",
|
||||
"indicators": [
|
||||
{ "file": "next.config.*" },
|
||||
{ "file": "package.json", "contains": "\"next\":" }
|
||||
],
|
||||
"rules": ["common", "typescript", "web"],
|
||||
"skills": [
|
||||
"coding-standards",
|
||||
"frontend-patterns",
|
||||
"backend-patterns",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["npm run build", "npx next build"],
|
||||
"test": ["npm test", "npx jest", "npx vitest"],
|
||||
"lint": ["npx next lint", "npx eslint ."],
|
||||
"format": ["npx prettier --write ."],
|
||||
"dev": ["npm run dev", "npx next dev"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["npx next *", "npx eslint", "npx prettier", "npm test", "npm run *", "npx jest", "npx vitest"],
|
||||
"deny": ["npm publish"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "golang",
|
||||
"name": "Go",
|
||||
"indicators": [
|
||||
{ "file": "go.mod" },
|
||||
{ "file": "go.sum" }
|
||||
],
|
||||
"rules": ["common", "golang"],
|
||||
"skills": [
|
||||
"golang-patterns",
|
||||
"golang-testing",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["go build ./..."],
|
||||
"test": ["go test ./..."],
|
||||
"lint": ["golangci-lint run", "go vet ./..."],
|
||||
"format": ["gofmt -w ."]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["go build *", "go test *", "go vet *", "go mod *", "go run *", "golangci-lint *", "gofmt *"],
|
||||
"deny": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "python",
|
||||
"name": "Python",
|
||||
"indicators": [
|
||||
{ "file": "pyproject.toml" },
|
||||
{ "file": "setup.py" },
|
||||
{ "file": "setup.cfg" },
|
||||
{ "file": "requirements.txt" },
|
||||
{ "file": "Pipfile" },
|
||||
{ "file": "poetry.lock" }
|
||||
],
|
||||
"rules": ["common", "python"],
|
||||
"skills": [
|
||||
"python-patterns",
|
||||
"python-testing",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["python -m build", "pip install -e ."],
|
||||
"test": ["pytest", "python -m pytest"],
|
||||
"lint": ["ruff check .", "flake8", "mypy ."],
|
||||
"format": ["ruff format .", "black ."]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["python *", "pip install *", "pytest *", "ruff *", "black *", "mypy *", "flake8 *"],
|
||||
"deny": ["pip install --user *"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "rust",
|
||||
"name": "Rust",
|
||||
"indicators": [
|
||||
{ "file": "Cargo.toml" },
|
||||
{ "file": "Cargo.lock" }
|
||||
],
|
||||
"rules": ["common", "rust"],
|
||||
"skills": [
|
||||
"rust-patterns",
|
||||
"rust-testing",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["cargo build"],
|
||||
"test": ["cargo test"],
|
||||
"lint": ["cargo clippy -- -D warnings"],
|
||||
"format": ["cargo fmt"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["cargo build *", "cargo test *", "cargo clippy *", "cargo fmt *", "cargo run *", "cargo check *"],
|
||||
"deny": ["cargo publish"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "java",
|
||||
"name": "Java",
|
||||
"indicators": [
|
||||
{ "file": "pom.xml" },
|
||||
{ "file": "build.gradle" },
|
||||
{ "file": "build.gradle.kts" }
|
||||
],
|
||||
"rules": ["common", "java"],
|
||||
"skills": [
|
||||
"java-coding-standards",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["./mvnw compile", "./gradlew build", "mvn compile", "gradle build"],
|
||||
"test": ["./mvnw test", "./gradlew test", "mvn test", "gradle test"],
|
||||
"lint": ["./mvnw checkstyle:check", "./gradlew checkstyleMain"],
|
||||
"format": ["./mvnw spotless:apply", "./gradlew spotlessApply"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["./mvnw *", "./gradlew *", "mvn *", "gradle *", "java *"],
|
||||
"deny": ["./mvnw deploy", "./gradlew publish", "mvn deploy", "gradle publish"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "springboot",
|
||||
"name": "Spring Boot (Java/Kotlin)",
|
||||
"indicators": [
|
||||
{ "file": "pom.xml", "contains": "spring-boot" },
|
||||
{ "file": "build.gradle", "contains": "spring-boot" },
|
||||
{ "file": "build.gradle.kts", "contains": "spring-boot" }
|
||||
],
|
||||
"rules": ["common", "java"],
|
||||
"skills": [
|
||||
"springboot-patterns",
|
||||
"springboot-tdd",
|
||||
"springboot-verification",
|
||||
"springboot-security",
|
||||
"java-coding-standards",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["./mvnw compile", "./gradlew build"],
|
||||
"test": ["./mvnw test", "./gradlew test"],
|
||||
"lint": ["./mvnw checkstyle:check"],
|
||||
"format": ["./mvnw spotless:apply"],
|
||||
"dev": ["./mvnw spring-boot:run", "./gradlew bootRun"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["./mvnw *", "./gradlew *", "mvn *", "gradle *", "java *"],
|
||||
"deny": ["./mvnw deploy", "./gradlew publish", "mvn deploy", "gradle publish"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "kotlin",
|
||||
"name": "Kotlin",
|
||||
"indicators": [
|
||||
{ "file": "build.gradle.kts" },
|
||||
{ "file": "settings.gradle.kts" },
|
||||
{ "file": "build.gradle", "contains": "kotlin" }
|
||||
],
|
||||
"rules": ["common", "kotlin"],
|
||||
"skills": [
|
||||
"kotlin-patterns",
|
||||
"kotlin-testing",
|
||||
"kotlin-coroutines-flows",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["./gradlew build"],
|
||||
"test": ["./gradlew test"],
|
||||
"lint": ["./gradlew ktlintCheck", "./gradlew detekt"],
|
||||
"format": ["./gradlew ktlintFormat"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["./gradlew *", "gradle *", "kotlin *"],
|
||||
"deny": ["./gradlew publish"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "swift",
|
||||
"name": "Swift / SwiftUI",
|
||||
"indicators": [
|
||||
{ "file": "Package.swift" },
|
||||
{ "file": "*.xcodeproj" },
|
||||
{ "file": "*.xcworkspace" },
|
||||
{ "file": "Podfile" }
|
||||
],
|
||||
"rules": ["common", "swift"],
|
||||
"skills": [
|
||||
"swiftui-patterns",
|
||||
"swift-concurrency-6-2",
|
||||
"swift-actor-persistence",
|
||||
"swift-protocol-di-testing",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["swift build", "xcodebuild build"],
|
||||
"test": ["swift test", "xcodebuild test"],
|
||||
"lint": ["swiftlint"],
|
||||
"format": ["swiftformat ."]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["swift build *", "swift test *", "swift run *", "xcodebuild *", "swiftlint *", "swiftformat *"],
|
||||
"deny": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dart-flutter",
|
||||
"name": "Dart / Flutter",
|
||||
"indicators": [
|
||||
{ "file": "pubspec.yaml" },
|
||||
{ "file": "pubspec.lock" }
|
||||
],
|
||||
"rules": ["common", "dart"],
|
||||
"skills": [
|
||||
"dart-flutter-patterns",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["flutter build", "dart compile"],
|
||||
"test": ["flutter test", "dart test"],
|
||||
"lint": ["dart analyze"],
|
||||
"format": ["dart format ."]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["flutter *", "dart *"],
|
||||
"deny": ["flutter pub publish"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "php-laravel",
|
||||
"name": "PHP / Laravel",
|
||||
"indicators": [
|
||||
{ "file": "composer.json" },
|
||||
{ "file": "artisan" },
|
||||
{ "file": "composer.lock" }
|
||||
],
|
||||
"rules": ["common", "php"],
|
||||
"skills": [
|
||||
"laravel-patterns",
|
||||
"laravel-tdd",
|
||||
"laravel-verification",
|
||||
"laravel-security",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["composer install"],
|
||||
"test": ["php artisan test", "vendor/bin/phpunit", "vendor/bin/pest"],
|
||||
"lint": ["vendor/bin/phpstan analyse", "vendor/bin/pint"],
|
||||
"format": ["vendor/bin/pint"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["php artisan *", "composer *", "vendor/bin/*"],
|
||||
"deny": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "ruby",
|
||||
"name": "Ruby / Rails",
|
||||
"indicators": [
|
||||
{ "file": "Gemfile" },
|
||||
{ "file": "Gemfile.lock" },
|
||||
{ "file": "Rakefile" }
|
||||
],
|
||||
"rules": ["common"],
|
||||
"skills": [
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["bundle install"],
|
||||
"test": ["bundle exec rspec", "bundle exec rake test"],
|
||||
"lint": ["bundle exec rubocop"],
|
||||
"format": ["bundle exec rubocop -A"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["bundle exec *", "rails *", "rake *", "ruby *"],
|
||||
"deny": ["gem push"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "csharp-dotnet",
|
||||
"name": "C# / .NET",
|
||||
"indicators": [
|
||||
{ "file": "*.csproj" },
|
||||
{ "file": "*.sln" },
|
||||
{ "file": "global.json" }
|
||||
],
|
||||
"rules": ["common", "csharp"],
|
||||
"skills": [
|
||||
"dotnet-patterns",
|
||||
"csharp-testing",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["dotnet build"],
|
||||
"test": ["dotnet test"],
|
||||
"lint": ["dotnet format --verify-no-changes"],
|
||||
"format": ["dotnet format"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["dotnet build *", "dotnet test *", "dotnet run *", "dotnet format *"],
|
||||
"deny": ["dotnet nuget push"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "cpp",
|
||||
"name": "C / C++",
|
||||
"indicators": [
|
||||
{ "file": "CMakeLists.txt" },
|
||||
{ "file": "Makefile" },
|
||||
{ "file": "meson.build" },
|
||||
{ "file": "*.vcxproj" }
|
||||
],
|
||||
"rules": ["common", "cpp"],
|
||||
"skills": [
|
||||
"cpp-coding-standards",
|
||||
"cpp-testing",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["cmake --build build", "make"],
|
||||
"test": ["ctest --test-dir build", "make test"],
|
||||
"lint": ["clang-tidy -p build"],
|
||||
"format": ["clang-format -i **/*.cpp **/*.h **/*.c **/*.hpp"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["cmake *", "make *", "ctest *", "clang-tidy *", "clang-format *", "gcc *", "g++ *"],
|
||||
"deny": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "perl",
|
||||
"name": "Perl",
|
||||
"indicators": [
|
||||
{ "file": "cpanfile" },
|
||||
{ "file": "Makefile.PL" },
|
||||
{ "file": "Build.PL" },
|
||||
{ "file": "dist.ini" }
|
||||
],
|
||||
"rules": ["common", "perl"],
|
||||
"skills": [
|
||||
"perl-patterns",
|
||||
"perl-testing",
|
||||
"perl-security",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["perl Makefile.PL && make", "perl Build.PL && ./Build"],
|
||||
"test": ["prove -lr t/", "make test"],
|
||||
"lint": ["perlcritic lib/"],
|
||||
"format": ["perltidy -b lib/**/*.pl"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["perl *", "prove *", "make *", "perlcritic *", "perltidy *"],
|
||||
"deny": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "django",
|
||||
"name": "Django (Python)",
|
||||
"indicators": [
|
||||
{ "file": "manage.py" },
|
||||
{ "file": "requirements.txt", "contains": "django" },
|
||||
{ "file": "pyproject.toml", "contains": "django" }
|
||||
],
|
||||
"rules": ["common", "python"],
|
||||
"skills": [
|
||||
"django-patterns",
|
||||
"django-tdd",
|
||||
"django-verification",
|
||||
"django-security",
|
||||
"python-patterns",
|
||||
"python-testing",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["pip install -e ."],
|
||||
"test": ["python manage.py test", "pytest"],
|
||||
"lint": ["ruff check .", "mypy ."],
|
||||
"format": ["ruff format .", "black ."],
|
||||
"dev": ["python manage.py runserver"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["python *", "pip install *", "pytest *", "ruff *", "black *", "mypy *"],
|
||||
"deny": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "android",
|
||||
"name": "Android (Kotlin/Java)",
|
||||
"indicators": [
|
||||
{ "file": "settings.gradle.kts", "contains": "android" },
|
||||
{ "file": "build.gradle", "contains": "android" },
|
||||
{ "file": "AndroidManifest.xml" }
|
||||
],
|
||||
"rules": ["common", "kotlin"],
|
||||
"skills": [
|
||||
"android-clean-architecture",
|
||||
"kotlin-patterns",
|
||||
"kotlin-testing",
|
||||
"kotlin-coroutines-flows",
|
||||
"compose-multiplatform-patterns",
|
||||
"tdd-workflow",
|
||||
"verification-loop"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["./gradlew assembleDebug"],
|
||||
"test": ["./gradlew testDebugUnitTest"],
|
||||
"lint": ["./gradlew lint", "./gradlew ktlintCheck"],
|
||||
"format": ["./gradlew ktlintFormat"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["./gradlew *", "adb *"],
|
||||
"deny": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "docker",
|
||||
"name": "Docker / Containerized",
|
||||
"indicators": [
|
||||
{ "file": "Dockerfile" },
|
||||
{ "file": "docker-compose.yml" },
|
||||
{ "file": "docker-compose.yaml" },
|
||||
{ "file": "compose.yml" },
|
||||
{ "file": "compose.yaml" }
|
||||
],
|
||||
"rules": [],
|
||||
"skills": [
|
||||
"docker-patterns",
|
||||
"deployment-patterns"
|
||||
],
|
||||
"commands": {
|
||||
"build": ["docker compose build", "docker build ."],
|
||||
"test": ["docker compose run --rm app test"],
|
||||
"dev": ["docker compose up"]
|
||||
},
|
||||
"permissions": {
|
||||
"allow": ["docker compose *", "docker build *"],
|
||||
"deny": ["docker push"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
# Everything Claude Code (ECC) — 智能体指令
|
||||
|
||||
这是一个**生产就绪的 AI 编码插件**,提供 54 个专业代理、207 项技能、70 条命令以及自动化钩子工作流,用于软件开发。
|
||||
这是一个**生产就绪的 AI 编码插件**,提供 54 个专业代理、208 项技能、72 条命令以及自动化钩子工作流,用于软件开发。
|
||||
|
||||
**版本:** 2.0.0-rc.1
|
||||
|
||||
@@ -147,8 +147,8 @@
|
||||
|
||||
```
|
||||
agents/ — 54 个专业子代理
|
||||
skills/ — 207 个工作流技能和领域知识
|
||||
commands/ — 70 个斜杠命令
|
||||
skills/ — 208 个工作流技能和领域知识
|
||||
commands/ — 72 个斜杠命令
|
||||
hooks/ — 基于触发的自动化
|
||||
rules/ — 始终遵循的指导方针(通用 + 每种语言)
|
||||
scripts/ — 跨平台 Node.js 实用工具
|
||||
|
||||
@@ -224,7 +224,7 @@ Copy-Item -Recurse rules/typescript "$HOME/.claude/rules/"
|
||||
/plugin list ecc@ecc
|
||||
```
|
||||
|
||||
**搞定!** 你现在可以使用 54 个智能体、207 项技能和 70 个命令了。
|
||||
**搞定!** 你现在可以使用 54 个智能体、208 项技能和 72 个命令了。
|
||||
|
||||
***
|
||||
|
||||
@@ -1133,8 +1133,8 @@ opencode
|
||||
| 功能特性 | Claude Code | OpenCode | 状态 |
|
||||
|---------|-------------|----------|--------|
|
||||
| 智能体 | PASS: 54 个 | PASS: 12 个 | **Claude Code 领先** |
|
||||
| 命令 | PASS: 70 个 | PASS: 35 个 | **Claude Code 领先** |
|
||||
| 技能 | PASS: 207 项 | PASS: 37 项 | **Claude Code 领先** |
|
||||
| 命令 | PASS: 72 个 | PASS: 35 个 | **Claude Code 领先** |
|
||||
| 技能 | PASS: 208 项 | PASS: 37 项 | **Claude Code 领先** |
|
||||
| 钩子 | PASS: 8 种事件类型 | PASS: 11 种事件 | **OpenCode 更多!** |
|
||||
| 规则 | PASS: 29 条 | PASS: 13 条指令 | **Claude Code 领先** |
|
||||
| MCP 服务器 | PASS: 14 个 | PASS: 完整 | **完全对等** |
|
||||
@@ -1241,8 +1241,8 @@ ECC 是**第一个最大化利用每个主要 AI 编码工具的插件**。以
|
||||
| 功能特性 | Claude Code | Cursor IDE | Codex CLI | OpenCode |
|
||||
|---------|------------|------------|-----------|----------|
|
||||
| **智能体** | 54 | 共享 (AGENTS.md) | 共享 (AGENTS.md) | 12 |
|
||||
| **命令** | 70 | 共享 | 基于指令 | 35 |
|
||||
| **技能** | 207 | 共享 | 10 (原生格式) | 37 |
|
||||
| **命令** | 72 | 共享 | 基于指令 | 35 |
|
||||
| **技能** | 208 | 共享 | 10 (原生格式) | 37 |
|
||||
| **钩子事件** | 8 种类型 | 15 种类型 | 暂无 | 11 种类型 |
|
||||
| **钩子脚本** | 20+ 个脚本 | 16 个脚本 (DRY 适配器) | N/A | 插件钩子 |
|
||||
| **规则** | 34 (通用 + 语言) | 34 (YAML 前页) | 基于指令 | 13 条指令 |
|
||||
|
||||
189
skills/ecc-guide/SKILL.md
Normal file
189
skills/ecc-guide/SKILL.md
Normal file
@@ -0,0 +1,189 @@
|
||||
---
|
||||
name: ecc-guide
|
||||
description: Guide users through ECC's current agents, skills, commands, hooks, rules, install profiles, and project onboarding by reading the live repository surface before answering.
|
||||
origin: community
|
||||
---
|
||||
|
||||
# ECC Guide
|
||||
|
||||
Use this skill when a user needs help understanding, navigating, installing, or choosing parts of Everything Claude Code.
|
||||
|
||||
## When To Use
|
||||
|
||||
Use this skill when the user:
|
||||
|
||||
- asks what ECC includes
|
||||
- wants help finding a skill, command, agent, hook, rule, or install profile
|
||||
- is new to the repository and needs a guided path
|
||||
- asks "how do I do X with ECC?"
|
||||
- asks which ECC components fit a project
|
||||
- needs a lightweight explanation of how commands, skills, agents, hooks, and rules relate
|
||||
- is confused by install paths, duplicate installs, reset/uninstall, or selective install options
|
||||
|
||||
## Core Principle
|
||||
|
||||
Answer from current files, not memory. ECC changes quickly, so hard-coded catalog counts, feature lists, and install instructions go stale.
|
||||
|
||||
When the ECC repository is available, inspect the relevant files before giving a concrete answer:
|
||||
|
||||
```bash
|
||||
node scripts/ci/catalog.js --json
|
||||
find skills -maxdepth 2 -name SKILL.md | sort
|
||||
find commands -maxdepth 1 -name '*.md' | sort
|
||||
find agents -maxdepth 1 -name '*.md' | sort
|
||||
node scripts/install-plan.js --list-profiles
|
||||
node scripts/install-plan.js --list-components --json
|
||||
```
|
||||
|
||||
Use the smallest set of reads needed for the user's question.
|
||||
|
||||
## Repository Map
|
||||
|
||||
- `README.md`: install paths, uninstall/reset guidance, public positioning, FAQs
|
||||
- `AGENTS.md`: contributor guidance and project structure
|
||||
- `agent.yaml`: exported gitagent surface and command list
|
||||
- `commands/`: maintained slash-command compatibility shims
|
||||
- `skills/*/SKILL.md`: reusable workflows and domain playbooks
|
||||
- `agents/*.md`: delegated subagent role prompts
|
||||
- `rules/`: language and harness rules
|
||||
- `hooks/README.md`, `hooks/hooks.json`, `scripts/hooks/`: hook behavior and safety gates
|
||||
- `manifests/install-*.json`: selective install modules, components, profiles, and target support
|
||||
- `docs/`: harness guides, architecture notes, translated docs, release docs
|
||||
|
||||
## Response Style
|
||||
|
||||
Lead with the answer, then give the next action. Most users do not need a full catalog dump.
|
||||
|
||||
Good first response shape:
|
||||
|
||||
1. what to use
|
||||
2. why it fits
|
||||
3. exact file or command to inspect
|
||||
4. one next command or question
|
||||
|
||||
Avoid:
|
||||
|
||||
- listing every skill or command by default
|
||||
- repeating large README sections
|
||||
- recommending retired command shims when a skill-first path exists
|
||||
- claiming a component exists without checking the filesystem
|
||||
- replacing install guidance with manual copy commands when the managed installer supports the target
|
||||
|
||||
## Common Tasks
|
||||
|
||||
### New User Onboarding
|
||||
|
||||
Give a short menu:
|
||||
|
||||
- install or reset ECC
|
||||
- pick skills for a project
|
||||
- understand commands vs skills
|
||||
- inspect hooks and safety behavior
|
||||
- run a harness audit
|
||||
- find a specific workflow
|
||||
|
||||
Point to `README.md` for install/reset and `/project-init` for project-specific onboarding.
|
||||
|
||||
### Feature Discovery
|
||||
|
||||
For "what should I use for X?":
|
||||
|
||||
1. Search `skills/`, `commands/`, and `agents/`.
|
||||
2. Prefer skills as the primary workflow surface.
|
||||
3. Use commands only when they are a maintained compatibility shim or a user explicitly wants slash-command behavior.
|
||||
4. Mention agents when delegation is useful.
|
||||
|
||||
Useful searches:
|
||||
|
||||
```bash
|
||||
rg -n "<query>" skills commands agents docs
|
||||
find skills -maxdepth 2 -name SKILL.md | sort
|
||||
```
|
||||
|
||||
### Install Guidance
|
||||
|
||||
Use managed install paths:
|
||||
|
||||
```bash
|
||||
node scripts/install-plan.js --list-profiles
|
||||
node scripts/install-plan.js --profile minimal --target claude --json
|
||||
node scripts/install-apply.js --profile minimal --target claude --dry-run
|
||||
```
|
||||
|
||||
For specific skill installs:
|
||||
|
||||
```bash
|
||||
node scripts/install-plan.js --skills <skill-id> --target claude --json
|
||||
node scripts/install-apply.js --skills <skill-id> --target claude --dry-run
|
||||
```
|
||||
|
||||
Warn users not to stack plugin installs and full manual/profile installs unless they intentionally want duplicate surfaces.
|
||||
|
||||
### Project Onboarding
|
||||
|
||||
Use `/project-init` when the user wants ECC configured for a target repo. The expected sequence is:
|
||||
|
||||
1. detect the stack from project files
|
||||
2. resolve a dry-run install plan
|
||||
3. inspect existing `CLAUDE.md` and settings files
|
||||
4. ask before applying changes
|
||||
5. keep generated guidance minimal and repo-specific
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
Ask for the target harness and install path first, then inspect:
|
||||
|
||||
- plugin install metadata
|
||||
- `.claude/`, `.cursor/`, `.codex/`, `.gemini/`, `.opencode/`, `.codebuddy/`, `.joycode/`, or `.qwen/`
|
||||
- `hooks/hooks.json`
|
||||
- install-state files
|
||||
- relevant command/skill files
|
||||
|
||||
For repo health, suggest:
|
||||
|
||||
```bash
|
||||
npm run harness:audit -- --format text
|
||||
npm run observability:ready
|
||||
npm test
|
||||
```
|
||||
|
||||
## Output Templates
|
||||
|
||||
### Short Recommendation
|
||||
|
||||
```text
|
||||
Use <skill-or-command>. It fits because <reason>.
|
||||
|
||||
Canonical file: <path>
|
||||
Verify with: <command>
|
||||
Next: <one concrete action>
|
||||
```
|
||||
|
||||
### Search Results
|
||||
|
||||
```text
|
||||
Best matches:
|
||||
- <path>: <why it matters>
|
||||
- <path>: <why it matters>
|
||||
|
||||
Recommendation: <which one to use first and why>
|
||||
```
|
||||
|
||||
### Install Plan Summary
|
||||
|
||||
```text
|
||||
Detected: <stack evidence>
|
||||
Target: <harness>
|
||||
Plan: <profile/modules/skills>
|
||||
Dry run: <command>
|
||||
Would change: <paths>
|
||||
Needs approval before apply: <yes/no>
|
||||
```
|
||||
|
||||
## Related Surfaces
|
||||
|
||||
- `/project-init`: stack-aware onboarding plan for a target repo
|
||||
- `/harness-audit`: deterministic readiness scorecard
|
||||
- `/skill-health`: skill quality review
|
||||
- `/skill-create`: generate a new skill from local git history
|
||||
- `/security-scan`: inspect Claude/OpenCode configuration security
|
||||
Reference in New Issue
Block a user