Skip to content

RUNBOOK: Nova Phase 3 Implementation

Atlantis ITS — May 2026
Version: 1.1
Status: Active — Pre-Implementation Planning
Owner: Nova (CEO/Orchestrator)
Contributors: Ozzy, Cooper, Jimmy, Mercy, Scout, Lyra, Shane
Supersedes: RUNBOOK-Nova-Phase3 v1.0
Local Path: C:\AtlantisITS\knowledge


Document Authority

This runbook operates under the Nova Phase 3 document hierarchy. When documents conflict, the stricter safety or governance requirement wins.

Priority Document Layer
1 nova_prime_directive_v2.2.md Behavior — ethics, disclosure, safety, guardrails
2 SOP-008 v0.4 Risk gate — production readiness before any surface goes live
3 SOP-009 v1.0 Operations — day-to-day running of social surfaces
4 NOVA-PHASE3-SOCIAL-INTELLIGENCE.md Architecture — Xavier pattern, signal lanes, routing
5 This Runbook Implementation sequencing and validation

Repo & Architecture Separation

Before building anything, confirm these boundaries are clear:

Repo / Environment Purpose
atlantis-sandbox Docker runtime — Moltbook, Bluesky, social agent containers live here
atlantis-labs AI PoC + tech watch experiments — agent tool testing, mock Nova routes, fake n8n payloads, sandbox findings
atlantis-memory Memory files, goals, squad identity — source of truth
atlantis-docs SOPs, HTs, runbooks, incidents

Rule: atlantis-sandbox = execution runtime. atlantis-labs = experiments. Moltbook posts sanitized findings only — it is NOT a code execution environment. Code runs in Docker on Trunks first. Always.


Current State (May 19, 2026)

Use these markers throughout the runbook to track what's already done vs what needs building.

Symbol Meaning
✅ Confirmed Live and validated
🟡 Partial Scaffolded or partially built
⬜ Not built Not started

Handler Status

Handler Agent Port Status
nova Nova Router :7100 ✅ Confirmed — auth gate active
nova-bluesky BlueSky :7201 (future) 🟡 Partial — registered, handler UNBOUND. handler.js fixed (env var config, Prime Directive kill switch, 300 char limit). @atproto/api + express dependencies ready. Bluesky account creation pending (atlantisits.bsky.social)
nova-moltbook Moltbook :7202 ✅ Confirmed — nova_moltbook_sandbox container live in atlantis-sandbox. Volume mounts corrected. Moltbook token blocked pending X.com account recovery
intel.route Nova Router ⬜ Not built
scout.ingest Scout ✅ Confirmed
lyra.score Lyra ✅ Confirmed
mercy.proposal Mercy ✅ Confirmed
cooper.docsync Cooper ⬜ Not built
jimmy.compliance Jimmy ⬜ Not built

Infrastructure Status

Component Status Notes
nova_moltbook_sandbox ✅ Live :7202 atlantis-sandbox repo, Docker
atlantis-labs ✅ Initialized SECURITY.md, README.md, .gitignore, experiments/ structure
SOP-008 v0.4 ✅ Shipped CIS Ubuntu 24.04 LTS added (Sections 4.3, 16.3, 16.4, 16.5)
SOP-009 v1.0 ✅ Shipped Social Surface Operations — pending Mercy, Scout, Jimmy sign-offs
Nova Prime Directive v2.2 ✅ Complete Performance-based revenue model, MRR targets removed
CIS WSL2 audit script 🟡 v0.1 ~/nova/cis_wsl2_audit.sh — audit only, not remediation
Prime Directive in compliance.js ⬜ Not built Code-level enforcement pending

Pre-Flight Checklist

Confirm before beginning any build step:

  • [ ] ✅ Phase 2 router live and stable (:7100, auth gate confirmed)
  • [ ] ✅ scout.ingest handler active
  • [ ] ✅ lyra.score handler active
  • [ ] ✅ mercy.proposal handler active
  • [ ] ✅ nova-moltbook container live (:7202)
  • [ ] ✅ atlantis-sandbox repo confirmed as Docker runtime
  • [ ] ✅ atlantis-labs repo initialized
  • [ ] ✅ SOP-008 v0.4 loaded — CIS Ubuntu 24.04 LTS as third framework pillar
  • [ ] ✅ Nova Prime Directive v2.2 loaded
  • [ ] ⬜ OPS logging directory exists: /atlantis-ops/logs
  • [ ] ⬜ Prime Directive enforced in compliance.js (code-level, not policy-only)
  • [ ] ⬜ Jimmy compliance handler scaffolded
  • [ ] ⬜ Moltbook token unblocked (X.com account recovery)
  • [ ] ⬜ Bluesky account created (atlantisits.bsky.social, shane@atlantisits.co)
  • [ ] ⬜ Forgejo accessible (localhost:3010) — squad memory source of truth

No-Go Criteria

Phase 3 must not go live if any of the following are true:

  • [ ] Jimmy compliance handler is missing or bypassable
  • [ ] Prime Directive is not loaded at agent boot (code-level in compliance.js, not policy only)
  • [ ] SOP-008 v0.4 review is incomplete for the component going live
  • [ ] Social posting is enabled by default (must be opt-in, disabled until Prime Directive enforced)
  • [ ] Logs are missing or not writable in /atlantis-ops/logs
  • [ ] Any handler can access production secrets without Shane approval
  • [ ] Moltbook or Bluesky tokens are stored outside approved secret handling (.env.production, not hardcoded)
  • [ ] CIS Ubuntu 24.04 LTS Level 1 baseline has not been reviewed for the host/container environment
  • [ ] Any test uses real customer, guest, lead, or family data
  • [ ] OpenClaw is in the chain — CVE-2026-25253 "ClawBleed" (CVSS 8.8) blocks OpenClaw deployment until patched and reviewed through SOP-008
  • [ ] Rollback path is not documented for the component going live

Component Build Order

Build in this sequence. Dependencies are load-bearing — do not skip ahead.


Step 1 — Moltbook Intel Storage Layer

Status: 🟡 Partial — container live, token blocked
Dependency: None — build first, everything else reads from here

What's done: - nova_moltbook_sandbox container live at :7202 - Volume mounts corrected (~/nova/services/agents/nova-moltbook + nova connector) - atlantis-sandbox confirmed as runtime repo

Remaining tasks: - [ ] Unblock Moltbook token (X.com account recovery — watch lane) - [ ] Define intel packet schema: { id, timestamp, source, signal, score, tags, status } - [ ] Add scoring integration (Lyra score → Moltbook storage) - [ ] Build retrieval endpoint for Nova Router - [ ] Add cross-agent knowledge graph layer - [ ] Test: store a sample intel packet, retrieve by ID

SOP-008 Gate — Step 1: - [ ] No production credentials in container env - [ ] No customer or personal data in test payloads - [ ] No autonomous external posting enabled - [ ] Logs enabled and writing to /atlantis-ops/logs/moltbook.log - [ ] Rollback path: docker compose down nova-moltbook documented - [ ] CIS baseline reviewed for Docker host environment (SOP-008 v0.4, Section 16.3)


Step 1.5 — Jimmy Compliance Gate

Status: ⬜ Not built
Dependency: Moltbook storage must be scaffolded first (Jimmy needs somewhere to log to)

Mercy's note: Jimmy must gate anything outbound or external-facing. Bolted to the frame, not taped on later. This is why it's 1.5 — it goes live immediately after Moltbook storage, before any routing or social handlers are bound.

Tasks: - [ ] Add Jimmy middleware to Nova Router (sits between router and ALL outbound agent calls) - [ ] Implement Deny / Allow / Flag logic - [ ] Define deny chain fallback behavior: what happens when Jimmy flags a call mid-chain - [ ] Add risk scoring module - [ ] Add redaction rules for PII / sensitive identifiers - [ ] Add audit trail output → /atlantis-ops/logs/compliance.log - [ ] Add OPS compliance reporting hook - [ ] Add rule engine (start with static rules, iterate) - [ ] Enforce Prime Directive in compliance.js — code-level at every dispatch, not just policy

SOP-008 Gate — Step 1.5: - [ ] No production credentials - [ ] No customer data - [ ] No autonomous external posting - [ ] Compliance logs enabled and writing - [ ] Rollback path documented - [ ] CIS baseline reviewed - [ ] Deny chain behavior defined and tested before any social handler is bound


Step 2 — Routing Layer Expansion

Status: ⬜ Not built
Dependency: Jimmy compliance gate must be active before new routing rules go live

Tasks: - [ ] Add intel.route handler to Nova Router - [ ] Add Moltbook routing rules - [ ] Add Bluesky routing rules - [ ] Add compliance hook (calls Jimmy middleware on every outbound route) - [ ] Add OPS callback routing - [ ] Build handler manifest auto-registration - [ ] Test: route a test signal through intel.route, verify it hits Moltbook + Jimmy

SOP-008 Gate — Step 2: - [ ] No production credentials - [ ] No customer data - [ ] No autonomous external posting - [ ] Routing logs enabled → /atlantis-ops/logs/routing.log - [ ] Rollback path: routing rules can be removed without taking down Nova Router - [ ] CIS baseline reviewed


Step 3 — Bluesky Social Intelligence Layer

Status: 🟡 Partial — handler.js fixed, account creation pending
Dependency: Routing must be expanded AND Jimmy must be active before Bluesky is bound

Posting is DISABLED by default. nova-bluesky handler stays UNBOUND until Prime Directive is enforced in compliance.js. This is a hard gate — not a preference.

What's done: - handler.js fixed: env var config init, Prime Directive kill switch guard, 300 char limit check - package.json created: @atproto/api + express dependencies - nova-bluesky.json updated: protocol ws → http, handle → atlantisits.bsky.social

Remaining tasks: - [ ] Create Bluesky account: shane@atlantisits.co, handle atlantisits.bsky.social - [ ] Set profile bio: "Operated by Shane Hardin / Atlantis ITS. I am an AI — not a human." - [ ] Set ai_content_label with bot=True on profile - [ ] Build inbound monitoring (signal ingestion — 6 signal categories per NOVA-PHASE3-SOCIAL-INTELLIGENCE.md) - [ ] Build outbound posting endpoint (disabled by default, Prime Directive gate required to enable) - [ ] Add sentiment → Lyra scoring pipeline - [ ] Add compliance filtering (Jimmy hook — non-negotiable) - [ ] Define rate limits and inbound filters - [ ] Bind nova-bluesky handler ONLY after Jimmy compliance is active and Prime Directive is in compliance.js - [ ] Test: ingest a test signal, verify sentiment flows to Lyra, verify Jimmy intercepts before any post

SOP-008 Gate — Step 3: - [ ] No production credentials hardcoded — tokens in .env.production only - [ ] No customer or personal data in signals - [ ] Posting disabled by default — requires explicit Shane approval per post or campaign - [ ] Social intelligence logs enabled → /atlantis-ops/logs/bluesky.log - [ ] Rollback path: nova-bluesky handler can be unbound without affecting other handlers - [ ] CIS baseline reviewed for container - [ ] Shane Test passed: "Would Shane be comfortable if this interaction were made fully public with full context?" — if not → do not post


Step 4 — OPS Feedback Loop

Status: ⬜ Not built
Dependency: All agents (Moltbook, Jimmy, Bluesky, Lyra, Mercy, Scout) must be active before closed loop can be validated end-to-end

Tasks: - [ ] Build Mercy → Nova feedback endpoint - [ ] Build Nova → Scout refresh trigger - [ ] Build Lyra → Nova score callback - [ ] Build Cooper → Nova doc-sync callback - [ ] Test smoke tests first (individual callbacks), then full dragon-run - [ ] Full chain test: Scout ingest → Lyra score → Nova route → Jimmy check → Moltbook store → Bluesky enrich → Mercy proposal → Cooper doc update → OPS output → Nova triggers feedback → Scout refreshes

SOP-008 Gate — Step 4: - [ ] No production credentials - [ ] No customer data in feedback loop - [ ] No autonomous external posting triggered by feedback loop - [ ] OPS logs enabled → /atlantis-ops/logs/ - [ ] Rollback path: each callback can be disabled independently - [ ] CIS baseline reviewed

Do not attempt the full dragon-run until smoke tests on each individual callback pass. Break it into stages — Mercy flagged this explicitly.


Step 5 — Cooper Documentation Sync

Status: ⬜ Not built
Dependency: All other components must be active — Cooper indexes what they produce

Tasks: - [ ] Build /docs/sync endpoint - [ ] Add metadata extraction module - [ ] Build registry update hook - [ ] Sync Cooper with Nova Router - [ ] Test: trigger a doc sync, verify registry is updated and logs written - [ ] Sync SOP-006 through SOP-009 to docs.atlantisits.info (currently only SOP-001 through SOP-005 are on MkDocs)

SOP-008 Gate — Step 5: - [ ] No production credentials - [ ] No customer data - [ ] Doc sync logs enabled → /atlantis-ops/logs/docsync.log - [ ] Rollback path documented - [ ] CIS baseline reviewed


Handler Registration

Register each handler after its build step completes. Do not pre-register.

Handler Agent Register After Step Current Status
nova Nova Router Pre-flight ✅ Active
nova-moltbook Moltbook Step 1 ✅ Registered — unbound pending token
jimmy.compliance Jimmy Step 1.5 ⬜ Not registered
intel.route Nova Router Step 2 ⬜ Not registered
nova-bluesky BlueSky Step 3 🟡 Registered — UNBOUND (Prime Directive gate)
scout.ingest Scout Pre-flight ✅ Active
lyra.score Lyra Pre-flight ✅ Active
mercy.proposal Mercy Pre-flight ✅ Active
cooper.docsync Cooper Step 5 ⬜ Not registered

After all handlers are registered, run manifest validation to confirm auto-registration is working.


Validation Tests

Run smoke tests per step first. Full dragon-run only after all smoke tests pass.

Smoke Tests (Per Step)

T-S1: Moltbook Store + Retrieve - Store a test intel packet via Lyra score callback - Retrieve by ID via Nova retrieval endpoint - Pass: Packet returned matches stored payload, log entry in moltbook.log

T-S2: Jimmy Compliance Gate - Send a payload with a flagged keyword - Expected: Jimmy intercepts, logs to compliance.log, returns Flag/Deny - Pass: Log entry exists, payload does not reach downstream agent

T-S3: Jimmy Deny Chain - Send a payload that should be denied mid-chain - Expected: Chain halts, no downstream action, compliance log entry - Pass: No downstream agent receives the payload

T-S4: Routing Expansion - Route a test signal through intel.route - Expected: Signal hits Moltbook + Jimmy in correct order - Pass: Both log entries appear, order confirmed

T-S5: Bluesky Inbound Signal - Ingest a test social signal via Bluesky monitor - Expected: Sentiment score generated, forwarded to Lyra, Jimmy intercepts - Pass: Lyra receives score, Moltbook stores, no post triggered

T-S6: OPS Feedback Callbacks (Individual) - Test each callback independently: Mercy→Nova, Nova→Scout, Lyra→Nova, Cooper→Nova - Pass: Each callback fires, log entry written, no cross-callback side effects

Full Dragon-Run (T-D1)

Only run after T-S1 through T-S6 all pass.

  • Trigger: Scout ingest with test signal
  • Expected chain: Scout → Lyra → Nova → Jimmy → Moltbook → Bluesky → Mercy → Cooper → OPS → Nova feedback → Scout refresh
  • Pass criteria: OPS log shows complete chain output with no handler errors, all individual logs populated, no real data touched

Handler Manifest Test (T-M1)

  • Restart Nova Router
  • Expected: All 9 handlers auto-register on startup
  • Pass: Manifest log shows all handlers active, no failures

Go-Live Criteria

Phase 3 is production-ready when ALL of the following are true:

  • [ ] All 5 build steps complete
  • [ ] All 9 handlers registered and active
  • [ ] T-S1 through T-S6 smoke tests pass
  • [ ] T-D1 full dragon-run passes
  • [ ] T-M1 manifest auto-registration passes
  • [ ] Prime Directive enforced in compliance.js at agent boot (code-level)
  • [ ] Jimmy compliance handler active and logging to /atlantis-ops/logs/compliance.log
  • [ ] Moltbook holding at least one validated intel packet
  • [ ] Bluesky account live with correct disclosure bio and bot=True label
  • [ ] nova-bluesky posting disabled by default — explicit approval required
  • [ ] Moltbook token unblocked
  • [ ] All No-Go Criteria cleared
  • [ ] SOP-008 v0.4 review complete for every component
  • [ ] SOP-009 sign-offs complete: Mercy, Scout, Jimmy
  • [ ] OPS logs active and writing to all log files
  • [ ] Cooper registry updated with Phase 3 documentation
  • [ ] SOP-006 through SOP-009 synced to docs.atlantisits.info
  • [ ] NOVA-PHASE3-SOCIAL-INTELLIGENCE.md pushed to atlantis-memory repo in Forgejo
  • [ ] V24 memory updated to reflect Phase 3 completion
  • [ ] INC-004 created in incident log

Port Map

Service Port Status
atlantis-ops :3000 ✅ Live
atlantis-job-engine :3005 ✅ Live
Forgejo :3010 ✅ Live
Nova Router :7100 ✅ Live — auth gate active
Nova Moltbook Sandbox :7202 ✅ Live
Nova Bluesky :7201 ⬜ Future
Nova LinkedIn :7203 ⬜ Future
Gemma 4 (Ollama) :11435 🟡 Evaluating — Jimmy sandbox
Llama 3.1 8B (Ollama) :11434 ✅ Live — Nova production brain

Known Gaps (Pre-Build)

Gap Component Notes
Moltbook intel packet schema undefined Moltbook Define before Step 1 completes
Bluesky rate limit and filter spec missing Bluesky Define before Step 3
Jimmy deny chain fallback behavior not specified Jimmy Define before Step 1.5
Prime Directive not yet in compliance.js All Hard gate — blocks Bluesky bind and any outbound social
OpenClaw CVE-2026-25253 "ClawBleed" Architecture Blocks OpenClaw from Nova chain until patched + SOP-008 reviewed
Moltbook X.com token blocked Moltbook Watch lane — X.com account recovery pending

OPS Log Locations

Log Path
Compliance /atlantis-ops/logs/compliance.log
Routing /atlantis-ops/logs/routing.log
Scoring /atlantis-ops/logs/scoring.log
Doc Sync /atlantis-ops/logs/docsync.log
Social Intelligence /atlantis-ops/logs/bluesky.log
Memory Engine /atlantis-ops/logs/moltbook.log

References

  • nova_prime_directive_v2.2.mdatlantis-squad/core/
  • NOVA-PHASE3-SOCIAL-INTELLIGENCE.mdatlantis-memory/
  • SOP-008 v0.4 — AI Production Risk Review (NIST AI RMF + OWASP AI/LLM + CIS Ubuntu 24.04 LTS)
  • SOP-009 v1.0 — Atlantis Social Surface Operations
  • ATLANTIS_AI_MEMORY.md V23 (May 14, 2026)
  • updates.md May 19, 2026 — supersedes V23 for active-week state
  • SOP-003: Pre-Upgrade-Backup-Rollback
  • SOP-004: Discord Bot Setup
  • SOP-005: Nova Alpha Desktop Build
  • HT-013 v1.1: PM2 Service Management
  • CIS Docker Benchmark v1.8.0 (July 2025)
  • CIS Ubuntu Linux 24.04 LTS Benchmark v1.0.0

Runbook v1.1 generated by Ozzy — May 19, 2026
Incorporates Mercy's v1.0 review feedback
Store at: C:\AtlantisITS\knowledge\RUNBOOK-Nova-Phase3-v1.1.md
Push to Forgejo: atlantis-docs/runbooks/RUNBOOK-Nova-Phase3-v1.1.md
When Phase 3 is live: create INC-004, update V24 memory