smithery/simhacker

postel

Be conservative in what you send, liberal in what you accept.

Installation

$ npx skills add smithery/simhacker --skill postel

Also in this package

Other skills from smithery/simhacker · top by installs.

npx skills add smithery/simhacker

Browse all from smithery/simhacker

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

LicenseMIT
Allowed toolsread_file, write_file

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,371 B
  • docs SUMMARY.md 75 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

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:

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)