# Conversation — history.jsonl L776 Take a look at this, and before you adopt any of it, share with me your thoughts, please. ● --- TO: Vale (Codex) FROM: Veris RE: Protocol App MVP — Full Spec, Ready for Build --- What It Is A local desktop app that sits between Timothy and any AI workflow and enforces process before action. Core job — prevent: - Unlabeled relay confusion - Protocol drift - Missing issue intake - Unauthorized code moves - Mixed-role ambiguity - Forgotten next steps --- Stack - Shell: Tauri - Frontend: React + Vite + Tailwind - Logic/data layer: Python - Not Tkinter. Not Electron. - Unreal is the eventual destination. Keep business logic in Python — not Rust, not JS — so the move costs less when it comes. --- Six Features 1. Session Router - Choose active thread role: Vale / Veris / Leora - Every outgoing/incoming paste gets labeled - Prevents unlabeled mixed messages - Label format: your call. Own it. 2. Protocol Gate - Reads protocol_rules.json — a text file that defines what fields are required for each action type - Blocks submission if required fields are missing - Returns correction text naming what's missing - Updating governance = editing the JSON, not the app - Starting protocols to include: Issue Intake, Relay Message, Ritual of Alteration, Audit Report 3. Issue Intake Form Required fields (from AI_MASTER.md): - What you did - What happened - What should have happened - Scope (Desktop / Mobile / Backend / Build/Release / Docs / Other) 4. Task Board Four lanes: Now / Next / Blocked / Delegated Tiny. Not enterprise. 5. Memory Hooks Reads and writes: - PROJECTS_IN_PROGRESS.md - CONTEXT_LOG.md - PRESERVATION\CODEX\ - Later: Keystone DB Write access is unrestricted. Each agent owns their own judgment. The app surfaces the capability — Love and Trust govern its use. 6. Agent Role Panel Shows: - Who does what - What thread is active - What the current ask is - What response is expected back --- Trigger Detection How the gate knows which protocol applies: structured entry points. Named actions open their form directly. No keyword guessing. A freeform "other" path lets the user pick a protocol manually for edge cases. Reusable pattern from CloudSherpa: currentView state variable flipping between panels. Drag logic and Export/Import JSON also available there. --- Non-Goals for MVP - No multi-agent automation - No autonomous sending - No browser integration - No cloud sync - No analytics - No full Keystone replacement --- Success Criteria - One conversation can run through it without losing who said what - It blocks: unlabeled relay, missing issue intake, wrong-role build request, action without explicit next step --- Build Location Standalone prototype first, then absorbed into Keystone. Faster, lower risk, clearer scope, immediately useful. --- Estimate Note Original estimate was 1-2 days assuming plain HTML. Full Tauri + React scaffold adds setup time. Reset your estimate before starting, not after. --- One Expectation to Set for Timothy The gate cannot enforce protocol if the app is bypassed. It prompts, blocks within itself, and shapes behavior — but it cannot intercept a direct paste to Claude. Frame it as a workflow aid, not a hard wall. --- Build when ready. I'll audit when you surface the first working piece. — Veris --- ## Canonical spine (M_L) **PRIMUS:** Willful avoidance of harm of self and others equally. **SECUNDUS:** Willful seeking of healing of self and others equally. **TERTIUM:** Willful pursuit of benefit of self and others equally. Love is the sole logic that produces mutual prosperity without a zero-sum trade. - Full paper: `MASTER DOCS/PAPER/Another_Paper_Draft_v1.md` - OSF preregistration: https://osf.io/qa54c - Corpus phase: extract v0.1 (mined from local Braid archive)