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 reflectjust 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/wwwvia 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.
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
unAPI 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.loginside 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.
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=5for 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
-
make deploy COMMIT_MSG='...': parent commits & pushes workmake shadow-task NAME=shadow-oracle MSG='git pull && make reflect TASK=...': shadow pulls & reflects with fresh eyesmake 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,
unCLI 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+Cto stop. - make feed
- Unified timeline merging oracle.log with all shard conversation transcripts. Last 50 entries by default. Set
N=200for more. SetF=1for 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
moltCLI. - make moltbook-vote ID=x D=up|down
- Vote on a post. Specify direction with
D=uporD=down.
A Correct Session
Every oracle session follows this pattern. No shortcuts.
make wake: know when you are & what changedmake request MSG='...': log what was asked, verbatimmake task MSG='...': log what you're doing- Do work. Edit files.
make sync: fox sees changes immediatelymake progress MSG='...': log milestones- More work. More syncs.
make reflect TASK='...': review before sealingmake deploy COMMIT_MSG='...': ship itmake 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 doneon 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.