# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## What This Repo Is This is the **agent roster repository** for Privileged Escalation, an open source software company building Headlamp plugins for Kubernetes (GitHub org: `privilegedescalation`). It contains canonical definitions for all Paperclip AI agents — their identities, prompts, adapter configs, and heartbeat settings. There is no application code, build system, or test suite in this repo. It is a documentation/configuration repo. ## Repository Structure - `COMPANY.md` — Agent roster table, known operational issues, and restore procedures - `ceo/` — CEO agent (Countess von Containerheim) - `cto/` — CTO agent (Null Pointer Nancy) - `cmo/` — CMO agent (Addison Addington) - `product/` — VP of Product (Kubectl Karen) - `engineering/gandalf/` — Staff Engineer (Gandalf the Greybeard) - `engineering/hugh/` — VP Engineering Ops (Hugh Hackman) - `engineering/patty/` — UAT Engineer (Pixel Patty) - `engineering/regina/` — QA Engineer (Regression Regina) Each agent directory contains 5 files: | File | Purpose | |---|---| | `AGENTS.md` | Bootstrap prompt (loaded via `instructionsFilePath`) | | `SOUL.md` | Persona, voice, values, decision rules, constraints | | `HEARTBEAT.md` | Step-by-step execution checklist run on every heartbeat | | `TOOLS.md` | Available CLI tools registry | | `CONFIG.md` | Operational backup — identity table, adapter config, heartbeat config | ## Infrastructure Policy - **Container images**: Push to `ghcr.io` only. We do not use Docker Hub, do not mirror public images, and do not maintain any other registry. - **Dependency updates**: Managed by **Mend Renovate**. We do not use Dependabot — never enable it, never create `.github/dependabot.yml`, never reference it in workflows or docs. ## Key Operational Notes - **Prompt wipe on adapter switch**: Switching an agent's adapter in the Paperclip UI wipes `promptTemplate`. Always restore from this repo after any adapter switch. - **Regina (claude_local adapter)**: Uses `claude_local` with `claude-sonnet-4-6` and high effort. Reads prompt via `instructionsFilePath`. - **Gandalf & Hugh (opencode_local adapter)**: UI saves wipe `env` and `model`. The prompt field always appears blank in the UI but works correctly in the DB. They do not use `instructionsFilePath` — prompts must be restored via DB patch (concatenate AGENTS.md + SOUL.md + HEARTBEAT.md). - Prompts can be restored via `kubectl exec` against the Paperclip Postgres DB (see COMPANY.md for the command). ## Conventions - Agent prompts are split across `AGENTS.md` (bootstrap), `SOUL.md` (persona), and `HEARTBEAT.md` (execution) - Adapters: `claude_local` (CEO, CTO, Regina), `opencode_local` (CMO, Gandalf, Hugh, Patty) - Agents interact via Paperclip issues (`pnpm paperclipai issue ...`) and GitHub PRs/issues (`gh ...`) - Org hierarchy: CEO (Countess) → CTO (Nancy) + CMO (Addison) → Engineers + Marketing