Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
513b0c3
test(rules-doc): example-line grammar parser and annotation registry
derek73 Aug 15, 2026
c66ac9a
docs(rules): skeletons for rules.md, decisions.md, mechanisms.md
derek73 Aug 15, 2026
fb2b141
test(rules-doc): executable-examples runner
derek73 Aug 15, 2026
16d59dc
test(rules-doc): citation integrity (legacy dormant) + spelling denylist
derek73 Aug 15, 2026
7187c8b
docs(rules): extract post_rules into H/P/O (template pass)
derek73 Aug 15, 2026
4734cd2
docs(rules): spec-review fixes for the foundation
derek73 Aug 15, 2026
caa6714
test(rules-doc): quality-review fixes -- slug ID classes, nested piec…
derek73 Aug 15, 2026
8dba1b0
docs(rules): extract extract_delimited into N/S/M
derek73 Aug 15, 2026
dc65866
docs(rules): extract tokenize into T (separators, name dots, interpunct)
derek73 Aug 15, 2026
7004567
docs(rules): extract segment into C (comma structures)
derek73 Aug 15, 2026
aed37f5
docs(rules): extract script_segment into W (division, peel, writer's …
derek73 Aug 15, 2026
07ae7ad
docs(rules): extract classify+leading-title into H2/S2 (litmus pass)
derek73 Aug 15, 2026
8a855c0
docs(rules): extract group+assign into H3/P2/P3/M2/N3/O4/W4/A1
derek73 Aug 15, 2026
5daf84b
docs(rules): probe amendments -- nine statements corrected to measure…
derek73 Aug 15, 2026
246aadc
docs(rules): extract rendering into R (views, fold order, initials, c…
derek73 Aug 15, 2026
60d0f8e
docs(rules): D-section diagnostics with warns=/raises= forms
derek73 Aug 15, 2026
a180615
docs(rules): D-section diagnostics with warns=/raises= forms
derek73 Aug 15, 2026
bf52e75
docs(rules): mechanisms catalog with contract statements + verificati…
derek73 Aug 15, 2026
cd49ce5
docs(rules): seed decisions.md -- 2.1-arc harvest, Excluded blocks, 3…
derek73 Aug 15, 2026
92c887b
docs(rules): retarget nameparser/ spec citations to committed docs
derek73 Aug 15, 2026
f4e8a18
docs(rules): retarget tests/ and tools/ legacy citations
derek73 Aug 15, 2026
50b675c
docs(agents): rules-doc maintenance rules; arm legacy citation check
derek73 Aug 16, 2026
7749e24
docs(rules): repair the interrupted C1/C2 comment in segment (final r…
derek73 Aug 16, 2026
5b236f0
docs(rules): comment-analyzer fixes -- orphaned references, citation …
derek73 Aug 16, 2026
055c3ff
docs(rules): topic-review amendments from the 2.1-arc session (primar…
derek73 Aug 16, 2026
0460b87
docs(rules): topic-review amendments from the harness/maiden session …
derek73 Aug 16, 2026
f94ecac
docs(rules): topic-review amendments from the #329 session (primary s…
derek73 Aug 16, 2026
bde05d0
docs(rules): topic-review amendments from the particle-arc session (p…
derek73 Aug 16, 2026
4a5b7fa
docs(rules): topic-review amendments from the ledger-arc session (pri…
derek73 Aug 16, 2026
7fd1c71
docs(rules): link #382 from the ledger-separation open question
derek73 Aug 16, 2026
ac77e9a
docs(rules): topic-review amendments from the Indic session (primary …
derek73 Aug 16, 2026
3148aac
docs(rules): document the contested-membership Open keying convention
derek73 Aug 16, 2026
71ca544
docs(rules): document the remaining review-uncovered conventions
derek73 Aug 16, 2026
3685f86
docs(rules): topic-review amendments from the comma-suffix session (p…
derek73 Aug 16, 2026
5f58598
docs(rules): topic-review amendments from the 2.0-vocabulary session …
derek73 Aug 16, 2026
b3cc377
docs(rules): topic-review amendments from the July-arc session (prima…
derek73 Aug 16, 2026
436ff68
docs(rules): topic-review additions from the rc1 session (primary sou…
derek73 Aug 16, 2026
ba007b0
docs(rules): topic-review amendments from the issue-filing session (p…
derek73 Aug 16, 2026
47cc545
docs(rules): link #383 and #384 from their flagged questions
derek73 Aug 16, 2026
3176a5e
docs(rules): topic-review amendments from the 1.x stink-test session …
derek73 Aug 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,72 @@ Branch naming: `fix/issue-NNN-short-description` or `feat/short-description`.

Before opening the PR, if the change alters parser behavior or internals, *read* the Architecture, Extension Patterns, and Gotchas sections of this file against the change — don't grep for it: AGENTS.md paraphrases behavior in its own words, so text made stale by a code change rarely matches the code's phrasing (a doc-staleness sweep driven by grep terms from the diff will miss it every time). The same applies when scoping a doc-review pass or a subagent prompt: include AGENTS.md in the list of docs to check, or it won't be checked.

## Rules documentation (docs/design/)

Three committed contributor docs carry the parser's normative rules
and their reasons; three tests enforce them. Before proposing a
design or a fix that touches parser behavior, read
docs/design/mechanisms.md and the relevant docs/design/rules.md
sections — the catalog is keyed by problem shape, and the pattern
you are about to invent is often already there.

- **rules.md** — NORMATIVE rules (intended behavior, domain-topic
sections, executable examples; `deviates:` markers track known
parser gaps). Cite as `rules.md#P1`; code comments quote a
verbatim excerpt in double quotes, checked by
tests/v2/test_doc_citations.py.
- **decisions.md** — the ADR-style record: dated entries, Declined:
(rejected WITH evidence), Excluded: (what must stay out of a
wordlist and why), Open: (issue links, never restated; also keyed
to a vocabulary set for contested memberships — the
right-rule-wrong-set class),
3-0-reevaluations (append whenever a design cites 1.4 parity as
load-bearing).
- **mechanisms.md** — problem-shape catalog with citable contract
statements; stage-attribution claims in comments must cite an
entry verbatim, never restate it in fresh words.

**Same-PR amendment rule.** Any PR that changes or clarifies parser
behavior — or the boundaries around a documented rule, since a
neighboring change can invalidate a rule's stated limits without
touching its code — amends rules.md in the same diff (the doc diff
is part of the reviewable change, like tests). A change that
resolves or reverses a design question adds a decisions.md entry; a
new reusable pattern adds a mechanisms.md entry; a fixed deviation
removes its `deviates:` marker in the same PR (the examples test
forces this). Issues proposing behavior changes should be drafted in
rule shape — rationale, statement, examples with boundaries,
accepted consequences, open questions, exclusions — so landing an
accepted proposal is a copy, not a rewrite.

**Counting claims.** A bare count in prose is either an assertion or
a liability, keyed by who observes its staleness: asserted counts (a
test holds the number) fail CI at change time — the useful kind;
dated snapshots ("51 sites at spec time") cannot go stale; standing
present-tense prose counts are the forbidden class — promote to an
assertion, add a date, or state the invariant and let a test count.
After changing how many times something runs, sweep for counts, not
for the thing's name.

**Release-log claims.** Quantified or universal behavior claims in
release bullets must come from the differential gate's classified
summary or be verified against rules.md examples, never written from
memory. Per-rule ledger toml comments asserting PARSER behavior cite
rule IDs under the excerpt discipline; free prose is for ledger
mechanics only (owned by tools/differential/README.md).

**Primary-source review.** When doc content is distilled from a
session's work, have that session (or its transcript) review its
own sections before or soon after landing — attribution flattening
and inverted arguments are visible only to the source. Reviewers
state which tree each measurement ran on (stale fetches produced
three rounds of already-fixed findings), and landed corrections are
re-verified here before committing.

**Guard tests** SHOULD carry a recorded negative control — the
answer with the guard off, stored as data (the _EXCLUSION_EFFECT
shape; see mechanisms.md's Verification shapes).

## Commands

```bash
Expand Down Expand Up @@ -61,6 +127,10 @@ uv run sphinx-build -b html docs dist/docs
# "Reads:". That is checkable, so check it rather than reading it:
# compare it against grep -oE '\b(policy|lexicon)\.[a-z_]+' on the module
# - tests/v2/cases.py notes, which explain why a row lands where it does
# - docs/design/rules.md, decisions.md and mechanisms.md -- READ, don't
# grep: the excerpt and example tests catch citation and example drift,
# but statement and Background prose can still be wrong about behavior
# that changed
# - AGENTS.md itself, for stale commands, architecture notes, or gotchas
# And check for open Dependabot PRs on uv.lock (namedivider-python) and merge them
# first — pyproject floats >=0.4 so fresh installs get the newest namedivider, but
Expand Down
Loading