Skip to content

docs: state-as-glyph — show state, don't narrate it#42

Merged
iret77 merged 1 commit into
mainfrom
feat/state-as-glyph
Jun 20, 2026
Merged

docs: state-as-glyph — show state, don't narrate it#42
iret77 merged 1 commit into
mainfrom
feat/state-as-glyph

Conversation

@iret77

@iret77 iret77 commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Why

Sibling to the iconography work (#41) — same root cause: the generative layer is
text-biased (the LLM emits tokens, so prose is the path of least resistance).
Where icons were missing a vocabulary, state is missing a discipline.

Verified against the repo:

  • chart / status / progress primitives exist; a KPI is a composition, not a primitive (CONCEPT §302); status dots are sanctioned (§3.3); mockups already render value + delta + trend (visual-spec preview §8).
  • Nothing tells the agent when to show vs. narrate. §2.7 governs typographic register, not glyph-vs-prose.
  • No compact / sparkline chart variant — the KPI trend mini-bars are mockup-only.

Result: the agent writes "Deep work: 2h 15m so far, going well" instead of composing KPI-text "2h 15m" + a sparkline + a delta.

What

  • docs/data-glyphs.md (new) — the "show state, don't narrate it" UI-Skill authoring protocol: a value-kind → preferred-element table (quantity → KPI-text, trend → chart/spark, status → dot+word, progress → progress, delta → chip). Prose stays for narration/analysis, never for a bare value.
  • One small protocol 1.1 additive — a chart variant: "spark" for axisless inline sparklines (1.0 clients ignore it, render the full chart).
  • Delta chip = composition (a text value + an app: arrow glyph from docs: iconography — protocol 1.1 icon affordance + visual-spec §2.12 rewrite #41), documented as a recipe — no new primitive.

No new primitives; the principle itself needs no wire change.

Ties to canon

Accent marks the positive/live signal (negative delta is state.warning text, never a red pill — §2.6); one accent slot; data-dominant typography. Anti-patterns called out: no unlabelled sparklines, no gauge/dial salad (Tremor chart-restraint), don't strip genuine narration.

Open questions (doc §7)

  1. spark as variant vs. density on chart.
  2. Does status need a typed health enum (ok/warn/error) or is the semantic-state token + text enough?
  3. Home of the Skill protocol block (CONCEPT.md UI Skill vs. a standalone authoring doc).

Companion to visual-spec §2.7 and docs/iconography.md (#41).

🤖 Generated with Claude Code

Sibling to the iconography work, same root cause (LLM text-bias). The render
patterns exist (KPI cards, status dots, charts, progress) but no authoring
discipline tells the agent to prefer them over a sentence.

- docs/data-glyphs.md (new): the "show state, don't narrate it" UI-Skill
  authoring protocol (value-kind → preferred element); one small protocol 1.1
  additive (`chart` variant: "spark" for inline sparklines); delta chip as a
  composition (text + app: arrow glyph), not a primitive.

No new primitives; principle needs no wire change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@iret77 iret77 merged commit 530a4eb into main Jun 20, 2026
1 check passed
@iret77 iret77 deleted the feat/state-as-glyph branch June 20, 2026 15:59
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.

2 participants