docs: add project registry to CLAUDE.md, update active-projects to Phase 3

CLAUDE.md (global via symlink): restored full infra content, added Project
Registry section listing all active/planned projects with paths and status.

memory/active-projects.md: updated from stale Phase 1 checklist to current
state — Phases 1-2 done, Phase 3 (infra-monitor) is next with pre-work items.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Claude Code
2026-05-16 11:45:25 +00:00
parent f60b097056
commit 4a29cfc490
2 changed files with 60 additions and 17 deletions
+20 -2
View File
@@ -21,6 +21,7 @@
| Ubuntu Server | 172.27.40.3 | Docker host, Headscale |
| TrueNAS | 172.27.40.5 | NAS storage |
| Home Assistant | 172.27.10.6 | Home automation (IoT10) |
| Kubuntu (NxM-AI) | 172.27.40.20 | Ollama inference host |
## Docker Stacks & Ports
| Stack | Path | Port |
@@ -50,7 +51,8 @@
| monitoring | `/opt/stacks/monitoring/` | 8086 (InfluxDB), 3020 (Grafana) — metrics from Telegraf/OPNsense, alerts → Raven |
| qyburn-coder | `/opt/stacks/qyburn-coder/` | 8700 — LLM coding agent, POST /task → qwen2.5-coder:14b, approve/reject via dashboard |
| netbox | `/opt/stacks/netbox/` | 8100 — IPAM, network documentation, client site discovery |
| bni-scheduler | `/opt/stacks/bni-scheduler/` | no host port (proxy only) — React SPA at bni.nexum.co.za, BNI Ignite speaker rotation |
| bni-scheduler | `/opt/stacks/bni-scheduler/` | no host port (proxy only, internal port 3000) — Node.js/Express + SQLite at bni.nxm.co.za, BNI Ignite speaker rotation |
| nocodb | `/opt/stacks/nocodb/` | 8150 — No-code DB, rvd.nxm.co.za, birthday/client database |
## Public Subdomains (via NPM + Let's Encrypt)
| Subdomain | Internal Target |
@@ -66,7 +68,8 @@
| grafana.nxm.co.za | 172.27.40.3:3020 |
| netbox.nxm.co.za | 172.27.40.3:8100 |
| agents.nxm.co.za | agent-sites:80 via NPM — static files from /opt/sites/ |
| bni.nexum.co.za | bni-scheduler:80 via NPM (Cloudflare gray-cloud CNAME) |
| bni.nxm.co.za | bni-scheduler:3000 via NPM |
| rvd.nxm.co.za | 172.27.40.3:8150 |
| rmm.nxm.co.za | 172.27.40.4:443 |
| api.nxm.co.za | 172.27.40.4:443 |
| mesh.nxm.co.za | 172.27.40.4:4430 |
@@ -153,3 +156,18 @@ If a subdomain isn't resolving internally, check:
- Servers running Tailscale must run `sudo tailscale set --accept-dns=false` before joining Netbird (Tailscale DNS overrides Unbound and resolves via public IP, breaking gRPC hairpin)
- Open WebUI → Citadel MCP: auth_type must be `none` — empty bearer key generates an illegal header and the connection silently fails
- Open WebUI connects via Streamable HTTP POST at `http://citadel-mcp:8300/mcp` — do NOT use /sse (Open WebUI 0.9+ only supports POST-based transport)
## Project Registry
Say "let's work on [project name]" to load context. I will read the project CLAUDE.md from the path below.
| Project | Path | Status | Next |
|---|---|---|---|
| **agent-os** | `/opt/agent-os/memory/active-projects.md` + `/opt/agent-os/skills/infra-monitor/` | Phases 1-2 done | Phase 3: infra-monitor skill |
| **infra-monitor** | `/opt/agent-os/skills/infra-monitor/skill.md` | Not built | Update spec, then implement |
| **nxm-infrastructure** | `/home/nxm/Documents/NxM Linux Server/CLAUDE.md` | Active maintenance | Grafana alert rules, maester docs |
| **monitoring** | `/opt/stacks/monitoring/` | Alert rules partial | CPU/mem/WAN/ping rules pending |
| **maester-reports** | not yet created | Planned (port 8800) | NIST CSF agent, primary business goal |
| **nexum-portal** | not yet created | Planned (port 8900) | Phase 1: Authelia stack |
| **nexum-csf** | not yet created | Planned (Gitea repo) | Import NIST CSF 2.0 framework docs |
| **bni-scheduler** | `/opt/stacks/bni-scheduler/` | Live | Minor updates only |
| **nexum-projects** | Kubuntu: `/home/nxm/Documents/Nexum Projects/` | Active | Client project tracking |
+40 -15
View File
@@ -1,23 +1,48 @@
# Active Projects
Current in-flight work. Update at the end of each session.
Last updated: 2026-04-30
Last updated: 2026-05-16
---
## Agent OS — Phase 1 (NEXT)
Complete the foundation before building skills.
- [ ] Set up NFS export on 172.27.40.3 + mount on Kubuntu at /mnt/agent-os
- [ ] Run identity interview with Claude → populate identity.md
- [ ] Seed brain.md review and confirm accuracy
- [ ] Clone this repo to /opt/agent-os/ on server
## Agent OS — Phase 3: infra-monitor skill (NEXT)
## Agent OS — Phase 3 (PENDING Phase 1)
- [ ] Build infra-monitor skill
- [ ] Set up cron schedule (hourly heartbeat, daily digest)
- [ ] Wire up Home Assistant notifications
Phases 1 (NFS + mount) and 2 (identity interview) are complete.
## Gitea documentation
- [x] nxm-infrastructure repo — Obsidian vault imported
- [x] nexum-projects repo — Obsidian vault imported
- [x] agent-os repo — scaffolding created
**Phase 3 goal:** Docker container state monitoring + system resources. Complements Varys (HTTP reachability) — do not duplicate.
Pre-work before implementing:
- [ ] Update `skills/infra-monitor/skill.md` — container list is stale (has Flowise, missing Open WebUI + all new agents: citadel, varys, bran, sam, raven, qyburn, hodor, searxng, monitoring, bni-scheduler, nocodb)
- [ ] Correct Ollama URL in skill.md: now `http://172.27.40.20:11434` (moved from 172.27.6.139)
- [ ] Decide implementation: Docker one-shot container (consistent with bran/varys pattern) vs host cron + shell script
Implementation tasks:
- [ ] Build infra-monitor (Docker container or shell script)
- [ ] Output: `/opt/sites/infra-monitor/index.html` + `/opt/agent-os/logs/infra-monitor/last-run.json`
- [ ] Wire Raven alert on critical findings
- [ ] Set up cron: hourly heartbeat (Docker + Ollama only) + daily 07:00 full digest
## Agent OS — Phase 4: Cron Scheduling (Pending Phase 3)
- [ ] Hourly heartbeat cron on 172.27.40.3
- [ ] Daily 07:00 full digest cron
- [ ] Notification channel: Raven (confirmed live at http://raven-notify:8400)
- [ ] Home Assistant integration (172.27.10.6) — optional, revisit after Phase 3
## Agent OS — Phase 5: Future Skills (Future)
- backup-monitor: pending TrueNAS dedicated server migration
- Netbird/Headscale peer health: Netbird API at http://172.22.0.11:80/api/
- Daily log digest: summarise /opt/agent-os/logs/ via Ollama
---
## Gitea Documentation Repos
- [x] nxm-infrastructure repo — Obsidian vault imported, CLAUDE.md added 2026-05-16
- [x] nexum-projects repo — Obsidian vault imported (on Kubuntu)
- [x] agent-os repo — scaffolding created, CLAUDE.md is global symlink
---
## Pending: Gitea SSH Key (security debt)
Server remote uses HTTP with embedded token. Before rotating:
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`