Skip to content

Carry the design system rules into WRITING.md and AGENTS.md - #321

Open
tony wants to merge 2 commits into
mainfrom
docs/design-contract-changes
Open

tony wants to merge 2 commits into
mainfrom
docs/design-contract-changes

Conversation

@tony

@tony tony commented Nov 15, 2026

Copy link
Copy Markdown
Contributor

The libtmux.org design system proposes five additions to WRITING.md and three to AGENTS.md (its 12-contract-changes.md). The site implements the rules on the feat/design-system branch; this puts them in the contracts so later changes follow them.

WRITING.md

  • Voice: interface labels say "programming language" and "translation language", never the bare "Language".
  • Who you are writing for: equivalence tables name recorded differences (async, owner, overloads) and write "Not mapped", never "not supported", when no mapping exists.
  • Documented examples that run: every code frame states its role. An excerpt names its file and line range and links the complete program; a complete program shows its files, setup and expected output.
  • API documentation: documented completion, ownership, errors, transport and tmux requirements become behaviour facts with their source line.
  • Error messages and help: interface states name what failed, what still works, and the next place to go.

AGENTS.md

  • Which policy applies: visual tokens, component anatomy and page-family rules come from the design system (libtmux/design), implemented in site/src/styles and site/src/components.
  • Change discipline: values become named custom properties; no literal colours in component styles.
  • Change discipline: badge, signature and kind colour changes run site/scripts/check-style-parity.mjs; player, tab, filter and pane layout changes run the layout-shift probe site/scripts/check-page-readiness.mjs.

Not proposed by the design system: changes to repository boundaries, merge rules, the TypeScript pin or the framework policy.

tony added 2 commits November 14, 2026 20:29
why: The libtmux.org design system asks five rules of WRITING.md
(12-contract-changes.md) that the site now implements: code frames that
state their role, behaviour facts with source lines, equivalence tables
that separate a recorded absence from an unmapped port, interface states
that say what failed and what still works, and two named language labels.
Without them in the writing guide, the next change has no rule to follow.

what:
- Voice: say "programming language" and "translation language" in
  interface labels, never the bare "Language"
- Who you are writing for: equivalence tables name recorded differences
  and write "Not mapped" when no mapping exists
- Documented examples that run: every code frame states its role (excerpt
  with file and line range, complete program with files, setup and output)
- API documentation: documented completion, ownership, errors, transport
  and tmux requirements become behaviour facts with their source line
- Error messages and help: interface states name what failed, what still
  works, and the next place to go
why: The libtmux.org design system asks three additions to AGENTS.md
(12-contract-changes.md): where visual tokens and component anatomy are
defined, that values become named custom properties, and which checks
cover badge colour and layout changes.

what:
- Which policy applies: name the design system (libtmux/design) for
  visual tokens, component anatomy and page-family rules
- Change discipline: add values as named custom properties, never literal
  colours in component styles
- Change discipline: run check-style-parity for badge, signature and kind
  colours, and the layout-shift probe for player, tab, filter and pane
  layout changes

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant