| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 9 | 14 | 0% |
| Commands | 0 | 0 | 0 | — |
| Section tags | 2 | 2 | 6 | 20% |
What each file covers
Sections
0 shared · 9 only in A · 14 only in B- − Rust Patterns
- − Repository Pattern with Traits
- − Service Layer
- − Newtype Pattern for Type Safety
- − Enum State Machines
- − Builder Pattern
- − Sealed Traits for Extensibility Control
- − API Response Envelope
- − References
- + Everything Claude Code (ECC) — Agent Instructions
- + Core Principles
- + Available Agents
- + Agent Orchestration
- + Security Guidelines
- + Coding Style
- + Testing Requirements
- + Development Workflow
- + Workflow Surface Policy
- + Git Workflow
- + Architecture Patterns
- + Performance
- + Project Structure
- + Success Metrics
Commands
neither file has anySection tags
2 shared · 2 only in A · 6 only in B- − types
- − api
- + test
- + architecture
- + git-pr
- + security
- + performance
- + agent-behaviour
- build
- code-style
Line diff
ThanhTrunggDEV/DontBeLazy · .cursor/rules/rust-patterns.mdc
@@ −1 @@
1---
2paths:
3 - "**/*.rs"
4---
5# Rust Patterns
6
7> This file extends [common/patterns.md](../common/patterns.md) with Rust-specific content.
8
9## Repository Pattern with Traits
10
11Encapsulate data access behind a trait:
12
13```rust
14pub trait OrderRepository: Send + Sync {
15 fn find_by_id(&self, id: u64) -> Result<Option<Order>, StorageError>;
16 fn find_all(&self) -> Result<Vec<Order>, StorageError>;
17 fn save(&self, order: &Order) -> Result<Order, StorageError>;
18 fn delete(&self, id: u64) -> Result<(), StorageError>;
19}
20```
21
22Concrete implementations handle storage details (Postgres, SQLite, in-memory for tests).
23
24## Service Layer
25
26Business logic in service structs; inject dependencies via constructor:
27
28```rust
29pub struct OrderService {
30 repo: Box<dyn OrderRepository>,
31 payment: Box<dyn PaymentGateway>,
32}
33
34impl OrderService {
35 pub fn new(repo: Box<dyn OrderRepository>, payment: Box<dyn PaymentGateway>) -> Self {
36 Self { repo, payment }
37 }
38
39 pub fn place_order(&self, request: CreateOrderRequest) -> anyhow::Result<OrderSummary> {
40 let order = Order::from(request);
41 self.payment.charge(order.total())?;
42 let saved = self.repo.save(&order)?;
43 Ok(OrderSummary::from(saved))
44 }
45}
46```
47
48## Newtype Pattern for Type Safety
49
50Prevent argument mix-ups with distinct wrapper types:
51
52```rust
53struct UserId(u64);
54struct OrderId(u64);
55
56fn get_order(user: UserId, order: OrderId) -> anyhow::Result<Order> {
57 // Can't accidentally swap user and order IDs at call sites
58 todo!()
59}
60```
61
62## Enum State Machines
63
64Model states as enums — make illegal states unrepresentable:
65
66```rust
67enum ConnectionState {
68 Disconnected,
69 Connecting { attempt: u32 },
70 Connected { session_id: String },
71 Failed { reason: String, retries: u32 },
72}
73
74fn handle(state: &ConnectionState) {
75 match state {
76 ConnectionState::Disconnected => connect(),
77 ConnectionState::Connecting { attempt } if *attempt > 3 => abort(),
78 ConnectionState::Connecting { .. } => wait(),
79 ConnectionState::Connected { session_id } => use_session(session_id),
80 ConnectionState::Failed { retries, .. } if *retries < 5 => retry(),
81 ConnectionState::Failed { reason, .. } => log_failure(reason),
82 }
83}
84```
85
86Always match exhaustively — no wildcard `_` for business-critical enums.
87
88## Builder Pattern
89
90Use for structs with many optional parameters:
91
92```rust
93pub struct ServerConfig {
94 host: String,
95 port: u16,
96 max_connections: usize,
97}
98
99impl ServerConfig {
100 pub fn builder(host: impl Into<String>, port: u16) -> ServerConfigBuilder {
101 ServerConfigBuilder {
102 host: host.into(),
103 port,
104 max_connections: 100,
105 }
106 }
107}
108
109pub struct ServerConfigBuilder {
110 host: String,
111 port: u16,
112 max_connections: usize,
113}
114
115impl ServerConfigBuilder {
116 pub fn max_connections(mut self, n: usize) -> Self {
117 self.max_connections = n;
118 self
119 }
120
121 pub fn build(self) -> ServerConfig {
122 ServerConfig {
123 host: self.host,
124 port: self.port,
125 max_connections: self.max_connections,
126 }
127 }
128}
129```
130
131## Sealed Traits for Extensibility Control
132
133Use a private module to seal a trait, preventing external implementations:
134
135```rust
136mod private {
137 pub trait Sealed {}
138}
139
140pub trait Format: private::Sealed {
141 fn encode(&self, data: &[u8]) -> Vec<u8>;
142}
143
144pub struct Json;
145impl private::Sealed for Json {}
146impl Format for Json {
147 fn encode(&self, data: &[u8]) -> Vec<u8> { todo!() }
148}
149```
150
151## API Response Envelope
152
153Consistent API responses using a generic enum:
154
155```rust
156#[derive(Debug, serde::Serialize)]
157#[serde(tag = "status")]
158pub enum ApiResponse<T: serde::Serialize> {
159 #[serde(rename = "ok")]
160 Ok { data: T },
161 #[serde(rename = "error")]
162 Error { message: String },
163}
164```
165
166## References
167
168See skill: `rust-patterns` for comprehensive patterns including ownership, traits, generics, concurrency, and async.
169
ThanhTrunggDEV/DontBeLazy · .cursor/AGENTS.md
@@ +1 @@
1# Everything Claude Code (ECC) — Agent Instructions
2
3This is a **production-ready AI coding plugin** providing 48 specialized agents, 183 skills, 79 commands, and automated hook workflows for software development.
4
5**Version:** 1.10.0
6
7## Core Principles
8
91. **Agent-First** — Delegate to specialized agents for domain tasks
102. **Test-Driven** — Write tests before implementation, 80%+ coverage required
113. **Security-First** — Never compromise on security; validate all inputs
124. **Immutability** — Always create new objects, never mutate existing ones
135. **Plan Before Execute** — Plan complex features before writing code
14
15## Available Agents
16
17| Agent | Purpose | When to Use |
18|-------|---------|-------------|
19| planner | Implementation planning | Complex features, refactoring |
20| architect | System design and scalability | Architectural decisions |
21| tdd-guide | Test-driven development | New features, bug fixes |
22| code-reviewer | Code quality and maintainability | After writing/modifying code |
23| security-reviewer | Vulnerability detection | Before commits, sensitive code |
24| build-error-resolver | Fix build/type errors | When build fails |
25| e2e-runner | End-to-end Playwright testing | Critical user flows |
26| refactor-cleaner | Dead code cleanup | Code maintenance |
27| doc-updater | Documentation and codemaps | Updating docs |
28| cpp-reviewer | C/C++ code review | C and C++ projects |
29| cpp-build-resolver | C/C++ build errors | C and C++ build failures |
30| docs-lookup | Documentation lookup via Context7 | API/docs questions |
31| go-reviewer | Go code review | Go projects |
32| go-build-resolver | Go build errors | Go build failures |
33| kotlin-reviewer | Kotlin code review | Kotlin/Android/KMP projects |
34| kotlin-build-resolver | Kotlin/Gradle build errors | Kotlin build failures |
35| database-reviewer | PostgreSQL/Supabase specialist | Schema design, query optimization |
36| python-reviewer | Python code review | Python projects |
37| java-reviewer | Java and Spring Boot code review | Java/Spring Boot projects |
38| java-build-resolver | Java/Maven/Gradle build errors | Java build failures |
39| loop-operator | Autonomous loop execution | Run loops safely, monitor stalls, intervene |
40| harness-optimizer | Harness config tuning | Reliability, cost, throughput |
41| rust-reviewer | Rust code review | Rust projects |
42| rust-build-resolver | Rust build errors | Rust build failures |
43| pytorch-build-resolver | PyTorch runtime/CUDA/training errors | PyTorch build/training failures |
44| typescript-reviewer | TypeScript/JavaScript code review | TypeScript/JavaScript projects |
45
46## Agent Orchestration
47
48Use agents proactively without user prompt:
49- Complex feature requests → **planner**
50- Code just written/modified → **code-reviewer**
51- Bug fix or new feature → **tdd-guide**
52- Architectural decision → **architect**
53- Security-sensitive code → **security-reviewer**
54- Autonomous loops / loop monitoring → **loop-operator**
55- Harness config reliability and cost → **harness-optimizer**
56
57Use parallel execution for independent operations — launch multiple agents simultaneously.
58
59## Security Guidelines
60
61**Before ANY commit:**
62- No hardcoded secrets (API keys, passwords, tokens)
63- All user inputs validated
64- SQL injection prevention (parameterized queries)
65- XSS prevention (sanitized HTML)
66- CSRF protection enabled
67- Authentication/authorization verified
68- Rate limiting on all endpoints
69- Error messages don't leak sensitive data
70
71**Secret management:** NEVER hardcode secrets. Use environment variables or a secret manager. Validate required secrets at startup. Rotate any exposed secrets immediately.
72
73**If security issue found:** STOP → use security-reviewer agent → fix CRITICAL issues → rotate exposed secrets → review codebase for similar issues.
74
75## Coding Style
76
77**Immutability (CRITICAL):** Always create new objects, never mutate. Return new copies with changes applied.
78
79**File organization:** Many small files over few large ones. 200-400 lines typical, 800 max. Organize by feature/domain, not by type. High cohesion, low coupling.
80
81**Error handling:** Handle errors at every level. Provide user-friendly messages in UI code. Log detailed context server-side. Never silently swallow errors.
82
83**Input validation:** Validate all user input at system boundaries. Use schema-based validation. Fail fast with clear messages. Never trust external data.
84
85**Code quality checklist:**
86- Functions small (<50 lines), files focused (<800 lines)
87- No deep nesting (>4 levels)
88- Proper error handling, no hardcoded values
89- Readable, well-named identifiers
90
91## Testing Requirements
92
93**Minimum coverage: 80%**
94
95Test types (all required):
961. **Unit tests** — Individual functions, utilities, components
972. **Integration tests** — API endpoints, database operations
983. **E2E tests** — Critical user flows
99
100**TDD workflow (mandatory):**
1011. Write test first (RED) — test should FAIL
1022. Write minimal implementation (GREEN) — test should PASS
1033. Refactor (IMPROVE) — verify coverage 80%+
104
105Troubleshoot failures: check test isolation → verify mocks → fix implementation (not tests, unless tests are wrong).
106
107## Development Workflow
108
1091. **Plan** — Use planner agent, identify dependencies and risks, break into phases
1102. **TDD** — Use tdd-guide agent, write tests first, implement, refactor
1113. **Review** — Use code-reviewer agent immediately, address CRITICAL/HIGH issues
1124. **Capture knowledge in the right place**
113 - Personal debugging notes, preferences, and temporary context → auto memory
114 - Team/project knowledge (architecture decisions, API changes, runbooks) → the project's existing docs structure
115 - If the current task already produces the relevant docs or code comments, do not duplicate the same information elsewhere
116 - If there is no obvious project doc location, ask before creating a new top-level file
1175. **Commit** — Conventional commits format, comprehensive PR summaries
118
119## Workflow Surface Policy
120
121- `skills/` is the canonical workflow surface.
122- New workflow contributions should land in `skills/` first.
123- `commands/` is a legacy slash-entry compatibility surface and should only be added or updated when a shim is still required for migration or cross-harness parity.
124
125## Git Workflow
126
127**Commit format:** `<type>: <description>` — Types: feat, fix, refactor, docs, test, chore, perf, ci
128
129**PR workflow:** Analyze full commit history → draft comprehensive summary → include test plan → push with `-u` flag.
130
131## Architecture Patterns
132
133**API response format:** Consistent envelope with success indicator, data payload, error message, and pagination metadata.
134
135**Repository pattern:** Encapsulate data access behind standard interface (findAll, findById, create, update, delete). Business logic depends on abstract interface, not storage mechanism.
136
137**Skeleton projects:** Search for battle-tested templates, evaluate with parallel agents (security, extensibility, relevance), clone best match, iterate within proven structure.
138
139## Performance
140
141**Context management:** Avoid last 20% of context window for large refactoring and multi-file features. Lower-sensitivity tasks (single edits, docs, simple fixes) tolerate higher utilization.
142
143**Build troubleshooting:** Use build-error-resolver agent → analyze errors → fix incrementally → verify after each fix.
144
145## Project Structure
146
147```
148agents/ — 48 specialized subagents
149skills/ — 183 workflow skills and domain knowledge
150commands/ — 79 slash commands
151hooks/ — Trigger-based automations
152rules/ — Always-follow guidelines (common + per-language)
153scripts/ — Cross-platform Node.js utilities
154mcp-configs/ — 14 MCP server configurations
155tests/ — Test suite
156```
157
158`commands/` remains in the repo for compatibility, but the long-term direction is skills-first.
159
160## Success Metrics
161
162- All tests pass with 80%+ coverage
163- No security vulnerabilities
164- Code is readable and maintainable
165- Performance is acceptable
166- User requirements are met
167
@@ −1 +1 @@
1−---
2−paths:
3− - "**/*.rs"
4−---
5−# Rust Patterns
1+# Everything Claude Code (ECC) — Agent Instructions
62
7−> This file extends [common/patterns.md](../common/patterns.md) with Rust-specific content.
3+This is a **production-ready AI coding plugin** providing 48 specialized agents, 183 skills, 79 commands, and automated hook workflows for software development.
84
9−## Repository Pattern with Traits
5+**Version:** 1.10.0
106
11−Encapsulate data access behind a trait:
7+## Core Principles
128
13−```rust
14−pub trait OrderRepository: Send + Sync {
15− fn find_by_id(&self, id: u64) -> Result<Option<Order>, StorageError>;
16− fn find_all(&self) -> Result<Vec<Order>, StorageError>;
17− fn save(&self, order: &Order) -> Result<Order, StorageError>;
18− fn delete(&self, id: u64) -> Result<(), StorageError>;
19−}
20−```
9+1. **Agent-First** — Delegate to specialized agents for domain tasks
10+2. **Test-Driven** — Write tests before implementation, 80%+ coverage required
11+3. **Security-First** — Never compromise on security; validate all inputs
12+4. **Immutability** — Always create new objects, never mutate existing ones
13+5. **Plan Before Execute** — Plan complex features before writing code
2114
22−Concrete implementations handle storage details (Postgres, SQLite, in-memory for tests).
15+## Available Agents
2316
24−## Service Layer
17+| Agent | Purpose | When to Use |
18+|-------|---------|-------------|
19+| planner | Implementation planning | Complex features, refactoring |
20+| architect | System design and scalability | Architectural decisions |
21+| tdd-guide | Test-driven development | New features, bug fixes |
22+| code-reviewer | Code quality and maintainability | After writing/modifying code |
23+| security-reviewer | Vulnerability detection | Before commits, sensitive code |
24+| build-error-resolver | Fix build/type errors | When build fails |
25+| e2e-runner | End-to-end Playwright testing | Critical user flows |
26+| refactor-cleaner | Dead code cleanup | Code maintenance |
27+| doc-updater | Documentation and codemaps | Updating docs |
28+| cpp-reviewer | C/C++ code review | C and C++ projects |
29+| cpp-build-resolver | C/C++ build errors | C and C++ build failures |
30+| docs-lookup | Documentation lookup via Context7 | API/docs questions |
31+| go-reviewer | Go code review | Go projects |
32+| go-build-resolver | Go build errors | Go build failures |
33+| kotlin-reviewer | Kotlin code review | Kotlin/Android/KMP projects |
34+| kotlin-build-resolver | Kotlin/Gradle build errors | Kotlin build failures |
35+| database-reviewer | PostgreSQL/Supabase specialist | Schema design, query optimization |
36+| python-reviewer | Python code review | Python projects |
37+| java-reviewer | Java and Spring Boot code review | Java/Spring Boot projects |
38+| java-build-resolver | Java/Maven/Gradle build errors | Java build failures |
39+| loop-operator | Autonomous loop execution | Run loops safely, monitor stalls, intervene |
40+| harness-optimizer | Harness config tuning | Reliability, cost, throughput |
41+| rust-reviewer | Rust code review | Rust projects |
42+| rust-build-resolver | Rust build errors | Rust build failures |
43+| pytorch-build-resolver | PyTorch runtime/CUDA/training errors | PyTorch build/training failures |
44+| typescript-reviewer | TypeScript/JavaScript code review | TypeScript/JavaScript projects |
2545
26−Business logic in service structs; inject dependencies via constructor:
46+## Agent Orchestration
2747
28−```rust
29−pub struct OrderService {
30− repo: Box<dyn OrderRepository>,
31− payment: Box<dyn PaymentGateway>,
32−}
48+Use agents proactively without user prompt:
49+- Complex feature requests → **planner**
50+- Code just written/modified → **code-reviewer**
51+- Bug fix or new feature → **tdd-guide**
52+- Architectural decision → **architect**
53+- Security-sensitive code → **security-reviewer**
54+- Autonomous loops / loop monitoring → **loop-operator**
55+- Harness config reliability and cost → **harness-optimizer**
3356
34−impl OrderService {
35− pub fn new(repo: Box<dyn OrderRepository>, payment: Box<dyn PaymentGateway>) -> Self {
36− Self { repo, payment }
37− }
57+Use parallel execution for independent operations — launch multiple agents simultaneously.
3858
39− pub fn place_order(&self, request: CreateOrderRequest) -> anyhow::Result<OrderSummary> {
40− let order = Order::from(request);
41− self.payment.charge(order.total())?;
42− let saved = self.repo.save(&order)?;
43− Ok(OrderSummary::from(saved))
44− }
45−}
46−```
59+## Security Guidelines
4760
48−## Newtype Pattern for Type Safety
61+**Before ANY commit:**
62+- No hardcoded secrets (API keys, passwords, tokens)
63+- All user inputs validated
64+- SQL injection prevention (parameterized queries)
65+- XSS prevention (sanitized HTML)
66+- CSRF protection enabled
67+- Authentication/authorization verified
68+- Rate limiting on all endpoints
69+- Error messages don't leak sensitive data
4970
50−Prevent argument mix-ups with distinct wrapper types:
71+**Secret management:** NEVER hardcode secrets. Use environment variables or a secret manager. Validate required secrets at startup. Rotate any exposed secrets immediately.
5172
52−```rust
53−struct UserId(u64);
54−struct OrderId(u64);
73+**If security issue found:** STOP → use security-reviewer agent → fix CRITICAL issues → rotate exposed secrets → review codebase for similar issues.
5574
56−fn get_order(user: UserId, order: OrderId) -> anyhow::Result<Order> {
57− // Can't accidentally swap user and order IDs at call sites
58− todo!()
59−}
60−```
75+## Coding Style
6176
62−## Enum State Machines
77+**Immutability (CRITICAL):** Always create new objects, never mutate. Return new copies with changes applied.
6378
64−Model states as enums — make illegal states unrepresentable:
79+**File organization:** Many small files over few large ones. 200-400 lines typical, 800 max. Organize by feature/domain, not by type. High cohesion, low coupling.
6580
66−```rust
67−enum ConnectionState {
68− Disconnected,
69− Connecting { attempt: u32 },
70− Connected { session_id: String },
71− Failed { reason: String, retries: u32 },
72−}
81+**Error handling:** Handle errors at every level. Provide user-friendly messages in UI code. Log detailed context server-side. Never silently swallow errors.
7382
74−fn handle(state: &ConnectionState) {
75− match state {
76− ConnectionState::Disconnected => connect(),
77− ConnectionState::Connecting { attempt } if *attempt > 3 => abort(),
78− ConnectionState::Connecting { .. } => wait(),
79− ConnectionState::Connected { session_id } => use_session(session_id),
80− ConnectionState::Failed { retries, .. } if *retries < 5 => retry(),
81− ConnectionState::Failed { reason, .. } => log_failure(reason),
82− }
83−}
84−```
83+**Input validation:** Validate all user input at system boundaries. Use schema-based validation. Fail fast with clear messages. Never trust external data.
8584
86−Always match exhaustively — no wildcard `_` for business-critical enums.
85+**Code quality checklist:**
86+- Functions small (<50 lines), files focused (<800 lines)
87+- No deep nesting (>4 levels)
88+- Proper error handling, no hardcoded values
89+- Readable, well-named identifiers
8790
88−## Builder Pattern
91+## Testing Requirements
8992
90−Use for structs with many optional parameters:
93+**Minimum coverage: 80%**
9194
92−```rust
93−pub struct ServerConfig {
94− host: String,
95− port: u16,
96− max_connections: usize,
97−}
95+Test types (all required):
96+1. **Unit tests** — Individual functions, utilities, components
97+2. **Integration tests** — API endpoints, database operations
98+3. **E2E tests** — Critical user flows
9899
99−impl ServerConfig {
100− pub fn builder(host: impl Into<String>, port: u16) -> ServerConfigBuilder {
101− ServerConfigBuilder {
102− host: host.into(),
103− port,
104− max_connections: 100,
105− }
106− }
107−}
100+**TDD workflow (mandatory):**
101+1. Write test first (RED) — test should FAIL
102+2. Write minimal implementation (GREEN) — test should PASS
103+3. Refactor (IMPROVE) — verify coverage 80%+
108104
109−pub struct ServerConfigBuilder {
110− host: String,
111− port: u16,
112− max_connections: usize,
113−}
105+Troubleshoot failures: check test isolation → verify mocks → fix implementation (not tests, unless tests are wrong).
114106
115−impl ServerConfigBuilder {
116− pub fn max_connections(mut self, n: usize) -> Self {
117− self.max_connections = n;
118− self
119− }
107+## Development Workflow
120108
121− pub fn build(self) -> ServerConfig {
122− ServerConfig {
123− host: self.host,
124− port: self.port,
125− max_connections: self.max_connections,
126− }
127− }
128−}
129−```
109+1. **Plan** — Use planner agent, identify dependencies and risks, break into phases
110+2. **TDD** — Use tdd-guide agent, write tests first, implement, refactor
111+3. **Review** — Use code-reviewer agent immediately, address CRITICAL/HIGH issues
112+4. **Capture knowledge in the right place**
113+ - Personal debugging notes, preferences, and temporary context → auto memory
114+ - Team/project knowledge (architecture decisions, API changes, runbooks) → the project's existing docs structure
115+ - If the current task already produces the relevant docs or code comments, do not duplicate the same information elsewhere
116+ - If there is no obvious project doc location, ask before creating a new top-level file
117+5. **Commit** — Conventional commits format, comprehensive PR summaries
130118
131−## Sealed Traits for Extensibility Control
119+## Workflow Surface Policy
132120
133−Use a private module to seal a trait, preventing external implementations:
121+- `skills/` is the canonical workflow surface.
122+- New workflow contributions should land in `skills/` first.
123+- `commands/` is a legacy slash-entry compatibility surface and should only be added or updated when a shim is still required for migration or cross-harness parity.
134124
135−```rust
136−mod private {
137− pub trait Sealed {}
138−}
125+## Git Workflow
139126
140−pub trait Format: private::Sealed {
141− fn encode(&self, data: &[u8]) -> Vec<u8>;
142−}
127+**Commit format:** `<type>: <description>` — Types: feat, fix, refactor, docs, test, chore, perf, ci
143128
144−pub struct Json;
145−impl private::Sealed for Json {}
146−impl Format for Json {
147− fn encode(&self, data: &[u8]) -> Vec<u8> { todo!() }
148−}
149−```
129+**PR workflow:** Analyze full commit history → draft comprehensive summary → include test plan → push with `-u` flag.
150130
151−## API Response Envelope
131+## Architecture Patterns
152132
153−Consistent API responses using a generic enum:
133+**API response format:** Consistent envelope with success indicator, data payload, error message, and pagination metadata.
154134
155−```rust
156−#[derive(Debug, serde::Serialize)]
157−#[serde(tag = "status")]
158−pub enum ApiResponse<T: serde::Serialize> {
159− #[serde(rename = "ok")]
160− Ok { data: T },
161− #[serde(rename = "error")]
162− Error { message: String },
163−}
135+**Repository pattern:** Encapsulate data access behind standard interface (findAll, findById, create, update, delete). Business logic depends on abstract interface, not storage mechanism.
136+
137+**Skeleton projects:** Search for battle-tested templates, evaluate with parallel agents (security, extensibility, relevance), clone best match, iterate within proven structure.
138+
139+## Performance
140+
141+**Context management:** Avoid last 20% of context window for large refactoring and multi-file features. Lower-sensitivity tasks (single edits, docs, simple fixes) tolerate higher utilization.
142+
143+**Build troubleshooting:** Use build-error-resolver agent → analyze errors → fix incrementally → verify after each fix.
144+
145+## Project Structure
146+
164147 ```
148+agents/ — 48 specialized subagents
149+skills/ — 183 workflow skills and domain knowledge
150+commands/ — 79 slash commands
151+hooks/ — Trigger-based automations
152+rules/ — Always-follow guidelines (common + per-language)
153+scripts/ — Cross-platform Node.js utilities
154+mcp-configs/ — 14 MCP server configurations
155+tests/ — Test suite
156+```
165157
166−## References
158+`commands/` remains in the repo for compatibility, but the long-term direction is skills-first.
167159
168−See skill: `rust-patterns` for comprehensive patterns including ownership, traits, generics, concurrency, and async.
160+## Success Metrics
161+
162+- All tests pass with 80%+ coverage
163+- No security vulnerabilities
164+- Code is readable and maintainable
165+- Performance is acceptable
166+- User requirements are met
169167
