From 09f0689d0ddaf259ab6a3cd1e9c34cb451a9c72b Mon Sep 17 00:00:00 2001 From: Claude Fable 5 Date: Sun, 30 Aug 2026 11:33:03 +0000 Subject: [PATCH] =?UTF-8?q?docs(agents):=20qualify=20line=208's=20DB-colum?= =?UTF-8?q?n=20item=20=E2=80=94=20control=20plane=20vs.=20the=20metadata?= =?UTF-8?q?=20tables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `AGENTS.md:8` presents `environment_id` as one of five flagship surfaces of the v5.0 `project` -> `environment` rename, closing with "No aliases." Measured on `origin/main`, that item is under-qualified in BOTH directions, and the two errors point opposite ways: * On the METADATA tables the column is retired. `sys_metadata` still declares it, but only as a deprecated nullable legacy column that no writer writes and the uniqueness discriminator excludes; `sys_metadata_history` dropped it from its declaration outright in the ADR-0008 SS0 branch/project-removal amendment. A reader taking line 8 at face value learns to write `environment_id` into new metadata rows; the spec's own describe() strings say new code must use `organization_id` only. * On the CONTROL PLANE the column is fully live and enforced. `sys_environment_member` is keyed `(environment_id, user_id)` and the runtime HTTP dispatcher filters on it for the per-project membership 403 gate. So a flat "since deprecated" qualification -- or dropping the item -- would teach the opposite error. The edit therefore carries the SCOPE rather than a single verdict, in place and line-neutral. The v5.0 rename statement is untouched: the rename happened, and the deprecation sits on a later and different axis (environment -> organization, not project -> environment). Line-neutral by construction and measured: AGENTS.md stays at 1162 lines (ceiling 1162, headroom 0) and the widest table row stays 1081 bytes at L720 (pin 1081, headroom 0) -- line 8 is a blockquote, not a table row, so neither byte ratchet meters it, and the gate's own `scanLineLengths` reports 0 offenders with line 8 classified `blockquote`. --- AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index e48ff67dea..8802388ed5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -5,7 +5,7 @@ Read natively by Claude Code, GitHub Copilot (coding agent + CLI), and other age separate `.github/copilot-instructions.md` mirror needed. When any other instruction file in this repo (including `.claude/skills/**`) conflicts with this one, **AGENTS.md wins**. -> **v5.0 breaking rename: `project` → `environment`** everywhere (CLI `-e`, `/api/v1/environments/:id`, header `X-Environment-Id`, `OS_ENVIRONMENT_ID`, DB column `environment_id`). No aliases. See ADR-0006. "Project" now only means the npm/monorepo sense. +> **v5.0 breaking rename: `project` → `environment`** everywhere (CLI `-e`, `/api/v1/environments/:id`, header `X-Environment-Id`, `OS_ENVIRONMENT_ID`, DB column `environment_id` [control-plane tables; on the metadata tables since deprecated in favour of `organization_id`, ADR-0006 v4]). No aliases. See ADR-0006. "Project" now only means the npm/monorepo sense. This file carries principles, binding rules and lookup tables. Lessons from past incidents are distilled in place — failure mode, discipline, boundary — without