Plugin Spec: Design Assay for Claude Code (draft)

The protocol as something you run, not just read. Ships after Assay 001, so it encodes a process that has worked once.

Shape

A Claude Code plugin with skills for each protocol stage, plus a local MCP server that does the heavy lifting.

design-assay-plugin/
  .claude-plugin/plugin.json
  skills/
    assay-target/SKILL.md     Stage 0: build target.json with the user
    assay-genome/SKILL.md     Stage 1: extract or write genome.json from a codebase or Figma
    assay-run/SKILL.md        Stages 2 to 5: generate, render, score, select, loop
    assay-review/SKILL.md     Stage 6: present finalists, log decisions with reasons
    assay-report/SKILL.md     Stage 8: write the case study from summary.json
  .mcp.json                   registers the design-assay MCP server
  server/                     MCP server (TypeScript)

MCP server tools

Tool Input Output
genome_validate genome.json Errors or ok
variants_generate genome, parents, count, mutation settings, seed Variant JSON files
render_batch variant ids, widths, themes Screenshot and DOM paths
gates_run variant ids Pass or fail per gate
measure_run variant ids, function ids Scores
judge_run variant ids, rubric ids, judge models Median scores plus raw judge output
select generation id, keep share, diversity weight Survivor ids
summary_build run id summary.json

Model routing

  • Variation (mutation, crossover): local inference via Ollama by default. Model configurable, default qwen3.5.
  • Judged functions: frontier models, configurable, calibrated per 02.
  • All model names and versions are written to the run record.

Principles

  • Every tool writes to the run record. Nothing important lives only in chat.
  • Deterministic where possible: same seed and genome give the same variants.
  • Works offline for generation, render, gates and measured functions.
  • Human review is never skipped by the plugin.

Distribution

  • MIT license.
  • Install from the GitHub repo first. Submit to plugin marketplaces once Assay 002 is published.