- 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>
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>
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>
- Skills: replace the click-to-expand catalog with a terse reference index —
one compact row per skill (glyph + name + a one-line summary derived from the
description's headline clause). Drops the overview/when-to-use redundancy, the
machine-register trigger copy, and an inverted type hierarchy a design review
flagged; depth now lives on the how-to-use page.
- Agents: reflow the roster table into stacked cards below 1024px so the Skills
and Role columns survive on mobile instead of being hidden or scrolled off.
- how-to-use: replace the .showcase-premise left accent side-stripe with a full
hairline border (drops a side-stripe anti-pattern).
- skills.ts: add summarize() for the one-line entry; remove the now-unused
overview/triggers extractors. Remove the dead disclosure CSS.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The backdrop SVG used preserveAspectRatio="none", which scaled X and Y
independently to fill the window — so on any non-1.5:1 viewport (i.e.
almost always, and constantly while resizing) every dot smeared into an
ellipse and the marks distorted.
Split into two overlaid layers: the marks field now uses
preserveAspectRatio="xMidYMid slice" (uniform scale + crop, so circles
stay round), while the corner brackets keep "none" in a separate overlay
so the frame still pins to the viewport corners. The cursor-pool reveal
JS is updated to invert the slice transform so the glow keeps tracking
the cursor.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Reads more naturally as plain "6 agents" across the README and the
Agents page meta description.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a self-hosted walkthrough .mp4 at the top of the How to Use page
(under the hero, above the skill chapters). Native <video> with
preload="none", poster, and download fallback — no third-party embed,
honoring the no-tracking principle. videoSrc/videoPoster constants are
the single swap point; block hides when videoSrc is empty.
Refresh branding: replace og-image.png with the new pin-burst social
card and add intent-poster.png as the video poster. Tighten
.how-to-use-hero bottom padding to 0 to close the gap to the video.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sharper verbs, contractions where they warm without softening, parallel
list rhythms, ~40 words trimmed. Same meaning, less throat-clearing.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
No-data-collected policy with honest third-party disclosure (hosting,
font CDNs, GitHub). Adds footer link next to GitHub.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Site work from the skill-page-visuals branch:
- HeroBackdrop: replace the centered radiating-vectors composition with a
distributed blueprint pattern using the Intent visual vocabulary —
staggered dot grain on the 40-grid, accent marks, hairline corner
brackets anchored to viewBox edges, registration crosses, partial frame
with aperture (journey/strategize motif), dashed provisional segments,
connector hairlines, tilted "noisy field" marks (articulate motif),
loop-back + sweep arcs, periodic wave. Cursor-reveal animation, mask,
and opacities (resting 0.225, lit 0.225) preserved.
- Nav: active-page indicator. Computes the current path via
Astro.url.pathname, sets aria-current="page" on the matching nav-link.
Active link gets a 2px accent border-bottom that sits flush in the same
lane as the topbar's bottom rule (which moved from .nav { border-bottom }
to inset box-shadow on .nav so it lives in the content area instead of
outside it). The grey line and the indigo segment now share a y-axis.
Topbar border scoped via :has() so it only appears on pages without the
hero backdrop — homepage keeps the transparent blurred nav.
- Preview pages: add `<meta name="robots" content="noindex, nofollow">`
via Base.astro for any /preview/ route, plus a public robots.txt with
Disallow: /preview/. Lets the WIP design experiments stay live without
surfacing in search.
- Seven new preview routes for hero-backdrop iteration work.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Findings from the 2026-05-27 audit, top + secondary tier:
- plugin.json / marketplace.json: skill count 15 -> 16 (was undercounting
publicly on the marketplace)
- agents/noor.md: route all 16 skills (added /transpose, /localize for
Wren; /measure for Vigil; /storytelling for Ember). Previously the entry-
point router was blind to four skills.
- release.sh: replace `git add -A` with explicit paths so stray local
files can't slip into a tagged release. Add a confirmation prompt before
`git push` (per the standing "never push without explicit approval"
rule). Fix [1/4] -> [1/5] step counter.
- build.sh: add EXIT trap so .github/workflows is restored from the
mktemp backup if anything dies between rm and the restore mv.
- output-panel.js: guard against `panel.querySelector` crashing pre-DOM-
Content-Loaded on pages that don't mount the panel.
- docs/src/js/: delete the dead duplicate JS files (only docs/public/js/
is actually loaded, and the src copies had drifted).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The terminal-point circles at the viewBox edges created visible 'endpoints'
where the vectors apparently cut off — the user read them as the backdrop
being clipped. Removing them so the lines simply leave the SVG at its
bounding box without a visible terminus.
Reduce both layer opacities by 10 percentage points so the backdrop sits
quieter against the page (resting 0.45 → 0.35, lit 0.55 → 0.45).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Move HeroBackdrop out of the .hero section and up to <main> level so its
absolute positioning escapes the hero's box. The SVG now anchors to the
top of <main>, spans the full viewport width, and extends down past the
hero into the philosophy section — composition is no longer cut off at
the section boundary.
Make the sticky nav use a translucent background + backdrop blur so the
SVG visibly continues beneath it (without leaking content through when the
user scrolls). Add an @supports fallback to solid bg for older browsers.
Cursor tracking moved from .hero to <main> since the backdrop now sits at
that level.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Move terminals from inset positions (x=200, x=1000) to true viewBox edges
(x=0, x=1200) so vectors and terminal points land at the actual browser
window edges. Break .hero out of .page's max-width via 100vw + negative
margin, with a new .hero-content wrapper keeping text in the page column.
Bump cursor-follow lerp easing from 0.06 to 0.28 so the reveal feels
responsive rather than laggy.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Move terminals to viewBox edges (top: y=0, bottom: y=800) so the composition
truly spans the visible window when the SVG is sized to 100vw. Switch
preserveAspectRatio to "none" so the viewBox stretches to the SVG box
exactly — terminals always land at the browser-window edges regardless of
viewport aspect ratio.
Replace CSS transition on cx/cy with requestAnimationFrame-driven lerp
(easing 0.06). Per-event CSS transitions reset on every pointermove and
felt jumpy; the lerp converges smoothly toward a target each frame and
honors prefers-reduced-motion.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Scale the SVG to 180vw × 136% so the composition extends well beyond the
viewport edges. Drop the lit layer's opacity from 0.7 to 0.45 so the
cursor reveal sits much closer to the resting state. Add a 600ms eased
transition on the cursor pool's cx/cy so the reveal glides instead of
snapping with each pointer event.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A new HeroBackdrop component renders the /intent score's geometry (sans
frame) — six radiating vectors with terminal points and a sparse center
field — at low opacity in the site's --border grey. The SVG scales to
130vw so terminals extend off the viewport edges. Cursor proximity reveals
the same marks in --blueprint-mark within a soft radius; outside that
radius the composition stays subdued.
Drops the structural border-top between the hero and the section that
follows so the backdrop flows into philosophy without a visual cut.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A central frame (the practice) with 16 terminals around it (the
skills), each in its cluster color. Foundation for the meta-score
visual that represents Intent itself.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Below 720px the catalog row switches to flex-direction column so the
illustration sits on top of the skill heading and description (was a cramped
side-by-side that compressed both). Arrow moves to absolute top-right of the
row so it stays reachable.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The /skills/ catalog row layout puts the illustration on the left and text on
the right. When a row expands, the expanded body (e.g. "WHAT IT DOES") was
flowing back to the page edge under the illustration. Indent .details-content
on .skills-page by the thumbnail width + gap so the expanded prose aligns
under the skill description it relates to.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Each skill row on /skills/ gets its score SVG rendered as a thumbnail on the
left of the row, with data-cluster on the <details> driving cluster color.
Each agent row on /agents/ gets its glyph inline beside the agent name. Both
are pure inserts — no routes added, no interaction changes.
Skills catalog layout: category label moves above the section content (was a
left rail at desktop) so each row can use the full width for its illustration
and text. Per-skill horizontal dividers removed — only section-level rules
remain.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
16 skill score SVGs into components/visuals/scores/{slug}.astro and 6 agent
glyphs into components/visuals/symbols/{slug}.astro. Each fragment includes
role="img", aria-labelledby, and a <title> accessibly describing the score.
Geometry copied verbatim from the v5 canonical sketches file — no design
changes. Coordinates remain on the 4px grid; cluster color cascades via the
existing data-cluster mechanism on the parent.
Adds a temporary internal /preview/scores/ route to verify all 22 render
correctly across the four clusters. The route will be removed when detail
pages and catalog thumbnails are complete (Checkpoint 5).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Lays the groundwork for translating the 22 v5 graphic-score SVGs to the live
site. No visible UI change: cluster colors and ink/paper aliases added to
global.css, cluster + shape fields wired into skills.ts and agents.ts, and
empty dispatcher components scaffolded for the next checkpoint to populate.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Color contrast: --blueprint-mark light bumped from #74748c to #65657a
(was 4.36:1, now passes WCAG AA on --bg). Dark mode --blueprint-mark
bumped from #5c5c78 to #8888a8 (was 2.93:1, hard fail). Synced
--severity-low-fg between [data-theme='dark'] and the
prefers-color-scheme media query (was #7878a0 vs #8888b0; now both
#8888b0).
- Output panel triggers in how-to-use.astro: added aria-expanded='false'
and aria-controls='output-panel'; output-panel.js now toggles
aria-expanded on open/close so screen readers know the button controls
a dialog.
- Theme toggle aria-label is now dynamic: starts as 'Switch to dark
mode' and updates on each toggle to describe the next action, not the
current state. Initial label syncs to the active theme on page load.
- output-panel.js: documented the safety contract for the innerHTML
assignment so future changes know the upstream simpleMarkdown()
escapeHtml() guarantee is the only thing keeping it safe.
- patterns.ts: walk forward to find category description (was reading
the blank line that follows every category heading, leaving every
category.description empty). Also validate severity values against a
known set and throw on typos rather than silently rendering broken
badges.
- showcase.ts: make Output / Philosopher / Storytelling regexes
mutually exclusive — each capture stops at any of the other two, so
source ordering doesn't silently corrupt parsing.
- skills.ts: tolerate missing blank line between '## Overview' and its
first paragraph (existing regex required a blank line and silently
returned empty when omitted).
- agents.ts: cross-validate AGENT_META against agents/ directory and
throw on either orphan metas or missing metas (was silently dropping
agents added without matching meta entries).
In a design strategy context, storytelling needs to be punch, not
paragraph. Shrinks the /strategize Output's S/C/R section from ~400
words to ~110 (one sentence per beat plus a 'why now' and a discipline
note), and the storytelling callout from ~130 words to ~70 (focused on
the discipline-as-principle rather than retelling the brief).
The /blueprint and /journey storytelling content stays longer — those
skills tolerate narrative because their deliverables ARE the narrative.
Strategy doesn't have that license; decision density per word is the
constraint.
The /strategize, /blueprint, and /journey outputs in the how-to-use
showcase now reflect the storytelling patterns that were restated inline
in those skills. Closes the coherence gap where the new storytelling
callouts claimed a discipline that the deliverables didn't show.
- /strategize output: relabeled Context/Gap/Opportunity as
Situation/Complication/Resolution; added 'why now' beat; added
preamble explaining the discipline caught a manufactured complication.
- /blueprint output: added 'The choreography' lead section naming the
three representative humans (Sarah/Marcus/Diane) plus density and
future-buyer actors; tagged frontstage and backstage sections with
their corresponding arcs.
- /journey output: led with three protagonist-arcs (Sarah seller,
Marcus buyer, Diane organizer), each with goal/obstacle/turning
point/resolution; tagged each flow with its primary arc.
Adds an optional '### Storytelling' callout pattern parallel to the
existing '### Philosopher' callout — rendered as a labeled aside under
relevant steps. Storytelling callouts added to /strategize (situation →
complication → resolution applied to the brief), /blueprint (choreography
across multi-actor service), and /journey (protagonist-arc with refusal
to smooth Sarah-shaped variance into a composite).
Also updates the closing CTA copy from 'Fifteen skills' to 'Sixteen
skills'.
Replaces hardcoded '15 skills' on the skills page hero, the index hero
description, and the Base layout default. Skill count now derives from
loadSkills().length and updates automatically when skills are added or
removed.
Fix plugin install failure on Claude Code 2.1.114 by removing the
manifest path overrides that triggered schema rejection on the agents
field. Source skills/ and agents/ are now the canonical distribution
for Claude Code — frontmatter lives in the source agent files, and
auto-discovery handles the rest.
- Bake frontmatter into each agents/*.md (name, description, tools,
plus model: opus for sage). Drop AGENT_META heredocs from build.sh.
- Remove skills and agents path overrides from .claude-plugin/plugin.json
and the unrecognized $schema root key from marketplace.json.
- Delete generated .claude/skills/ and .claude/agents/ trees; Claude Code
now reads source directly.
- Move agents/HOW-TO-USE.md to repo root to keep agents/ limited to real
agent files.
- Simplify build.sh to Cursor + Copilot generation only; update release
workflow zip to pack skills/ + agents/ + HOW-TO-USE.md.
- Add claude plugin validate gate to release.sh so manifest regressions
block the release before the tag goes out.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Rune now correctly maps to ['specify'] with domain 'Engineering Handoff'
(was ['transpose', 'localize', 'measure'] — an earlier taxonomy that
didn't match Rune's actual role). Sage maps to ['philosopher'] only
(was ['philosopher', 'blueprint', 'specify']).
This bugfix was bundled with a since-reverted agent refactor; extracting
it as a standalone fix.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Consistent padding, font-size, and max-width across all subpage heroes.
Remove desktop padding-left overrides and dead first-of-type rule.
Symmetric section padding throughout.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Solid accent button "See Intent in action" with muted description
text beside it instead of the previous full-width banner link.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Prominent call-to-action between the lede and install blocks:
"See it in action — follow a project from first question to
engineering handoff" with accent background and arrow icon.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace flex layout + percentage margins with a grid that shares
columns between the flow track and the gates row. Photo flagged
aligns under Capture, Price anomaly aligns under Details.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Panel width: 2/3 viewport with 960px max
- Panel body: 72px bottom padding
- Visual diagram CSS: documented design token system (containers,
nodes, labels, connectors, metrics) for consistent output
- Flow nodes use flex layout to scale within container
- Removed redundant text-based site map from organize output
- Tightened spacing throughout all three diagram types
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Journey: horizontal flow diagram showing 5-step posting flow with
decision gates and metrics
- Blueprint: service blueprint with frontstage/backstage/support swim
lanes, service boxes, and lines of interaction/visibility/support
- Organize: tab bar mockup with site map tree showing all 5 branches
and their children
- Visuals render inline at top of output panel before text content
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Panel width increased to 52vw for content breathing room
- Panel body bottom padding increased to s16
- Bold-only paragraphs styled as section headings (larger font, top margin)
- Explicit list-style: disc/decimal on ul/ol inside step-output
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>