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