name: rfc-compliance description: Evaluate a project's compliance with an RFC or standard. Use when asked to assess, audit, or check implementation against RFC specifications, IETF standards, W3C specs, or similar technical standards. Applies Postel's Law—be conservative in what you send, be liberal in what you accept.
RFC Compliance Evaluation
Evaluate a codebase against an RFC or technical standard, applying Postel's Law throughout.
Workflow
1. Fetch the Standard
For IETF RFCs, use the fetch script:
python3 scripts/fetch_rfc.py <number>
For other standards (W3C, WHATWG, etc.), use WebFetch to retrieve the specification.
2. Define Scope
Clarify with the user:
- Which role does this implementation play? (client, server, both)
- Any specific sections to focus on?
- Known areas of concern?
Exclude sections that don't apply (e.g., server requirements for a client-only library).
3. Extract Requirements
Scan the RFC for requirement keywords per RFC 2119:
- MUST/MUST NOT - Absolute requirements (evaluate first)
- SHOULD/SHOULD NOT - Strong recommendations (evaluate second)
- MAY - Optional features (evaluate last)
4. Evaluate Compliance
For each requirement, locate the relevant code and assess:
- ✅ Compliant - Requirement fully satisfied
- ⚠️ Partial - Met with caveats
- ❌ Non-compliant - Violated or missing
- ➖ N/A - Doesn't apply
- ❓ Unknown - Cannot determine
Apply Postel's Law:
- Sending: Implementation must strictly conform to spec
- Receiving: Implementation should accept reasonable variations
See evaluation-guide.md for detailed patterns.
5. Report Findings
Write a narrative report with embedded checklist elements:
- Executive Summary - Overall status, critical issues
- Scope - What was evaluated and excluded
- Critical Findings - MUST/MUST NOT violations with evidence
- Recommendations - SHOULD deviations worth addressing
- Optional Features - MAY items and their status
- Detailed Analysis - Section-by-section findings
Always cite both RFC sections (RFC 8555 §7.1) and code locations (src/account.gleam:45).
Example
User: "help me evaluate this acme library against rfc 8555"
- Run
python3 scripts/fetch_rfc.py 8555to get the RFC text - Ask: "This appears to be an ACME client library. Should I focus on any particular sections, or evaluate client requirements comprehensively?"
- Extract MUST/SHOULD/MAY requirements from relevant sections
- Trace each requirement through the codebase
- Produce a narrative report with findings and recommendations