Files
ECC/.opencode/commands/rust-review.md
Gaurav Dubey 9d1ecb0754 fix(opencode): resolve command agent ids to registered opencode agents (#2477)
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
2026-07-10 09:46:40 +05:30

1.8 KiB

description, agent, subtask
description agent subtask
Rust code review for ownership, safety, and idiomatic patterns rust-reviewer true

Rust Review Command

Review Rust code for idiomatic patterns and best practices: $ARGUMENTS

Your Task

  1. Analyze Rust code for idioms and patterns
  2. Check ownership - borrowing, lifetimes, unnecessary clones
  3. Review error handling - proper ? propagation, no unwrap in production
  4. Verify safety - unsafe usage, injection, secrets

Review Checklist

Safety (CRITICAL)

  • No unchecked unwrap()/expect() in production paths
  • unsafe blocks have // SAFETY: comments
  • No SQL/command injection
  • No hardcoded secrets

Ownership (HIGH)

  • No unnecessary .clone() to satisfy borrow checker
  • &str preferred over String in function parameters
  • &[T] preferred over Vec<T> in function parameters
  • No excessive lifetime annotations where elision works

Error Handling (HIGH)

  • Errors propagated with ?; use .context() in anyhow/eyre application code
  • No silenced errors (let _ = result;)
  • thiserror for library errors, anyhow for applications

Concurrency (HIGH)

  • No blocking in async context
  • Bounded channels preferred
  • Mutex poisoning handled
  • Send/Sync bounds correct

Code Quality (MEDIUM)

  • Functions under 50 lines
  • No deep nesting (>4 levels)
  • Exhaustive matching on business enums
  • Clippy warnings addressed

Report Format

CRITICAL Issues

  • [file:line] Issue description Suggestion: How to fix

HIGH Issues

  • [file:line] Issue description Suggestion: How to fix

MEDIUM Issues

  • [file:line] Issue description Suggestion: How to fix

TIP: Run cargo clippy -- -D warnings and cargo fmt --check for automated checks.