Before scaffolding a page
taste_search(tags=["editorial","ui"]) → taste_get → generate under constitution → taste_score → revise if weak.
Think npm for packages, Hugging Face for artifacts, MCP for tools—applied to standards of taste. Humans author; agents load; citations stay attached.
Package anatomy
Everything in the registry is a taste package: a directory (or archive) with metadata and assets. Git is a first-class distribution channel; a networked registry can index the same format later.
packages/<package-id>/ package.json # id, name, version, tags, license, authors, citations CONSTITUTION.md # natural-language standard exemplars/ # text, url manifests, images, screenshots… anti_exemplars/ # border-defining failures context/ # optional skill-like notes & checklists tools/ # optional tool-call sequences (YAML/JSON) evals/ # golden candidates & expected rulings
Seed example: packages/editorial-techne/ in the repository.
Metadata that matters
| Field | Purpose |
|---|---|
| id / version | Stable identity; semver for breaking constitution changes |
| tags | Discovery: brutalist-web, lab-figures, anti-slop… |
| domains | Where the package claims competence |
| media | text, image, url, multimodal—honest about support |
| license | Reuse rules for exemplars and constitution (curators must trust this) |
| authors | Attribution; human or org curator |
| citations | Papers, posts, datasets that motivate the standard |
MCP design target
The Model Context Protocol is the de facto USB-C for agent tools. A Taste MCP server should expose a small, stable tool set so any MCP client (Cursor, Claude, VS Code, custom hosts) can use packages without bespoke integrations.
| Tool | Behavior |
|---|---|
| taste_search | Query packages by tags, text, domain, media type |
| taste_get | Load package metadata + constitution by id@version |
| taste_score | Score a candidate under a package; return reasons |
| taste_retrieve | Return nearest exemplars / anti-exemplars for a query |
| taste_transfer | Guidance for applying the package in a new domain |
| taste_compare | Rank multiple candidates under one package |
Resources (read-only): taste://packages/{id}, taste://tags/{tag}. Implementation status: design target; HTTP endpoints today preview the same verbs.
Agent skills
Agent Skills package procedural know-how (playbooks, examples, optional code) for assistants. Taste packages are complementary: they encode judgment and can export as skills so a host that understands skills—but not yet MCP—still benefits.
Positioning relative to projects like Impeccable: those are excellent single-standard skill families. This registry is the substrate for many standards—design dialects, prose schools, scientific figure manners, curator moodboards—discoverable by tags and loadable on demand.
taste skill export editorial-techne → folder with SKILL.md (constitution + usage), exemplars, anti-exemplars, and optional eval snippets. Install beside other skills; agents cite package id in logs.
Example agent flows
taste_search(tags=["editorial","ui"]) → taste_get → generate under constitution → taste_score → revise if weak.
taste_retrieve(package, "quiet competence in product copy") → few-shot exemplars + anti-exemplars into context.
Load prose package → draft → score → if borderline, retrieve near-miss anti-exemplars and rewrite.
Music or cinema package → taste_transfer to landing page or research UI; keep lineage in the PR description.
Governance notes
Packages must name curators. Forks cite parents. Training on packages without license clearance is out of scope for “good citizen” clients.
Constitutions and text exemplars should declare licenses. Image rights are the hard part—prefer links + descriptions when rights are unclear.
Aesthetic packages can encode bias. Registry hygiene + optional AesBias-style checks on multimodal judges; see Evals.
A package without anti-exemplars is a mood, not a border. Seed policy: prefer sharp small sets over giant soft clouds.