Skip to content

docs: iconography — protocol 1.1 icon affordance + visual-spec §2.12 rewrite#41

Merged
iret77 merged 2 commits into
mainfrom
feat/iconography-protocol-1.1
Jun 20, 2026
Merged

docs: iconography — protocol 1.1 icon affordance + visual-spec §2.12 rewrite#41
iret77 merged 2 commits into
mainfrom
feat/iconography-protocol-1.1

Conversation

@iret77

@iret77 iret77 commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Why

A throwaway AI-generated social header surfaced a real gap: the generative layer
forgot icons — one of the most successful GUI elements of the last 40 years.

Verified against the repo:

  • icon appears zero times in protocol/1.0.md, CONCEPT.md, lumens-spec.md.
  • The 24 primitives have no icon; §2.2 cross-cutting traits have no icon.
  • Icons live only as renderer-chosen chrome glyphs (visual-spec §2.12, Lucide). Tier 2 cannot name a glyph.
  • §2.12 caps custom icons at three — directly contradicting generate-on-demand + a user-picked library.

What

  • docs/iconography.md (new) — proposal: icon trait + opaque IconRef
    (app: immutable Lucide / lib: user library / gen: generated),
    iconResolver@1 provider chain, deferred iconGenerator@1 (requires-bound,
    late-bound — nano-banana/gpt-image-2 slot in with no protocol bump).
    lib:/gen: glyphs are DataRefs (icon-<sha256>) — reuse §4
    content-addressing/HMAC/dedup, no new buffer transport. SVG sanitisation +
    single-colour enforcement. The 3-icon cap is replaced by a style constraint,
    preserving its original consistency intent.
  • protocol/1.0.md — §12 Icons (v1.1 additive, in the §11-Notifications
    pattern) + cross-refs in §2 / §2.2 / §9 / §10.
  • visual-spec.md §2.12 — retire the 3-custom-icon cap (constraint, not count).

Additive 1.1; 1.0 clients ignore the new fields and render text-only.

Open questions (in the doc §8)

  1. Standalone icon primitive (rail/dock a11y, mandatory label) vs. trait-only. Leaning: primitive.
  2. Expose the full Lucide name set to the Skill, or a curated subset (smaller vocabulary → more consistent agent output)?
  3. lib: distribution format; placeholder glyph for a resolver miss.

Out of scope (deliberate)

"Data as glyph instead of prose" (sparkline / ring / status-dot over a sentence)
is a related but separate concern — Skill authoring discipline + a possible
inline micro-viz affordance, not icon vocabulary. Tracked as its own follow-up
to keep this review focused.

🤖 Generated with Claude Code

cwendler and others added 2 commits June 20, 2026 17:27
…rewrite

The generative layer had no icon vocabulary: `icon` appears zero times in
protocol/1.0.md and CONCEPT.md, and the 24 primitives / §2.2 traits have no
icon — Tier 2 could not name a glyph. visual-spec §2.12 also capped custom
icons at three, contradicting generate-on-demand + a user-picked library.

- docs/iconography.md (new): proposal — `icon` trait + opaque `IconRef`
  (app:/lib:/gen:), `iconResolver@1` provider chain, deferred
  `iconGenerator@1`, lib:/gen: icons reuse DataRef content-addressing,
  SVG sanitisation, the house-style constraint that replaces the cap.
- protocol/1.0.md: §12 Icons (v1.1 additive) + cross-refs in §2/§2.2/§9/§10.
- visual-spec.md §2.12: retire the 3-custom-icon cap — constraint, not count.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…-spec → v0.6

Resolve two open questions (CW):
- `app:` exposes a curated subset of Lucide names to the Skill, not the full
  set — smaller vocabulary, more consistent agent output.
- Keep the standalone `icon` primitive (rail/dock a11y, mandatory label).

Also bump visual-spec to v0.6 with an iconography changelog entry (the §2.12
rewrite was missing a version entry).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@iret77 iret77 merged commit 81bf82e into main Jun 20, 2026
1 check passed
@iret77 iret77 deleted the feat/iconography-protocol-1.1 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