mirror of
https://github.com/affaan-m/ECC.git
synced 2026-08-28 10:49:45 +02:00
The `.opencode/commands/*.md` frontmatter referenced agents with the Claude Code plugin namespace (`agent: everything-claude-code:<name>`), but ECC's opencode integration registers its agents unscoped in `opencode.json`'s `agent` map (`code-reviewer`, `planner`, ...), and that file's own `command` section already references them unscoped. The `everything-claude-code:` scope resolves under no opencode config (the opencode plugin package is `ecc-universal`, and inline-config agents are bare), so subtask commands like `/code-review` hard-fail with `Agent not found: everything-claude-code:code-reviewer`. Non-subtask commands fall back to the default agent and appear to work — which is why only some commands failed. Strip the `everything-claude-code:` prefix from all 30 command frontmatter agent ids so they match the registered agents, fix the MIGRATION.md example, and replace the test that enforced the broken scoped invariant with one that asserts each command agent id is a registered opencode agent (fails on the old scoped ids, passes on the fix). Fixes #2477
72 lines
1.7 KiB
Markdown
72 lines
1.7 KiB
Markdown
---
|
|
description: Go code review for idiomatic patterns
|
|
agent: go-reviewer
|
|
subtask: true
|
|
---
|
|
|
|
# Go Review Command
|
|
|
|
Review Go code for idiomatic patterns and best practices: $ARGUMENTS
|
|
|
|
## Your Task
|
|
|
|
1. **Analyze Go code** for idioms and patterns
|
|
2. **Check concurrency** - goroutines, channels, mutexes
|
|
3. **Review error handling** - proper error wrapping
|
|
4. **Verify performance** - allocations, bottlenecks
|
|
|
|
## Review Checklist
|
|
|
|
### Idiomatic Go
|
|
- [ ] Package naming (lowercase, no underscores)
|
|
- [ ] Variable naming (camelCase, short)
|
|
- [ ] Interface naming (ends with -er)
|
|
- [ ] Error naming (starts with Err)
|
|
|
|
### Error Handling
|
|
- [ ] Errors are checked, not ignored
|
|
- [ ] Errors wrapped with context (`fmt.Errorf("...: %w", err)`)
|
|
- [ ] Sentinel errors used appropriately
|
|
- [ ] Custom error types when needed
|
|
|
|
### Concurrency
|
|
- [ ] Goroutines properly managed
|
|
- [ ] Channels buffered appropriately
|
|
- [ ] No data races (use `-race` flag)
|
|
- [ ] Context passed for cancellation
|
|
- [ ] WaitGroups used correctly
|
|
|
|
### Performance
|
|
- [ ] Avoid unnecessary allocations
|
|
- [ ] Use `sync.Pool` for frequent allocations
|
|
- [ ] Prefer value receivers for small structs
|
|
- [ ] Buffer I/O operations
|
|
|
|
### Code Organization
|
|
- [ ] Small, focused packages
|
|
- [ ] Clear dependency direction
|
|
- [ ] Internal packages for private code
|
|
- [ ] Godoc comments on exports
|
|
|
|
## Report Format
|
|
|
|
### Idiomatic Issues
|
|
- [file:line] Issue description
|
|
Suggestion: How to fix
|
|
|
|
### Error Handling Issues
|
|
- [file:line] Issue description
|
|
Suggestion: How to fix
|
|
|
|
### Concurrency Issues
|
|
- [file:line] Issue description
|
|
Suggestion: How to fix
|
|
|
|
### Performance Issues
|
|
- [file:line] Issue description
|
|
Suggestion: How to fix
|
|
|
|
---
|
|
|
|
**TIP**: Run `go vet` and `staticcheck` for additional automated checks.
|