oring CLAUDE.md

A project instruction file for oring, a Linux wrapper that confines another program before starting it using filesystem, network, process, and file-descriptor restrictions.

In plain words
What is it for?
Use it as the governing guidance when changing oring, especially its sealing pipeline, Landlock and seccomp setup, architecture checks, and documentation.
Why use it?
It records the security model and fail-closed rules developers must preserve when modifying the wrapper, including the order of its confinement steps.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/hexproofdev/oring/claude-md
Clone the repo
git clone --depth 1 https://github.com/hexproofdev/oring
Per session 1,181 This file is loaded in full into every session.
When invoked 1,181 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01181 $0.01181
Opus 5 $0.00590 $0.00590
Sonnet 5 $0.00236 $0.00236
Haiku 4.5 $0.00118 $0.00118

Measured yesterday against content hash e6b95a86c207, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

oring CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 71 lines

How it starts

The opening of the file, as written. The whole thing — 71 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

oring: an unprivileged, self-applied, pre-exec confinement wrapper. It applies Landlock (filesystem tiers, per-direction TCP, IPC scope) and a seccomp-bpf denylist to itself, sets NO_NEW_PRIVS, scrubs FDs and signal state, then execves the target — which inherits every restriction irrevocably and can never widen it. x86_64 Linux only, enforced by a compile_error! (the seccomp arch guard is x86_64-specific). Static-musl, no root, no daemon. Read docs/DESIGN.md before changing anything: it carries the threat model, the two rings, the seal order, and the residuals oring cannot close. v1.

The discipline

  • Fail-closed is the whole posture. Any error before the seal means the target is never executed, and panic = "abort" keeps that true even under a panic. Every step in pipeline::seal() is HARD (?); no branch skips a ring, none execs while under-confined. When you touch the seal, keep it that way.
  • The seal ORDER is load-bearing — a wrong order is a confinement bypass, not a style nit. NNP before seccomp; Landlock before seccomp (its setup syscalls run unfiltered); fd-scrub after Landlock (so a leaked ruleset fd is caught). Know why each step precedes the next (DESIGN §6) before you reorder.
  • Verification is the deliverable, not a courtesy. Invariants are proven (Kani: x32_guard_total, abi_from_version_clampmake verify), gated (z3 SMT over the emitted cBPF: tests/seccomp_smt.rs), propertied (proptest), and witnessed on a real Landlock kernel (the containment matrix). A new guarantee needs a runnable check; a property you can only state in prose is an open question, not a fact — say so and open it.
  • Landlock unions rights along the path walk: access is granted if at least one rule encountered on the path allows it, and there is no deny rule. It is NOT most-nested-wins, and a subpath can never be carved out of a grant. Reason about tiers that way, or you will grant more than you meant to.
  • Record rationale where the code is. When you reject an approach, record the rejection; cuts that lose their context get re-proposed.

Read the full file on GitHub · 71 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 71 lines · 1,181 tokens per session scan A e6b95a86c207

Subscribe to this mod's changes

oring CLAUDE.md is an instructions file published in the GitHub repository hexproofdev/oring (2 stars, last pushed 1mo ago), licensed BSD-3-Clause. It adds 1,181 tokens to every session, about $0.0059 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.