236 Commits

Author SHA1 Message Date
Ghaida Zahran b89a519eb5 Release v1.6.0 v1.6.0 2026-07-17 10:09:51 -07:00
Ghaida Zahran e8cc104fdb Merge branch 'wireframe-skill' — /wireframe, skill #17
Structural screen design at wireframe fidelity: the grayscale kit +
viewer chrome, fidelity doctrine (idea boards -> mid-fi -> prototype),
annotation layer, eval suite (100% doctrine compliance vs 58%
baseline), and the site chapter with skill-generated examples.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 10:09:23 -07:00
Ghaida Zahran ac27556572 feat(site): /wireframe chapter with generated wireframe examples
- how-to-use gains the /wireframe chapter in Wren's arc (organize ->
  wireframe -> articulate): Nearby's posting-mechanism idea board and
  the Photo-first flow, with the annotation record quoted from the
  generated notes
- The examples are real wireframes generated by the skill itself and
  lifted verbatim into WireframeBoard.astro — never hand-edit; the
  component and stylesheets say to regenerate and re-extract instead
- wireframe-kit.css: synced copy of the skill's design-system.css; the
  kit's namespaced tokens let the site's [data-theme] theme the frames
  with no JavaScript. wireframe-examples.css: the artifacts' own
  per-artifact CSS plus the annotation marker restated in kit tokens
- Site-side scaffolding only in global.css: illustration scale (70%
  zoom), artifact-convention plates above frames, section-header
  treatment on the example headings, and guards so the site's display
  font and dark-mode 300 weight never leak into wireframe content
- showcase.ts: wireframe registered under Experience Design

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 10:04:15 -07:00
Ghaida Zahran 3a61414eeb chore(build): regenerate distributions — chrome overhaul and type step-down
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 12:16:05 -07:00
Ghaida Zahran d8ac93eea6 fix(wireframe): viewer chrome overhaul, callout component, type scale step-down
Two impeccable critique passes on the presentation chrome (26 -> 29) plus
doctrine corrections, all in source and embedded verbatim by artifacts:

- Callout component (.callout neutral/accent/error — severity via glyph +
  copy, never hue), gl-info glyph, .text-stack identity unit
- Review flow: plate click opens that frame in slides, grid scroll restored,
  view + frame mirror into location.hash (deep-linkable), bounds clamp with
  disabled arrows — never wrap
- Prototype is flow-shaped: prev steps back through visited screens, Restart
  returns to the flow entry, sequential paging hidden; wired triggers join
  the tab order (Enter/Space), unwired mock controls leave it; dead taps
  flash a hairline acknowledgment; hovered triggers show the same ring
- Stage: frame page-centers clear of the rail; per-view sentence-case hints;
  navigator groups name + position left, controls right; plates drop their
  duplicate position in stage views
- Stage voice: h1 title + mono provenance line (Intent /wireframe - date -
  rung); active view tab inverts; designed focus rings on all chrome
- A11y: plates are h3s, markers announce as notes, slide position is
  aria-live, dark annotation indigo + stage-ink numerals clear AA
- Theme: reviewer's saved choice > authored data-theme pin > OS; swatch
  leads with current mode; persisted via localStorage
- Type scale compressed from the top: 16/20 - 18/24 - 22/28 (body tiers and
  the 11px floor untouched)
- Idea boards are a clean grid: no notes rail, no decision note — the board
  itself is the decision record; caption tops align via subgrid
- Stage stays bare: blueprint field tried and removed
- Styleguide: spacing scale as label column + bars, scroll-spy index,
  favicon, sg fixes

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 12:15:27 -07:00
Ghaida Zahran ad47584d16 chore(build): regenerate distributions — plates without rung word
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 13:57:52 -07:00
Ghaida Zahran d8d90d1a59 fix(wireframe): drop the rung word from frame plates
Plates read screen name + position only — WIREFRAME on every plate was
chrome noise; the board title and filename already carry the stage.
The .frame-rung span and its style leave the template and viewer.css;
the done-looking-artifact defense now leans on the artifact's own
naming and saying it out loud.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 13:57:52 -07:00
Ghaida Zahran 56b57ad051 chore(build): regenerate distributions — type and padding step-down
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 13:55:32 -07:00
Ghaida Zahran 6597c3953e fix(wireframe): tighter type and control padding — second step-down
Type scale drops one more point per rung: t-caption 11/16, t-small
13/20, t-body 14/20, t-heading 17/24, t-title 21/28, t-display 27/36;
the floor moves to 11px. Buttons and chips lose one padding token —
.btn sp-4 -> sp-3, .btn-sm sp-3 -> sp-2, .btn-lg sp-6 -> sp-5, .chip
sp-4 -> sp-3 — while the spacing scale itself and control heights
(32/40/48) stay untouched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 13:55:32 -07:00
Ghaida Zahran 8ce7e003c8 chore(build): regenerate distributions — type scale step-down
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 13:47:36 -07:00
Ghaida Zahran c9e3172b85 fix(wireframe): type scale steps down one notch
The kit's type scale was reading slightly large; every rung drops one
grid-locked step: t-caption 12/16, t-small 14/20, t-body 15/20,
t-heading 18/24, t-title 22/28, t-display 28/36. The legibility floor
moves 13px -> 12px with it — captions are the only rung at the floor.
SKILL.md scale doctrine, wren's token law, and the styleguide specimen
captions updated to match.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 13:47:30 -07:00
Ghaida Zahran 92523d5333 chore(build): regenerate distributions — grid-view notes sidebar
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 13:38:15 -07:00
Ghaida Zahran 05656b5792 fix(wireframe): grid-view notes are a right sidebar beside the frames
In grid view a section's note rail no longer stacks below the frames:
any section with notes becomes a two-column grid — frames left, notes
right in a hairline-separated sidebar matching the slides rail
(minmax(220px, 300px), border-left, sp-6 inset). Collapses back under
the frames below 900px. SKILL.md grid doctrine and wren's annotation
layer updated to match.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 13:38:15 -07:00
Ghaida Zahran de98556c68 chore(build): regenerate distributions — slide navigator on the section header line
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 13:33:29 -07:00
Ghaida Zahran abffe7aa30 fix(wireframe): slide navigator joins the section header line
The slideshow navigator moves from a centered row below the stage to
the section header line above it: section name on the left (the
section's own label hides in slides view), prev/next + bare position
on the right, one hairline row. The stage grid collapses to a single
row; viewer.js writes the section name into .slide-section and the
position indicator drops the now-adjacent section name.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 13:33:29 -07:00
Ghaida Zahran 0515132add chore(build): regenerate distributions — per-wireframe notes
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 12:08:46 -07:00
Ghaida Zahran 3530bf5c75 fix(wireframe): notes are per wireframe, never one consolidated list
The slide rail showed every note in the section regardless of which
frame was active. Now each frame's notes live in a .note-group
(data-for names the frame id) headed by a .note-frame line; markers
number per wireframe, restarting at 1 in each frame. Grid shows every
group as the section's record; slides shows only the active frame's
group (viewer.js toggles). Section-level notes — an idea board's
decision record — sit outside any group and always show.

Doctrine written into SKILL.md layer 3 + structure template (including
the marker-anchoring rule) and wren.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 12:08:46 -07:00
Ghaida Zahran 97da9afaff chore(build): regenerate distributions — fitted slide stage
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 11:57:45 -07:00
Ghaida Zahran a8103f9ae6 fix(wireframe): slideshow and prototype are a fixed stage, not a long page
Slides view was the grid page with frames hidden: a tall mobile screen
ran past the viewport (nav below the fold) and the frame + notes floated
unstructured on the backdrop. Now the page stops scrolling and becomes
header / stage / nav:

- the active frame centers in the stage and scales DOWN to fit whole
  (never up) — viewer.js computes --slide-scale per slide and on resize
- the notes rail is a bounded column with its own scroll and a hairline
  rail border; below 900px it drops under the stage capped at 30vh
- prototype rides the same fitted stage, annotations hidden as before

Doctrine written into SKILL.md (slideshow/prototype view bullets:
'a frame must never run off the bottom of the screen') and wren.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 11:57:45 -07:00
Ghaida Zahran 6ebda026b4 chore(build): regenerate distributions — references rewire
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 11:39:12 -07:00
Ghaida Zahran 15e5861f7e feat(wireframe): SKILL.md reads the system from references — vignette lo-fi, kit doctrine
- Fidelity = scope, not abstraction: lo-fi is the idea vignette (real-UI
  fragment, staged, captioned), mid-fi is the complete interactive screen,
  prototype is a view
- Embedded CSS/JS blocks dropped for read-and-embed-verbatim of
  references/design-system.css + viewer.css + viewer.js (new — extracted
  viewer behavior incl. switch toggling)
- Layer 2 rewritten onto the kit: palette with accent + error exception,
  token law, type floors, drawn glyphs, component baseline, elevation and
  loading doctrine
- build.sh: copilot copies all reference files (cp *.md died on the
  all-asset references dir); cursor inlines css/js assets into the parent
  .mdc as fenced blocks
- wren.md wireframing section + intent routing line synced

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 11:39:06 -07:00
Ghaida Zahran a2ff41bd6a feat(wireframe): design-system references — tokens, kit, styleguide (WIP)
Step 1 of the design-system-first rebuild: skills/wireframe/references/
becomes the load-bearing home (a deliberate break from the inline-only
convention — read-and-embed, decided 2026-06-04).

- design-system.css: 4px absolute token scale (spacing 4-92, heights,
  icons, radii, grid-locked type with legible floors), 5-role grayscale
  ramp + Intent indigo accent (primary actions/selection) + single
  semantic error exception, drawn SVG glyph set (no text-character
  controls), full component baseline with real hover/focus/press/
  disabled/error/loading states, switch as button[role=switch],
  elevation = scrim + hairline (no glow), idea-vignette lo-fi model
  (fidelity = scope: vignettes crop to one idea, wireframes are full
  screens, same kit at natural size)
- viewer.css: site-language chrome, sidebar section index, slideshow/
  prototype views
- styleguide.html: the acceptance-test page — every token and
  component, every state, both themes; critiqued via impeccable
  (27/40) and all P0-P3 findings fixed

SKILL.md does NOT consume these yet — rewiring is the next step.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 23:36:02 -07:00
Ghaida Zahran d25939b3a8 chore(build): regenerate distributions — interactive controls
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 08:52:18 -07:00
Ghaida Zahran 30bc1a4a0c feat(wireframe): mid-fi is interactive — native controls, real states
Wireframes are built from native button/input/textarea/select elements,
never divs painted as controls. Inputs focus and accept typing, buttons
hover and press, chips toggle, tabs react. States live in the ramp:
hover = surface (or opacity on filled), focus = 2px secondary-ink ring,
press = border tone. Everything is real; it's just grayscale. wren
restated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 08:52:18 -07:00
Ghaida Zahran 37ad7e1c3c chore(build): regenerate distributions — completeness test + vocabulary
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 08:47:57 -07:00
Ghaida Zahran 27b7ea0aa9 feat(wireframe): mid-fi completeness test — the full screen, desaturated
Mid-fi is a grayscale version of the complete product screen, not an
enlarged thumbnail. New test: screenshot the real product, desaturate,
strip brand type — same amount of stuff in the same places. Vocabulary
gains avatars, chips, and tab/nav bars (CSS + conventions table). wren
restated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 08:47:57 -07:00
Ghaida Zahran 6c1e9bc4e3 chore(build): regenerate distributions — detached frame plates
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 08:40:47 -07:00
Ghaida Zahran f814b1947f fix(wireframe): title plate detaches from the wireframe card
The plate floats above each frame as a separate chrome caption (canvas-
tool style) — no shared border or background, so a screen header inside
a wireframe can never be mistaken for chrome. Card styling moves to the
wireframe surface itself.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 08:40:46 -07:00
Ghaida Zahran b92faf7d52 chore(build): regenerate distributions — mid-fi definition
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:56:34 -07:00
Ghaida Zahran 2115c1c154 feat(wireframe): canonical mid-fi definition; rung names settle at lo-fi/mid-fi
Mid-fi wireframes are realistic and detailed UI designs that show
full-size screen structure with realistic content, clear and simple
typography, and gray boxes for images. The hi-fi name is retired —
grayscale structural work is mid-fi; hi-fi conventionally implies
styled. Thumbnail ladder bullet synced to the silent-structure
vocabulary; mid-fi added to triggers. wren restated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:56:33 -07:00
Ghaida Zahran 54d2de1c56 chore(build): regenerate distributions — chrome typography
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:55:28 -07:00
Ghaida Zahran d0568eaa90 fix(wireframe): chrome typography follows the site — display titles, Hanken notes, neutral content font
Board title in General Sans 700 (-0.02em, lh 1.1, 20px), section labels
at the site's 14px mono treatment, notes rail on the site's small-text
leading. Wireframe content gets an explicit neutral system-ui stack —
brand typography belongs to the chrome layer, never to content. Fonts
referenced by name with system fallbacks; nothing loads from a CDN.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:55:28 -07:00
Ghaida Zahran 1e73f53bd3 chore(build): regenerate distributions — site-language chrome
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:51:22 -07:00
Ghaida Zahran e0e667e9bf fix(wireframe): container chrome follows the Intent site's design language
Stage/chrome tokens become the site's cool-tinted neutrals (#fafafc/
#18182b bg, #d8d8e4/#2a2a44 borders, #65657a/#8888a8 muted ink), 8px
card radius, chrome-fg for title and active tab. Chrome stays
monochrome — the site indigo remains exclusive to the annotation layer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:51:22 -07:00
Ghaida Zahran d9ccbdbae3 chore(build): regenerate distributions — per-rung artifacts + theme toggle
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:46:35 -07:00
Ghaida Zahran 3a699d9086 feat(wireframe): one rung per artifact; theme toggle distinct from view tabs
- Lo-fi and full-page wireframes never share a page — they serve
  different project stages. One self-contained file per rung; the lo-fi
  artifact persists as the decision record (considered & rejected)
- Theme control restyled: borderless half-tone-swatch button separated
  from the view-tab group — a stage-mode switch, not a view
- wren restatement kept in sync

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:46:34 -07:00
Ghaida Zahran c4dbf62654 chore(build): regenerate distributions — prototype view + fidelity updates
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:38:23 -07:00
Ghaida Zahran c813ebd503 feat(wireframe): prototype is a view, silent thumbnails, reading-size type
- Prototype reworked: no hotspot overlays — a third view mode where the
  wireframes themselves are the prototype; data-go lives on the real
  trigger elements, annotations hide, Esc exits
- Thumbnails: pure miniature structure, no meta labels — if a zone needs
  'CTA' written on it, the structure isn't communicating
- Type bumped to reading sizes throughout: wireframe scale 22-28/16-18/
  15/12-13, notes rail 14px, chrome 11-14px
- wren restatement kept in sync

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:38:22 -07:00
Ghaida Zahran afadb271d4 chore(build): regenerate distributions — wireframe theme + fidelity updates
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:27:49 -07:00
Ghaida Zahran 9677912ff4 feat(wireframe): theme choice per output, in-page light/dark toggle, fidelity bump, gray media blocks
- Figma/pencil: ask light or dark up front; single-theme canvases use the
  chosen ramp column throughout
- HTML: chrome gains a Theme toggle (initialized from OS preference);
  dark ramp moves from prefers-color-scheme to body[data-theme]
- Thumbnails: ~200/120px with miniature structure in zones (text bars,
  media blocks, button slabs) instead of bare labeled boxes
- Full-page: structural type scale, credible component sizing, list-row
  and nav conventions
- Media placeholders: surface-filled gray blocks, crossed lines removed
- wren restatement kept in sync

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:27:49 -07:00
Ghaida Zahran faa78240d7 chore(build): regenerate distributions — wireframe slideshow layout fix
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:20:18 -07:00
Ghaida Zahran 05d8d5c6c5 fix(wireframe): slideshow view — wireframe 2/3, notes rail 1/3 side-by-side
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:20:06 -07:00
Ghaida Zahran 7aabbab7d0 fix(docs): skills catalog rows — s8 breathing room, full-bleed glyphs on mobile, 290px on desktop
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:12:45 -07:00
Ghaida Zahran 45898bd7d1 fix(docs): wireframe score glyph — abstract resolution-front composition
Replaces the representational page-mockup glyph with the family's
geometric grammar: one screen frame, a heavy partition vector with a
terminal resolution front, hairline zone divisions and registration
points behind it, a faint unresolved dot field ahead. Chosen from six
candidates reviewed live.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:12:45 -07:00
Ghaida Zahran 330810c517 fix(docs): IntentMetaScore — intent moves to center, ring holds 16 discipline skills
The brand mark's central frame now represents /intent itself; the ring
excludes it and gains /wireframe (systems cluster, 3-6-4-3). Verified by
rendering the component on a scratch page: 16 terminals, assertion holds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 03:43:05 -07:00
Ghaida Zahran 810c23e631 docs: marketplace.json counts 17 skills
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 03:39:16 -07:00
Ghaida Zahran f38e1fe351 chore(build): regenerate distributions with /wireframe
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 03:35:10 -07:00
Ghaida Zahran f70e245926 docs: update preview-page score counts to 17
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 03:34:38 -07:00
Ghaida Zahran dca20923e3 docs: 16 → 17 skills — wireframe in counts, catalog, agent table
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 03:32:23 -07:00
Ghaida Zahran ed57c3a974 feat(docs): add /wireframe to catalog — category, cluster, shape, score glyph, wren chip
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 03:30:45 -07:00