Slots between philosopher and intent — preserves the visual grouping of
cross-cutting / cognitive-mode entries at the bottom of the tree, and
mirrors philosopher's dual-trigger pattern (question + symptom).
- 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).
- skills/storytelling/SKILL.md: clarify that 'presentation' is forthcoming
rather than presenting it as a live peer skill in the frontmatter
description
- skills/localize/SKILL.md: drop '(Hall)' and '(Hofstede)' parenthetical
attributions from cultural-dimension framework names
- skills/intent/references/information-architecture.md: drop 'Don Norman's'
attribution from the Design of Everyday Things reference
Per the project rule: skills speak directly without name-dropping; sources
stay in design docs, not in skill content.
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'.
Bumps the skill count from 15 to 16 across README intro, skills section
header, plugin install description, and HOW-TO-USE plugin tips. Adds the
storytelling entry under the Cross-cutting section in README's skill list.
This boilerplate section appears in all 6 agent files but in no other
SKILL.md. Including it in the storytelling skill was a copy-paste error
during drafting. The principles are real but they belong to agents, not
to individual 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.
Adds storytelling.mdc / storytelling.md and updates the four host skills
(journey, blueprint, strategize, evaluate) plus intent (anti-pattern catalog
Category 10) across Cursor and Copilot distributions. AGENTS.md and
copilot-instructions.md updated for the new skill count.
Replace 'carrying emotional truth across humans' with 'giving design work
narrative structure that makes people care'. Reads naturally; matches how
people talk about the work.
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>
README: fix stale Rune/Sage taxonomy (now Rune → /specify,
Sage → /philosopher) and expand the Claude Code plugin section to
mention that agents are now registered alongside skills.
HOW-TO-USE.md: new "Option 4: Claude Code plugin" deployment section
covering /plugin install and @<agent> subagent invocation.
Distributions: regenerated .claude/agents/ (new — 6 agents with
build-time frontmatter), .claude/skills/intent + measure (scope
limits + loop-back content), .cursor/rules/, and .github/ to match.
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>
macOS stock bash 3.2 misparses heredocs inside $(cat <<EOF ... EOF)
inside a case statement: the first case falls through to the default
branch and subsequent heredocs break the parse entirely. Refactor to
define per-agent description variables via `IFS= read -r -d ''`
heredocs before the loop, then reference them in a simple case
statement. Strip the trailing newline that read-d leaves behind.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Source agents/*.md stays clean (prose only, paste-friendly for Claude
Projects, web Claude, and tools that consume raw markdown). build.sh
generates .claude/agents/*.md by prepending per-agent YAML (name,
description, tools, model). plugin.json declares "agents" alongside
"skills" so installs register the subagents automatically.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds parser-compatible sections so the website skills page displays
"What it does" and "When to use it" content for the philosopher skill.
Co-Authored-By: Claude Opus 4.6 (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>
- Journey, blueprint, and organize now offer visual companion output:
rendered HTML, Pencil files, or structured specs for external tools
- Fix agent table: Rune handles transpose/localize/measure (not just
specify), Sage handles philosopher/blueprint/specify
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>
- Remove details/summary accordion pattern
- Add right-side slide panel triggered by "See what /skill produced"
- Panel has close button, escape key, overlay click to dismiss
- Hidden output content rendered at build time, populated into panel via JS
- Panel scrolls independently, body scroll locked when open
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>