super-fr: Instructions file for Claude Code

AGENTS.md

super-fr AGENTS.md is an instructions file for Claude Code, Codex, OpenCode from derio-net/super-fr. It costs 13,360 tokens per session, scanned A, original, MIT.

Repository instructions for coding agents working on the super-fr project itself. They describe its folder layout, development commands, and rules for keeping source files and generated copies aligned.

In plain words
What is it for?
Use them when maintaining super-fr, a Python workspace containing its command-line engine, planning system, journals, and isolation workflow.
Why use it?
They give agents the project context and working rules needed to change super-fr safely. This helps prevent edits in the wrong place or changes that leave generated instructions out of sync.

Instructions file for Claude CodeCodexOpenCode

Written for Claude Code and Codex and OpenCode: PreToolUse hook event, but also the file is AGENTS.md. Also seen: reads .claude/ paths; mentions .claude-plugin; mentions CLAUDE.md.

This is derio-net/super-fr's own configuration. It tells Claude Code, Codex and OpenCode how to work on super-fr itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything super-fr configures →

Reuse

Borrowing it

Nothing to install: this file belongs to derio-net/super-fr. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/derio-net/super-fr/main/AGENTS.md
Clone the repo
git clone --depth 1 https://github.com/derio-net/super-fr

Made for: Claude Code, Codex, OpenCode.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for super-fr AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/derio-net/super-fr/agents-md/github.svg)](https://agentmods.dev/instructions/derio-net/super-fr/agents-md)
Your own site
<a href="https://agentmods.dev/instructions/derio-net/super-fr/agents-md"><img src="https://agentmods.dev/badge/instructions/derio-net/super-fr/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for super-fr AGENTS.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/derio-net/super-fr/agents-md"><img src="https://agentmods.dev/badge/instructions/derio-net/super-fr/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 13,360 This file is loaded in full into every session.
When invoked 13,360 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.13360 $0.13360
Opus 5.5 $0.05344 $0.05344
Sonnet 5.5 $0.02672 $0.02672
Haiku 4.5 $0.01336 $0.01336

Measured 6d ago against content hash a244402b35bc, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

super-fr AGENTS.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 6d ago.

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.

AGENTS.md · 732 lines

How it starts

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

Agent instructions — super-fr

Internal working notes for agents maintaining this repo (super-fr itself, not a repo that merely installs it). User-facing rules the plugin ships to consumer repos live in plugins/super-fr/rules/; this file is for agents changing super-fr's own source. Claude Code reads this via CLAUDE.md's @AGENTS.md import; OpenCode reads it directly plus opencode.json's instructions array (.opencode/instructions/*.md — generated, see below).

Repo shape

uv workspace monorepo, version lockstepped across every manifest (see "Release / version bumping"). packages/:

  • fr — the CLI/engine: plan-as-folder model, GitHub tracking (render → observe → diff → apply, single mutation path in apply.py, dry-run by default), isolation lifecycle. Entrypoint fr = "fr.cli:app".
    • fr journal (fr/journal/, commands/journal_cmd.py) — scope-keyed (spec|plan|debug) durable run-state under docs/superpowers/journals/{specs,plans,debug}/ (one subdir per scope so the tree is glanceable; archived to implemented/journals/<scope>/). add (create-only on --id — re-adding an existing id fails loudly and directs the caller to resolve) / resolve (appends a RESOLUTION RECORD closing a finding — fixed | refuted | deferred, the last needing --tracked-by <issue>; append-only, so the original entry is never rewritten) / render (raw, feeds PR bodies) / check (fail-closed on findings whose effective state — the fold of every record naming them, last one wins — is still open). fr plan create seeds a plan journal; parsing never depends on one (back-compat), and a journal with no resolution records folds to exactly what it did before resolve existed. fr-goal & fr-debugging write it as they run. The matrix's counterpart verb is fr acceptance set-status (in-place, beside add): a registry of CURRENT state, deliberately not a log.
    • fr models (fr/models.py, commands/models_cmd.py) — tier → model bindings (~/.config/fr/models.yaml, repo override > user) for fr-goal subagent dispatch; PhaseHeader.tier is the harness-neutral hint.
    • fr.bindings (fr/bindings/, 2026-10-06 spec model-binding-churn) — whether a bound model is still SERVED, beside fr/models.py (which stays the config layer). catalogue.py parses opencode models --verbose for lineage and price (never its status) and keeps last-known snapshots; probe.py asks the provider live (live/dead/unknown; dead only on positive provider evidence) and caches verdicts for 6 h; choose.py is pure — R4's family → tier → hint rules and is_autonomous, the one bound fr may act on unasked; health.py's check_bindings is the one report every caller reads; wording.py the one substitution line and journal decision body. The cache lives under $HOME/.cache/fr/models/ (FR_MODELS_CACHE_DIR overrides). Only OpenCode is probed: prober_for (the one factory, and the name tests monkeypatch) gives None elsewhere, which reports unprobed. Callers: fr models set/check, fr run start's notice, the gated brief's dead_bindings/binding_offers, and run_cmd._guard_dispatch_binding, which checks the exact tier both dispatch paths open and substitutes a dead USER binding autonomously (journal decision first, then the binding, restored on failure) or refuses.
    • fr-goal subagent execution (2026-07-22 spec): fr-goal dispatches each phase to the plugins/super-fr/agents/fr-phase-executor agent (serial, shared workspace); scripts/ensure-phase-executor-allowlist.sh (called by install.sh) allowlists it in the org agent-worktree hook, else fr-goal falls back to inline.
    • fr/workflow (2026-08-14 spec, workflow-shapes-and-workitem-dispatch) — the shape axis: model.py (WorkflowManifest/Step schema, parse_manifest), resolve.py (repo > shipped resolution — fr run start's real call site), check.py (fr workflow check: duplicate ids, dangling needs, cycles, unknown capabilities), artifacts.py (REPO_TRACKED_ARTIFACTS/IMPLIED_INPUTS_BY_UNIT/required_inputs — the vocabulary reachability derives from), reachability.py (path-level "is this on origin/HEAD", no item type — fr_dispatch's item-level gate calls into it, never the reverse), shapes.py (FR_GOAL_PHASE_DISPATCH — the default phase-granularity shape fr apply/the bridge still dispatch against; not yet resolved from a real manifest end to end, see the acceptance matrix). fr.capabilities (CAPABILITIES, the closed set requires: validates against) is a sibling of fr/workflow, not inside it; fr_dispatch.capabilities is a two-line re-export kept for import back-compat.
    • fr/verification (2026-10-06 spec, verification-strategies) — how a change is proven: model.py (StrategyManifest, closed placeholders), resolve.py (repo > env > wheel > marketplace, same order as workflows), check.py (fr verification check), spec_section.py (the spec's ## Verification grammar, a prose-only section counts as none), effective.py (effective_strategy/is_post_merge, the ONE place a row's strategy is decided, in R7's order), rows.py, and walk.py (fr verification walk: install through the repo's .fr/candidate-install into a tmp prefix, smoke, each row's scenario, a log bound to the run, strategy, manifest hash and code tree; fr/run/observed.py's allowlist decides which walk command deliver will witness). commands/verification_cmd.py also owns prerelease (the prerelease.yml dispatch). The matrix rows carry verify, scenario, issues, harnesses and walks (fr/acceptance/walks.py; matrix kind 4, record kind 8). Author-facing doc: docs/verification-strategies.md; this repo's own contract and scenarios are .fr/candidate-install and tests/scenarios/, run in CI by tests/integration/test_scenarios.py.
    • fr/run — the durable cursor (docs/superpowers/runs/<run-id>.yaml, git-tracked), driven by fr run {start,adopt,status,advance,resolve,check,cost} (model.py's RunState/StepRecord, commands/run_cmd.py). advance executes a kind: cli step directly and never a kind: agent one — it emits a dispatch brief instead; resolve is the only way an agent step's cursor moves past running. cost prints a run's cost per step and model from its usage file (fr/run/cost.py; run 7 moved every figure out of the cursor — the v5/v6 shape is frozen as fr.run.legacy.RunStateV6); deliver's derived proportionality evidence runs fr plan proportionality (fr/proportionality.py). plugins/super-fr/workflows/ ships the manifests this resolves (fr-goal.yaml, the pipeline /fr-goal itself now narrates); a repo may override one wholesale under docs/superpowers/workflows/<name>.yaml. Shipped manifests are NOT mirrored to OpenCode/Hermes like skills/rules are — fr run is a CLI surface every harness drives the same way, not a per-harness prompt. fr/run/liveness.py (2026-09-20 unit-record-unification §4.G, gh#518) is the ONE definition of "idle" — a run that is advanceable with nobody working on it: is_idle (pure) behind fr run check --idle (exit 3), plus --stalled-after (reported, never failed). It also owns the three predicates advance shares with it (gate_pending, next_step_id, hold_on). Two adapters call that CLI and re-derive nothing: plugins/super-fr/hooks/fr-run-idle-guard.sh (Claude Code Stop — BLOCKS; always exits 0, deliberately no set -e, because exit 2 from a Stop hook is itself a block and fr exits 2 on every refusal) and packages/fr-opencode-plugin/src/idle.ts (session.idle on 2.0.32, session.execution.succeeded on 2.1.x — CONTINUES; live-proven 2026-10-23, so enforced). Both act at most once per run position.
    • fr/tracker — the tracker protocol (model.py's Tracker Protocol
      • TrackedItem, a structural stand-in for WorkItem so fr never imports fr_dispatch; github.py's GithubTracker is the one concrete adapter). No second adapter exists yet — protocol-level only.
    • fr.harness (2026-09-18 spec, harness-parity-matrix) — a fourth closed vocabulary, sibling to fr/workflow and fr.capabilities: the shipped parity.yaml (src/fr/harness/parity.yaml, loaded via importlib.resources, never mirrored — it ships inside the fr wheel like any other package data) declares which enforcement/interaction surface is wired on which harness; observe.py reads the real registration files (hooks.json, .hermes/config.snippet.yaml, fr-opencode-plugin's marker comments) independently of the declaration, and check.py is the only bridge between the two. CLI: fr harness parity (commands/harness_cmd.py). prose.py's scan_prose is the sibling tool/argument-neutrality scanner (TOOL_VOCABULARY, ARGUMENT_VOCABULARY) over skill, agent and rule prose.
    • fr/triage (2026-09-21 spec, fr-triage) — backlog triage, split into a deterministic engine (fr triage {collect,check,render}, commands/triage_cmd.py) and a thin skill (plugins/super-fr/skills/fr-triage/) that holds only the judgement discipline. The split is forced: the OpenCode/Hermes mirrors copy only SKILL.md, so a script bundled beside a skill never reaches them — only the fr wheel reaches every harness. State lives in the scope's state directory, the workspace's .fr/triage-state/<scope>/ or $HOME/.cache/fr/triage/<scope>/ outside a clone (owner--repo or owner, lowercased; --dir overrides; a scope with a state repo is synced with refs/heads/fr-triage/<scope-id> by triage_cmd.resolve_state_dir, 2026-10-07 cloud-triage spec): facts.json (collect), judgements.yaml (the agent's, shape in spec §3.D), triage.html (render). It is never committed by default, so it is NOT an artifact kind. This repo keeps a durable copy of its own scope's inputs and history (judgements, origins, subsystems, snapshots, the architecture fragments' sources) in docs/triage/, moved by docs/triage/sync.sh export|import; the cache stays the working copy (see docs/triage/README.md). collect.py's Forge protocol (one implementation, ClientForge over the forge adapter) is the one place a second forge lands — that backend's adapter implementing the reads, not an edit to the collector. triage is in fr.artifacts.trigger.READ_ONLY_COMMANDS (it never touches a registered artifact), so the migration gate never refuses it. check always exits 0; its core sets are unranked (issues and PRs), settled, orphaned (the key names no repo collect read — the only set safe to act on without the forge) and unreachable (the forge would not show the issue, the repo was skipped, or the key was judged after the last collect). A DELETED issue is unreachable, not orphaned: collect views every judged key in a collected repo, so its failure is always recorded. The last set, stale dispatch, arrived with batches: an fr:in-progress issue whose batch marker comment is older than stale_dispatch_days, with no PR. Batches (2026-09-25 spec, triage-batches): fr triage batch {list,create,edit,cancel,suggest,dispatch,merge,drive} (commands/triage_batch_cmd.py) turn a group of judged issues into one fr-goal run with one PR. judgements.yaml carries batches: with engine-appended events (fr reads schemas 1–12 and writes 12, see the waves paragraph below) and facts.json schema 8 (open-PR join with files/head_oid, batch_prs, per-repo config from the target repo's .fr/triage.yaml). The engine is fr/triage/batch.py (stages, open-batch rule, the one writer, the §3.F merge order), batch_dispatch.py (brief, marker comment), batch_version.py (reservations) and batch_merge.py (reconcile, refusals, execution). dispatch, merge and cancel write the forge only with --yes, only through the GhClient adapter (§3.J; glab/tea raise UnsupportedForgeOperation, gh#611); git runs only in fr/triage/gitseam.py, which a tripwire keeps apart from the forge ban that globs every batch* module. triage_batch_cmd.py is fr's second find_spec-guarded soft point into fr_dispatch (test_import_direction.py _SOFT_POINTS). The board's decision views (2026-10-02 spec wave-driver, I): views.py is pure (needs_you, next_up, preselected_wave over a driver Snapshot built from facts alone, so the board and drive_pass read the same inputs), snapshot.py stores/diffs the per-render snapshots (render.py reads no clock; the command passes it), components.py holds the colour tokens, the phone gutter and the one tabs() component. Judgement.kind and Judgements.features load on any schema; check has an unplaced set. Origins and the architecture page (same spec, E and F): fr triage origins {collect,check,render} (origins.py; classification is the fr-origins skill's) and fr triage architecture render (architecture.py): the snapshot timeline, measured sections (line counts via the gitseam ls-tree/show at each subsystems.yaml ref), then authored architecture/ fragments in manifest order. Waves and the driver (2026-10-02 spec, wave-driver): judgements schema 3 adds wave/after per batch and the post_merge/closeout events; schema 7 adds audited replacement attempt/success/failure events that never change dispatch age or lifecycle; 8 adds claim_taken, which makes a taken member's claim owed (gh#1120); 9 the merge-train events; 10 the collected close-out (closeouts:, closeout_handback, closeout_hold, exit-gates R15/R27); current writers stamp 12 (read 1–12), adding recovery ownership/session audit metadata; 11 added archive_conflict (merge-truth R12). fr triage batch replace owns scope then pane locks, checkpoints and cross-store repair, never replaying uncertain submission; drive runs waves to completion. batch_drive.py is the pure pass (a Snapshot in, ordered merge, closeout, archive, dispatch, blocked, warn actions out; no fr_dispatch, no git, no process, the clock passed in); the command re-collects facts each pass (triage_cmd.collect_into), executes through dispatch_batch/merge_ready, fast-forwards and runs the repo's post_merge argument list through gitseam.Checkout, and starts each close-out as a unit="run" item with payload.kind: closeout. A drive.lock (pid, start time) refuses a second driver.
    • fr/usage (2026-09-25 spec, lean-cost-aware-process §5.A) — what a session or run cost, and on what, reconstructed from the harness's own records: readers/ (one per harness — Claude Code transcripts, OpenCode and Hermes SQLite opened read-only — each returning a UsageRecord and NEVER raising: a failure is unavailable, never a record of zeros), classify.py (pure (tool, command|path) -> activity), rollup.py (the harness's dollars split by fixed price ratios across activities and cursor step windows, plus turns), render.py (table / one HTML page, — for every missing figure). CLI: fr usage collect|report|backfill|compare (commands/usage_cmd.py; compare — usage/compare.py, 2026-10-06 spec cost-evidence §F — is the before/after tool: two sets of runs, selected by ISO date/timestamp or run id, over committed usage files, cursors of every version and plan journals; phases from the plan folder, --steps for the main session's per-step figures; pure engine, read-only, — for any missing input); the cache lives under $HOME/.cache/fr/usage/, so usage is in READ_ONLY_COMMANDS (backfill only writes archive files: it creates missing ones and prices sessions an archived one captured while they were still open, gh#756). Driver skill: fr-audit. Dollars always come from the harness; fr invents no list price. §5.B persists it: file.py is the usage artifact kind (docs/superpowers/usage/<run-id>.yaml, one capture per host, host label h-<sha256(run+hostname)[:8]>, an ALLOWLIST projection — never a model_dump of a record, which holds raw commands and paths), capture.py writes it at resolve --step deliver, a new host's first resolve and fr archive (never failing the step), backfill.py fills archived runs. Host-side rule (fr/isolation/where.py): fr run/fr usage execute on the harness host — fr isolation exec refuses them in devcontainer mode, and the run/usage groups refuse in-process on a devcontainer-mode workspace (target: devcontainer marker + container evidence), never on a host-worktree pod or an external marker.
    • fr/debt (2026-10-11 spec, debt-engine) — what a repo owes, as one DebtReport (model.py; schema_version: 1, frozen). engine.compute(repo_root, *, forge, now, stale_days) is pure given the forge and the clock: acceptance from load_matrix (an unreadable matrix is available: false, never zero), plans from fr.closeout.plan_sweep (archivable with merge age from git log on the default ref, stale when the plan dir, its run branch and its PR's updatedAt are all older than stale_days), and owed items folded by fold_owed(OwedSources), one per key (spec:, plan:, row:, issue:), precedence journal > row > plan > issue (a new source is one OwedSources field and one OWED_PRECEDENCE entry). debt_total() is the one definition of zero debt. render.py has text, markdown (markers <!-- fr-technical-debt --> and base64 fr-debt-figures) and parse_figures; forge.py adapts GhClient to the engine's DebtForge protocol. .fr/debt.yaml takes one key, stale_days. CLI: fr debt [--json] [--stale-days N] [--offline] (commands/debt_cmd.py), read-only, so debt is in READ_ONLY_COMMANDS; fr acceptance digest re-renders the report's Acceptance section. DEBT_STATUSES (acceptance/model.py) is the one status set open_rows, status and the digest count.
    • fr/record (2026-09-25 spec, lean-cost-aware-process §5.C) — step records: one YAML per agent step at docs/superpowers/runs/<run-id>.records/<step>[__<item>].yaml (artifact kind record, transient: committed while the step runs, deleted by the resolve that applies it). model.py (StepRecord; allowed_sections reads the step's emits: — journal:<scope>, plan:ticks, acceptance, the tokens in fr.workflow.artifacts), apply.py (apply_record — THE one bookkeeping write path: validate against the manifest and disk, build every write in memory, write atomically, run fr run resolve's own gates in process via run_cmd.resolve_in_process, restore every byte on a refusal, commit once, one line), template.py (the pre-filled record in the dispatch brief's record key and fr pickup, or "record in progress"), pr_body.py (deliver renders pr-body.md and refuses a live PR missing a required section, read via fr.gh.view_pr_body), gates.py (the refactor gate, moved here from fr plan self-review). CLI: fr run resolve --record; fr journal add/resolve, fr plan edit --tick/--complete-phase and fr acceptance add/set-status build one-entry records through the same engine.
    • Cloud triage (2026-10-07 spec, cloud-triage) — the wave driver and its workers in Claude Code cloud sessions. fr.forgeapi resolves the one host setting forge.api: rest | graphql (FR_FORGE_API, else ~/.config/fr/forge.yaml, else graphql); under rest, fr/real_ghrestclient.py (RealGhRestClient) is the GitHub client, REST routes only, because the cloud proxy refuses GraphQL. fr/triage/state_ref.py keeps a scope's durable state on the orphan branch refs/heads/fr-triage/<scope-id> (the cloud git proxy writes only refs/heads/*; fetch before read, reading the legacy refs/fr/triage/<scope-id> when the branch is absent; compare-and-swap push after every change, a push the remote refuses only a warning after a command's own work); privacy.py is the guard (leak_risk) that refuses a private repo's issue in a scope whose state repo is public, and every push; lease.py the one driver per scope; driver.py the driver adapter (host | cloud: runner, refusals, post_merge), fr triage drive pass|record its cloud entry; drift.py the pure version-drift planner (re-homes, the driver's self-update). fr.cloud (fr cloud doctor|setup-script) checks a cloud session's prerequisites and appends one remedy block to the failures they explain, only when CLAUDE_CODE_REMOTE=true. fr.agents + fr/artifacts/agents_kind.py are the agents artifact kind: .claude/agents/fr-{spec-reviewer,phase-executor}.md rendered from the wheel copy (scripts/sync-agents-data.py, tripwire test_tripwire_agents_data.py, whose sha pin makes an agent edit move the kind's version) by fr init agents. Operator doc: docs/cloud-setup.md.
    • fr/ops (2026-10-22 spec, fr-ops) — a plan's manual operations as typed, checkable, runnable records. model.py (Op, strict; LegacyOp, the # manual-operation step-block reader), load.py (ops.yaml plus step blocks plus the .fr/ops.yaml runbook; plan_has_ops, which fr.verification.exit reads to add devops to a run's gates), engine.py (status/order over an injected runner), apply.py, attest.py, evidence.py (op plan-journal entries, recorded_close), trust.py (R19: the operator's grant, OUTSIDE the repo), probe.py/mask.py (minimal-env, bounded probes; every reason sanitised), profile.py (ops: true profiles), helpers.py (seal/secret/clip/scratch), holds.py (what still holds a devops gate, by recorded evidence) and gate.py, the DevOps stage's sequencer: eight stages as data over host/workspace/forge/prompt ports, its state host-side (HostGateState); the ops workspace is PR-controlled, so an op closes there only by its live status and a journal closure or Test Plan outcome only when added on the ops branch after the recorded head. CLI: fr ops {status,apply,attest,trust,seal,secret,clip,scratch,gate} (commands/ops_cmd.py, commands/ops_gate_cmd.py); the whole group is gated by the artifact trigger. Every python -m fr fr starts runs with -P (no cwd on sys.path). Driver skill: fr-devops-gate; author doc: docs/ops.md.
  • fr-dispatch — runner-agnostic protocol/tick framework. Runners register via the fr.runners entry-point group, not by editing this package. work_item.py (WorkItem, the item_id/parent_id identity grammar) and item_graph.py (build_items — the one item builder for all three decomposition units, run/phase/spec) are the dispatch-cutover core; reachability.py is the item-level gate wrapping fr.workflow.reachability.
  • fr-vk, fr-cncd — runner adapters (vk, cncd) implementing that protocol. fr-cncd is real but predates its own README/CLAUDE mentions — don't assume tables in README.md are exhaustive; check packages/*/pyproject.toml and plugins/super-fr/skills/ against prose before trusting a list.
  • fr-herdr — the herdr runner (entry point fr.runners: herdr), managed OpenCode lifecycle/restart adapter as well as Claude resume. Host-local descriptors/locks live in fr_herdr.managed, safe input in fr_herdr.opencode. Operator notes: docs/herdr-control-sessions.md, packages/fr-herdr/README.md. Optional SessionReplacer supports in-place Claude/OpenCode and model-only fresh replacement. Pending checkpoints exclude restart until explicit repair; installed synthetic scenarios are not evidence of the operator-owned live walk. Explicit absent-source batch replace --recover uses fr_herdr.recovery and global pane/tab/agent joins, pre-allocation server/item/source-keyed intent, a new herdr pane and observed session identity. Repair never allocates or sends input. Recovery HOLD overrides conflict/unfinished continuation on reconstruction and managed restart; the disposable actual-client walk is post-merge Tester. It was the first to take unit="run" work: fr triage batch dispatch builds it through fr_dispatch.registry.load_runner's from_env() and it opens a herdr tab, starts the harness on the batch's model and submits the brief. It never imports fr.triage, and fr never imports it (test_import_direction.py); fr_dispatch.testing holds the reusable run-unit contract it passes.
  • fr-claude-cloud — the claude-cloud runner (entry point fr.runners: claude-cloud): a mailbox, not a backend. Every session action becomes a request in the scope's state (requests.yaml, sessions.yaml) that the cloud driver's agent executes with its session tools and records back (fr triage drive record); re-homing is its restart. Like fr-herdr, it never imports fr.triage.
  • fr-opencode-plugin — the one non-Python package: TypeScript/Bun, an OpenCode 2.x plugin definition (export default { id, setup }; 1.x is not supported) porting the Claude Code hooks: the edit gate and the whole-line shell gate (fr-isolation-guard) on execute.before, the merged-PR push guard, the pipeline sentinel, session bind/unbind, the acceptance nag, the idle nudge, the fr binary pin, the child-session claim, and a TUI status line (src/tui/). Each ported hook carries a // super-fr-parity: marker fr harness parity reads. install.sh delivers it as ONE plugin directory (scripts/deliver-opencode-plugin.sh). Excluded from the uv workspace (pyproject.toml's [tool.uv.workspace].exclude) and has its own package.json/version, so uv run pytest does not cover it — but it IS wired into CI, as the opencode-plugin-test job (bun test). Run that locally inside packages/fr-opencode-plugin/ if you touch it.

Read the full file on GitHub · 732 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. 6d ago Changed · +1 lines · +27 tokens per session a244402b35bc
  2. 7d ago Changed · +24 lines · +573 tokens per session 2a040312ea0d
  3. 11d ago Changed · +6 lines · +96 tokens per session 5554535e7a58
  4. 15d ago Changed · +33 lines · +670 tokens per session e41b1a3aa5f0
  5. 16d ago Changed · +29 lines · +659 tokens per session d8ca67f345f3
  6. 19d ago Changed · +10 lines · +184 tokens per session c625268a8c25
  7. 20d ago Changed · +39 lines · +870 tokens per session 139d3aee664b
  8. 23d ago Changed · +61 lines · +1,213 tokens per session 7166756598dd
  9. 24d ago Changed · +2 lines · +46 tokens per session 30ca33930ccd
  10. 25d ago First seen · 527 lines · 9,022 tokens per session scan A acbab53c41df

Subscribe to this mod's changes

super-fr AGENTS.md is an instructions file published in the GitHub repository derio-net/super-fr (2 stars, last pushed today), licensed MIT. It adds 13,360 tokens to every session, about $0.0534 per session on Opus 5.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.

Related

Other instructions, from other repositories

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 9,715 tokens

next.js AGENTS.md

AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,461 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).

microsoft/vscode · 5,262 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,680 tokens

vscode copilot-instructions.md

Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).

microsoft/vscode · 2,750 tokens

deno copilot-instructions.md

Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.

denoland/deno · 3,077 tokens