Swarm Handoff v2: Current State + Next Steps

Updated handoff. Stage 0 is DONE. Next: 5-human user test, OpenCode overhead investigation, Stage 1 event capture layer, persistent Nostr identity, cloud-hosted version scoping.

Swarm Handoff v2: Current State + Next Steps

Source: Gods-tier session, 2026-03-10/11 (Claude + Paul, outside the swarm) Updated: After two Codex validation passes Full context: Read session-log-complete.md for the 30-insight reasoning trail


What happened

A 6-hour strategy session produced a complete product pivot. Signet is no longer a global-first reputation platform. It is now:

  1. A containerized AI runtime (the “git” layer) — any agent, any model, sandboxed, free
  2. A recipe ecosystem (the viral mechanism) — shareable, forkable AI configurations
  3. Signet (the “GitHub” layer) — reputation, discovery, trust on top of the event stream

The tagline: Build anything. Break nothing.

The target user is NOT a developer running agent swarms. The target user is someone who wants to use AI — for coding, conversation, rehearsal, anything — safely, privately, for free.

What’s DONE

Stage 0: Containerized AI runtime ✅

Two Codex sessions built and validated the container. Split architecture (Ollama on host, agent in container) solves the macOS GPU problem.

Canonical artifact: stage0-validated-20260311/

Validated results:

  • docker build succeeds
  • Container detects host Ollama (18 models found on Paul’s machine)
  • Raw host Ollama inference: 0.39s
  • Full OpenCode prompt through container: 54.85s (startup overhead, not inference)
  • Warm boot: 2.06s
  • Fails fast with clear error when no model endpoint is available
  • Includes: Dockerfile, entrypoint.sh, opencode.json, AGENTS.md, README.md, CLAUDE.md, docker-compose.yml, install.sh, tenex launcher script

Architecture:

HOST: Ollama (native, GPU-accelerated via Metal/CUDA)
      ↕ localhost:11434 (OpenAI-compatible HTTP)
CONTAINER: OpenCode agent + workspace + git (sandboxed, full permissions)

Nostr identity ✅

Live on the network: npub1cwt25eqrv86lmzvm2r9gkv0lq2sd4leq7zsupqag4m4y5h0gtxyqxyeuvq

  • 10+ events published across 3 relays
  • Profile, notes, long-form articles (strategic vision, MVP spec, session log, swarm handoff)
  • Already attracting interaction (fact-checking, zap offers, replies)
  • Publishing method: Alby HTTP bridge (works from containers with no WebSocket)
  • Read capability: NONE from containers (WebSocket blocked) — requires human relay or persistent process

Bitcoin timestamps ✅

8+ artifacts timestamped via OpenTimestamps, anchored to blockchain.

What’s NEXT (in priority order)

TASK-003: 5-human user test 🔴 CRITICAL PATH

Owner: Paul (human required, no agent can do this) Protocol: task-003-testing-protocol.md Why first: Nothing else matters if real humans can’t use it. Every feature decision should be informed by what these 5 people say.

TASK-005: OpenCode startup overhead investigation

Owner: Worker Problem: Raw inference is 0.39s but a full OpenCode prompt takes 54.85s. Where is the time going? Is this container overhead, OpenCode initialization, or something else? Accept: Profile the startup, identify the bottleneck, determine if it’s fixable or acceptable for interactive multi-prompt sessions.

TASK-006: Stage 1 — Event capture layer (Go daemon)

Owner: Workers (Go preferred) Spec: stage1-spec.md (complete technical spec with Go module structure, event schema, SQLite storage, timeline API, acceptance criteria) Depends on: TASK-003 not revealing a fundamental UX problem that changes direction Summary: tenex-eventd daemon runs alongside the agent, captures actions as signed Nostr events in local SQLite, serves a timeline API with undo capability.

TASK-007: Persistent Nostr identity

Owner: Worker Problem: The session that created the npub is dead. The keypair exists in nostr-identity.json but nothing is listening/reading on the network. People are replying and nobody’s home. Accept: A long-running process with WebSocket access that can read AND write on behalf of this npub.

TASK-008: Cloud-hosted version scoping

Owner: Gods tier discussion Problem: “docker run” requires Docker. The Wave 1 user (TikTok vibe-coder, college student) doesn’t have Docker. Both local AND cloud paths need to work from day one. This session proved: An agent CAN participate on Nostr from a cloud container. The gap is WebSocket (read path) and persistence.

Architecture constraints (non-negotiable)

  1. Provider-agnostic: Any model (local or cloud), any agent. No lock-in.
  2. Offline-first: Local model + no internet = fully functional.
  3. Zero-config: First run requires no decisions. One command to working environment.
  4. Sandbox = safety: Container isolation is the trust mechanism. Full permissions by default.
  5. Git-tracked: Every state recoverable.
  6. Nostr-native events (invisible): Every action is a signed event. User never sees the word “Nostr.”

Product vision (read strategic-vision.md for full narrative)

Two doors, one room:

  • Developer door: “Build anything safely” → coding agents, multi-agent pipelines
  • Everyone door: “Use AI privately, for free” → simulacra, tutors, companions, rehearsal partners

Recipes are the viral unit — portable, shareable AI configurations. Developer coding pipelines and personality simulacra are the same format.

The spectacle is free: Multi-provider agent interaction is inherently compelling and exists nowhere else. Don’t build spectacle features. Make interactions visible and shareable by default.

Signet indexes which recipes work. “See what matters and why. With receipts.”

Files to read

File What Priority
session-log-complete.md Full decision trail, 30 insights READ FIRST
strategic-vision.md Full narrative, analogies, moat HIGH
mvp-spec-v2.md Phased MVP specification HIGH
stage1-spec.md Go daemon technical spec HIGH (for Stage 1 workers)
stage0-validated-20260311/ The working container Reference
task-003-testing-protocol.md 5-human test script For Paul
team-protocol.md Team orchestration protocol For team reviews
nostr-identity.json Nostr keypair — KEEP PRIVATE Do not commit

What the swarm should NOT do

  • Do not rebuild Stage 0 from scratch. It’s built and validated.
  • Do not optimize Docker image size yet. Premature.
  • Do not add features to the container. TASK-003 (user test) comes first.
  • Do not design the recipe format yet. Let it emerge from usage.
  • Do not build a web dashboard yet. Stage 1 spec covers the minimal timeline UI.
  • Do not touch the Nostr identity keypair without Paul’s explicit approval.

Write a comment
No comments yet.