- 修复ecc-hooks.ts中的硬编码ECC_VERSION(从package.json读取) - 改进错误处理机制(统一模式、详细错误信息) - 增强类型安全(添加ToolArgs、ToolInput等类型定义) - 改进跨平台兼容性(支持macOS、Windows、Linux) - 添加dependency-analyzer工具(依赖分析) - 改进format-code工具(错误处理、跨平台支持) - 改进lint-check工具(错误处理、跨平台支持) - 更新文档(代理26个、工具8个、命令26个) - 添加工具测试(6个测试用例) - 改进现有测试(7个测试用例) 所有测试通过(16/16) Co-authored-by: Pual-LI-6 <dj2112236494@outlook.com>
7.3 KiB
OpenCode ECC Plugin
WARNING: This README is specific to OpenCode usage. If you installed ECC via npm (e.g.
npm install opencode-ecc), refer to the root README instead.
ECC plugin for OpenCode - agents, commands, hooks, and skills.
Installation
Installation Overview
There are two ways to use ECC:
-
npm package (recommended for most users) Install via npm/bun/yarn and use the
ecc-installCLI to set up rules and agents. -
Direct clone / plugin mode Clone the repository and run OpenCode directly inside it.
Choose the method that matches your workflow below.
Option 1: npm Package
npm install ecc-universal
Add to your opencode.json:
{
"plugin": ["ecc-universal"]
}
This loads the ECC OpenCode plugin module from npm:
- hook/event integrations
- bundled custom tools exported by the plugin
It does not auto-register the full ECC command/agent/instruction catalog in your project config. For the full OpenCode setup, either:
- run OpenCode inside this repository, or
- copy the relevant
.opencode/commands/,.opencode/prompts/,.opencode/instructions/, and theinstructions,agent, andcommandconfig entries into your own project
After installation, the ecc-install CLI is also available:
npx ecc-install typescript
Option 2: Direct Use
Clone and run OpenCode in the repository:
git clone https://github.com/affaan-m/ECC
cd ECC
opencode
If you also want to apply the ECC home install
(node scripts/install-apply.js --target opencode --profile full), build the
plugin first so the compiled payload at .opencode/dist/ exists:
node scripts/build-opencode.js # or: npm run build:opencode
node scripts/install-apply.js --target opencode --profile full
Without .opencode/dist/index.js, OpenCode will detect the slash commands
but silently skip plugin hooks and tools. The installer now fails fast with
a pointer to this command if the build step is missing.
Features
Agents (26)
| Agent | Description |
|---|---|
| build | Primary coding agent for development work |
| planner | Implementation planning |
| architect | System design |
| code-reviewer | Code review |
| security-reviewer | Security analysis |
| tdd-guide | Test-driven development |
| build-error-resolver | Build error fixes |
| e2e-runner | E2E testing |
| doc-updater | Documentation |
| refactor-cleaner | Dead code cleanup |
| go-reviewer | Go code review |
| go-build-resolver | Go build errors |
| database-reviewer | Database optimization |
| docs-lookup | Documentation lookup via Context7 |
| harness-optimizer | Harness config tuning |
| java-reviewer | Java code review |
| java-build-resolver | Java build errors |
| kotlin-reviewer | Kotlin code review |
| kotlin-build-resolver | Kotlin build errors |
| loop-operator | Autonomous loop execution |
| php-reviewer | PHP code review |
| python-reviewer | Python code review |
| rust-reviewer | Rust code review |
| rust-build-resolver | Rust build errors |
| cpp-reviewer | C++ code review |
| cpp-build-resolver | C++ build errors |
Commands (26)
| Command | Description |
|---|---|
/plan |
Create implementation plan |
/tdd |
TDD workflow |
/code-review |
Review code changes |
/security |
Security review |
/build-fix |
Fix build errors |
/e2e |
E2E tests |
/refactor-clean |
Remove dead code |
/orchestrate |
Multi-agent workflow |
/learn |
Extract patterns |
/checkpoint |
Save progress |
/verify |
Verification loop |
/eval |
Evaluation |
/update-docs |
Update docs |
/update-codemaps |
Update codemaps |
/test-coverage |
Coverage analysis |
/setup-pm |
Package manager |
/go-review |
Go code review |
/go-test |
Go TDD |
/go-build |
Go build fix |
/skill-create |
Generate skills |
/instinct-status |
View instincts |
/instinct-import |
Import instincts |
/instinct-export |
Export instincts |
/evolve |
Cluster instincts |
/promote |
Promote project instincts |
/projects |
List known projects |
Plugin Hooks
| Hook | Event | Purpose |
|---|---|---|
| Prettier | file.edited |
Auto-format JS/TS |
| TypeScript | tool.execute.after |
Check for type errors |
| console.log | file.edited |
Warn about debug statements |
| Notification | session.idle |
Desktop notification (cross-platform) |
| Security | tool.execute.before |
Check for secrets |
| Git Push Reminder | tool.execute.before |
Remind to review before pushing |
| Doc File Warning | tool.execute.before |
Warn about unnecessary documentation |
| Long Command Reminder | tool.execute.before |
Remind about long-running commands |
| Session Context | session.created |
Load project context |
| Console Log Audit | session.idle |
Audit edited files for console.log |
| File Watcher | file.watcher.updated |
Track file system changes |
| Todo Progress | todo.updated |
Log task completion progress |
| Shell Environment | shell.env |
Inject environment variables |
| Session Compacting | experimental.session.compacting |
Preserve context across compaction |
| Permission Auto-Approve | permission.ask |
Auto-approve safe operations |
Custom Tools
| Tool | Description |
|---|---|
| run-tests | Run test suite with options |
| check-coverage | Analyze test coverage |
| security-audit | Security vulnerability scan |
| format-code | Detect formatter and return command |
| lint-check | Detect linter and return command |
| git-summary | Generate git summary with branch, status, and diff |
| changed-files | List files changed in session as a navigable tree |
| dependency-analyzer | Analyze dependencies for outdated, vulnerable, and unused packages |
Hook Event Mapping
OpenCode's plugin system maps to Claude Code hooks:
| Claude Code | OpenCode |
|---|---|
| PreToolUse | tool.execute.before |
| PostToolUse | tool.execute.after |
| Stop | session.idle |
| SessionStart | session.created |
| SessionEnd | session.deleted |
OpenCode has 20+ additional events not available in Claude Code.
Hook Runtime Controls
OpenCode plugin hooks honor the same runtime controls used by Claude Code/Cursor:
export ECC_HOOK_PROFILE=standard
export ECC_DISABLED_HOOKS="pre:bash:tmux-reminder,post:edit:typecheck"
ECC_HOOK_PROFILE:minimal,standard(default),strictECC_DISABLED_HOOKS: comma-separated hook IDs to disable
Skills
The default OpenCode config loads 11 curated ECC skills via the instructions array:
- coding-standards
- backend-patterns
- frontend-patterns
- frontend-slides
- security-review
- tdd-workflow
- strategic-compact
- eval-harness
- verification-loop
- api-design
- e2e-testing
Additional specialized skills are shipped in skills/ but not loaded by default to keep OpenCode sessions lean:
- article-writing
- content-engine
- market-research
- investor-materials
- investor-outreach
Configuration
Full configuration in opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"model": "anthropic/claude-sonnet-4-5",
"small_model": "anthropic/claude-haiku-4-5",
"plugin": ["./plugins"],
"instructions": [
"skills/tdd-workflow/SKILL.md",
"skills/security-review/SKILL.md"
],
"agent": { /* 12 agents */ },
"command": { /* 24 commands */ }
}
License
MIT