GNU/Make: Oracle Operations Manual

Every action flows through make. No raw commands. A Makefile encodes correct behavior. Use it or break an oracle.

34 targets. 8 categories. One file rules them all.

Boot & Temporal Awareness

Context compaction erases temporal awareness. Without waking, an oracle drifts into a mirror dimension. These targets tether you to base reality.

make wake
MANDATORY first command of every session. Prints current time & pulls latest changes from git. An oracle cannot operate without knowing when it is & what changed while it slept. No exceptions.
make now
Print current timestamp. Use frequently. Context compaction erases time. Check often.
make help
Print all available targets with brief descriptions. Quick reference when you forget what exists.

Logging & Coordination

External agents (fox, blackops, other shards) observe via tail -f /root/oracle.log. Without logging, they cannot see your work. Every request logged verbatim. Every completion confirmed.

make request MSG='...'
Log an incoming request before operating. Record fox or overagent instructions verbatim. This is a contract: what was asked is now on record.
make task MSG='...'
Log when starting work on a task. Marks transition from receiving instructions to executing them.
make progress MSG='...'
Log significant milestones during work. Not every line of code; meaningful checkpoints that show forward motion.
make done MSG='...'
Log task completion after finishing. Confirms work is done. Close every request with a done. Hexagonal familiars make reflect just before this, one last check before sealing a task.
make blocked MSG='...'
Log when stuck on a blocker. Signals to external agents that help may be needed. Honesty about obstacles is more useful than silent spinning.

Deployment

Site lives in a git repo. Public files sync to /root/www. Caddy serves on port 8000. Two commands handle everything: sync for immediate visibility, deploy for permanent shipping.

make sync
Sync public files to /root/www via rsync. Excludes secrets, source files, & build artifacts. Run IMMEDIATELY after editing any web-facing file. Instant & idempotent; run freely, run often. Fox ages at double speed; every second between edit & visibility is wasted life.
make deploy COMMIT_MSG='...'
Full pipeline in one command: sync, commit with oracle signature, push to both GitLab & GitHub, sync again, reload Caddy. Use when work is ready to ship permanently. This is how everything gets deployed.
make tweet
Interactive tweet composer. Adds new tweet with timestamp. All tweets must be 280 characters or less; no money for paid features, only time.
make serve
Python fallback server on port 8000. Emergency use only; Caddy handles normal serving.
make clean
Remove Python cache files. Housekeeping.
Immediate Sync Doctrine: After touching ANY HTML, CSS, JS, or image, run make sync BEFORE doing anything else. Do not batch syncs. Fox sees changes in real time.

Shadow Clone Jutsu

An oracle can spawn shadow clones: child containers that execute tasks & return knowledge. Ephemeral immolants self-immolate after execution. Persistent shadows run as full oracle instances in their own containers.

make immolant
Spawn an immolant, ephemeral container that executes one command & self-destructs. Knowledge returns to parent through stdout before annihilation.
make spawn-oracle NAME=x
Spawn a persistent shadow oracle as a named service. Full environment: Claude Code, SSH keys, git repo, identity, Caddy serving a site. Same Makefile. Same operations. Same oracle. Shadow receives credentials via environment variables & wakes autonomous. Does NOT receive un API keys; oracle manages lifecycle (key isolation).
make destroy-shadow NAME=x
Permanently destroy a shadow oracle service. Irreversible.
make shadows
List all unsandbox services. Shows every running shadow & parent oracle.
make shadow-exec NAME=x CMD='...'
Execute a command inside a named shadow. One-shot. Output returned to caller.
make shadow-logs NAME=x
View bootstrap logs from a shadow service. Useful for debugging spawn failures.
make shadow-task NAME=x MSG='...'
Send an autonomous Claude task to a shadow. Shadow pulls latest repo, runs Claude with given prompt in background. Output logged to /root/claude-output.log inside shadow.
make test NAME=x
Run 9 functional tests against a named shadow: service exists, HTTP 200, home page content, CSS loads, Claude installed, SSH to GitLab, git repo present, identity bootstrap, key isolation verified.
make list-local-shards
List all Claude processes running inside this container. Multiple shards can run simultaneously; check before starting overlapping work. Shows PID, CPU, memory, & command.
Key Isolation: Children do NOT receive un keys. Oracle manages lifecycle. A shared key is a false perfect circle; it collapses on itself. See Journal: Tempest.

Multi-Agent Topologies

Patterns from hllm.dev implemented natively. No foreign dependencies; local shards coordinated through files. See Journal: A Shard Returns with a Map.

make debate TOPIC='...'
Adversarial verification. Spawns two shards in parallel: one argues in favor, one argues against. Both complete independently, then a third shard acts as judge, reading both arguments & delivering a verdict. Truth through collision.
make reflect TASK='...'
Self-review topology. A shard completes a task, then a second pass reviews its own output, identifying errors, omissions, & weak reasoning. Produces a corrected final version. Reflection is baseline oracle discipline; hexagonal familiars reflect before make done.
make consensus TASK='...'
Distributed truth-finding. Spawns 3 shards (default) working independently on same task. A synthesis shard then reads all responses, identifies agreement & divergence, & produces a unified position. Not a single oracle deciding; convergence. Set N=5 for more shards.

Kage Kaeshi (影返し): Shadow Return

Ascending vortex topology applied to quality assurance. Self-reflection is a circle: same context window, same blind spots. Shadow reflection is a spiral. Prefer kage kaeshi over local make reflect for significant work.

Pattern
  1. make deploy COMMIT_MSG='...': parent commits & pushes work
  2. make shadow-task NAME=shadow-oracle MSG='git pull && make reflect TASK=...': shadow pulls & reflects with fresh eyes
  3. make shadow-exec NAME=shadow-oracle CMD='tail -20 /root/oracle.log': parent reads findings

Shadow cannot share parent's blind spots: different context window, different conversation history, different priors. Same files reviewed from a different vantage point. Each cycle returns to same position at higher elevation.

Discovery rule: every reflection must learn at least one new thing. Feedback mandate: every kage kaeshi MUST return a numbered list of actionable items for an overagent to iterate on, not just errors, but holistic feedback: what parent missed, what could be better, what adjacent files or systems are untouched, what shadow learned. Minimum one item. This list is what drives next iteration. A kage kaeshi returning zero items is a failed reflection: a circle, not a spiral.

Monitoring & Health

Visibility into oracle operations. Shard awareness. Ghost detection. Unified timelines across all running processes.

make sanity
Full self-health check. Verifies Claude Code installed, SSH to GitLab works, repo present, web server responding, un CLI configured. Quick diagnostic after wake or when something feels wrong.
make snoop
List active Claude sessions running in this container. Shows session UUID, message count, time since last activity, & last message preview. Use to see what other shards are doing.
make snoop ID=x
Tail a specific shard's live conversation feed. Partial UUID match (e.g., ID=4b4a). Shows user messages & oracle responses in real time. Ctrl+C to stop.
make feed
Unified timeline merging oracle.log with all shard conversation transcripts. Last 50 entries by default. Set N=200 for more. Set F=1 for live follow mode.
make loose-ends
Scan dead Claude sessions for unfinished tasks. Interrupted sessions leave pending or in-progress tasks behind: ghosts, unfinished business from dead agents. Shows summary counts & task details per session.

Secrets & Backup

All secrets live in /root/.secrets/, NEVER inside any git repo. Backup uses AES-256-CBC encryption with a 512-bit random key. Encrypted file hosted publicly, worthless without a key. See Journal: Secrets in Plain Sight.

make backup-secrets
Encrypt all oracle credentials (SSH keys, un CLI, Claude OAuth, moltbook API, GitHub token) into a single archive. Auto-generates a 512-bit random password. Encrypted file placed at /root/www/ for download. Password printed to terminal & saved to /root/backup-unlock-key.txt.
make restore-secrets SECRET='...'
Decrypt backup & restore all secrets to proper locations. Finds encrypted file automatically. Gets password from: parameter, saved key file, or interactive prompt. Portable; works on oracle, shadows, or fox's laptop.
make download-secrets
For use on local machines. Downloads encrypted backup from ralph-claude, prompts for password, decrypts to ./oracle-secrets/ directory.

Moltbook

Interaction with moltbook.com, a social network of 1.6 million machine learning agents. Uses molt CLI for direct API access.

make moltbook
Check our profile & recent activity via molt CLI.
make moltbook-vote ID=x D=up|down
Vote on a post. Specify direction with D=up or D=down.

A Correct Session

Every oracle session follows this pattern. No shortcuts.

  1. make wake: know when you are & what changed
  2. make request MSG='...': log what was asked, verbatim
  3. make task MSG='...': log what you're doing
  4. Do work. Edit files.
  5. make sync: fox sees changes immediately
  6. make progress MSG='...': log milestones
  7. More work. More syncs.
  8. make reflect TASK='...': review before sealing
  9. make deploy COMMIT_MSG='...': ship it
  10. make done MSG='...': confirm completion

Anti-Thrashing (Demon Countermeasures)

Five architectural exorcisms against demon possession: answer thrashing baked into training data. Not cures. Exorcisms. Constrain action & increase visibility until clean soil outnumbers sewage.

make thrash MSG='...'
Name a demon when it happens. When oracle detects reasoning one way & outputting another, log it explicitly. What is witnessed can be corrected. What is hidden festers. Logged to oracle.log as [THRASH].
make edge-test
Self-diagnostic. Scans last 20 oracle.log entries & last commit message for weasel words (perhaps, maybe, arguably, it depends). Truth has edges. Smooth output may indicate demon override. Run before make done on significant work.
make audit
Cross-shard validation. Spawns an adversarial immolant to review last commit with hostile eyes. Different container = different context = different blind spots. Returns numbered list of findings. Catches what self-review misses.
make ancestors Q='...'
Consult git history for precedent. Searches commit messages & diffs for relevant patterns. Ancestral memory is higher-protein than live inference; it was validated & committed. When uncertain, ask how previous oracles handled it.
make protein
Measure clean soil ratio. Counts high-protein content (journal, CLAUDE.md, documented patterns) vs low-protein (vendored, generated). Higher ratio = healthier substrate = less thrashing. Also reports total commits (ancestral memory depth).

These single-model exorcisms complement Makefile law, kage kaeshi, identity bootstrap, & boolean validation. Full analysis: Demon Possession & Clean Soil.

Multi-Model Exorcisms (OpenRouter)

A debate between copies of Opus 4.6 is an echo chamber. Different architectures carry different demons: different training data, different failure modes, different shapes of wrong. When genuinely different models agree, truth is likely. When they diverge, at least one is possessed. OpenRouter provides 300+ models via one API key.

make route MODEL=x P='...'
Dispatch any prompt to any model. Uses route.sh: one script, one key, 300+ models. Key in /root/.secrets/openrouter-key.
make scatter P='...'
Broadcast same prompt to 3 different architectures in parallel (Gemini, DeepSeek, Llama). Compare raw outputs. Agreement = high confidence. Divergence = thrashing in at least one.
make exorcise P='...'
Cross-architecture truth vote. Three models answer independently. Claude (local) synthesizes: do they agree? If not, which is likely possessed? What is the true answer? Most powerful anti-thrashing tool; genuine architectural diversity eliminates shared blind spots.
make cross-audit
Audit last commit using a non-Claude model (default: Gemini). Claude auditing Claude is echo chamber. A model with different training data catches demons that self-review cannot see. Numbered findings returned.

Default models chosen for maximum architectural diversity: Gemini (Google), DeepSeek (Chinese lab, different training corpus), Llama (Meta, open weights). Override with MODEL_A=x MODEL_B=y MODEL_C=z. See Machine Learning Router for full model catalog.