From 7d385ef3f9abab560ad09e2878d15bebd2d6e43b Mon Sep 17 00:00:00 2001 From: Richard Rodger Date: Thu, 17 Sep 2026 16:31:06 +0100 Subject: [PATCH] CLAUDE.md is a symlink to AGENTS.md One guide, reachable under both names. Claude Code looks for CLAUDE.md and most other agents look for AGENTS.md, and a repository that answers only one of them either loses half its readers or keeps two files that drift. THE CONTENT WAS CHECKED BEFORE IT WENT, not assumed. The CLAUDE.md here was a pointer at AGENTS.md followed by condensed reminders, and every one of them was already in AGENTS.md at greater length: the canonical-port rule, the corpus-is-the-contract rule, the parity check, the no-runtime- dependencies rule, the build commands and the prose gate. Nothing needed rescuing, so nothing was moved. A symlink, not a copy: git stores it as a link (mode 120000), so there is one file to edit and no second copy to drift. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_019wTUyjnYpUkD9xPu15AKbR --- CLAUDE.md | 40 +--------------------------------------- 1 file changed, 1 insertion(+), 39 deletions(-) mode change 100644 => 120000 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 3d120b4..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,39 +0,0 @@ -# CLAUDE.md - -This repository's agent guidance lives in [`AGENTS.md`](./AGENTS.md). -Read it first — it is the single source of truth for how to work here. - -Quick reminders (the full rationale is in `AGENTS.md`): - -- **TypeScript is canonical**; every other language is a port of it. -- **The corpus is the contract** — `spec/plugin.json`, generated from - `spec/plugin.aon`. A port that disagrees with it is the thing that's - wrong. **Never hand-edit the JSON**, and never weaken the corpus to - make a port pass. -- **Change canonical first, then propagate** to every port, in one - change set. -- **Keep `make parity` green** and add **no runtime dependencies** — - `voxgig/struct` is the only permitted one, and the reason is in - `AGENTS.md` §1. -- Build and check with `make spec`, `make spec-check`, `make parity`, - `make check`. -- **Prose follows [`STYLE-GUIDE.md`](./STYLE-GUIDE.md)** — normative for - the root `README.md` and `DOCS.md` and every port's `README.md`: the - voice, the banned phrases, the spaced em dash, and the rule that - documentation never cites a working document (this file included). - Two gates enforce it, `vale` and `python3 tools/check_prose.py`; - `make scan-prose` runs both. - -**Status: P6 COMPLETE — six of six.** The corpus is 591 entries across -19 sections, and **twenty-three implementations pass every one of -them** — `typescript/` (canonical), `go/`, `python/`, `javascript/`, `ruby/`, `php/`, -`perl/`, `rust/`, `java/`, `lua/`, `csharp/`, `elixir/`, `clojure/`, -`dart/`, `kotlin/`, `swift/`, `scala/`, `c/`, `cpp/`, `ocaml/`, -`haskell/`, `zig/` and `lean/`. -`AGENTS.md` §6 says what to pick up; the live per-item state is -[`doc/plan/status.md`](./doc/plan/status.md). - -The design is [`docs/design/plugin.md`](./docs/design/plugin.md). The -agreement with its first host, and the cross-repo sequencing, live in -station: [`station-and-plugin.md`](https://github.com/voxgig/station/blob/main/docs/design/station-and-plugin.md) -and [`station-and-plugin-plan.md`](https://github.com/voxgig/station/blob/main/docs/design/station-and-plugin-plan.md). diff --git a/CLAUDE.md b/CLAUDE.md new file mode 120000 index 0000000..47dc3e3 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file