Skip to content

Recalibrate profile recipe around three-loop, portable use#62

Open
nahiyankhan wants to merge 1 commit intomainfrom
recalibrate-profile-recipe
Open

Recalibrate profile recipe around three-loop, portable use#62
nahiyankhan wants to merge 1 commit intomainfrom
recalibrate-profile-recipe

Conversation

@nahiyankhan
Copy link
Copy Markdown
Collaborator

Summary

  • Reorder the profile recipe so the host agent grounds in the rendered product before tokens — visceral pass first, token extraction second. Adds a "How to read this recipe" preamble (intent over file lists) and a "Who reads this file" preamble (three downstream loops: generator, reviewer, comparator).
  • Frame the expression as portable across implementations (web / iOS / Android), and shift role naming guidance toward cross-platform archetypes (title-xl instead of h1 / LargeTitle / DisplayLarge).
  • Promote composition (spatial relationships, what-sits-on-what) as a first-class kind of decision alongside visual phenomenon. Decisions should state pattern and how to spot a violation (operationalization), so the same line serves both generation and review.
  • Add a coverage-audit practice for roles[]: after recording observed slots, audit against the slots a generator will reach for; absences get stated as decisions (e.g. ### no-card-pattern), not left silent for the generator to invent around.
  • Strip biasing defaults from expression.template.md (no color-strategy example dimensions, neutral placeholder values, X-instead-of-Y signature shape, archetype role guidance, source: extraction instead of the misleading llm default).
  • Soften the schema.md framing of unused-palette to match the actual info-severity lint behavior (it notes; it does not require dropping).

Test plan

  • pnpm check (biome + typecheck + file-size + docs + CLI manifest) passes
  • pnpm test — 186 tests pass
  • Pre-commit and pre-push hooks pass
  • Skim the rendered profile.md once before merge — recipe content is the spec for every host agent that profiles, so phrasing matters

Out of scope (deferred)

  • Open-vocabulary palette.neutrals.roles (semantic naming for neutral steps so generators can resolve background / surface / border / muted-text / foreground instead of guessing positionally) — tracked separately as a follow-up issue, since it requires a small zod addition.
  • State contracts on roles (hover/focus/active/disabled), motion, examples fragment, provenance fragment — all parked until they have observed failure modes to design against.

🤖 Generated with Claude Code

…table use

Rewrite the profile recipe so the host agent grounds in the rendered
product before tokens, frames the expression for portability across
web/iOS/Android, and writes decisions in operationalizable form
(pattern + how-to-spot-a-violation). Promote composition as a
first-class kind of decision alongside visual phenomenon. Add a
coverage-audit practice for roles[] so absences are stated as
decisions instead of left silent for downstream generators to invent
around. Strip biasing defaults from expression.template.md and shift
role naming guidance toward cross-platform archetypes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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