rfc-integration
Working with IETF RFCs in OCaml projects. Use when mentioning RFC numbers, implementing internet standards, adding specification documentation, or discussing protocol compliance.
What this skill does
# 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
```ocaml
{{:https://datatracker.ietf.org/doc/html/rfcXXXX}RFC XXXX}
```
### Section-Specific Links
```ocaml
{{: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
```ocaml
(** 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
```ocaml
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
```ocaml
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
```ocaml
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
1. **Header**: RFC number, title, authors, date
2. **Table of Contents**: Section numbers and titles
3. **Abstract**: Brief summary
4. **Main Body**: Numbered sections
5. **Appendices**: Lettered sections
6. **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
1. Read the RFC from `spec/` directory
2. Extract key requirements (MUST, SHOULD, MAY)
3. Read implementation code
4. Check each requirement is implemented
5. Verify error handling matches RFC
6. 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:
```ocaml
(** Implements {{:https://datatracker.ietf.org/doc/html/rfc6265}RFC 6265}
which obsoletes {{:https://datatracker.ietf.org/doc/html/rfc2965}RFC 2965}. *)
```
## Multiple RFC References
```ocaml
(** 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). *)
```
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.