Agent Skills: Codex-rs ↔ OCapN Correspondence Map

>-

UncategorizedID: plurigrid/asi/codex-ocapn-correspondence

Install this agent skill to your local

pnpm dlx add-skill https://github.com/plurigrid/asi/tree/HEAD/skills/codex-ocapn-correspondence

Skill Files

Browse the full folder contents for codex-ocapn-correspondence.

Download Skill

Loading file tree…

skills/codex-ocapn-correspondence/SKILL.md

Skill Metadata

Name
codex-ocapn-correspondence
Description
>-

Codex-rs ↔ OCapN Correspondence Map

codex-rs reconstructs nearly the complete OCapN/CapTP/E-rights architecture piecemeal in Rust. This skill documents the 18-pattern correspondence and organizes them into six families.

Six Families

1. Core E/CapTP

| # | Pattern | codex-rs Location | OCapN Canonical | hermes-* Bridge | |---|---------|-------------------|-----------------|-----------------| | 1 | Swiss Numbers | windows-sandbox-rs/src/cap.rs — random session IDs | Unguessable designators for capability addressing | hermes-cred-as-sturdy | | 2 | Eventual-Send | codex-rs/core — async message dispatch between threads | E.send() / promise pipelining | hermes-goblins-bridge | | 3 | Promise Pipelining (implicit) | exec/mod.rs — chained async operations on pending results | Pipelining messages to unresolved promises | hermes-goblins-bridge | | 4 | Near/Far Transparency | codex-rs/core — same API for local exec vs sandbox calls | Near refs (same vat) vs far refs (cross-vat) behave identically | hermes-net-as-cap | | 5 | Sturdy References | core/thread_fork_resume — resumable thread state persisted to disk | Long-lived, serializable capability references | hermes-cred-as-sturdy |

2. Rights Amplification

| # | Pattern | codex-rs Location | OCapN Canonical | hermes-* Bridge | |---|---------|-------------------|-----------------|-----------------| | 6 | Capability Attenuation | codex-rs/exec/src/permissions.rs — SandboxPolicy allow/deny lists | Wrapping a cap to restrict its authority | hermes-tool-as-cap | | 7 | Facets & Composition | protocol/ — tool registration with scoped capabilities | Multiple facets of a single object, each with different authority | hermes-mcp-as-sealed | | 8 | Default-Deny / POLA | exec/ — sandbox starts with zero capabilities, explicitly grants | Principle of Least Authority as system default | hermes-fs-as-cap |

3. Lifecycle & Distributed GC

| # | Pattern | codex-rs Location | OCapN Canonical | hermes-* Bridge | |---|---------|-------------------|-----------------|-----------------| | 9 | Vat Quiescence | Ephemeral sandbox threads spin down after task completion | Vat pausing / checkpointing | hermes-session-as-snapshot | | 10 | Hierarchical Cancellation | core/ — parent task cancellation propagates to children | Vat hierarchy with cascading revocation | hermes-cron-as-dataspace | | 11 | Time-Limited Caps | exec/ — sandbox timeout enforcement | Capabilities with expiry / TTL | hermes-approval-as-revocable | | 12 | Revocation | exec/ — sandbox teardown revokes all granted caps | Caretaker pattern / revocable forwarders | hermes-approval-as-revocable |

4. Confinement

| # | Pattern | codex-rs Location | OCapN Canonical | hermes-* Bridge | |---|---------|-------------------|-----------------|-----------------| | 13 | Confined Vats | Ephemeral threads as isolated execution contexts | Confined vats with no ambient authority | hermes-mem-as-dataspace | | 14 | Membrane Proxy | app-server/ — API gateway mediating between user and sandbox | Membrane wrapping all refs crossing a boundary | hermes-ctx-engine-shim | | 15 | Sealed Traits | protocol/ — type-sealed message envelopes | Sealer/unsealer pairs for type-safe encapsulation | hermes-mcp-as-sealed |

5. Cryptographic

| # | Pattern | codex-rs Location | OCapN Canonical | hermes-* Bridge | |---|---------|-------------------|-----------------|-----------------| | 16 | Sealer/Unsealer | crypto_box-style patterns in session auth | Rights amplification via matched seal/unseal pairs | hermes-mcp-as-sealed | | 17 | Opaque Cursors | Session IDs as opaque tokens | Unguessable capability designators | hermes-cred-as-sturdy | | 18 | Swiss-Number SIDs | cap.rs — random 128-bit session identifiers | Swiss number addressing | hermes-cred-as-sturdy |

6. Operational

| Pattern | codex-rs Location | OCapN Canonical | hermes-* Bridge | |---------|-------------------|-----------------|-----------------| | Provenance (Horton) | Git-based audit trail in codex-rs sessions | Horton "who said that?" provenance | hermes-acp-over-captp | | Replay | session-as-snapshot — deterministic replay from log | Event sourcing / vat replay | hermes-session-as-snapshot | | Backpressure | exec/ — bounded concurrent tool calls | Mailbox capacity / flow control | hermes-cron-as-dataspace | | Mailbox Ordering | Sequential message processing per sandbox thread | Vat turn-based execution / E-order | hermes-goblins-bridge | | Resource Budgets | exec/ — timeout + output size limits | Resource-bounded capability exercise | hermes-tool-as-cap |

Port Thesis

A Hoot/Spritely port would collapse all 18 patterns into a single coherent system because Goblins provides these primitives as first-class abstractions:

  • Swiss numbers → built-in to CapTP addressing
  • Near/far → Goblins spawn vs <- automatically
  • Attenuation → define-facet with restricted methods
  • Confinement → vat isolation is the default
  • Sealer/unsealer → make-sealer-unsealer primitive
  • Sturdy refs → sturdy-ref with Swiss-number + location hints

The hermes-* bridge skills are the explicit formalization layer: each one maps exactly one codex-rs reinvention to its Goblins/OCapN canonical form, enabling incremental migration rather than a big-bang rewrite.

Related Skills

  • hermes-goblins-bridge — master bridge skill
  • hermes-acp-over-captp — ACP↔CapTP protocol mapping
  • hermes-* family (12 skills) — individual pattern bridges
  • goblins — Spritely Goblins distributed actor system
  • captp — CapTP wire protocol
  • guile-goblins-hoot — Goblins + Hoot WebAssembly compiler