Agent skill
ocaml-rfc-integration
Working with IETF RFCs in OCaml projects. Use when mentioning RFC numbers, implementing internet standards, adding specification documentation, or discussing protocol compliance.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/ocaml-rfc-integration
SKILL.md
RFC Integration for OCaml Projects
When to Use This Skill
Invoke this skill when:
- User mentions implementing an RFC
- Adding RFC citations to documentation
- Fetching RFC specifications
- Validating code against RFC requirements
- Discussing internet protocol standards
RFC Fetching and Storage
Fetching RFCs
Always fetch RFCs in plain text format from:
https://datatracker.ietf.org/doc/html/rfcXXXX.txt
Important: Use .txt extension, not .html.
Storage Location
Save RFC files to spec/ directory in project root:
spec/rfc6265.txt
spec/rfc3492.txt
Create spec/ directory if it doesn't exist.
OCamldoc RFC Citation Format
Basic RFC Link
{{:https://datatracker.ietf.org/doc/html/rfcXXXX}RFC XXXX}
Section-Specific Links
{{:https://datatracker.ietf.org/doc/html/rfcXXXX#section-N.M}RFC XXXX Section N.M}
Common Section References
#section-N- Main numbered section#section-N.M- Subsection#appendix-X- Appendix (A, B, C, etc.)
Documentation Patterns
Module-Level Documentation
(** RFC 3492 Punycode: A Bootstring encoding of Unicode for IDNA.
This module implements the Punycode algorithm as specified in
{{:https://datatracker.ietf.org/doc/html/rfc3492}RFC 3492}.
{2 References}
{ul
{- {{:https://datatracker.ietf.org/doc/html/rfc3492}RFC 3492} - Punycode}
{- {{:https://datatracker.ietf.org/doc/html/rfc5891}RFC 5891} - IDNA}} *)
Function-Level Documentation
val adapt : delta:int -> numpoints:int -> firsttime:bool -> int
(** [adapt ~delta ~numpoints ~firsttime] computes the new bias value.
Implements the bias adaptation algorithm from
{{:https://datatracker.ietf.org/doc/html/rfc3492#section-6.1}RFC 3492 Section 6.1}. *)
Type-Level Documentation
type error =
| Overflow of position
(** Arithmetic overflow. See
{{:https://datatracker.ietf.org/doc/html/rfc3492#section-6.4}
RFC 3492 Section 6.4}. *)
| Invalid_digit of position * char
(** Invalid Punycode digit. See
{{:https://datatracker.ietf.org/doc/html/rfc3492#section-5}
RFC 3492 Section 5}. *)
Constants and Parameters
val base : int
(** The base value (36) for Punycode encoding.
See {{:https://datatracker.ietf.org/doc/html/rfc3492#section-5}
RFC 3492 Section 5}. *)
Reading and Parsing RFCs
RFC Structure
- Header: RFC number, title, authors, date
- Table of Contents: Section numbers and titles
- Abstract: Brief summary
- Main Body: Numbered sections
- Appendices: Lettered sections
- References: Citations to other documents
Key Sections to Extract
- Introduction - Background and motivation
- Terminology - Key terms (MUST, SHOULD, MAY)
- Algorithm - Core specification
- Security Considerations - Security implications
Validation Workflow
- Read the RFC from
spec/directory - Extract key requirements (MUST, SHOULD, MAY)
- Read implementation code
- Check each requirement is implemented
- Verify error handling matches RFC
- Report gaps or inconsistencies
Best Practices
DO
- Always fetch and save RFC text files to
spec/ - Use section-specific links when possible
- Link error types to their RFC requirements
- Document RFC parameters and constants
- Keep citations consistent across related functions
DON'T
- Link to HTML versions of RFCs
- Assume RFC sections without checking
- Omit section numbers in citations
- Duplicate RFC text verbatim (summarize instead)
Handling RFC Updates
When an RFC obsoletes another:
(** Implements {{:https://datatracker.ietf.org/doc/html/rfc6265}RFC 6265}
which obsoletes {{:https://datatracker.ietf.org/doc/html/rfc2965}RFC 2965}. *)
Multiple RFC References
(** IDNA-compatible encoding combining
{{:https://datatracker.ietf.org/doc/html/rfc5891}RFC 5891} (IDNA Protocol)
with {{:https://datatracker.ietf.org/doc/html/rfc3492}RFC 3492} (Punycode). *)
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?