From f303a815f7f663f34e56caefce9ce371c8df2acf Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Fri, 18 Sep 2026 21:29:00 +0200 Subject: [PATCH] =?UTF-8?q?AGENTS.md=20=C2=A711:=20the=20shared=20side=20i?= =?UTF-8?q?s=20everything=20outside=20emit/=20and=20parse/,=20not=20the=20?= =?UTF-8?q?root=20alone?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 7eafb40..e005118 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -313,10 +313,10 @@ someone spells it or pins it. fields it claims (`isAdfDocument`); past it everything is typed. Make invalid states unrepresentable. - `src/adf/` holds ADF's own knowledge and imports no format. Each format directory (`markdown/`, - `html/`) parts into `emit/` (ADF→format) and `parse/` (format→ADF), its root holding what both - directions read. A construct's reader lives in that root beside the regex the emitter escapes + `html/`) parts into `emit/` (ADF→format) and `parse/` (format→ADF), the rest of it holding what + both directions read. A construct's reader lives there beside the regex the emitter escapes against, so the two cannot drift; a reader with no emit counterpart goes in `parse/`, unless it is - part of a construct the root already holds — a grammar stays in one file rather than splitting + part of a construct that side already holds — a grammar stays in one file rather than splitting across the seam. A rule both directions must answer alike — whether a list marker interrupts a paragraph — is one function there too, never a copy per direction, however conservative the copy would be. Where the rule is