agentleFS
tonydzitonydzi/second-brain-starter-kit/skills/codex-mirror/SKILL.md

codex-mirror

Skill6 starsChanged 2 months agoMITView on GitHub

Rebuild the canon mirror for a second coding agent (AGENTS.md) after a rules-file version bump: show the changelog delta, write in only the new rules, then enforce the size cap, version stamp, structural anchors, a copy into the shared folder and the linter run. Triggers: "/codex-mirror", "update the codex mirror", "AGENTS.md is stale".

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Write the rule in the mirror's style: a bold §X.Y ...

    line 42
  2. Distinctive:

    If the rule is entirely about Codex itself (the reviewer role, Windows pitfalls, protected zones) — its home is the CODEX BLOCK C1-C6, not …

    line 44

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

codex-mirror — the shared-canon mirror for Codex

The pain (found 2026-07-25): CLAUDE.md went through a v2 revision on 07-22, while ~/.codex/AGENTS.md quietly stayed on its June version — Codex worked off stale rules for a month, and the drift checker of that era was blind to the very same revision. The cure: the mirror is version-based (we compare versions, not shape), a watchdog shouts at night, and this skill is the cheap "rebuild" button so that the shouting doesn't turn into evening manual labour.

Roles (AK-47): the script moves the bytes and checks everything; I only write the text of the new rules. Do not retype the file by hand and do not eyeball the byte count.

Engine: python %USERPROFILE%\.claude\scripts\codex_mirror.py <check|backup|stamp|publish|selftest>

Step 0 — RECALL + the frame

  • Memory: [[canon-versioning-and-drift-watchdog]] (the class "the watchdog died silently together with the thing it watched"), [[codex-cli-install]], [[any-llm-vault-actor]], [[claude-md-compression-contract]].
  • The mirror = a canon edit → only the owner's machine in a live session; followers are receive-only ([[machine-governance-leader-follower]]).
  • The 32 KiB cap is hard (DR 06-29: "lost in the middle" — a bloated file is WORSE than an empty one). The mirror = a distillation + pointers, NOT a copy of CLAUDE.md.

Step 1 — What exactly is stale

python %USERPROFILE%\.claude\scripts\codex_mirror.py check

Prints both versions, the headroom left before the cap and the delta from CLAUDE.CHANGELOG.md — exactly the entries that appeared after the mirror's version. That is the work list; you don't need to read all of CLAUDE.md.

  • VERDICT: OK → leave, nothing to do.
  • PATCH lag only → green by design; write it in only if the micro-edit changes BEHAVIOUR (thresholds, gates), not wording.
  • REBUILD → carry on.

Step 2 — The safety net

python %USERPROFILE%\.claude\scripts\codex_mirror.py backup

Snapshot into ~/.codex/_backup/AGENTS.md.pre-<version>-<date-time>. Rollback = copy it back.

Step 3 — Write in the delta (the only step where I think)

For every delta entry:

  1. Find the matching § in the mirror (the mirror's numbering mirrors CLAUDE.md's, so canon §8.4 lives in mirror §8.4).
  2. Write the rule in the mirror's style: a bold **§X.Y ...** + the essence in 1-3 sentences + a pointer to the canon in the vault. Do not copy bodies.
  3. A rule about people/the outside world (the house rulebook) — one line with a pointer; a rule about the Claude harness (skills/hooks) — translate into a principle, Codex has none of those mechanisms.
  4. If the rule is entirely about Codex itself (the reviewer role, Windows pitfalls, protected zones) — its home is the CODEX BLOCK C1-C6, not the § part.

⚠️ Headroom before the cap is tiny (as of 07-26 — 37 bytes). New material fits only as a trade: squeeze the most bloated paragraph of the SAME § section, don't cut the TOP-20 and don't drop whole rules. Doesn't fit even then → that is the signal for a full mirror revision (as on 07-25: 137 KB → 32.7 KB), not for going "just a little" over the cap.

Step 4 — Stamp + publish

python %USERPROFILE%\.claude\scripts\codex_mirror.py stamp
python %USERPROFILE%\.claude\scripts\codex_mirror.py publish

stamp rewrites the > MIRRORS: ... line from the LIVE canon (version, date, md5, host) — never touch it by hand. publish runs the gates (cap · stamp vs canon · 17 anchors ## §0..§10 + ### C1..C6), then copies into $IMPORTS_ROOT\codex-canon\, verifies md5 and runs lint_agents_mirror.py. Any FAIL = nothing was copied; fix and repeat.

Step 5 — Proof and homes

  • A live Codex run: codex exec -s read-only --skip-git-repo-check "quote §<new number> from your instructions" — does it actually read the new rule.
  • External eyes per the /tt rule: secondop.py t3 --ritual tt (Codex itself as the breaker) — if the engine changed, not just the mirror text.
  • A node that has Codex but is not the hub: run lint_agents_mirror.py locally there too (a line in codex-onboard-checklist.md).
  • The rule changed the collaboration CONTRACT (what Codex may / may not do) → update ~/.codex/CODEX-COLLABORATION.md + the copy in the shared folder, not only the mirror.

Boundaries and accepted limitations

  • ⛔ Don't edit CLAUDE.md with this skill (that is /intake for a rule and /canon-revision for structure); the mirror follows the canon, never leads it.
  • ⛔ Don't run it on other people's machines: only the owner's hub rebuilds the canon.
  • Accepted: an edit to the mirror body WITHOUT a stamp change is not caught by the watchdog (receive-only governance keeps that hole closed organisationally). We are not building a second watchdog — [[gate-implement-critical-only]].
  • The cap and the anchors are the truth inside the engine's code (CAP, ANCHORS); a mismatch between code and this text is a bug in the code.
  • Relatives: /arch (the nightly rail where the watchdog lives) · /secondop (Codex as reviewer) · /canon-revision (revising the canon itself) · /follower-onboard (a new node).

<!--kit-footer-->

Like this skill? It is one of 100 in second-brain-starter-kit: the second brain we built for ourselves and run every day at Palo Alto AI Research Lab. Install the whole set with npx skills add tonydzi/second-brain-starter-kit. Everything is open source and free, so take what you need.

Flagships worth a look on their own: secondop-panel (a second opinion from a panel of external models), claude-memory-tidy (stop your agent's memory from rotting), telegram-mcp-kit (your own Telegram over MCP in about 15 minutes).

Author: Anton Dziatkovskii, Palo Alto AI Research Lab. Telegram @tonydzi - WhatsApp +1 341 222 9178 - X @Tony_Stef_

Engineers: want to test-drive this setup? Message me. I hand out free starter seeds to engineers who test and report back, and custom skill requests are welcome.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.