Skip to content

Commit 8c495c3

Browse files
committed
docs: cut the glossary to terms the repo actually contests; drop the census
Auditing the ten terms against real usage found most of the _Avoid_ lists banning words that have a legitimate independent meaning here, which would make the glossary wrong to follow: - `icon` is `geometry.icon()`, plus favicon and apple-touch-icon. - `glyph` is what `text.py` means by it — an outlined character from the font. - `theme` is the mkdocs config key; `variant` is the light/dark image pair and the padded circular-crop mark; `title` is front matter; `header` is the site header and Boosty's header slot; `banner` is the README banner. - `logo` is right to reject for our own assets, but a third party's logo is a logo — `symbols.py` draws from Flask's and FastStream's, and ADR 0004 is about exactly that. - `logotype`, `combo mark`, `highlight` and `cutout` appear nowhere in the repo. A synonym nobody has used is not a synonym to reject. Three entries went the other way and were dropped as derivable: Brand kit (it is `brand/`), Social card (`project_social_card` and the filenames), and the three metadata surfaces, which restated the AGENTS.md section that owns them. The audit did find one live split worth ruling on: `colourway` in prose, `colorway` in two docstrings and the apparel README. British spelling wins for this one word, since the assets and the docs describing them already read `colour`; the three sites are corrected here so the glossary is true when it says so. Ten terms become seven. tests/test_invariant_census.py is removed on request. AGENTS.md now says plainly that nothing enforces the INVARIANT: shape and nothing checks a cited ADR path, so both are review-time reads — the ADR links in AGENTS.md and brand/README.md go back to failing silently on a rename, which mkdocs --strict cannot see. Verification: uv run pytest — 123 passed, 5 failed, 26 skipped; the five are the pre-existing rsvg-convert failures. uv run mkdocs build --strict is clean.
1 parent 055586d commit 8c495c3

7 files changed

Lines changed: 17 additions & 150 deletions

File tree

‎AGENTS.md‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,10 @@ comment, or `mkdocs.yml` costs every turn and rots in two places at once.
114114

115115
An invariant is a test whose name is the claim, with a docstring opening `INVARIANT:`
116116
and a second paragraph naming **what breaks it** — design rationale, not a report of
117-
what this one test catches. `tests/test_invariant_census.py` enforces that shape, and
118-
checks that every test name and ADR path cited from the source or from the Markdown
119-
outside `docs/` resolves. Both ADRs and
120-
`INVARIANT:` docstrings ratchet: nothing prunes a record once its call is settled.
121-
Keeping them lean is a standing habit.
117+
what this one test catches. Nothing enforces that shape, and nothing checks that an ADR
118+
path cited from code or from this file still resolves; both are read at review time.
119+
Both ADRs and `INVARIANT:` docstrings ratchet: nothing prunes a record once its call is
120+
settled. Keeping them lean is a standing habit.
122121

123122
## Agent skills
124123

‎CONTEXT.md‎

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,45 +18,34 @@ heavily this repo uses it.
1818
A square logo drawn from vector geometry, with no type. The *org mark* is the interlocked-snakes
1919
pinwheel with a chevron; a *project mark* is the green+gold snake frame around one repo's inner
2020
symbol.
21-
_Avoid_: logo, icon
21+
_Avoid_: logo — for our own assets. A third party's logo is a logo (`symbols.py` draws from
22+
Flask's and FastStream's), and `icon` is the right word for a favicon or the `icon()` full-bleed
23+
square.
2224

2325
**Inner symbol**:
2426
The gold shape inside a project mark's frame, one per repo, chosen in `projects.py::MANIFEST`. It
2527
is the only thing that distinguishes one project mark from another.
26-
_Avoid_: glyph, badge
28+
_Avoid_: glyph — which `text.py` needs for its real meaning, an outlined character from the font.
2729

2830
**Wordmark**:
2931
The `MODERN`/`PYTHON` crop-mark type, outlined to paths. Type only, no mark.
30-
_Avoid_: logotype, title
3132

3233
**Lockup**:
3334
A mark and a name composed into one fixed arrangement — the org wordmark, or a project's
34-
mark-plus-repo-name banner.
35-
_Avoid_: header, combo mark
35+
mark-plus-repo-name banner. Named in the files themselves: `lockup-light.svg`, `lockup-dark.svg`.
3636

3737
**Colourway**:
3838
One named ink pair an asset renders in: *light* is green-ink + gold-light, *dark* is cream +
3939
gold-dark. Every asset ships both, and which one a surface loads is a `prefers-color-scheme` or
4040
`data-md-color-scheme` swap, never a separate design.
41-
_Avoid_: theme, variant, colour scheme
41+
_Avoid_: colorway — the repo has spelled it both ways; British spelling wins for this one word,
42+
because the assets and the docs that describe them already read `colour`.
4243

4344
**Knockout**:
4445
Cream painted **on top of** a gold shape to cut a hole in it. Cream is never ink in its own right:
4546
on a transparent background it is invisible on light surfaces and stray white on dark ones.
46-
_Avoid_: highlight, cutout
47-
48-
**Brand kit**:
49-
The generated tree under `brand/` — the whole output of `brand.build.render`, and the source of
50-
truth every other surface copies or hotlinks from.
51-
52-
**Social card**:
53-
The 1280×640 `og:image` for a repo with a docs site: mark panel plus name, tagline, and URL.
54-
_Avoid_: banner, preview image
5547

5648
**Org profile**:
5749
`profile/README.md`, the landing page GitHub renders at github.com/modern-python. Distinct from the
58-
**org site**, `modern-python.org`, built from `docs/`.
59-
60-
**The three metadata surfaces**:
61-
A repo's one-liner, written once and kept identical in the GitHub description, the pyproject
62-
`description`, and its org-profile row. Naming fewer than three of them is the usual way they drift.
50+
**org site**, `modern-python.org`, built from `docs/` — the two carry different content and drift
51+
apart if the names are used loosely.

‎brand/apparel/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Print-ready artwork for the **black** modern-python org t-shirt, generated by
77
uv run python -m brand.build.render
88
```
99

10-
## Colorway
10+
## Colourway
1111

1212
Two-ink spot print, cream + gold-dark (the on-dark org treatment):
1313

‎brand/build/geometry.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def mark(*, struct: str, gold: str) -> str:
8585

8686
def apparel_back(*, struct: str, gold: str) -> str:
8787
"""Back-of-shirt lockup: the MODERN/PYTHON wordmark with the full domain
88-
outlined beneath it, transparent, for the cream+gold-dark colorway. Extends
88+
outlined beneath it, transparent, for the cream+gold-dark colourway. Extends
8989
the `wordmark` viewBox downward to seat the URL centered on the same axis."""
9090
url, _ = outline_text(
9191
"modern-python.org",

‎brand/build/render.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def render() -> None:
7272
height=640,
7373
)
7474

75-
# Boosty profile cover (green colorway) — brand/org/boosty-cover.*
75+
# Boosty profile cover (green colourway) — brand/org/boosty-cover.*
7676
_write(
7777
ORG / "boosty-cover.svg",
7878
g.boosty_cover(bg=t.GREEN_SURFACE, struct=t.CREAM, gold=t.GOLD_DARK),

‎docs/agents/domain.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ whose docstring opens `INVARIANT:`.
3333

3434
When your output names a domain concept (in an issue title, a proposal, a hypothesis, a test name),
3535
use the term as defined in `CONTEXT.md`. Don't drift to synonyms the glossary explicitly avoids:
36-
write `mark` and not `logo`, `colourway` and not `theme`, `inner symbol` and not `glyph`.
36+
write `mark` and not `logo`, `colourway` and not `colorway`, `inner symbol` and not `glyph`.
3737

3838
If the concept you need isn't in the glossary yet, that's a signal: either you're inventing language
3939
the project doesn't use (reconsider) or there's a real gap (note it for `/domain-modeling`).

‎tests/test_invariant_census.py‎

Lines changed: 0 additions & 121 deletions
This file was deleted.

0 commit comments

Comments
 (0)