Skip to content
Knomee SpecificationsGoodTakes product ↗
Knomee / Specifications
Markdown ↓Source ↗
Source fingerprint4aa07aaf1951c6d06db3cf9eaadfd247c787bd6301fb2851303f0ebf00c9860e

Signed review reactions

Owner direction: 2026-10-12. Applies to every current Knomee review consumer.

Plan assessment: REFINE

The existing contract signs the claim-bundle hash, so a new contract is unnecessary. The bundle must bind the original reaction independently of the model interpretation. Updating only the public renderer would leave the emoji outside the signed record. An emoji-only input cannot be passed to the prose extractor or silently expanded into invented text. It uses one deterministic, source-linked evaluation instead.

Format and meaning

  • Bundle v3 carries originalReaction: string | null. Draft/approval/request v4 and assistant input v4 carry the same field. Old write formats are rejected, not upgraded.
  • Original prose is unchanged, including empty string. API null prose is normalized to empty string before an intent is hashed. Both empty prose and null reaction are invalid.
  • A reaction is exactly one emoji grapheme, preserving variation selectors, skin tones and joined sequences. Empty UI selection becomes null. It is never inferred from text.
  • With text, claim spans refer to UTF-8 prose bytes. The selected reaction supplies tone, never overrides explicit praise/criticism, and never constitutes factual evidence.
  • Without text, spans refer to the exact reaction bytes. No inference call is needed. Thumbs up/down mean overall approval/disapproval. Other emojis are endorsements of the expressed reaction, not inferred approval of the subject or factual claims. Their canonical label is Reaction, distinct from overall approval. VIBE funds that expression; QUALIA is zero. Negative overall reaction retains the existing two-to-one cost.
  • Simple mode allocates within its displayed VIBE ceiling. Advanced keeps individual meanings, directions and quantities editable for text reviews. An emoji-only review can tune its amount; adding text enables a more detailed interpretation.
  • Signed IPFS bundle, public index and all public review cards retain the exact emoji. No legacy bundle conversion or fabricated historical emoji is permitted. Immutable old records stay stored; current views select the current format.

Acceptance and delivery

Verify emoji-only approval/disapproval/expressive cases, text-only and mixed text, empty rejection, Unicode sequences, reaction tampering, budget costs, public projection, and mobile/desktop composer behavior. Signing-boundary checks use the repository's focused security gate; ordinary unit suites remain deferred. Build shared SDK, Functions, Knomee Hosting and both GoodTakes artifacts; promote only Firebase for GoodTakes. Do not publish a participant review merely as a test of this format change.

Redo: knomee/signed-review-reactions, goodtakes/signed-reaction-composer.

Verification record, 2026-10-12

Functions compilation and both product TypeScript checks pass. Eight focused signing-boundary checks pass, including exact Unicode, empty input, immutable reaction meaning, reaction tampering and preparation of the existing contract authorization. Eight isolated shared-editor browser journeys pass at 390/1440 for mixed, text-only, thumbs-up-only and expressive-only reviews. Emoji-only journeys make zero AI calls. Queue browser checks cover immediate emoji cards, reload, account isolation, same-intent recovery and public-index deduplication. These checks use synthetic ports and do not establish a new live participant transaction. Ordinary unit fixtures for old draft schemas await an explicitly scoped test pass; they were not rewritten to mask the format change.

GoodTakes product lint passes. Scoped Knomee lint has no errors and the existing composer hook-dependency warning. Broad Knomee lint remains blocked by unrelated vendor, activation and submission-panel errors. Before cutover, a read-only scan found one confirmed and two failed simple-review jobs, with no in-flight jobs. The active IPFS publisher supports the versioned native block transport; manifests remain opaque exact bytes to that transport. No publisher or contract upgrade is needed. Prior public v1 records remain immutable and are excluded from the v2 reader; their missing signed reaction must never be retroactively manufactured.