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.ingesthandler active - [ ] ✅
lyra.scorehandler active - [ ] ✅
mercy.proposalhandler active - [ ] ✅
nova-moltbookcontainer live (:7202) - [ ] ✅
atlantis-sandboxrepo confirmed as Docker runtime - [ ] ✅
atlantis-labsrepo 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-blueskyhandler stays UNBOUND until Prime Directive is enforced incompliance.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.jsat 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=Truelabel - [ ]
nova-blueskyposting 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.mdpushed toatlantis-memoryrepo 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.md—atlantis-squad/core/NOVA-PHASE3-SOCIAL-INTELLIGENCE.md—atlantis-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.mdMay 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