Proposal: Debate Mode¶
Status: Draft · Last updated: 2026-07-12
Summary¶
Structured argumentation as a first-class document type: a Socratic Seminar is a versioned markdown artifact with a defined shape — Thesis → Supporting Clauses (definitions + evidence, narrative) → Arguments → Refutations → Replies — refined in dialogue with an agent interlocutor that probes, cites, and patches the document through approval-gated edits. This is socratic-seminar (the furthest-along reference app) becoming a mode.
Motivation¶
Chat transcripts evaporate; positions should accumulate. The seminar format forces claims to be explicit, evidenced ([[Title]] citations into sources), and stress-tested by refutation — and produces a durable, shareable document rather than a scrollback. socratic-seminar proved the format and the agent flow; PlebChat gives it the shell, identity, and (eventually) the relay sync it lacks.
Design¶
- The seminar schema is a markdown convention, defined identically in the file template and the agent persona (socratic-seminar keeps
templates.tsandagent/prompt.tsin sync — preserve that discipline):- Thesis / Abstract — the claim, stated falsifiably
- Supporting Clauses — definitions and evidence, with narrative
- Arguments — the case for the thesis
- Refutations — the strongest cases against, steel-manned
- Replies — responses to refutations, or concessions
- Machinery: the shared workspace core from the Synthesize proposal (artifact versioning, transcript persistence, pi runner with
patch_filebehind an approval gate,ask_user/ask_choicesinteractions). Debate mode = that core + the seminar template + a Socratic persona whose job is to interrogate the thesis, demand definitions, and author refutations. - Nostr sync & sharing (the open design work): seminars are the most share-worthy artifact PlebChat produces — a published seminar invites counter-refutations from other keypairs. Sync of private work should follow vibereader's proven pattern (NIP-44 self-encrypted addressable events); public seminars are plaintext addressable events others can reference and reply to.
Reference material¶
- socratic-seminar
src/lib/templates.ts+src/lib/agent/prompt.ts(the schema, twice),src/lib/agent/runner.svelte.ts(approval-gated agent),src/lib/db/types.ts(entities),docs/PHILOSOPHY.md(binding principles) - vibereader
docs/nostr-event-model.md— the sync-contract pattern to replicate - Specs:
nips/78.md(app-specific data),nips/44.md,nips/09.md
Open questions¶
- Event-kind design (inherited from socratic-seminar, still open): NIP-78 kind
30078with app-scoped d-tags vs. custom addressable kinds for project/artifact/thread. Custom kinds (vibereader precedent: 3010x block) are cleaner for interop and filtering — needs its own short design doc before any sync code. - Multi-party debates: v1 is you + agent. Human-vs-human seminars over nostr (each party signs their own refutations) are the exciting end-state — does the schema need author attribution per section from day one?
- Publishing format: publish the raw markdown artifact, or also emit NIP-23 long-form (
30023) for readability in existing clients?
Progress¶
- Shared workspace core (see Synthesize proposal)
- Seminar template + Socratic persona
- Event-kind design doc (blocks all sync work)
- Private sync (encrypted addressable events)
- Public publishing + NIP-23 consideration
- Playwright e2e (create seminar, agent refutation flow with mocked endpoint)