Create, revise, and maintain IETF-style Internet-Drafts and RFC-like technical specifications for protocols, APIs, interoperability contracts, and system behavior. Use when drafting a new spec, updating an existing draft, resolving review feedback, validating RFC 2119/8174 requirement language, or ensuring mandatory sections such as Security Considerations, IANA Considerations, and References are complete and consistent.
Resources
1Install
npx skillscat add squirrel289/pax/write-technical-rfc Install via the SkillsCat registry.
Write Technical RFC
Produce clear, testable, and maintainable IETF-style specifications.
Preserve the repository's existing document format unless asked to migrate it.
1) Set Document Context
- Determine document mode:
new-draft,revision, orcomment-resolution. - Determine target stream/maturity:
Standards Track,BCP,Informational,Experimental, orinternal RFC-style. - Determine source format and preserve it:
markdown,xml2rfc, or plain text. - Refuse to invent publication metadata. Never fabricate RFC numbers, IANA assignments, working group consensus, or implementation claims.
- Record explicit assumptions when critical inputs are missing.
Collect or infer these minimum inputs before drafting:
- Problem statement and scope boundaries.
- Audience and interoperability goals.
- Protocol entities, message flows, and state transitions.
- Data model and wire-format constraints.
- Backward compatibility expectations.
- Security and privacy threat model.
- Deployment and operational constraints.
- Open questions and non-goals.
2) Build the RFC Structure
Use this section order unless the project already defines a required structure:
- Title
- Abstract
- Status of This Memo
- Copyright Notice
- Introduction
- Conventions and Terminology
- Problem Statement, Goals, and Non-Goals
- Protocol Overview
- Detailed Specification
- Error Handling
- Operational Considerations
- Security Considerations
- Privacy Considerations (when applicable)
- IANA Considerations
- Backward Compatibility and Deployment
- References
- Appendices (examples, rationale, change log)
Apply these section rules:
- Keep
Security ConsiderationsandIANA Considerationsin every draft. - Write explicit
No IANA actions are required.when no registry action exists. - Split references into
NormativeandInformativesubsections. - Move long examples into appendices when they are non-normative.
3) Write Normative Requirements Correctly
- Use BCP 14 keywords (
MUST,MUST NOT,SHOULD,SHOULD NOT,MAY) only for enforceable requirements. - Add a BCP 14 boilerplate statement in
Conventions and Terminology. - Write each normative requirement so it is testable:
- actor (
client,server,implementation) - required behavior
- condition/scope
- error behavior when violated
- actor (
- Avoid mixed-strength requirements in one sentence unless scoped with explicit conditions.
- Use lowercase prose for descriptive text that is not normative.
4) Maintain Technical Precision
- Define protocol terms once and reuse exact terms consistently.
- Specify defaults, limits, and units for all configurable values.
- Specify failure modes, retry behavior, timeout behavior, and idempotency where relevant.
- Include at least one end-to-end flow description for each major operation.
- Include wire examples or structured payload examples for complex exchanges.
- Prefer unambiguous language over motivational prose.
5) Handle Security, Privacy, and IANA Thoroughly
Security:
- Enumerate realistic threats (spoofing, tampering, replay, downgrade, resource exhaustion, data leakage).
- Map each threat to concrete mitigations and residual risk.
- Separate mandatory protections from optional operational guidance.
Privacy:
- Describe collected data, retention expectations, and correlation risks.
- State minimization recommendations and operator obligations.
IANA:
- Specify each registry action precisely:
- registry name
- registration policy
- new values and semantics
- section containing the defining behavior
- State explicit no-action text when no registry change is needed.
6) Revise and Maintain Existing Drafts
When updating an existing draft:
- Preserve stable section numbering unless structural change is necessary.
- Keep changes minimal and localized.
- Maintain a
Changes Since draft-XXappendix for each revision. - Add concise rationale for non-editorial changes.
- Update cross-references, terminology, and examples affected by edits.
- Remove stale TODO markers or convert them into explicit open issues.
When resolving reviewer comments:
- Classify each comment as
editorial,technical, orblocking. - Apply the smallest change that resolves the comment without widening scope.
- Record disposition in a short resolution log:
- comment id
- decision (
accepted,partially accepted,rejected) - rationale
- touched sections
7) Run Quality Gates Before Finalizing
Fail the draft if any check fails:
- Required sections are present and non-empty.
- Publication/standards-process claims are not fabricated.
- Normative keywords are contextually correct and testable.
- Terminology is consistent across sections.
- Security and privacy text addresses concrete risks, not generic statements.
- IANA section is explicit (actions or no-action statement).
- Normative and informative references are separated and cited consistently.
- Unresolved placeholders (
TODO,TBD,XXX) are absent unless explicitly allowed. - Revision notes match actual edits.
Use external tooling when available:
- Run
idnitsfor Internet-Draft hygiene checks. - Run
xml2rfc --v3validation for xml source.
8) Produce Maintainable Outputs
Return these artifacts in every response:
- Updated RFC text in the repository's existing source format.
Change Summarywith section-by-section modifications.Open Issueslist for unresolved design choices.Validation Resultschecklist with pass/fail status and concrete fixes.
RFC Markdown Template
# <Title>
## Abstract
<One concise paragraph describing scope and outcome.>
## Status of This Memo
<Draft/status text appropriate to the target stream and maturity.>
## Copyright Notice
<Applicable copyright/licensing notice.>
## 1. Introduction
<Context, problem, and document scope.>
## 2. Conventions and Terminology
The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" in this
document are to be interpreted as described in BCP 14.
<Define terms and abbreviations.>
## 3. Goals and Non-Goals
### 3.1 Goals
### 3.2 Non-Goals
## 4. Protocol Overview
<Actors, components, and interaction model.>
## 5. Detailed Specification
### 5.1 Data Model
### 5.2 Message Formats
### 5.3 Processing Rules
### 5.4 State Transitions
## 6. Error Handling
<Failure codes, retries, timeouts, and recovery behavior.>
## 7. Operational Considerations
<Deployment, configuration, observability, performance limits.>
## 8. Security Considerations
<Threats, mitigations, and residual risk.>
## 9. Privacy Considerations
<Data handling and minimization guidance.>
## 10. IANA Considerations
<Registry actions or explicit no-action statement.>
## 11. Backward Compatibility and Deployment
<Migration and coexistence strategy.>
## 12. References
### 12.1 Normative References
### 12.2 Informative References
## Appendix A. Examples
<Optional examples and interoperability notes.>
## Appendix B. Change Log
### B.1 Changes Since draft-00
- <List updates.>