mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-06-18 15:54:13 +08:00
main
2 Commits
-
Affaan Mustafa ·
2026-04-29 23:56:40 -04:00 -
feat(agents): add Rust language support (#523)
* feat(agents): add Rust language support — reviewer, build resolver, patterns, and testing Add Rust-specific agents and skills following the established Go/Kotlin pattern: - agents/rust-reviewer.md: ownership, lifetimes, unsafe audit, clippy, error handling - agents/rust-build-resolver.md: cargo build errors, borrow checker, dependency resolution - skills/rust-patterns/SKILL.md: idiomatic Rust patterns and best practices - skills/rust-testing/SKILL.md: TDD, unit/integration/async/property-based testing * fix(agents): correct Rust examples for accuracy and consistency - unsafe fn: add inner unsafe {} block for Rust 2024 edition compliance - edition: update from 2021 to 2024 as current default - rstest: add missing fixture import - mockall: add missing predicate::eq import - concurrency: use sync_channel (bounded) and expect() over unwrap() to align with rust-reviewer's HIGH-priority review checks * fix(skills): correct compilation issues in Rust code examples - collect: add .copied() for &str iterator into String - tokio import: remove unused sleep, keep Duration - async test: add missing Duration import * fix(skills): move --no-fail-fast before test-binary args --no-fail-fast is a Cargo option, not a test binary flag. Placing it after -- forwards it to the test harness where it is unrecognized. * fix(agents): distinguish missing cargo-audit from real audit failures Check if cargo-audit is installed before running it, so actual vulnerability findings are not suppressed by the fallback message. * fix: address automated review findings across all Rust files - build-resolver: prefer scoped cargo update over full refresh - testing: add Cargo.toml bench config with harness = false for criterion - testing: condense TDD example to stay under 500-line limit - patterns: use expect() over unwrap() on JoinHandle for consistency - patterns: add explicit lifetime to unsafe FFI return reference - reviewer: replace misleading "string interpolation" with concrete alternatives * fix: align with CONTRIBUTING.md conventions - skills: rename "When to Activate" to "When to Use" per template - reviewer: add cargo check gate before starting review * fix(agents): guard cargo-audit and cargo-deny with availability checks Match the pattern used in rust-build-resolver to avoid command-not-found errors when optional tools are not installed. * fix: address second round of automated review findings - testing: split TDD example into separate code blocks to avoid duplicate fn definition in single block - build-resolver/reviewer: use if/then/else instead of && ... || chaining for cargo-audit/deny to avoid masking real failures - build-resolver: add MSRV caveat to edition upgrade guidance * feat: add Rust slash commands for build, review, and test Add commands/rust-build.md, commands/rust-review.md, and commands/rust-test.md to provide consistent user entrypoints matching the existing Go and Kotlin command patterns. * fix(commands): improve rust-build accuracy and tone - Restructure-first borrow fix example instead of clone-first - Realistic cargo test output format (per-test lines, not per-file) - Align "Parse Errors" step with actual resolver behavior - Prefer restructuring over cloning in common errors table * fix: address cubic-dev-ai review findings on commands - Gate review on all automated checks, not just cargo check - Use git diff HEAD~1 / git diff main...HEAD for PR file selection - Fix #[must_use] guidance: Result is already must_use by type - Remove error-masking fallback on cargo tree --duplicates * fix: address remaining review findings across all bots - Add rust-reviewer and rust-build-resolver to AGENTS.md registry - Update agent count from 16 to 18 - Mark parse_config doctest as no_run (body is todo!()) - Add "How It Works" section to both Rust skills - Replace cargo install with taiki-e/install-action in CI snippet - Trim tarpaulin section to stay under 500-line limit * fix(agents): align rust-reviewer invocation with command spec - Use git diff HEAD~1 / main...HEAD instead of bare git diff - Add cargo test as explicit step before review begins * fix(skills): address cubic review on patterns and testing - Remove Tokio-specific language from How It Works summary - Add cargo-llvm-cov install note in coverage section - Revert no_run on doctest examples (illustrative code, not compiled) * fix(skills): use expect on thread join for consistency Replace handle.join().unwrap() with .expect("worker thread panicked") to match the .expect("mutex poisoned") pattern used above. * fix(agents): gate review on all automated checks, not just cargo check Consolidate check/clippy/fmt/test into a single gate step that stops and reports if any fail, matching the command spec. * fix(skills): replace unwrap with expect in channel example Use .expect("receiver disconnected") on tx.send() for consistency with the .expect() convention used in all other concurrency examples. * fix: address final review round — OpenCode mirrors, counts, examples - Add .opencode/commands/rust-{build,review,test}.md mirrors - Add .opencode/prompts/agents/rust-{build-resolver,reviewer}.txt mirrors - Fix AGENTS.md count to 20 (add missing kotlin agents to table) - Fix review example: all checks pass (consistent with gate policy) - Replace should_panic doctest with is_err() (consistent with best practices) - Trim testing commands to stay at 500-line limit * fix: address cubic and greptile review on OpenCode files and agents - Fix crate::module import guidance (internal path, not Cargo.toml) - Add cargo fmt --check to verification steps - Fix TDD GREEN example to handle error path (validate(input)?) - Scope .context() guidance to anyhow/eyre application code - Update command count from 40 to 51 - Add tokio channel variants to unbounded channel warning - Preserve JoinError context in spawned task panic message * fix: stale command count, channel guidance, cargo tree fallback - Fix stale command count in Project Structure section (40→51) - Clarify unbounded channel rule: context-appropriate bounded alternatives - Remove dead cargo tree fallback (exits 0 even with no duplicates) - Sync OpenCode reviewer mirror with tokio channel coverageRonaldo Martins ·
2026-03-16 13:34:25 -07:00