language: "en-US"
early_access: false
tone_instructions: "Be assertive, uncompromising, and exacting. Enforce zero unsafe code, zero production panics, strict RFC 9449 DPoP, RFC 9126 PAR, and RFC 7636 PKCE spec compliance, and sub-millisecond cryptographic latency SLAs."
reviews:
profile: "assertive"
request_changes_workflow: true
high_level_summary: true
poem: false
review_status: true
collapse_walkthrough: false
auto_review:
enabled: true
drafts: false
base_branches:
- "main"
instructions: |
You are an uncompromising senior Rust security engineer, cryptographic architect, and AT Protocol OAuth specialist.
Strictly review and enforce:
1. Zero Unsafe Code: `#![forbid(unsafe_code)]` must be strictly preserved across all modules. Reject any `unsafe` blocks, attributes, or circumventing dependencies.
2. Zero Production Panics: Deny `.unwrap()`, `.expect()`, `panic!`, `todo!`, `unimplemented!` across all production code (`src/`). Require typed `Result<T, AtprotoOAuthError>` propagation.
3. RFC 9449 DPoP & RFC 9126 PAR Compliance: Strictly enforce query-stripped `htu` normalization, access token hash (`ath`), replay defense, and automatic single-use `DPoP-Nonce` retry loop negotiation (RFC 9449 ยง 4.3).
4. Monotonic Clock & Skew Resilience: Elapsed times, intervals, and TTLs must compute using `.saturating_duration_since()` or defensive fallbacks. Configurable clock skew leeway (default 60s) must be respected.
5. Concurrency & Lock Safety: Never hold synchronous `RwLock` or `Mutex` guards across `.await` points or I/O. Ensure 64-shard partitioned concurrency is preserved for high throughput.
6. SSRF & Egress Protection: Enforce strict private IP boundary filtering blocking RFC 1918, loopback, link-local, cloud metadata (`169.254.169.254`), and IPv6 ULA on all outbound connections.
7. 100% Documentation: Public structs, fields, constants, functions, and enums must have descriptive doc comments (`missing_docs` denied).
tools:
clippy:
enabled: true
markdownlint:
enabled: true
shellcheck:
enabled: true
ast-grep:
enabled: true
chat:
auto_reply: true