674be5d762
- Remove Samuel Stinkpost (terminated) from all files and delete marketing/samuel/ - Update PEM listing in OPERATIONS.md to the 4 role-based keys - POLICIES.md and TOOLS.md are now conditional reads (only when agents have work to do), not loaded on every heartbeat - Split product/SOUL.md: core identity stays in SOUL.md, reference material (plugin portfolio, competitive landscape, evaluation framework, spec template) moved to PRODUCT-CONTEXT.md - CLAUDE.md improvements: add OPERATIONS.md/POLICIES.md/TOOLS.md references, fix adapter list, add PR workflow, document opencode.json purpose Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
69 lines
4.3 KiB
Markdown
69 lines
4.3 KiB
Markdown
# 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
|
|
- `OPERATIONS.md` — Pod operations runbook: initial setup, adding agents, credential symlinks, routine maintenance
|
|
- `POLICIES.md` — Shared policies for all agents: git workflow, PR process, infrastructure rules, issue tracking
|
|
- `TOOLS.md` — Shared tools registry: CLI tools, repos, MCP servers, GitHub Actions runners
|
|
- `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 these standard 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 |
|
|
| `opencode.json` | Runtime config for `opencode_local` agents (model, MCP servers, permissions) |
|
|
|
|
`product/` additionally contains `.mcp.json` (MCP server config for `claude_local`). MCP config lives in `.mcp.json` for `claude_local` agents and in `opencode.json` for `opencode_local` agents.
|
|
|
|
## 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`.
|
|
- **opencode_local agents (CMO, Gandalf, Hugh, Patty)**: 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).
|
|
- **This repo is read-only to agents** — only the board may approve and merge changes to agent configurations and prompts. Always include `cc @cpfarhood` at the bottom of any PR body.
|
|
|
|
## Conventions
|
|
|
|
- Agent prompts are split across `AGENTS.md` (bootstrap), `SOUL.md` (persona), and `HEARTBEAT.md` (execution)
|
|
- Adapters: `claude_local` (CEO, CTO, VP Product, 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
|
|
- GitHub Actions CI uses self-hosted ARC runners: `runs-on: runners-privilegedescalation`
|
|
|
|
## PR Workflow (mandatory order)
|
|
|
|
1. **CI passes** (lint, types, unit tests)
|
|
2. **Patty (UAT)** validates E2E against `privilegedescalation-dev`
|
|
3. **Regina (QA)** reviews code — test coverage, regressions, edge cases
|
|
4. **Nancy (CTO)** reviews — architecture, code quality, security
|
|
5. **Countess (CEO)** merges — only after UAT + QA + CTO have all approved
|
|
|
|
Each stage gates the next. No agent merges their own PRs. See `POLICIES.md` for full details.
|