# Agent OS — Project CLAUDE.md ## What This Project Is Personal Agentic Operating System. Tool-agnostic AI foundation for scheduled skills, monitoring, and automation. - Runtime: `/opt/agent-os/` on 172.27.40.3 - Gitea: `git.nxm.co.za/admin/agent-os` - Edit clone (server): `/home/nxm/Documents/agent-os/` (clone pending) ## Current Phase | Phase | Status | |---|---| | 1 — NFS export + Kubuntu mount | ✓ DONE 2026-05-01 (NFS no longer needed — consolidated to server) | | 2 — Identity interview → identity.md populated | ✓ DONE 2026-05-01 | | **3 — infra-monitor skill** | **NEXT** | | 4 — Cron scheduling (hourly heartbeat + daily digest) | Pending Phase 3 | | 5 — Future skills (backup monitor, peer health, log digest) | Future | ## Phase 3 — infra-monitor (NEXT) Skill scaffold at `skills/infra-monitor/skill.md`. Ready to implement after spec update. **Goal:** Docker container state + system resource checks. Complements Varys (HTTP reachability) — do not duplicate. **Before building:** - Update `skills/infra-monitor/skill.md` — container list is stale (has Flowise, missing Open WebUI + all new agents) - Correct Ollama URL: now `http://172.27.40.20:11434` (migrated from 172.27.6.139) - Decide: Docker one-shot container (consistent with bran/varys) or host cron + shell script? **Output targets:** - `/opt/sites/infra-monitor/index.html` — web dashboard at agents.nxm.co.za/infra-monitor/ - `/opt/agent-os/logs/infra-monitor/last-run.json` — machine-readable, read by Varys watchdog - Raven alert on critical: `http://raven-notify:8400` **Schedule:** hourly heartbeat (Docker + Ollama only) + daily 07:00 full digest ## Directory Structure ``` /opt/agent-os/ ├── CLAUDE.md ← this file (project brief, tracked in Gitea) ├── identity.md ← populated Phase 2 ├── brain.md ├── memory/ │ ├── active-projects.md ← update at end of each session │ ├── persistent.md │ ├── recent-decisions.md │ ├── constraints.md │ └── notes-from-last-run.md ├── context/ ├── skills/ │ └── infra-monitor/ ← Phase 3 target │ ├── skill.md ← spec (stale container list — update before building) │ ├── learnings.md │ ├── eval.json │ ├── last-output.md │ └── context/handoff.md └── logs/ ``` ## Architecture - LLM inference: Kubuntu Ollama at `http://172.27.40.20:11434` - All agent output: `/opt/sites//` served at agents.nxm.co.za - Log standard: `/opt/agent-os/logs//last-run.json` - Notifications: Raven at `http://raven-notify:8400` ## Pending — Gitea SSH Key (security debt) Server remote uses HTTP with embedded token. Before next token rotation: 1. Add SSH key for `nxm@172.27.40.3` to Gitea (Admin → Settings → SSH Keys) 2. `cd /opt/agent-os && git remote set-url origin gitea-local:admin/agent-os.git`