Skip to content

Commit dd03c41

Browse files
authored
docs(agents): drop the retired paragraphs and keep the canonical ones verbatim (#217)
modern-python/.github#93: the three retired conventions (real work not scheduled, the INVARIANT: docstring shape, the # ty: ignore note) are process notes the standard no longer carries. modern-python/.github#92: section 9 of the standard fixes the justfile and README-links paragraphs word for word.
1 parent da15df9 commit dd03c41

1 file changed

Lines changed: 8 additions & 14 deletions

File tree

‎AGENTS.md‎

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ kinds of **skip**, are defined there and are load-bearing throughout.
99

1010
## Commands
1111

12-
`just` (task runner) and `uv` (package manager). The [`justfile`](justfile) is the source of truth;
13-
every non-obvious recipe carries its intent as a comment.
12+
`just` (task runner) and `uv` (package manager). The [`justfile`](justfile) is the source of truth —
13+
`just --list`, or read it. Every non-obvious recipe carries its intent as a comment.
1414

1515
## Architecture
1616

@@ -20,14 +20,9 @@ concern, `bootstrappers/<framework>_bootstrapper.py` owns one framework's bindin
2020

2121
## Workflow
2222

23-
Real work **not scheduled** becomes a GitHub issue.
24-
25-
Every link in `README.md` is absolute — `https://github.com/modern-python/<repo>/blob/main/<path>`,
26-
or `.../tree/main/<path>` for a directory. `README.md` is also the PyPI long description, and PyPI
27-
does not rewrite relative links, so a relative one 404s on the package page.
28-
29-
An invariant is a test whose name is the claim, with a docstring opening `INVARIANT:` and a second
30-
paragraph naming **what breaks it** — design rationale, not a report of what this one test catches.
23+
Every link in `README.md` must be absolute: `https://github.com/modern-python/<repo>/blob/main/<path>`,
24+
or `.../tree/main/<path>` for a directory. Never a relative path: `README.md` is also the PyPI long
25+
description, and PyPI does not rewrite relative links, so a relative one 404s on the package page.
3126

3227
## Agent docs
3328

@@ -60,7 +55,6 @@ Pyright reports as errors — conditional imports for optional dependencies, cov
6055
`bootstrap_config` narrowing on instrument subclasses, `TypedDict` optional-key access guarded by
6156
`.get()` — so adding it yields noise, not findings.
6257

63-
Two suppression spellings recur and are both correct as written: `# ty: ignore[invalid-method-override]`
64-
on a framework subclass's `is_configured` classmethod, which narrows its parameter type where `ty`
65-
enforces invariance, and `# ty: ignore[unresolved-attribute]` on the optional OTel/pyroscope symbols
66-
whose guard `ty` does not follow.
58+
Two suppressions recur and are both correct: `invalid-method-override` on a framework subclass's
59+
`is_configured` classmethod, which narrows its parameter type where `ty` enforces invariance, and
60+
`unresolved-attribute` on the optional OTel/pyroscope symbols whose guard `ty` does not follow.

0 commit comments

Comments
 (0)