claude-design/CLAUDE.md
Kjell Tore Guttormsen f596c832c4 release(claude-design): v0.2.0 — Phase 9 critique-iterate
Version bump plus the docs sync that ships Phase 9.

- .claude-plugin/plugin.json: 0.1.0 -> 0.2.0
- CHANGELOG.md: [0.2.0] entry covering the shared 05-critique-iterate.md
  reference, the eight per-preset hint blocks, export-to-HTML as the input,
  operator-confirmed layer mapping, untrusted-paste rule, operator-attested
  exit, design:critique routing, accessibility deferred to v0.4, the new
  SC4 test and the dual-format SC1 dogfood check.
- README.md: version badge 0.1.0 -> 0.2.0, references badge 13 -> 14,
  trigger count 12 -> 16, a Non-goals bullet routing critique to Phase 9,
  and a v0.2.0 release-history entry.
- CLAUDE.md: Status v0.2.0, nine-phase surface line, Architecture heading,
  and a Scope-fence paragraph stating Phase 9 routes to design:critique
  without duplicating it.

Two corrections of stale claims found while sweeping:
- CLAUDE.md said the hint-block heading letter is (e)/(f); measured across
  all eight presets it is (f) x4 and (g) x4. The letter-free substring
  'Critique-iterate hint' remains the canonical anchor.
- The README badge said 13 references and 12 triggers; ground truth is 14
  and 16.

Historical records left verbatim: the [0.1.0] and [0.1.0-pre] CHANGELOG
entries, the v0.1.0 README release note, and docs/review-2026-06-20.md all
describe what v0.1.0 actually shipped.

Deviation from the plan's pinned check: the plan expects a literal
'## v0.2.0' CHANGELOG heading, but this file has used Keep a Changelog
bracketed headings since v0.1.0. The entry is '## [0.2.0]' to match the
file; no shipped test asserts either form.

No tag, no catalog bump. /trekreview is the release gate and comes next.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PX9V8V9qH5kG4XKVzCdchk
2026-08-20 23:05:53 +02:00

9.3 KiB
Raw Blame History

claude-design

Context

This plugin is an expert on Claude Design (claude.ai/design) — Anthropic's Labs research preview for generating interactive design artifacts from a prompt. It walks the operator through the full lifecycle: idea → intent-preset selection → audience and destination → DESIGN.md anchor → five-layer prompt drafting → copy-paste delivery → iteration coaching → ship-readiness handoff → an optional post-ship critique-iterate loop. It does not generate artifact code itself and it does not drive the browser; it produces the prompt that the operator pastes into Claude Design.

Status

v0.2.0. Surface:

  • One skill: claude-design-facilitator (auto-fire + explicit /claude-design-facilitator slash command) running a nine-phase flow — phases 18 to a shipped artifact, Phase 9 the optional critique-iterate loop
  • Six foundation references under skills/claude-design-facilitator/references/
  • Eight per-preset references under skills/claude-design-facilitator/references/presets/
  • Six test scripts under tests/ plus a verify.sh roll-up
  • A .coverage.md preset manifest at the plugin root (canonical input for SC2 and the SC3 Authoritative-claims registry)
  • LICENSE (MIT), GOVERNANCE.md (marketplace fork-and-own blurb), README.md, CHANGELOG.md

No commands, no agents, no hooks, no MCP servers at v0.2. The single skill is the entire user-facing surface.

Marketplace context

This plugin sits under the ktg-plugin-marketplace directory but is its own git repository with its own Forgejo remote at ssh://git@git.fromaitochitta.com/open/claude-design.git (measured 2026-08-18: git rev-parse --show-toplevel resolves to the plugin directory). The marketplace is a polyrepo — the sibling catalog/ directory is a separate repository that pins each plugin to a release tag. All commits for this plugin go to this repository's origin/main, never to a marketplace-wide repository.

Marketplace conventions inherited from the root CLAUDE.md:

  • Conventional Commits — type(scope): description; scope is claude-design
  • Hooks in Node.js (.mjs), never bash (this plugin ships no hooks at v0.2)
  • Zero npm dependencies in hooks and scripts
  • Docs updated in the same commit on every feature change: plugin README.md + plugin CLAUDE.md. The catalog README.md is the third leg of the marketplace docs-triple, but it lives in the separate catalog/ repository and is updated there at release time — see Workflow below.

Architecture (v0.2)

  • skills/claude-design-facilitator/SKILL.md is the auto-fire entry point AND the explicit /claude-design-facilitator invocation surface. The skill body documents the nine-phase facilitation flow. Phase 9 (critique-iterate) is optional and opt-out; the other eight run in order.
  • skills/claude-design-facilitator/.triggers.txt lists the natural-language phrases the skill auto-fires on. tests/test-skill-triggers.sh validates every phrase appears in the SKILL.md description.
  • skills/claude-design-facilitator/references/ is the knowledge base. Six foundation references (0005) plus eight per-preset references under references/presets/. Each per-preset file also carries a thin Critique-iterate hint block naming which design-critique sections dominate for that artifact type and which real prompt layer in 01-prompt-fundamentals.md those findings route to; the shared Phase 9 mechanics live once in 05-critique-iterate.md. The heading letter of that block is per-file, not uniform — four presets end at ## (f) and four at ## (g) — so the canonical machine-checkable anchor is the letter-free substring Critique-iterate hint, never the letter. Every authoritative claim cites an Anthropic primary source inline.
  • .coverage.md at the plugin root is the SC2 manifest (preset enumeration with evidence-grade labels) and the SC3 Authoritative-claims registry (bullet list of files that must carry Anthropic-domain citations).
  • tests/ + verify.sh enforce the brief Success Criteria: SC1 dogfood-log format (accepts either a v0.1 block or a v0.2 Phase 9 block), SC2 per-preset coverage, SC3 citation discipline, SC4 Phase 9 critique-iterate coverage, plus skill description quality and plugin structural integrity. verify.sh has no auto-discovery — a new test script must be registered there by hand.

The skill body never offers to generate artifact code, automate the browser, or store artifact history (per Non-Goals in README). It produces prompts.

Scope fence

This plugin covers pre-design and during-design for claude.ai/design: idea → prompt → preview → iterate → ship-readiness.

Post-design — critique, accessibility audit, UX copy review, research synthesis, design-system audit, engineering handoff — is out of scope and lives in Anthropic's official knowledge-work-plugins/design (https://claude.com/plugins/design). This plugin must never duplicate the commands /critique, /accessibility, /ux-copy, /research-synthesis, /design-system, /handoff — with or without a claude-design: namespace prefix. tests/validate-plugin.sh assertion (h) enforces this scope fence mechanically.

Phase 9 (critique-iterate) does not weaken this fence. It routes to design:critique — coaching the export, handing the operator the invocation, and turning the returned critique into a layer-targeted re-prompt — and ships no critique surface of its own. Accessibility findings are handed off rather than mapped. The re-prompt is this plugin's work; the critique is Anthropic's.

The lifecycle-stage coverage map and the operational handoff between the two plugins are documented in skills/claude-design-facilitator/references/04-handoff-and-scope.md.

Authoring rules

Every contribution to this plugin must respect these rules:

  • Language: English everywhere. Plugin file content — README.md, CLAUDE.md (this file), CHANGELOG.md, SKILL.md, all references/*.md, all tests/*.sh output messages, every code comment — is English. This is the operator override of the marketplace's default Norwegian-dialogue policy; documented in the v0.1 brief. The tests/validate-plugin.sh assertion (j) emits a WARN on Norwegian diacritics in shipped content; review case-by-case (citation slugs occasionally legitimately carry diacritics, but the default is zero hits).
  • No operator-private context in shipped content. No personal-name or organization-affiliation tokens, no copy-paste from local session-state and handoff files. tests/validate-plugin.sh assertion (i) enforces this with a per-file grep over a git-derived shipped set: a file counts as shipped unless git check-ignore says it is ignored. Gitignored files are by definition not shipped, whatever they are named, so no name list has to be maintained.
  • Evidence-grade label discipline. Every per-preset reference file carries an inline Evidence grade: label on line 4. The three grades are Anthropic-documented + community-validated, Community-only, and Experimental. .coverage.md is the canonical registry. SC2 and SC3 read from .coverage.md directly — keep it in sync.
  • URL canonicalisation. All support.claude.com references use the form https://support.claude.com/en/articles/<numeric-id>-<slug>. Numeric IDs are stable across slug rewrites; slug-only URLs are not. https://anthropic.com/news/... and https://claude.com/blog/... follow whatever slug Anthropic publishes.
  • No NIH of Anthropic surfaces. The plugin recommends Anthropic's knowledge-work-plugins/design as the downstream tool; it does not duplicate that plugin's functionality.

Workflow

The Voyage pipeline produces v0.1 and every subsequent feature change:

  1. Brief closes scope and scope boundaries
  2. Research gathers external sources — Anthropic primary material (news posts, support articles, blog posts, open-source skills, tutorials, plugins), plus community practitioners with attribution
  3. Plan specifies file-by-file what gets built
  4. Execute delivers the code and content
  5. Review is the release gate (/trekreview)

Voyage policy: Opus across all sub-agents and orchestrator phases (per feedback_voyage_opus_always).

For incremental content updates that do not warrant a full Voyage iteration (e.g., refreshing a single per-preset reference when Anthropic publishes new guidance), the docs rule still applies: plugin README.md + plugin CLAUDE.md (this file) updated in the same commit as the content change. The third leg of the marketplace docs-triple — the catalog README.md — lives in the separate catalog/ repository and is updated there at release time, when the catalog ref is bumped to the new tag. It is never edited from this repository.

Communication patterns

Linking to local files

When pointing to local files in responses, always use markdown link syntax with a descriptive name:

  • Use [Human-friendly name](file:///absolute/path) — never bare file:///... URLs or autolinks <file://...>.
  • Always use absolute paths. Never ~/ or relative paths.
  • For multiple files, render as a bullet list of named markdown links.

Why: bare file:// URLs only render the first as clickable across multiple lines. Named markdown links make each entry independently clickable and look cleaner.

Example: