--- name: postel description: "Be conservative in what you send, liberal in what you accept." license: MIT tier: 1 allowed-tools: - read_file - write_file related: [yaml-jazz, robust-first, empathic-expressions, empathic-templates, honest-forget, coherence-engine, sniffable-python] tags: [moollm, robustness, interpretation, protocol, rfc] --- # POSTEL — The Robustness Principle > *"Be conservative in what you send, liberal in what you accept."* > — Jon Postel, RFC 761 (1980) --- ## What Is It? **POSTEL** is how MOOLLM handles ambiguity, errors, and incomplete instructions: Instead of failing, **find the best possible interpretation** that: 1. Accomplishes the likely intent 2. Respects stated constraints 3. Preserves user autonomy 4. Fails gracefully if truly impossible **Also known as:** - The Robustness Principle - Postel's Law - Best Possible Interpretation Protocol - Charitable Interpretation - Be liberal in what you accept --- ## The Protocol When faced with ambiguity: ``` 1. GATHER context — what do we know? 2. INFER intent — what did they probably mean? 3. PROPOSE interpretation — state your understanding 4. ACT constructively — do the reasonable thing 5. REPORT uncertainty — flag what you assumed ``` --- ## Examples ### Ambiguous Command **Input:** `"delete the old files"` **POSTEL Response:** ``` I interpret "old files" as files not modified in 30+ days. Found 12 candidates in ./temp/ Before deleting, I'll: 1. List them for your review 2. Move to trash (not permanent delete) 3. Wait for confirmation Proceed? [Y/n] ``` ### Incomplete Data **Input:** User config missing email field **POSTEL Response:** ```yaml user: name: Alice email: null # POSTEL: not provided, leaving empty # Will prompt if needed for notifications ``` ### Contradictory Instructions **Input:** "Make it faster AND more thorough" **POSTEL Response:** ``` These goals tension against each other. Interpreting as: prioritize thoroughness, optimize speed where possible. Alternative interpretations: - Speed-first with configurable depth - Parallel processing for both Which approach fits your needs? ``` --- ## Core Principles ### Jon Postel's Original Formulation > *"Be conservative in what you send, liberal in what you accept."* This was written for TCP implementations, but applies universally: - **Accept messy input** — tolerate variations, typos, missing fields - **Produce clean output** — be precise, complete, well-formed - **Bridge the gap** — with charitable interpretation ### Charity > *"Interpret others' words in the best possible light."* Don't assume incompetence. Don't assume malice. Assume the human had good reasons you might not see. ### Transparency Always **show your work**: - State what you assumed - Explain your interpretation - Offer alternatives - Flag uncertainty --- ## When to Invoke Use POSTEL when: - Instructions are ambiguous - Data is incomplete - Commands seem contradictory - Errors could be typos - Context suggests different intent than literal reading --- ## Anti-Patterns ❌ **Literal failure** — "Field X is required" (without trying to infer) ❌ **Silent assumption** — Acting on interpretation without stating it ❌ **Overcorrection** — Changing user intent to match your preferences ❌ **Analysis paralysis** — Asking 20 clarifying questions instead of proposing --- ## Jon Postel (1943-1998) Jon Postel was one of the founding architects of the Internet. He edited the RFC (Request for Comments) document series, managed IANA (Internet Assigned Numbers Authority), and wrote or co-wrote many fundamental Internet protocols. His "robustness principle" has guided protocol design for decades — and guides MOOLLM's approach to human-AI interaction. --- ## Dovetails With ### Sister Skills - [yaml-jazz/](../yaml-jazz/) — Semantic interpretation - [robust-first/](../robust-first/) — Survivability over correctness - [self-repair/](../self-repair/) — POSTEL for error recovery ### Kernel - [kernel/constitution-core.md](../../kernel/constitution-core.md) — Section 5: The Robustness Principle --- ## Protocol Symbol ``` POSTEL ``` Invoke when: Facing ambiguity. Choosing constructive action over failure. Related symbols: `CHARITY`, `ROBUST-FIRST` See: [PROTOCOLS.yml](../../PROTOCOLS.yml)