From a865bcfdfc1cccfa4bd6bd2db7374281954cfbeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Thu, 27 Aug 2026 06:59:48 +0000 Subject: [PATCH] put back the orientation the sweep overwrote MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2360a3ef moved CLAUDE.md's text into AGENTS.md verbatim — which is exactly what its brief asked for, and the brief was wrong. it described root AGENTS.md as "41 lines, currently a pointer". it was not: it carried an Orientation section — the owner/member split, why execution permissions can never be granted, that mounting a router without a registry entry refuses the boot, and the reading list. all of it was replaced rather than merged, and none of it survived anywhere else in the tree. my fault, not the agent's. i skimmed a file and then told something else to overwrite it. the other four pairs are clean — none of those directories had a prior AGENTS.md, so there was nothing to lose. restored at the top of the file, with three corrections rather than a straight revert: · the sibling repo is `capabilities/`, not `permissions/` — the old text named a directory that does not exist · "read the Permissions section of CLAUDE.md" now says "below", since this is that file · the reading list no longer lists CLAUDE.md as the architecture doc, which would now be a pointer pointing at the thing pointing at it the file also still called itself "# CLAUDE.md". it says AGENTS.md now, and says why both exist: opencode walks the tree for AGENTS.md and nothing else, Claude Code for CLAUDE.md, and one set of instructions has to reach both. Co-Authored-By: Claude Opus 5 Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043 --- AGENTS.md | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 09ed4817..955f4047 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,4 +1,35 @@ -# CLAUDE.md +# AGENTS.md + +Guidance for any coding agent working in the Officer platform repo. **This is the file with the +instructions in it**; `CLAUDE.md` beside it only points here. Both exist because the two harnesses +discover different names — opencode walks the tree for `AGENTS.md` and nothing else, Claude Code for +`CLAUDE.md` — and one set of instructions must reach both. + +## Orientation + +Officer is built around **one owner** (user id 1, role `Super Admin`, who bypasses every permission +check), which since 2026-08-07 also admits **additional accounts holding a strict subset of it**. What +each may reach is decided by per-role permission grants, resolved on every request. + +If a design question turns on "which user", the answer depends on the surface: real for the **app** +permissions (gitea, music, photos, calendar…), and still always **the owner** for anything that +executes code or touches the disk — terminal, chat, tasks, files, desktop and browser are +`kind: 'execution'` and can never be granted. `src/servers/permissions/registry.ts` is the authority. + +**Mounting a router without a registry entry makes the server refuse to boot.** Read the Permissions +section below before adding one. + +This repo is one of two. The other, `capabilities/`, holds the agent's tasks, tools and skills as plain +files, and is where many changes belong — adding or changing a task needs no code change here and no +restart. + +- [`docs/working-on-officer.md`](docs/working-on-officer.md) — the deployment-wide guide: which + directory a change belongs in, how to run and verify it, the task system, and the failure modes worth + knowing about +- `CONVENTIONS.md` — component organisation and React patterns, with rationale +- `TODO.md` — current direction; takes precedence where it disagrees with anything else + +Treat the code as the source of truth where anything disagrees with it. ## Project Overview