02 · Reviewable change

Will agent edits stay clean, or reformat my whole file?

A one-line change is a one-line diff — every time. Glyph has a single canonical layout, so an agent can't bury a real change under a wall of reformatting.

Why it matters

When an agent opens a pull request, the diff is the review. If a genuine one-line fix arrives as a 200-line reformat, nobody can see what actually changed — and that noise is exactly where a bug slips through. Diff stability means the diff shows the change and nothing but the change.

Two rules do most of the work. Here's each, shown as the diff you'd actually review.

Example 1 — trailing commas, one item per line

Add a route. In TypeScript's common style the previous last line has to churn just to grow a comma — two lines move for a one-item change:

TypeScript — add "/billing"
 const routes = [
   "/home",
-  "/about"
+  "/about",
+  "/billing"
 ]
3 lines moved for 1 change
Glyph — add "/billing"
 let routes = [
   "/home",
   "/about",
+  "/billing",
 ]
1 line added, exactly the change

Trailing commas are required and lists past two items go one-per-line, so inserting, removing, or reordering an entry never disturbs its neighbors. The same holds for record fields, parameters, match arms, and imports.

Example 2 — one canonical layout

There is exactly one correct formatting, produced by glyph fmt. Whitespace, wrapping, and alignment aren't choices an agent can “tidy,” so a semantic edit can't drag reflow along with it. Change one field's type, and that's the whole diff:

user.glyph — change one field, review one line
 type User = {
   id: string,
-  age: string,
+  age: number,
   email: string,
 }

Because the layout is fixed, two different agents editing the same file produce byte-identical formatting — no reflow churn, no “my formatter vs. yours” noise, and a clean git blame that points at the commit that actually changed a line, not the one that reformatted it.

Where it stands

Shipping today

Required trailing commas, one-item-per-line lists, and glyph fmt's single canonical layout — round-tripping and idempotent, with format-on-save in the editor.