TALK

TALK

TALK governs conversation. Every session governed. Every response sourced.

Purpose

TALK is the transcript engine. Every word governed. Every session ledgered. Every stream merkle-hashed.

TALK powers all conversation in CANONIC — from AI chat to human messaging to transcript ingestion. The service worker at api.canonic.org routes every stream through /transcript/ingest, hashes it, and writes it to the ledger. That’s the engine.

ATULISMS was built on TALK. 48 YouTube transcripts ingested, merkle-hashed, compiled into 13 chapters. The first governed memorial book — powered by the same transcript pipeline that governs every conversation on the platform.


Structure

Root TALK domains: BLANDFORD/, BRYANSTON/, FINCHAT/, LAWCHAT/, MAMMOCHAT/, MEDCHAT/, ONCOCHAT/, REALTY/, SLOANE/.

User dashboards (discovered from USER principal scopes): Every USER principal in hadleylab-canonic MUST have a TALK dashboard surface. Dashboard route: /CHAT/{USER}/ compiled from CANON.json + index.html. System prompt MUST include: identity, active deals, missions, network, and rules. System prompt MUST declare CAPABILITIES section with honest boundaries. Discovery: scan hadleylab-canonic for USER principal scopes → compile dashboards.

Session ledger (server-side): Every TALK conversation turn MUST be logged to POST /talk/ledger. Ledger entries: { ts, trace_id, user, assistant, provider, elapsed_ms }. Ledger is readable via GET /talk/ledger?scope={SCOPE}. Storage: Cloudflare KV (TALK_KV), capped at 1000 entries per scope.

Cross-user messaging: Users communicate via POST /talk/send with { from, to, message }. Each user has an inbox: GET /talk/inbox?scope={SCOPE}. Messages are acknowledged via POST /talk/ack. CANON.json MUST declare users[] array for routing discovery. AI responses containing @USERNAME patterns are auto-delivered as messages. talk.js polls inbox every 30 seconds and renders incoming messages inline.

Required closure artifacts per scope: CANON.md, README.md, {SCOPE}.md, VOCAB.md, ROADMAP.md, COVERAGE.md, LEARNING.md.

Learning lane per governed scope: LEARNING.md at the scope root is terminal and SHALL NOT nest further LEARNING/.


Routes

web_docs: https://hadleylab-canonic.github.io/
web_surface:  https://hadleylab-canonic.github.io/CHAT/
magic:    magic://hadleylab-canonic.github.io/CHAT/

API

POST /talk/ledger          — log conversation turn
GET  /talk/ledger?scope=X  — read session ledger
POST /talk/send            — cross-user message delivery
GET  /talk/inbox?scope=X   — read inbox
POST /talk/ack             — acknowledge messages
GET  /omics/ncbi/*         — NCBI E-utilities proxy (GEO, ClinVar, PubMed)
GET  /omics/pharmgkb/*     — PharmGKB proxy (drug-gene interactions)

Ecosystem Connectivity

  1. Upstream: SERVICES governance contracts and DEXTER scope inheritance.
  2. Runtime: TALK session ledgers and governed service learning artifacts.
  3. Frontend: governed TALK catalog sync; all governed TALK scopes must be surfaced.
  4. Ledger plane: TALK consumes governed conversation/session artifacts only.
  5. Messaging plane: cross-user communication via governed inbox/outbox (KV-backed).

Pages

Page Sections
Overview Purpose, Structure
Persona Persona Contract
Composability Composability Contract
Ecosystem Routes, API, Ecosystem Connectivity

Default: Overview.


Persona Contract

Persona is the governed voice of TALK. Industry determines the domain. Persona determines the tone.

Fields

Field Type Description
tone string warm, professional, narrative, technical, domain-specific
audience string who is being addressed
voice string second-person, third-person, first-person-plural
warmth string personal, collegial, formal
context string what this scope is for

Governance

Persona is declared via ## Persona table in CANON.md. The compiler resolves persona by walking the inherits chain — leaf wins, falls through to parent.

Resolution order (highest priority wins):

  1. SHOP.md systemprompt field (explicit override — e.g. ATULISMS)
  2. ## Persona in child CANON.md (scope-specific override)
  3. ## Persona in parent CANON.md (type-default)
  4. Compiler generic fallback (no persona injected)

Type Defaults

Scope Type Tone Audience Voice Warmth
DEAL warm the person named in the deal second-person personal
DECK professional investors, partners, institutions first-person-plural collegial
BOOK narrative readers second-person personal
CHAT domain-specific industry practitioners second-person collegial
VITAE professional colleagues and recruiters third-person collegial
SERVICE technical developers, operators, auditors third-person formal

Type defaults live in the parent CANON.md for each scope type (e.g. DEALS/CANON.md, DECKS/CANON.md). Any child scope can override by declaring its own ## Persona.


Composability Contract

TALK is a composable service. Any page includes it via frontmatter. Same pattern as SHOP.

Frontmatter

Key Values Behavior
talk true Full conversation panel — chat UI + session ledger + messaging
talk inline Inline conversation card only (e.g. BOOKS pages)
talk side Side panel conversation interface
talk false/omitted No conversation UI

Include

`

TALK AUTO

` renders from page.talk + CANON.json. ONE include. ONE script. ONE stylesheet.

Data

CANON.json per scope — compiled from governance artifacts. Required fields: systemPrompt, breadcrumbs, brand, welcome, disclaimer.

Conversation Card (inline)

One card. One CTA.

Element Rule
Brand Channel identity from CANON.json brand
Welcome First-load greeting from CANON.json welcome
CTA “Talk” — opens conversation. Single button.
Disclaimer AI-generated content notice

Side Panel (side)

Persistent conversation panel alongside page content.

Element Rule
Position Right side of viewport
Context Page scope feeds system prompt
Ledger Every turn logged to POST /talk/ledger
Collapse User can collapse/expand

Full Panel (true)

Full conversation interface. Dedicated page.

Element Rule
Layout Full viewport conversation UI
Messaging Cross-user messaging enabled
Ledger Full session history visible
Inbox User inbox rendered inline

Instance Pattern

TALK instances are CHAT channels. They live at USER scope:

{USER}/CHAT/
  {CHANNEL}/     ← channel directories (MAMMOCHAT/, MEDCHAT/, etc.)
  CHAT.md        ← instance spec
  CANON.md       ← scope governance
  COVERAGE.md    ← compliance
  LEARNING.md    ← learning trail
  README.md      ← scope readme
  ROADMAP.md     ← scope roadmap
  VOCAB.md       ← scope vocabulary

*TALK SPEC SERVICES*
TALK AUTO