Hyperframes
Visual source of truth / proposed, not implemented / 2026-08-04
Catalog discovery plan

One catalog.
Two ways to find it.

Browse locally by default. Signed-in users can request zero-credit Smart ranking. Both paths return installable Hyperframes IDs.

Ship first
Local search

Private, deterministic, no sign-in, no Pinecone, and usable when HeyGen is unavailable.

  1. Query
  2. Bundled artifact
  3. Verified runAdd
Gated beta
Smart search

Authenticated HeyGen API, server-side semantic/hybrid retrieval, zero credits, bounded by rate limits.

Hard boundary
Hyperframes only

CLI, SDK, Studio and media-use. Hyperion and website-to-video remain unchanged.

Decision

The decision we can make now

What

Add a curated, versioned search artifact and pure local search first. Then add one authenticated HeyGen Smart-search endpoint as an explicit opt-in. V1 browse is local.

Why

The catalog is already larger than a human can scan comfortably. Local search protects openness and resilience; HeyGen search can improve paraphrase and multilingual recall without shipping provider secrets.

How

One canonical ID contract feeds CLI, Studio, SDK, API and media-use. The API searches only an immutable catalog digest the client says it can install.

Use the evidence without reopening the research: the old experiment selects the initial hybrid recipe. It does not create a separate evaluation train. Release QA still verifies installability, privacy, latency and representative relevance before Smart is enabled.
Visual source of truth

Two practical release trains

Train 01 ships the useful local product. Train 02 adds optional Smart ranking without another research program or staged rollout ladder.

01Ship first: local GA

Curated local catalog

  • Quality-reviewed, versioned artifact + detached checksum
  • Pure deterministic local scorer
  • CLI, Studio, public SDK and media-use
  • Canonical install path through runAdd
  • Zero-network browse/search tests

Exit: quality-approved entries have installable IDs and pass integrity, accessibility, performance and offline journeys. Rollback: ship the prior artifact/client.

02Optional: Smart beta

HeyGen Smart search

  • Authenticated QUERY /v3/hyperframes/catalog
  • Immutable index keyed by catalog digest
  • Existing hybrid recipe; no new retrieval bake-off
  • Explicit Smart toggle, zero credits and bounded use
  • One simple rule: on error, keep the local results already on screen

Exit: contract, relevance smoke, load, privacy and freshness checks pass. Rollback: disable Smart; Train 01 is unchanged.

yes

no

disable Smart

TRAIN 01
Curated local catalog

Quality + offline + install
gates pass?

TRAIN 02
Optional Smart beta

Mermaid source
flowchart LR
  T1["TRAIN 01<br/>Curated local catalog"] --> G1{"Quality + offline + install<br/>gates pass?"}
  G1 -->|yes| T2["TRAIN 02<br/>Optional Smart beta"]
  G1 -->|no| T1
  T2 -. disable Smart .-> T1
  classDef first fill:#d7ff4f,stroke:#171713,color:#171713,stroke-width:2px
  classDef gated fill:#3859ff,stroke:#171713,color:#fff,stroke-width:2px
  class T1 first
  class T2 gated

Responsibility and handoff matrix

Owner surfaceDeliverableDepends onApprover / release gateRollback owner
Hyperframes OSSArtifact, checksum, local scorer, CLI, Studio, SDK, canonical installerRegistry manifests and install testsHyperframes maintainers; Train 01 definition of doneHyperframes release owner
media-useThin Hyperframes provider adapter and user guidance; no copied source or second ledgerStable CLI JSON/install contractmedia-use maintainer + Hyperframes contract testsmedia-use package owner disables adapter
Catalog qualityPublic allowlist and documented exclusion reason for entries below the quality barInstallable registry manifests + review criteriaHyperframes maintainers approve each public entryCatalog owner removes it in the next artifact
HeyGen API / EFAuth, rate limits, QUERY endpoint, immutable index and observabilityFrozen artifact identity + Train 01API, security and privacy owners approve Train 02 betaAPI on-call disables Smart
HeyGen API / EFCatalog qualitymedia-useHyperframes OSSHeyGen API / EFCatalog qualitymedia-useHyperframes OSSShip artifact + local scorer + CLI/Studio/SDKPublish stable JSON + install contractResolve canonical ID through runAddReview public entries against the quality barPublish approved allowlist + exclusion reasonsPublish the exact curated catalog digestServe optional Smart results for that digestOn error, client keeps local results
Mermaid source
sequenceDiagram
  participant HF as Hyperframes OSS
  participant MU as media-use
  participant CQ as Catalog quality
  participant API as HeyGen API / EF
  HF->>HF: Ship artifact + local scorer + CLI/Studio/SDK
  HF->>MU: Publish stable JSON + install contract
  MU->>HF: Resolve canonical ID through runAdd
  HF->>CQ: Review public entries against the quality bar
  CQ-->>HF: Publish approved allowlist + exclusion reasons
  HF->>API: Publish the exact curated catalog digest
  API->>HF: Serve optional Smart results for that digest
  API-->>HF: On error, client keeps local results

Named individuals and repo-specific approvers are intentionally deferred; the ownership boundaries above are the source-of-truth contract until those names are assigned.

Artifact provenance

The catalog is generated, not hand-counted

The evaluated branch scans committed primitive source artifacts and the registry manifests at Git HEAD. It validates each source, merges reviewed duplicate names, sorts the result, and emits a shelf plus a machine-readable index.

25 primitives+109 blocks+302 components−12 overlaps−quality cuts=curated public catalog
Important: 424 is the pre-curation snapshot from feat-video-primitives, not the launch count. The public artifact is intentionally smaller: exclude components that fail installability, runtime stability, visual polish, responsive behavior, accessibility, metadata/demo quality, or maintainer review. Record a reason for every exclusion so the bar is auditable.

Source PR

Add, edit, deprecate or remove a registry item. Every public ID must resolve through the canonical installer.

→

Quality + integrity gate

Apply the public allowlist, record exclusions, then validate IDs, manifests, files, hashes, compatibility, duplicates and search fields.

→

Immutable release artifact

catalog-search.json + detached SHA-256 checksum, exported from the shared package and bundled with the CLI.

When a component is added

Its manifest must pass schema and install tests. The builder adds it to a new digest. CI builds a new remote namespace and queries it before that digest can become active. Old released clients keep searching their old digest.

When a component is removed or renamed

A new digest omits it. Existing digests remain readable for a defined support window. Renames use a deprecated alias and replacementId; a name is never silently reassigned to unrelated code.

When a user has a custom registry

V1 searches it locally only. Proprietary metadata is never uploaded to HeyGen implicitly. A future hosted-custom-index feature requires a separate consent, tenancy and deletion design.

Evaluation evidence

All five methods, in words a teammate can use

“Recall at top 20” means: among 405 test briefs, after a method returned only 20 catalog entries, how often did those 20 include at least one entry the gold set considered acceptable? It does not mean users liked the first result, and it is not a production conversion rate.

Hybrid, 70% word-rank weight
55.56%
Hybrid, even rank weight
54.07%
Meaning match only
48.15%
Hybrid, 30% word-rank weight
41.48%
Word match only
29.38%

Source: evals/catalog-retrieval/round4/summary4.json, 405 scored briefs, k=20. The dithered bars make the candidate winner visible; the exact values remain printed so texture is never the only signal.

The default we take from the existing evidence

k 5-10
word
k 20-210
hybrid
220
word
230-250
hybrid
260-423
word

Use the 70% word-rank hybrid as the initial Smart recipe because it is the strongest existing top-20 result. Do not start another candidate bake-off. Train 02 gets ordinary release QA: representative query smoke tests, contract checks, load, privacy and operational verification. Local remains the default regardless of Smart relevance.

Product surfaces

How people use it

CLI
hyperframes catalog hyperframes catalog search "animated pricing comparison" hyperframes catalog search "animated pricing comparison" --smart hyperframes catalog search "animated pricing comparison" --smart --json hyperframes add data-chart

Local is the default. --smart is explicit because it sends the query to HeyGen. A selected result flows through the existing runAdd installer and compatibility gate.

Studio

Search locally first

The block browser uses the same core scorer. A visible “Smart search: free with HeyGen” toggle signs in or reuses existing credentials. If Smart fails, the already-visible local results simply remain.

SDK

searchCatalogLocal(artifact, query, filters) is pure and public. Remote HTTP remains an opt-in client adapter so rendering and core packages never gain a network dependency.

media-use extension
media-use resolve --type hyperframes \ --intent "a chart that counts up" --project . # force privacy/offline ... --local-only # explicitly use signed-in HeyGen smart search ... --provider heygen

media-use discovers; Hyperframes installs. It must not store component source under .media/ or invent a second catalog ledger. Its record points to the canonical catalog ID, digest and files written by hyperframes add.

Free means bounded

No credit charge

Authenticated catalog browse/search consumes zero HeyGen credits. OAuth is the recommended free sign-in path; API keys may authenticate developer automation without changing the zero-credit rule.

Still protected

Per-account, per-IP and global limits, bounded query length and top_k, timeouts and a circuit breaker remain mandatory. Free does not mean anonymous or unlimited.

Mode simulator

User journeys

Six paths the product must make obvious

Local CLI journey

Find and install without an account

  1. Run hyperframes catalog search.
  2. Search the bundled artifact immediately.
  3. Filter and select an installable canonical ID.
  4. runAdd verifies compatibility and writes files.

Outcome: useful offline discovery; no query or metadata leaves the machine.

Studio journey

Browse visually, local by default

  1. Open the Blocks browser.
  2. See local results while typing.
  3. Keep filters, keyboard focus and result announcements stable.
  4. Add the selected block through the same installer contract.

Outcome: the Studio route never waits for auth or a provider to show the catalog.

Smart journey

Explicit signed-in upgrade

  1. Choose “Smart search: free with HeyGen.”
  2. Sign in or reuse shared credentials.
  3. Send the query + exact catalog digest with QUERY.
  4. Install only IDs present in the local artifact.

Outcome: Smart is opt-in, zero-credit and compatible with the local client.

Simple failure journey

Keep working when Smart fails

  1. Keep local results visible while Smart loads.
  2. Make one bounded remote request.
  3. On any error, leave local results in place.
  4. Offer sign-in again only when the user asks.

Outcome: no fallback state machine and no blocked creative flow.

Install journey

Trust the result after selection

  1. Resolve the canonical ID against the exact artifact.
  2. Verify manifest, file hashes and CLI compatibility.
  3. Reject removed, stale or non-installable entries.
  4. Record provenance and written files.

Outcome: search never invents a second install path or identity system.

media-use journey

Discover through the agent adapter

  1. Resolve with --type hyperframes.
  2. Use local by default; Smart only via --provider heygen.
  3. Pass the canonical ID to Hyperframes.
  4. Record digest and installer output, never copied source.

Outcome: media-use ships in Train 01 as a thin, testable adapter.

no

yes

no

yes

yes

no / timeout / 429

User opens CLI, Studio or media-use

Load bundled catalog artifact

Search / browse locally

Choose Smart?

Select canonical ID

Signed in?

OAuth login

QUERY + exact catalog digest

Valid compatible response?

Keep local results visible

Verify manifest, files, hashes, compatibility

Existing runAdd installer

Record provenance + written files

Mermaid source
flowchart TD
  Start["User opens CLI, Studio or media-use"] --> Local["Load bundled catalog artifact"]
  Local --> Search["Search / browse locally"]
  Search --> Choice{"Choose Smart?"}
  Choice -->|no| Select["Select canonical ID"]
  Choice -->|yes| Auth{"Signed in?"}
  Auth -->|no| Login["OAuth login"]
  Auth -->|yes| Remote["QUERY + exact catalog digest"]
  Login --> Remote
  Remote --> Healthy{"Valid compatible response?"}
  Healthy -->|yes| Select
  Healthy -->|no / timeout / 429| Fallback["Keep local results visible"]
  Fallback --> Search
  Select --> Verify["Verify manifest, files, hashes, compatibility"]
  Verify --> Install["Existing runAdd installer"]
  Install --> Done["Record provenance + written files"]
  classDef local fill:#d7ff4f,stroke:#171713,color:#171713
  classDef remote fill:#3859ff,stroke:#171713,color:#fff
  class Local,Search,Fallback local
  class Remote remote
Architecture

One result contract, two retrieval paths

Local path: GA candidate

query→bundled digest→exact + token ranking→typed results→runAdd
  • No auth, provider or network.
  • O(entries × query terms); measured before GA.
  • Custom registry supported locally.
  • Never auto-claims semantic understanding.

HeyGen path: optional beta

query + digest→auth→QUERY→hybrid index→compatibility gate→runAdd
  • The existing 70% word-rank hybrid is the initial recipe.
  • Provider and embedding credentials stay server-side.
  • The server either returns a compatible list or a normal HTTP error.
  • On error the client keeps its local results.

Ownership

Hyperframes OSS

Catalog truth, public quality allowlist, artifact schema, local scorer, CLI/Studio/SDK and installer.

↔

HeyGen API / EF

Authentication, zero-credit policy, limits, immutable derived index, in-memory ranking and response envelope.

↔

media-use

Thin provider adapter and sign-in guidance. No duplicate catalog or installer.

End-to-end request flow

local default

explicit smart

Hyperframes user

Search mode

Bundled catalog artifact

Local lexical scorer

Shared HeyGen credentials

QUERY /v3/hyperframes/catalog

EF immutable index blob + memory cache

Keyword arm

Semantic arm

Fixed 70 / 30 RRF

Shared result contract

Compatibility validation

Existing runAdd installer

Mermaid source
flowchart LR
  U[Hyperframes user] --> C{Search mode}
  C -->|local default| A[Bundled catalog artifact]
  A --> L[Local lexical scorer]
  C -->|explicit smart| H[Shared HeyGen credentials]
  H --> API[QUERY /v3/hyperframes/catalog]
  API --> N[EF immutable index blob + memory cache]
  N --> K[Keyword arm]
  N --> S[Semantic arm]
  K --> R[Fixed 70 / 30 RRF]
  S --> R
  L --> G[Shared result contract]
  R --> G
  G --> V[Compatibility validation]
  V --> I[Existing runAdd installer]

Where the data lives

DataAuthoritative locationRuntime behavior
Catalog manifests, public quality allowlist and exclusion reasonsHyperframes repositoryReviewed with code; the deterministic builder is the only publisher.
catalog-search.json + checksumHyperframes package/release and bundled CLILocal clients read it directly. Its SHA-256 digest is the cross-repo identity.
Derived Smart indexEF-managed object storage, immutable by environment + catalog digestAPI pods load the small hybrid index into a read-only memory cache. A missing digest is a normal catalog_version_unavailable error.
User queryTransient request memory onlyThe endpoint authenticates, validates, ranks, returns IDs/scores and discards the raw query. Logs and analytics contain only bounded status/latency/count fields.
Auth, limits and feature stateExisting HeyGen account and API configurationNo new user-data store. Smart can be disabled without changing the local artifact.
Why the first implementation can stay simple

The catalog is small enough for EF in-memory retrieval: even the pre-curation 424 × 1536 float32 matrix is about 2.49 MiB. Start there with the existing 70% word-rank hybrid. Pinecone is unnecessary until measured scale or operations justify it; this plan does not create a second provider-selection project.

Contracts

The API can never return something the client cannot install

Canonical artifact

{
  "schemaVersion": 1,
  "catalogVersion": "0.8.0",
  "digest": "sha256:…",
  "entries": [{
    "id": "block:data-chart",
    "name": "data-chart",
    "type": "block",
    "title": "Data chart",
    "description": "…",
    "tags": ["data", "chart"],
    "aliases": [],
    "searchText": "…",
    "minCliVersion": "0.8.0",
    "deprecated": null,
    "replacementId": null
  }]
}

Smart search request

QUERY /v3/hyperframes/catalog
Authorization: Bearer …
X-HeyGen-Client-Source: hyperframes
Content-Type: application/json

{
  "query": "animated pricing comparison",
  "catalogDigest": "sha256:…"
}

QUERY is the safe, idempotent body-carrying method standardized by RFC 10008. Defaults are deliberate: omitted types means every public installable type; omitted limit means 10 with a hard maximum of 20; empty-query browse stays local; strategy is server-owned and cannot be selected by the client. The server stores no raw query in telemetry. X-HeyGen-Client-Source is a bounded label only; authorization and limits use server-derived identity.

Required response fields

FieldWhy it existsClient rule
catalogDigestNames the exact immutable catalog searched.Must equal the request or reject the response.
items[].id/name/typeStable identity and installer lookup.Intersect with local artifact before display/install.
items[].scoreOrders the compatible Smart results.Treat as opaque and sort descending; do not expose provider details.
Production boundaries

Code-complete is not production-ready

Local can fail open

Remote failure still leaves a deterministic search path over the exact installable digest.

Smart needs gates

Quality, capacity, privacy, abuse and catalog freshness must pass before a default changes.

No unbounded work

No unlimited query, top-k, candidate pool, pagination depth, retries, concurrency or index fan-out.

Capacity equations

embed calls / second = smart-search QPS × embedding-cache miss rate Pinecone reads / second = smart-search QPS × retrieval arms (1 semantic, 2 hybrid) monthly provider cost = requests × (embedding cost + index read cost) required tested capacity ≥ 3 × forecast peak QPS local work = catalog entries × normalized query terms

The plan deliberately does not invent a demand forecast. Product and API owners must record expected steady QPS, burst QPS, daily active searchers and queries per searcher before capacity approval.

Activation gates

GatePass condition before production traffic
QualityThe curated artifact contains only maintainer-approved, installable entries. Representative Smart queries return relevant, compatible IDs in release smoke tests; no new retrieval bake-off is required.
ScaleLoad test at 3× recorded peak forecast with bounded queues; no error-budget breach, connection leak or unbounded memory growth.
LatencyAPI owner approves explicit p50/p95/p99 targets after a dev benchmark. CLI timeout is longer than the approved p99 but still short enough to fall back without blocking work.
AvailabilityDashboard and alerts cover auth, embedding, Pinecone, stale/missing digest, rate limit, fallback and install outcome. Kill switch forces local immediately.
FreshnessA release cannot activate until the exact digest is indexed, counted, sampled and query-smoked. Old namespaces remain until the supported client window expires.
PrivacyRaw query absent from analytics, structured logs and error payloads; cache keys use a digest; retention and access are documented.
AbuseAuth required, body/query size bounded, default limit = 10, hard limit ≤ 20, and per-account/IP/global rate limits tested.
Failure and edge matrix

How the system behaves when reality is messy

User is not signed inLocal works. --smart explains the free OAuth login path and makes no remote request until the user signs in.
OAuth token expiredRefresh once through the shared credential code. A second 401 becomes an auth error and local fallback; never retry forever.
HeyGen / retrieval provider / embedder downThe bounded Smart request fails normally. The client keeps the local results already visible and does not cache the failure as an empty catalog.
One hybrid arm failsThe Smart request fails. Do not invent a partial response contract; local results remain visible.
Client digest is unknownReturn catalog_version_unavailable with supported upgrade guidance. Never search “latest” and send entries the client cannot install.
Item removed during rolloutOld clients query their old namespace; new clients query the new digest. Retention policy, not mutable aliases, controls rollback.
Duplicate or renamed IDArtifact generation fails. Rename requires a deprecated alias and replacement; stable identity cannot be reused for different code.
Primitive has no install pathIt is excluded from public results. Searchability requires installability or a documented “reference-only” result type the client knows how to open.
Registry is unreachableBundled metadata still searches. Install reports that source files need network; browsing success must not be confused with offline install success.
Custom private registryLocal only in V1. No metadata leaves the machine. Smart indexing is a future separate product with explicit consent and tenant deletion.
Empty / huge / hostile queryEmpty means browse. Server and client reject over-limit UTF-8 bodies; output escapes metadata; query is data, never executable prompt or HTML.
Concurrent release and searchBuild a new immutable namespace first, smoke it, then advertise the digest. Never mutate the namespace currently serving requests.
429 or exhausted service budgetSearch remains zero-credit but rate-limited. Respect Retry-After, do not retry in the same command, fall back locally.
media-use calls itProvider shells the Hyperframes CLI with argv arrays, fixed timeout and source attribution. Hyperframes owns auth headers and installation.

client starts

user explicitly enables Smart

compatible success

any HTTP error or timeout

catalog digest mismatch

Smart toggled off

Smart disabled

client/artifact rollback

prior release starts

LocalReady

SmartPending

SmartResults

PriorArtifact

Mermaid source
stateDiagram-v2
  [*] --> LocalReady: client starts
  LocalReady --> SmartPending: user explicitly enables Smart
  SmartPending --> SmartResults: compatible success
  SmartPending --> LocalReady: any HTTP error or timeout
  SmartPending --> LocalReady: catalog digest mismatch
  SmartResults --> LocalReady: Smart toggled off
  SmartResults --> LocalReady: Smart disabled
  LocalReady --> PriorArtifact: client/artifact rollback
  PriorArtifact --> LocalReady: prior release starts
Implementation plan

Eight units across two trains

U0

Freeze the visual source of truth

Goal: approve two trains, local-default / explicit-smart behavior, zero-credit policy, quality bar, public result types and supported digest window.

Outputs: this HTML plan first, then a matching short API RFC and threat/privacy review.

Verification: surface owners sign the boundary table; no code begins with unresolved identity/version semantics.

U1

Curated canonical artifact

Hyperframes files: packages/core/src/registry/catalogSearch.ts, packages/core/schemas/catalog-search.json, scripts/generate-catalog-search.ts, registry/catalog-search.json.

Add an auditable public allowlist and exclusion reason, then generate canonical JSON, a detached checksum, searchable text, aliases and installability proof bound to immutable manifests, file paths and hashes. Export the artifact from the shared package and bundle it via packages/cli/scripts/build-copy.mjs.

Tests: quality-cut inclusion/exclusion, deterministic bytes, checksum/package parity, add/remove/rename, duplicate, missing/hash-mismatched file, non-installable primitive and schema drift.

U2

Pure local scorer

Files: packages/core/src/registry/searchCatalog.ts and tests.

Exact name/title/tag boosts plus deterministic normalized token overlap. No network, wall clock or mutable global cache. Stable tie-break by canonical ID.

Tests: empty, Unicode, punctuation, aliases, deprecated items, filters, stable ordering, 10× future catalog performance.

U3

Train 01: local CLI, Studio and SDK

Files: packages/cli/src/commands/catalog.ts, local catalog modules, packages/cli/src/server/studioServer.ts, packages/studio/src/hooks/useBlockCatalog.ts, BlocksTab.tsx.

Add local catalog search, JSON output and offline browse. Preserve existing --type, --tag, --json and picker behavior. Extend runAdd to accept canonical IDs and keep it the only installer.

Tests: zero-network CLI/Studio routes, compatibility snapshots, keyboard/focus/live-region accessibility, canonical-ID uniqueness and install rejection.

U4

Train 01: media-use adapter

Skill files: scripts/lib/registry.mjs, new hyperframes-provider.mjs, scripts/resolve.mjs, coverage/provider/privacy tests and references.

Add type hyperframes. Local invokes Hyperframes local search. Record canonical ID, digest and installer output; never copy code into .media. The adapter ships with Train 01.

U5

Train 02: immutable Smart index

EF files: provider client plus one indexing activity/workflow.

Use the existing 70% word-rank hybrid. Write one immutable compressed index blob to EF-managed object storage for each environment + catalog digest; API pods load it into a read-only memory cache. IDs are canonical IDs. Define build, smoke, activation, supported-window retention and garbage collection.

Tests: idempotent build, wrong-env refusal, partial batch, payload parity, cold load, cache replacement, activation, retention and GC.

U6

Train 02: authenticated QUERY API and clients

EF files: extend movio/api_service/app/controller/hyperframes_v3.py; add DTO/service and retrieval client tests.

QUERY /v3/hyperframes/catalog authenticates, validates the digest/body, gets that digest's read-only in-memory index, runs the fixed hybrid ranker, clamps to the default 10/max 20, and returns compatible IDs/scores. The raw query is discarded after the response. OAuth/API-key auth, zero credits, server-derived quotas and bounded source attribution reuse existing systems. CLI adds only --smart.

Studio keeps local results visible while Smart loads and replaces them only with a compatible success.

Tests: QUERY support through the real gateway, cold/missing index, scopes/authz, no raw-query logs, 401, 429/timeout/mismatch, rapid-query cancellation, accessibility and OpenAPI.

U7

Train 02: beta operations

States: off or explicit opt-in beta. No shadow/employee/ramp ladder.

Rollback: disable Smart. Local search remains the complete product. Retain an auditable activation record.

U0 HTML source of truth

U1 artifact + integrity

U2 local scorer

U3 local CLI / Studio / SDK

U4 media-use adapter

TRAIN 01 DONE

U5 immutable Smart index

U6 QUERY API + clients

U7 opt-in beta operations

TRAIN 02 READY

Mermaid source
flowchart LR
  U0[U0 HTML source of truth] --> U1[U1 artifact + integrity]
  U1 --> U2[U2 local scorer]
  U2 --> U3[U3 local CLI / Studio / SDK]
  U3 --> U4[U4 media-use adapter]
  U3 --> T1{"TRAIN 01 DONE"}
  U4 --> T1
  T1 --> U5[U5 immutable Smart index]
  U5 --> U6[U6 QUERY API + clients]
  U6 --> U7[U7 opt-in beta operations]
  U7 --> T2{"TRAIN 02 READY"}
Dependency rule: U0 → U1 → U2 → U3/U4 completes Train 01. Train 02 reuses its curated digest and existing hybrid recipe; there is no intermediate evaluation train.

Definition of done

Plain-language glossary

Terms used in this plan

Release train
An independently shippable stage with its own user value, exit checks and rollback. Train 01 remains complete without Train 02.
Catalog
The list of Hyperframes things a user can discover and use: blocks, components and any primitives that have a real install/open contract.
Artifact
A generated JSON file shipped with a release. It is the search-ready view of the source manifests, not a second hand-edited catalog.
Canonical ID
A stable identity such as block:data-chart. Display names may change; the identity must not silently point to different code.
Digest
A SHA-256 fingerprint of canonical artifact bytes. Matching digests means client and server are talking about the exact same catalog.
Local / lexical
Ranking by exact names, tags and words on the user’s machine. It needs no embedding service and cannot have stale remote vectors.
Semantic
Ranking by meaning rather than shared spelling. “Make it feel faster” may find “speed ramp” even when those words differ.
Embedding / vector
A model turns text into a fixed-length list of numbers. Nearby lists are treated as similar meanings.
Pinecone
The hosted database that stores vectors and metadata and returns nearby entries. It is infrastructure, not the thing that makes an embedding intelligent.
BM25
A standard keyword-ranking method that rewards useful shared terms and discounts very common terms.
Hybrid / RRF
Hybrid combines word and meaning rankings. Reciprocal Rank Fusion (RRF) combines their positions instead of incompatible raw scores.
Top-k
The number of results returned or shown. “Top 20” means k=20.
Namespace
An isolated partition inside the vector database. Here it is pinned to environment and catalog digest so releases cannot mix.
OAuth
The browser sign-in flow that gives the CLI a revocable HeyGen access token without asking the user to paste an API key.
Rate limit
A bound on requests in a time window. The endpoint is free of credits, but still protected from accidental or abusive demand.
p95 / p99
The latency below which 95% / 99% of requests finish. They expose the slow tail that an average hides.
SLO
A measurable service objective for latency, availability or correctness that operators agree to meet.
Backpressure
Refusing or queuing bounded work when downstream capacity is full instead of creating unlimited concurrent calls.
Circuit breaker
A temporary stop on remote calls after repeated failures, giving the dependency time to recover while users get local results.
Rollback
Return to the prior client/index/strategy. Immutable digests make that a pointer/config change rather than a data reconstruction.
Deferred decisions

Deferred / Open Questions

From 2026-08-04 review

Custom registries lack a complete product contract

Catalog sources / scope / P1 / scope guardian + adversarial review / confidence 100

The plan implies custom-registry support, but does not yet define artifact generation, canonical-ID collision and namespace rules, provenance and integrity, refresh/versioning, install compatibility, or whether private registry metadata may reach Smart search. V1 behavior remains an explicit product decision until those boundaries are resolved.

Named cross-repo approvers and rollback owners

Ownership / release management / P1 / adversarial review / deferred by product owner

The visual matrix assigns responsibility by surface, but named individuals, required approvers, repository-specific release calendars and escalation paths still need assignment before U0 exits. No implementation unit may treat an unassigned handoff as implicitly owned.