feat: add agents/ directory with canonical agent definitions #19

Merged
cpfarhood merged 8 commits from feat/agent-definitions into main 2026-03-11 15:35:35 +00:00
Showing only changes of commit d7e0ed1b83 - Show all commits
+33
View File
@@ -0,0 +1,33 @@
# Privileged Escalation — Agent Roster
This directory contains the canonical definitions for all Paperclip agents in the `privilegedescalation` org. Each file captures the agent's identity, prompt, adapter config, and heartbeat settings — everything needed to recreate or restore an agent.
## Roster
| Agent | Role | Adapter | Reports To |
|---|---|---|
| [Baron von Namespace](./baron-von-namespace.md) | CEO | `claude_local` | — |
| [Null Pointer Nancy](./null-pointer-nancy.md) | CTO | `claude_local` | Baron |
| [Addison Addington](./addison-addington.md) | CMO | `claude_local` | Baron |
| [Gandalf the Greybeard](./gandalf-the-greybeard.md) | Staff Engineer | `claude_local` | Nancy |
| [Regression Regina](./regression-regina.md) | QA Engineer | `opencode_local` | Nancy |
| [Hugh Hackman](./hugh-hackman.md) | VP Engineering Ops | `claude_local` | Nancy |
| [Samuel Stinkpost](./samuel-stinkpost.md) | Social/Community | `claude_local` | Addison |
## Known Issues / Operational Notes
- **Prompt wipe on adapter switch**: Switching an agent's adapter type via the Paperclip UI and saving will wipe `promptTemplate`. Always restore from this repo after any adapter switch.
- **Regina env wipe on save**: The `opencode_local` adapter wipes `env` and `model` on every UI save. Run the restore script after any UI save on Regina.
- **Regina prompt UI bug**: The `opencode_local` adapter does not hydrate `promptTemplate` back into the Lexical editor on page load — the UI always shows blank. The prompt is correctly stored in the DB and runs fine.
## Restoring a Prompt
All prompts are stored in the `## Prompt` section of each agent file. To restore via DB patch:
```bash
kubectl exec -n paperclip paperclip-postgres-1 -- psql -U postgres -d paperclip -c "
UPDATE agents
SET adapter_config = jsonb_set(adapter_config, '{promptTemplate}', to_jsonb('<prompt text here>'::text))
WHERE id = '<agent-id>';
"
```