put back the orientation the sweep overwrote
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 <noreply@anthropic.com>
Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user