Skip to content

docs: say what each zone covers, not just how it is wired - #207

Merged
qiuethan merged 1 commit into
stagingfrom
qiuethan/Misty-Zones
Aug 26, 2026
Merged

docs: say what each zone covers, not just how it is wired#207
qiuethan merged 1 commit into
stagingfrom
qiuethan/Misty-Zones

Conversation

@qiuethan

Copy link
Copy Markdown
Collaborator

What this changes

The canonical zone table in docs/CODE-OWNERSHIP.md gains a What it covers column — a one-line description of each zone, with a link to its README for the eight zones that have one.

Why

The table gave each zone's pr-zone-check pattern, CODEOWNERS line, and owner, but never said what a zone is. It answered "how is this wired?" and not "what would I be signing up for?"

That gap matters right now: docs/ONBOARDING.md:31 already sends new members to the canonical list as "the menu" of zones to pick from, and a zone-ownership form is about to point at the same anchor. Both were sending people to a table that couldn't answer the question they arrived with — the descriptions lived in eight separate service READMEs.

Zone

docs

How to verify

The one gate that reads this file is label-consistency, via check-labels.mjs, which requires a row per zone:

node scripts/check-labels.mjs   # or: make labels
# Label consistency check passed.
# Zones (14) — the PR axis: ...

Every relative link in the file resolves:

grep -o '](\.\./[^)]*)' docs/CODE-OWNERSHIP.md | sed 's|](\.\./||;s|)$||' | sort -u |
  while read p; do [ -e "$p" ] && echo "OK   $p" || echo "MISS $p"; done
# 21 OK, 0 MISS

Then read the table on the Files tab — the point of the change is whether the descriptions are accurate, which CI cannot check.

Checklist

  • Branched off staging and targeting staging.
  • Ran the relevant check locally — node scripts/check-labels.mjs passes. No service test suite applies: this is a single Markdown file.
  • ruff — not applicable, no Python in this PR.
  • Docs updated in this PR where the change makes them wrong — this PR is the docs change, and no other copy of the zone list carries descriptions, so nothing else goes stale.

Note on the last one: the descriptions are a fifth restatement of what each service does, after the service README, its ARCHITECTURE.md, the root README.md tree, and the service's own docs. They are deliberately one line and scoped to why you'd own it rather than how it works, but they are hand-maintained prose and nothing checks them against reality — see below.

Deployment notes

None — documentation only.

Anything you're unsure about

Two things worth a second opinion.

The column reorder. Zone, description and owner now come first, with the pr-zone-check pattern and CODEOWNERS line pushed to the right. My reasoning is that the table is read to pick or understand a zone far more often than to debug a label, and the mechanics are restated in "Adding or renaming a zone" anyway. It does make the diff a full table rewrite rather than an append, so if you'd rather keep the original column order and just append the new one, that's a one-line change to make.

A new drift surface, in the file that exists because of drift. label-consistency checks that the zone names agree across five files; it cannot check that a description still matches what a service does. docs/CODE-OWNERSHIP.md already names this class of problem — "whether a zone's paths are the right paths" — and this adds prose in the same category. A service that changes shape leaves a stale line here, silently. I think that's an acceptable trade for a table people can actually use, and one line per zone is small enough to re-read during a rename, but it is a real cost and worth disagreeing with.

One thing that is not uncertain: the zone stays a bare backticked name in the first cell. check-labels.mjs:489 matches each row by the literal | + backticked zone + |, so linking the zone name itself fails the build. The links live in the description cell for that reason.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Xu8iVgaPrvUfgQoNbJSr46

The canonical table gave every zone's pr-zone-check pattern, CODEOWNERS
line, and owner, but never said what a zone actually is. Anyone picking a
zone to own had to open eight service READMEs to find out.

Adds a "What it covers" column: a one-line description per zone, plus a
README link for the eight zones that have one. The four that do not
(docs, scripts, .github, root) enumerate their contents instead, and the
two transitional buckets point at the section explaining why they are off
the templates.

Reorders so zone, description and owner come first and the two mechanical
columns sit to their right — the table is read to pick a zone far more
often than to debug a label.

The zone stays a bare backticked name in the first cell on purpose:
check-labels.mjs matches each row by that literal, so linking the zone
name itself would fail label-consistency.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xu8iVgaPrvUfgQoNbJSr46
@github-actions github-actions Bot added size/s < 50 lines changed zone: docs Owned by the docs zone (docs/CODE-OWNERSHIP.md) labels Aug 26, 2026
@qiuethan
qiuethan merged commit b8ac956 into staging Aug 26, 2026
16 checks passed
@qiuethan
qiuethan deleted the qiuethan/Misty-Zones branch August 26, 2026 01:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/s < 50 lines changed zone: docs Owned by the docs zone (docs/CODE-OWNERSHIP.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant