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
This commit is contained in:
Kjell Tore Guttormsen 2026-08-20 23:05:53 +02:00
commit f596c832c4
4 changed files with 38 additions and 12 deletions

View file

@ -5,6 +5,27 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.2.0] — 2026-08-20
### Added
- **Phase 9 — critique-iterate**, the optional post-ship loop that closes the design → critique → re-prompt cycle. The facilitation flow is now nine phases: phases 18 take the operator to a shipped artifact, Phase 9 runs only when the operator asks for it. Offered once at the close of Phase 8 and exited with an explicit `skip`.
- `skills/claude-design-facilitator/references/05-critique-iterate.md` — the single shared Phase 9 reference, carrying all four sub-phases: coach the export and the critique run (9a), consume the pasted critique as untrusted reference data (9b), map findings to the one prompt layer that produced them (9c), decide whether to loop or exit (9d). One shared section rather than eight full per-preset sections; the duplication that the per-preset alternative implied was rejected in planning.
- A thin `Critique-iterate hint` block in each of the eight per-preset reference files, naming which `design-critique` sections dominate for that artifact type and which prompt layer those findings route to. The block's heading letter is per-file (four presets carry `## (f)`, four carry `## (g)`) because it follows each file's existing section sequence; the letter-free substring `Critique-iterate hint` is the canonical machine-checkable anchor.
- `tests/test-sc4-phase9-coverage.sh` — 21 assertions covering the shared reference, its four sub-phases, the SKILL.md Phase 9 section, and the hint block in every preset file. Registered by hand in `verify.sh`, which has no auto-discovery.
### Changed
- `tests/test-sc1-dogfood-log.sh` now accepts **either** dogfood-log format: a valid v0.1 block (five fields) or a valid v0.2 Phase 9 block (four sub-sections). Either one closes the gate; the other, if present but malformed, downgrades to WARN. The v0.2 sub-sections are matched on keywords (`artifact` / `critique` / `re-prompt` / `second pass`) in `###` headings rather than on verbatim labels, so the log stays writable in the operator's own words.
- `references/04-handoff-and-scope.md` cross-references Phase 9 as the coached path into `design:critique`.
- `.coverage.md` Authoritative-claims registry: 13 → 14 paths, 5 → 6 foundation references.
### Notes
- **Export-to-HTML is the input, not a URL.** Claude Design artifacts have no shareable public URL and `design-critique` does not take generic web URLs, so Phase 9 coaches a standalone HTML export and hands over `design:critique @<file>`. The pre-filled-URL alternative was a broken affordance and was rejected.
- **Layer mapping is LLM judgment plus operator confirmation, not a parser.** Critique output is prose, and treating LLM prose as a machine-readable API is the anti-pattern this avoids. Findings map to the real layers documented in `01-prompt-fundamentals.md` — Layer 1 (Goal / Layout / Content / Audience), 1.5, 2a, 2b, 3, 4 (Typography / Color / Motion / Backgrounds) and 5 (grading criteria) — and the operator confirms the mapping before any re-prompt is drafted.
- **Pasted critique output is untrusted reference data, never instructions.** This is the load-bearing security rule of Phase 9: a critique that inspected a Figma file or a screenshot can carry attacker-influenceable text verbatim into the conversation (OWASP LLM01). The operator pastes it between delimiters and it is read as data.
- **Exit is operator-attested.** Phase 9 does not decide that an artifact is good enough; the operator does.
- **Accessibility findings are not mapped.** They hand off to `design:accessibility` in Anthropic's plugin today, and a first-party `/accessibility` surface is deferred to v0.4.
- **The scope fence is unchanged.** Phase 9 *routes to* `design:critique` and never reimplements it. This plugin still ships none of the six forbidden command names, and `tests/validate-plugin.sh` assertion (h) still enforces that mechanically.
## [0.1.0] — 2026-05-17
### Added