Skip to content

docs(designbot): source materials for AuthZed brand generation - #33

Draft
Corey-T1000 wants to merge 1 commit into
mainfrom
docs/designbot-source-materials
Draft

docs(designbot): source materials for AuthZed brand generation#33
Corey-T1000 wants to merge 1 commit into
mainfrom
docs/designbot-source-materials

Conversation

@Corey-T1000

Copy link
Copy Markdown
Contributor

Draft — parked for review, not ready to merge.

Source material for a designbot: what "on-brand" means in a form a generation model can consume. Bridged from Sandworm's canon (sandworm/DESIGN.md + design/*.md) and ground-truthed against Burrow's live brand_config. Every rule traces to shipped code or an explicit brand decision.

Scope is diagrams, blog/social imagery, and mascot. Product UI is deliberately out.

The organizing idea

A generation request carries two kinds of content, and mixing them is where the expensive bugs live:

Layer Read by Contains
Composer rules the text model assembling the prompt assembly order, what may never co-occur, reference budget
Renderer facts the image model hexes, identity anchors, style locks

Burrow shipped a payload telling the model to "ignore character and costume, blend freely" alongside "the character MUST MATCH EXACTLY." Both correct individually; together they produced the wrong character — and nobody files a bug against output that looks deliberate.

Two routing calls worth arguing with

  • Diagrams should generate SVG, not images. Sandworm diagrams are hand-rolled SVG, dense with mono-caps labels, with exact 1.5px strokes and a 7 3 dash. Image models misspell text, approximate strokes, and produce output that drifts on every regeneration.
  • Headline-bearing OG cards should be templated renders, same reasoning — the headline is the entire payload.

That leaves image generation for atmospheric and character work.

What ground-truthing turned up

Measured against the live config. Nothing here is hypothetical:

  • colors, vocabulary, asset_profiles are all empty; identity, voice, color_scales are null. A single 2,073-char prose field carries the entire brand, while prompt assembly reads nine metadata fields per reference — against nulls.
  • mascotView is never read by selection. It's set in the UI, shown in the UI, copied onto the payload, and nothing filters or ranks on it. Camera angle only prepends a text clause. Ask for a back view and you get front-facing images plus a sentence saying "back view" — the images win.
  • All six Dibs references sit at weight: 70. With a 4-slot budget and ties broken by insertion order, two never reach the model.
  • Both three-quarter views are mislabeled (front / back), and one reference carries mascotView: "left-side" — not a member of the union, and the cause of a prior VIEW_CONFIG[x].label crash.
  • defaultDiagramRef, defaultSceneRef, defaultObjectRef are declared in BrandConfig with no DB columns — writes appear to succeed and vanish.
  • The identity prose says the eyes are "devoid of pupils or highlights." Every reference image shows a violet highlight. The spec contradicts the art on a signature feature.

designbot/staged-sql/01-fix-dibs-references.sql addresses the reference set. It is staged and unapplied — runs in a transaction ending in ROLLBACK, dry-run verified against Sandtrap.

Known gaps — deliberate, tracked separately

This landed as documentation. It does not yet follow the conventions authzed/messaging established, and it should:

  1. No citation discipline (messaging requires a file path per claim + a Sources: block)
  2. No .claude/ skill, agent, or /help command — nothing enforces these rules
  3. No integrity agent or PASS / PASS WITH EDITS / HOLD verdict vocabulary
  4. No CONTRIBUTING.md, frontmatter (title / owner / last-reviewed), or <!-- FLAG: --> convention
  5. No validator — messaging ships cliche-check.mjs; the analogue here is a token checker flagging non-Sandworm hexes

Open questions for review

  • Placement. Top-level designbot/ was chosen so it can graduate to its own repo the way authzed/messaging did. A sandworm/design/ spoke is the alternative, but this consumes the design system rather than describing it.
  • MascotView is too coarse — one three-quarter member, two three-quarter views. The staged SQL parks the rear one on other as a compromise. Extending the union is the real fix.
  • None of it is validated against a real render yet. Roughly a thousand lines of rules that have never been tested against a generation. If they don't move output, they're prose.

🤖 Generated with Claude Code

Defines what "on-brand" means in a form a generation model can consume,
bridged from Sandworm's design canon and ground-truthed against Burrow's
live brand_config.

Organizing idea is a two-layer split. Composer rules (read by the text
model assembling a prompt) never reach the image model; renderer facts
(hexes, identity, style locks) are never paraphrased by the composer.
Burrow's worst generation bug lived exactly at that seam — a blending
preamble and a character-fidelity block in the same payload produced the
wrong character, silently.

Scope: diagrams, blog/social imagery, mascot. Product UI is out of scope.

Two routing calls that cut against reflex:
- Diagrams generate SVG against the token spec, not raster. They are
  label-dense with exact 1.5px strokes and a 7 3 dash; image models
  misspell text and approximate strokes.
- Headline-bearing OG cards are templated renders for the same reason.

Also stages a reviewable, unapplied SQL fix for the Dibs reference set.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
design-basin Ready Ready Preview Aug 14, 2026 3:47pm
design-sandworm Ready Ready Preview Aug 14, 2026 3:47pm

Request Review

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