Add the Vessel family: vessel-react, vessel-light fingerprint, steering-eval harness#207
Merged
Conversation
…ired to component sets, baseline hygiene checks
…rprint for raw HTML/CSS agents
… fingerprints; wire vessel-light demo as first consumer
… cells, brandTokens/pulledWords from tape
…ump-growth, screenshots, metrics, report
…, embed webp in report)
This was referenced Jul 9, 2026
…edian floor (#208) * materials: tokens audit — radius roles, hoist grammar-enumerated values * corpus: fork-axis re-author — grammar/signature/register/anti-goal * checks: relationship/value split — density.md retired, median-tells gains demoted rules, frequency thresholds, model-named tells * materials: regenerate refs — annotated, closed-set complete * docs: vessel-light README — fork-axis structure and ref-annotation curation * ghost init: naked skeleton default — grammar, unanswered dials, median floor (#209) * template: naked skeleton replaces steering default * checks: median-tells scaffold — live check pairing with anti-goal.median, deterministic floor, model tells * skill: migrate Morrow teaching shapes to authoring-scenarios * docs: skeleton starter in getting-started + cli-reference; minor changeset * ghost init --body: packed payloads + vessel-light body install (#210) * init: packed-payload mechanism — dist payloads, byte-capable template seam * template: skeleton rides packed files * init: --body vessel-light — install the full inhabited package * checks: packed-artifact body probes — fonts and checks survive pack * docs: body install in getting-started + cli-reference; minor changeset * skill: adapting-a-starter — the seven-step starter transplant recipe (#211) * skill: adapting-a-starter recipe — the seven-step transplant procedure * review: resolve package-relative material locators when matching diff paths (#212) * review: resolve package-relative material locators when matching diff paths * demo: drop stale parked-branch reference from eval artifacts gitignore * median: one authored home — model truth stamped at init, prunable by contract (#213) * corpus: audit backports, check cross-wiring, terminology sweeps * median: one authored home — headings contract, payload check, all templates stamp the floor * vessel-light: re-derive median onto the headings contract; docs get the ownership reframe
…ifact Root pnpm build only ran tsc, so dist/init-payloads and dist/skill-bundle were missing in CI: the vessel-light body test failed and check-packed-package packed a tarball without payloads. Root build now chains the package-level build; check:packed-package builds its own complete artifact since the lint job never runs pnpm build. Signed-off-by: Nahiyan Khan <nahiyan@squareup.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Category: new-feature
User Impact: Ghost now carries Vessel as a real, portable reference brand — a React component registry, a raw HTML/CSS fingerprint package, and an evaluation harness that measures how much a fingerprint actually steers generation.
Problem: Ghost had no in-repo, full-strength brand to steer with, and no way to measure whether a fingerprint changes what an agent generates. The merged default-fingerprint synthesis (
notes/default-fingerprint-synthesis.md) needs a proven body to derive the starter skeleton from.Solution: Land the Vessel family in its pre-refactor state:
vessel-react(renamed fromvessel, with a vendored.ghost/fingerprint),vessel-light(Vessel's design language as a flat.ghost/package for raw HTML/CSS agents, with tokens, refs, and checks), andsteering-eval(a before/after eval harness; screenshots now emitted as WebP). The 2026-07-08 eval-matrix run artifacts (~28MB) are parked on thevessel-eval-artifactsbranch anddemo/out/is gitignored on mainline. The fork-axis re-authoring of vessel-light follows in a separate PR.Validation:
pnpm check: pass (biome, typecheck, packed-package, file sizes, terminology, cli-manifest — via pre-commit on HEAD)pnpm test: 143 passed, 1 skippedghost validate --package packages/vessel-light/.ghost: 0 errors, 0 warningsghost validate --package packages/vessel-react/.ghost: 0 errors, 0 warningsChangeset: not needed — all changes are in private packages (
vessel-react,vessel-light,steering-eval) or repo-internal config; the onlypackages/ghosttouch is a test fixture string following thevessel→vessel-reactrename..changeset/config.jsonignore list updated for the rename.Ghost Review: not run — no change to Ghost's public surface or generation behavior; the diff adds new private packages and their fingerprints.
File changes (by area)
packages/vessel-react/ (renamed from
packages/vessel/)Component registry unchanged in behavior; package renamed to make room for sibling bodies (
vessel-light, futurevessel-*). Adds a vendored.ghost/fingerprint: taste-floor nodes with materials wired to component sets, plus baseline hygiene checks.packages/vessel-light/
New: Vessel's design language as a portable flat
.ghost/fingerprint for agents writing raw HTML/CSS.manifest.yml, glossary, 15 prose nodes (foundation/primitive/pattern/anti-goal),materials/(tokens.css, primitives.css, fonts, six composition refs), and four checks.demo/carries the steering-eval consumer config (asks, ballast, median-tells scoring);demo/out/is gitignored — the full 2026-07-08 run is parked on thevessel-eval-artifactsbranch.packages/steering-eval/
New: portable before/after evaluation harness — generates N runs per ask across arms (naked / dump / gather / dump-growth), screenshots them, scores median tells, and renders a self-contained HTML report. Screenshots are shot as PNG (agent-browser's only output), converted to WebP via
cwebp, and embedded as WebP in the report.apps/docs/.ghost/, .changeset/config.json, packages/ghost/test/cli.test.ts, biome.json, tsconfig.json, scripts/check-terminology.mjs, package.json, pnpm-lock.yaml, README.md, CONTRIBUTING.md, CLAUDE.md, .gitignore
Mechanical follow-through on the
vessel→vessel-reactrename (materials globs, ignore lists, workspace config, docs references).Screenshots/Demos: The eval report (screenshots + metrics for 45 generations) lives on the
vessel-eval-artifactsbranch; regenerable viasteering-evalfromdemo/asks.md+demo/ballast.md.