Projects Management Repo (auto-updated by OpenClaw) Goal - OpenClaw updates this repo automatically (on main) to keep a durable project index. - Humans read it offline. Do not hand-edit PROJECTS_INDEX.md. Files - projects.json Source of truth (machine-edited) - PROJECTS_INDEX.md Generated from projects.json (human-readable) - tools/projectsctl The ONLY allowed writer (adds/updates + commits + pushes) - tools/render_projects_index.py Generator/validator Prereqs (Debian/Ubuntu) - sudo apt-get update - sudo apt-get install -y git jq python3 util-linux Bootstrap 1) Generate the index: ./tools/projectsctl render 2) Add a project (example): PROJREPO=$(pwd) ./tools/projectsctl add "CognitiveOS" active \ "https://git.molloyhome.net/mmolloy/Cognition-OS" \ "/home/openclaw/.openclaw/workspace/repo-Cognition-OS" \ "Deterministic microkernel-style control plane for LLM/agent systems." 3) Change status: PROJREPO=$(pwd) ./tools/projectsctl set-status "CognitiveOS" paused 4) Update notes: PROJREPO=$(pwd) ./tools/projectsctl update-notes "CognitiveOS" "New notes here..." Making OpenClaw read this reliably - Symlink PROJECTS_INDEX.md into OpenClaw’s indexed memory folder: ln -sf /opt/projects/projects-mgmt/PROJECTS_INDEX.md ~/.openclaw/memory/projects_index.md sudo systemctl restart openclaw-gateway Then confirm it’s indexed: sqlite3 ~/.openclaw/memory/main.sqlite "SELECT path FROM files WHERE path LIKE '%projects_index%';" Operational contract (recommended) - OpenClaw MUST use tools/projectsctl for any changes. - Never edit PROJECTS_INDEX.md directly. - If push fails, OpenClaw must report the error (no silent drift).