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

90 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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](README.md)). 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:
- [Brief](file:///Users/ktg/.../brief.html)
- [Research summary](file:///Users/ktg/.../research/summary.md)