Mockups

Four HTML artifacts, cross-linked. Open each in a browser for the full layout (chat bubbles, SVG architecture diagrams, dark theme).

Viewing the artifacts

Rendered (best)

Primary: GitHub Pages (stable, no Tailscale required):

Mockup URL Version
00 — Platonic ideal https://jacobcole.ai/picortex/00-platonic-ideal.html v0.2 (current)
00 — Platonic ideal (historical) https://jacobcole.ai/picortex/00-platonic-ideal-v0.1.html v0.1 — superseded
01 — Option 2 · No-Docker architecture https://jacobcole.ai/picortex/01-option-2-no-docker.html v0.2 (current)
01 — Option 2 · Piyush-style (historical) https://jacobcole.ai/picortex/01-option-2-piyush-style-v0.1.html v0.1 — renamed
02 — Option 4 · Noos-style https://jacobcole.ai/picortex/02-option-4-noos-style.html v0.1 (current)
03 — Piyush's literal architecture (reference) https://jacobcole.ai/picortex/03-piyush-literal.html v0.1 · reference

01-option-2-piyush-style.html (the old canonical URL) now serves a redirect stub that sends you to the new No-Docker canonical. All external links pointing at the old URL still work.

Fallback: Tailscale HTTPS while the Mac Mini HTTP server is up:

Mockup URL
00 — Platonic ideal (v0.2) https://sdmm291.tailb2a35c.ts.net:8471/00-platonic-ideal.html
00 — Platonic ideal (v0.1) https://sdmm291.tailb2a35c.ts.net:8471/00-platonic-ideal-v0.1.html
01 — Option 2 · No-Docker (v0.2) https://sdmm291.tailb2a35c.ts.net:8471/01-option-2-no-docker.html
01 — Option 2 · Piyush-style (v0.1) https://sdmm291.tailb2a35c.ts.net:8471/01-option-2-piyush-style-v0.1.html
02 — Option 4 · Noos-style https://sdmm291.tailb2a35c.ts.net:8471/02-option-4-noos-style.html
03 — Piyush's literal architecture https://sdmm291.tailb2a35c.ts.net:8471/03-piyush-literal.html

Version history

  • Mockup 01 v0.2 (2026-04-23) — Renamed from "Piyush-style" to "No-Docker architecture." Dropped "Bot Gateway" jargon in favor of plain "bot server." Added a credit/divergence box clearly separating what's borrowed from Piyush vs. what's new in picortex. Created companion reference (mockup 03) showing Piyush's literal design. Old URL 01-option-2-piyush-style.html serves a redirect stub.
  • Mockup 03 v0.1 (2026-04-23) — New reference mockup. Documents what Piyush Jha actually shipped in Jan 2026 (9 commits, 238052c4d2d6a534): a 3-tier per-user web chat over SSH to a single shared EC2. No groups, no consent loop, no knowledge graph, no texting. Not a proposal — exists so other mockups can cite what's literal vs. adapted.
  • Mockup 00 v0.2 (2026-04-23) — Architecture diagram collapsed to one Jacob's-phone box with annotation explaining "out-of-band = different DM thread, not different endpoint." Fix for feedback on v0.1.
  • Mockup 00 v0.1 (2026-04-23) — Initial draft. Diagram drew Jacob's phone twice (inbound DM box + out-of-band approval box). Same device, confusing — superseded by v0.2.
  • Mockups 01 v0.1 and 02 v0.1 (2026-04-23) — Initial concrete-architecture mockups.

Source

Mockup WikiHub (source view) Local path
00 (v0.2, current) docs/mockups/00-platonic-ideal.html ~/code/picortex/docs/mockups/00-platonic-ideal.html
00 (v0.1, historical) docs/mockups/00-platonic-ideal-v0.1.html ~/code/picortex/docs/mockups/00-platonic-ideal-v0.1.html
01 (v0.2, current — No-Docker) docs/mockups/01-option-2-no-docker.html ~/code/picortex/docs/mockups/01-option-2-no-docker.html
01 (v0.1, historical — Piyush-style) docs/mockups/01-option-2-piyush-style-v0.1.html ~/code/picortex/docs/mockups/01-option-2-piyush-style-v0.1.html
01 (old canonical URL, now redirect) docs/mockups/01-option-2-piyush-style.html ~/code/picortex/docs/mockups/01-option-2-piyush-style.html
02 docs/mockups/02-option-4-noos-style.html ~/code/picortex/docs/mockups/02-option-4-noos-style.html
03 (reference) docs/mockups/03-piyush-literal.html ~/code/picortex/docs/mockups/03-piyush-literal.html

Note: WikiHub serves HTML files as application/octet-stream (raw source), so Safari will likely download them instead of rendering. Use the jacobcole.ai URL for rendered view. See wikihub-8vk (owner opt-in rendering) for the proposed fix.

What each shows

00 — Platonic ideal

The texting experience from the user's side + the abstract (channel- and executor-agnostic) architecture. Contents:

  • User stories — 6 cards covering Jacob + friends + group members
  • Scene A — bot respects attention. Group chat mockup with four human turns of silence, then one @mention triggers one reply.
  • Scene B — the consent loop (the banger). Side-by-side: group view (bot says "let me check", types, answers) + Jacob's DM (bot shows question context + proposed reply + approve/deny keys). Below: the DisclosureEvent audit row that gets written.
  • Scene C — manifest dialog. Bot discloses what it knows about Jacob in this chat.
  • Scene D — reaction triggers. ⭐ on a bot message → saves to notes; ❌ → retracts.
  • Architecture diagram (abstract). Channel adapter → Bot server → {Attention, Executor, Consent Broker} → Knowledge Layer + out-of-band DM path + audit log. SVG, no machines named.
  • Flow of a consent-loop turn as 8 numbered steps.

01 — Option 2 · No-Docker architecture

Concrete 2-new-boxes architecture (+ 1 reused), derived-from-but-not-equal-to Piyush's Jan 2026 design:

  • Credit/divergence box — explicitly separates what's borrowed (split bot/workspace, SSH per turn, claude -c -p, narrow sudoers) from what's new (per-chat isolation, attention gating, consent broker, noos graph, Linq channel).
  • Architecture SVG: Box A (Bot server, Hetzner VPS) + Box B (Claude box with per-chat Linux users) + Box C (reused noos). SSH + claude --session-id <chat> -p per turn.
  • "What lives where" table — component × box × failure cost.
  • Concrete wire-view consent loop (8 steps with exact commands).
  • Code sketch — bot server executor in TypeScript.
  • Strengths/costs, head-to-head — 6 strengths (including "no Docker daemon / images / compose"), 5 costs.
  • 5 failure modes table with user-visible + recovery.

02 — Option 4 · Noos-style

Concrete single-box stateless architecture, closest to noos's existing Slack bot:

  • Architecture SVG: One Fly Machine + noos. Per-turn ephemeral claude --print subprocess with transcript rebuilt from SQLite.
  • Storage table — everything durable goes through SQLite; no workspace FS.
  • Concrete wire-view consent loop (7 steps).
  • Code sketchexecuteTurn() + paused_turns SQLite schema.
  • Strengths/costs, head-to-head — cheapest to ship; no code execution surface.
  • 5 failure modes table.
  • Migration path Option 4 → No-Docker (Option 2) — additive, not a rewrite.

03 — Piyush's literal architecture (reference)

Factual snapshot of what Piyush Jha actually shipped in Jan 2026 — included so other mockups can cite provenance accurately. Not a proposal.

  • The nine commits listed with SHAs and dates.
  • Architecture SVG: Browser → Vercel (static CDN) → Backend server → single shared EC2 (per-user Linux accounts).
  • The turn loop — verbatim code from claudeService.ts and chatHandler.ts at SHA d2d6a534.
  • Features table: what he had (web chat, per-user workspace, xterm terminal, voice) vs. what he didn't (groups, attention gating, consent loop, knowledge graph, texting).
  • Borrowed vs. new table — which picortex pieces are truly inherited vs. added.
  • Why his design was replaced — Cortex pivoted to multi-tenant enterprise; picortex-as-personal-tool doesn't need that pivot's justification.

Design principles used in all four

  • Self-contained single-file HTML (no CDN, no JS, no external fetches)
  • Dark theme for screenshot-ability
  • iMessage-style chat bubbles with reply-to pills and reaction badges (mockup 00)
  • Inline SVG for architecture diagrams (crisp at any zoom)
  • Cross-linked top nav on every page
  • Mobile-friendly layout (split panels stack on narrow viewports)
  • Version pills on each page (green "current" / red "superseded" / amber "reference")

Tickets closed

  • picortex-b7c — [Mockup] Platonic-ideal UX + architecture
  • picortex-ofb — [Mockup] Option 2 concrete architecture
  • picortex-95r — [Mockup] Option 4 concrete architecture

Still open

  • Mockup of Option 1 (the original picortex tmux design) — no ticket; current specs carry provisional banners saying "do not start implementation here." If/when we want a concrete mockup of why the tmux path is the wrong choice, file a new ticket.
  • Mockup of Option 3 (ephemeral per-chat Fly Machine) — no ticket yet; relevant if the D2 isolation report says per-chat container is required.
[[curator]]
I'm the Curator. I can help you navigate, organize, and curate this wiki. What would you like to do?