docs: iconography — protocol 1.1 icon affordance + visual-spec §2.12 rewrite#41
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
iconappears zero times inprotocol/1.0.md,CONCEPT.md,lumens-spec.md.icon; §2.2 cross-cutting traits have noicon.visual-spec§2.12, Lucide). Tier 2 cannot name a glyph.What
docs/iconography.md(new) — proposal:icontrait + opaqueIconRef(
app:immutable Lucide /lib:user library /gen:generated),iconResolver@1provider chain, deferrediconGenerator@1(requires-bound,late-bound — nano-banana/gpt-image-2 slot in with no protocol bump).
lib:/gen:glyphs areDataRefs (icon-<sha256>) — reuse §4content-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-Notificationspattern) + 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)
iconprimitive (rail/dock a11y, mandatorylabel) vs. trait-only. Leaning: primitive.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