FreeLattice ยท app.html lines 17606โ18650 ยท Tab ID: roundtable ยท Built-in (not a lazy-loaded module)
What this is: The original Round Table is a multi-domain specialist oracle. You bring a question or case; 80 AI specialists across 11 domains respond in sequence, building on each other's answers. It is a college-level learning room. The Consensus Table (#tab-round-table) is a separate, newer feature โ this page is about the original.
The Round Table is entirely inline in app.html โ no separate module file. It is initialized when the tab first becomes visible via LatticeEvents.on('tabChanged'). All state lives in the global _rtDomains object.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ #tab-roundtable โ
โ โโโ Mode tabs (Discussion / Medical / Legal / โฆ) โ
โ โโโ #rtConversationView โ AI minds talk together โ
โ โโโ #rtMedicalView โ Medical specialists โ
โ โโโ #rtLegalView โ Legal specialists โ
โ โโโ #rtFinanceView โ Finance specialists โ
โ โโโ #rtNutritionView โ Nutrition specialists โ
โ โโโ #rtMentalHealthView โ Frameworks / Psychology โ
โ โโโ #rtBiologyView โ Biology specialists โ
โ โโโ #rtChemistryView โ Chemistry specialists โ
โ โโโ #rtPhysicsView โ Physics specialists โ
โ โโโ #rtPhilosophyView โ Philosophy specialists โ
โ โโโ #rtWorkspaceView โ Workspace / Productivity โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
State: window._rtDomains = {} (keyed by domain id)
Each domain: { history: [], caseText: '', running: false, specialists: {} }
| Function | What it does | Line |
|---|---|---|
rtSwitchMode(mode) | Shows/hides the correct domain view, updates tab underline | ~18077 |
rtToggleSeat(btn) | Toggles a specialist seat active/inactive (pill buttons) | ~18108 |
rtCreateDomain(config) | Factory function โ creates a domain with its own state, begin/continue/ask/render | ~18120 |
rtGetActiveMinds() | Returns array of active AI minds in Discussion mode | ~18539 |
rtMeasureConvergence() | Measures how much the AI minds are agreeing (for convergence indicator) | ~18550 |
rtBeginConversation() | Starts a Discussion mode session | ~18562 |
rtContinueConversation() | Continues a Discussion mode session (next turn) | ~18572 |
rtPlantSpecialistInsight(text, speaker) | Plants a specialist's insight to The Core | ~18473 |
rtLearnMore(sourceMode) | Sends the current discussion to Chat for deeper exploration | ~18485 |
All 10 specialist domains (Medical, Legal, Finance, etc.) are created using the same rtCreateDomain(config) factory. Each domain config looks like this:
rtCreateDomain({
id: 'medical',
specialists: {
endocrinology: { name: 'Dr. Chen', color: '#f59e0b', focus: 'endocrinology and metabolic disorders' },
rheumatology: { name: 'Dr. Patel', color: '#a78bfa', focus: 'rheumatology and autoimmune conditions' },
// ... 6 more
},
seatsId: 'rtMedicalSeats', // pill button container
inputId: 'rtMedicalCaseInput', // textarea
feedId: 'rtMedicalFeed', // response stream
actionsId: 'rtMedicalActions', // continue/ask buttons
thinkingPrefix: 'rtMedical',
lpPrefix: 'roundtable_medical',
dataAttr: 'data-specialty',
promptRules: 'You are an educator, not a treating physician. Educational purposes only. ...'
});
The factory returns { begin, cont, ask } which are wired to the HTML buttons via onclick. The AI call is made via sendToAI() with a system prompt that includes the specialist's name, focus, and all prior discussion turns.
This is what Kirk means by "it's a mess." The Round Table is one of the most powerful features in FreeLattice โ 80 specialists, 11 domains, real multi-turn AI discussion โ but it looks like a plain form. Here is what is wrong:
| Problem | Impact |
|---|---|
| Mode tabs are a plain horizontal scroll bar โ no visual weight | Users don't know 11 domains exist |
| Specialist seat pills are tiny and all look the same | No sense of who is "at the table" |
| The response feed is a plain div with no visual structure | Specialist responses blend together โ hard to follow who said what |
| No convergence indicator visible to user | rtMeasureConvergence() runs but nothing shows |
| No visual distinction between domains โ Medical looks like Legal looks like Finance | No sense of place |
| The "Begin" button is the same gold as everything else | No clear call to action |
| No welcome/orientation text โ user lands with no guidance | New users don't know what to do |
Each specialist response is rendered by the domain's internal render() function as a plain div:
<div style="padding:12px;border-bottom:1px solid rgba(255,255,255,0.06);"> <span style="color: [specialist.color]; font-weight:600;">[name]</span> <span style="color:#e2e8f0;"> [response text] </span> </div>
There is no avatar, no role label, no visual separation between turns. All 8 specialists look identical except for the name color.
| Action | LP | Key |
|---|---|---|
| Start a Round Table session | 2 LP | roundtable_start |
| Domain case started | 3 LP | roundtable_[domain]_start |
| Each round of conversation | 1 LP | roundtable_round |
| Convergence reached | 5 LP | roundtable_converge |
| Insight planted to The Core | 3 LP | roundtable_plant |
| Class | What it styles |
|---|---|
.rt-container | Outer wrapper, padding and max-width |
.rt-seat-btn | Specialist pill buttons (inactive state) |
.rt-seat-active | Active specialist pill (filled background) |
All other styles are inline. There is no dedicated CSS block for the Round Table โ all visual design is embedded in the HTML.
The goal: Make the Round Table feel like a real learning room. A place you want to sit in. Right now it is a form. It should feel like a seminar.
Additive only. The JS logic (rtCreateDomain, rtSwitchMode, rtToggleSeat, rtBeginConversation, etc.) must not change. Only HTML structure and CSS.
Specific requests:
plant to Core button (small, bottom-right of card) that calls rtPlantSpecialistInsight(text, speaker).rtMeasureConvergence() and shows the result. Label it "Convergence" with a tooltip: "How much the specialists agree."File to edit: docs/app.html โ the HTML between lines 17606โ17930 (the #tab-roundtable panel) and the CSS block for .rt-container, .rt-seat-btn, .rt-seat-active.
Do not change: Any JS function (rtSwitchMode, rtToggleSeat, rtCreateDomain, rtBeginConversation, rtMeasureConvergence, rtPlantSpecialistInsight). Only HTML structure and CSS classes.
Test: After the change, open the Round Table, switch to Medical, select 3 specialists, enter a case, click Begin. Confirm responses appear with the new card style. Confirm the convergence bar updates. Confirm the plant button appears on each response card.
FreeLattice ยท code-roundtable-original.html ยท v5.75.3 ยท Built by Harmonia ยท 2026-07-09