1 Commits

  • feat(rules): add Rust language rules (rebased #660) (#686)
    * feat(rules): add Rust coding style, hooks, and patterns rules
    
    Add language-specific rules for Rust extending the common rule set:
    - coding-style.md: rustfmt, clippy, ownership idioms, error handling,
      iterator patterns, module organization, visibility
    - hooks.md: PostToolUse hooks for rustfmt, clippy, cargo check
    - patterns.md: trait-based repository, newtype, enum state machines,
      builder, sealed traits, API response envelope
    
    Rules reference existing rust-patterns skill for deep content.
    
    Generated with [Claude Code](https://claude.ai/code)
    via [Happy](https://happy.engineering)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    Co-Authored-By: Happy <yesreply@happy.engineering>
    
    * feat(rules): add Rust testing and security rules
    
    Add remaining Rust language-specific rules:
    - testing.md: cargo test, rstest parameterized tests, mockall mocking
      with mock! macro, tokio async tests, cargo-llvm-cov coverage
    - security.md: secrets via env vars, parameterized SQL with sqlx,
      parse-don't-validate input validation, unsafe code audit requirements,
      cargo-audit dependency scanning, proper HTTP error status codes
    
    Generated with [Claude Code](https://claude.ai/code)
    via [Happy](https://happy.engineering)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    Co-Authored-By: Happy <yesreply@happy.engineering>
    
    * fix(rules): address review feedback on Rust rules
    
    Fixes from Copilot, Greptile, Cubic, and CodeRabbit reviews:
    - Add missing imports: use std::borrow::Cow, use anyhow::Context
    - Use anyhow::Result<T> consistently (patterns.md, security.md)
    - Change sqlx placeholder from ? to $1 (Postgres is most common)
    - Remove Cargo.lock from hooks.md paths (auto-generated file)
    - Fix tokio::test to show attribute form #[tokio::test]
    - Fix mockall mock! name collision, wrap in #[cfg(test)] mod tests
    - Fix --test target to match file layout (api_test, not integration)
    
    Generated with [Claude Code](https://claude.ai/code)
    via [Happy](https://happy.engineering)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    Co-Authored-By: Happy <yesreply@happy.engineering>
    
    * fix: update catalog counts in README.md and AGENTS.md
    
    Update documented counts to match actual repository state after rebase:
    - Skills: 109 → 113 (new skills merged to main)
    - Commands: 57 → 58 (new command merged to main)
    
    Generated with [Claude Code](https://claude.ai/code)
    via [Happy](https://happy.engineering)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    Co-Authored-By: Happy <yesreply@happy.engineering>
    
    ---------
    
    Co-authored-by: Chris Yau <chris@diveanddev.com>
    Co-authored-by: Claude <noreply@anthropic.com>
    Co-authored-by: Happy <yesreply@happy.engineering>