Ontology Schema · Operations · Lifecycle

A small conceptual model

Few primitives, strictly named—so packages, MCP tools, skills exports, and judges can evolve without renaming the world every quarter.

Taste package
Distribution unit of the registry: metadata (package.json), constitution, media exemplars, optional context/skills, tool sequences, evals, and provenance. Git-friendly directory; network registry indexes the same shape.
TasteProfile
Runtime record derived from a package (or ad-hoc encode): identity, constitution, vibes and anti-vibes, exemplars and anti-exemplars, constraints, domains, metadata. The object score and transfer consume.
Exemplar
A concrete artifact (or precise description thereof) that defines the interior of “good” for this standard. Weight allows soft prioritization without turning the set into a single average.
Anti-exemplar
A concrete failure mode the standard refuses. Often more informative than another positive reference. Updated as the culture’s failure modes shift (today: empty futurism, AI gloss, urgency theater).
Constitution
Short natural-language law of the profile. Must be usable as a critical instrument: a reader should be able to reject work by citing it.
Candidate
Anything offered for ruling: copy, layout note, name, image reference, paragraph, product surface. Kind is declared; domain may be declared.
TasteScore
Fit in [0, 1], a qualitative verdict, an explanation, a numeric breakdown, and lists of matched vibes / violated anti-vibes. Reasons are mandatory, even when weak.
TransferResult
Guidance for applying a profile in a target domain: do / don’t, sample prompts, and a short statement of what is preserved versus translated.

Four verbs cover the interface. Implementations may be heuristic, embedding-based, learned, or human-in-the-loop. Callers should not need to know which.

Operation Input Output Invariant
encode Vibes, exemplars, prose, constraints TasteProfile Deterministic schema; constitution non-empty after encode
score Profile + candidate TasteScore Score ∈ [0,1]; explanation present; profile id retained in audit logs (callers)
transfer Profile + target domain (+ optional brief) TransferResult Preserves constitution intent; re-expresses medium-specific tactics
compose Profiles + blend policy New profile (future) Lineage cited; conflicts made explicit
search / get Query · package id Package metadata · assets Registry discovery; MCP taste_search / taste_get
retrieve Package + concept query Exemplars / anti-exemplars Few-shot context for agents

Encode, score, and transfer run today. Search, get, retrieve, compose, MCP, and skill export are specified for the open-source roadmap—see Registry.

  • 1

    Elicit

    Collect exemplars under time pressure; force anti-exemplars; draft a constitution that could reject last quarter’s work.

  • 2

    Encode

    Produce a profile. Prefer fewer sharp references to a large soft cloud. Record domains of competence.

  • 3

    Rule

    Score real candidates in the wild. Keep a reject pile. Where the profile and the human disagree, update one of them deliberately.

  • 4

    Transfer

    Stress-test the standard in a new medium. If transfer collapses into adjectives, the profile is under-specified.

  • 5

    Revise

    Version bump. Diff constitutions. Retire anti-exemplars that no longer teach; add the new local failure mode.

A taste system is not true by introspection. It is good if high scores predict human acceptance under the same standard, and if disagreements are legible. Suggested evals for any implementation:

Agreement

Blind pairwise tests: does the scorer rank as the profile’s author would, on held-out candidates?

Calibration

Are 0.8s rare and meaningful, or is everything “promising”? Distributions should have shape.

Transfer fidelity

After transfer guidance is applied by a third party, does the author still recognize the standard?

Adversarial anti-exemplars

Can the system still reject today’s slop dialects, or has it overfit last year’s?

MethodPathPurpose
POST/api/encodeBuild a profile
POST/api/scoreScore candidate against profile
POST/api/transferDomain transfer guidance
GET/api/samples/profileReference profile
GET/docsOpenAPI
pip install -e .
python -m taste_api encode -n "House standard" -v "editorial restraint" -a "AI gloss" -o profile.json
python -m taste_api score profile.json draft.txt
python -m taste_api transfer profile.json research-ui
python -m taste_api serve

The permanent risk is over-compression: turning a living standard into a bland embedding mean. Mitigations built into the model: explicit anti-exemplars, weighted exemplars, hard constraints, natural-language constitutions, and versioned human override. The representation should remain readable by a careful stranger. If only the model understands the profile, the profile has failed socially even if it scores well.