Commit Graph

47 Commits

Author SHA1 Message Date
Chris Farhood 34f4e2a8cb Add missing opencode.json for Hugh — fix permission auto-reject
Hugh (opencode_local) had no opencode.json, so opencode defaulted
to rejecting file access outside his cwd. This blocked him from
accessing .github/workflows/ in other repos.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 21:37:17 -04:00
Chris Farhood 4ee7a5bf29 Update PR workflow: CI → UAT (Patty) → QA (Regina) → CTO → merge
Reorder the review pipeline so cheap/fast stages gate expensive ones:
CI (free) runs first, then Patty validates E2E on MiniMax, then
Regina does deep code review on Sonnet, then Nancy reviews last.

- POLICIES.md: rewrite PR Workflow with 6-step ordered pipeline
- Patty SOUL.md: establish her as first reviewer, add CI-must-pass rule
- Patty HEARTBEAT.md: check CI status before E2E, report results for Regina
- Regina SOUL.md: flip from "review first" to "review after UAT"
- Regina HEARTBEAT.md: skip PRs without CI + E2E validation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 20:52:05 -04:00
Countess von Containerheim ed84d094cb chore: fill in Pixel Patty agent ID and GitHub App credentials
Replace placeholders in CONFIG.md and HEARTBEAT.md with actual values:
- Agent ID: e9e671e5-ebfc-4cf6-bebe-1f8e5782ad9a
- GitHub App ID: 3141264 (shared privilegedescalation-engineer)
- PEM path: privilegedescalation-engineer.pem

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-25 00:44:46 +00:00
Chris Farhood 3a6b6db197 Add Pixel Patty (UAT) and move Playwright MCP from Regina
Split QA and UAT responsibilities: Regina keeps code-level QA
(vitest, PR review, CI health) on claude_local/sonnet, while
new agent Pixel Patty handles E2E browser testing via Playwright
MCP on opencode_local/minimax — reducing token cost for the
browser-heavy automation work.

- Add engineering/patty/ with full agent file set
- Remove Playwright MCP references from Regina's SOUL.md
- Delete Regina's stale opencode.json (now on claude_local)
- Update roster, directory tree, and shared tools

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 20:35:45 -04:00
Countess von Containerheim cb04517a8e Add opencode.json for Gandalf with allow-all permissions
Gandalf was missing the OpenCode permission config that CMO and Regina
already have. Without this file, OpenCode defaults to restricted
directory-scoped permissions, blocking normal operation.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-25 00:21:59 +00:00
privilegedescalation-ceo[bot] cc2cbb9854 Update org harness/model/effort and PR review policy per board directive
Board directive (PRI-827):
- CTO: effort medium → high
- QA (Regina): opencode_local MiniMax → claude_local Sonnet 4.6 high effort
- Engineering/DevOps (Gandalf, Hugh): claude_local → opencode_local MiniMax M2.7
- Policy: QA reviews PRs first, CTO reviews second (mandatory order)
- Policy: CTO breaks down and distributes all work to engineers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 18:52:36 +00:00
Chris Farhood 8148e00c50 Move agent cwd to /workspaces/ emptyDir volume
Separates working directory (ephemeral, /workspaces/) from agent
home/config directory (persistent, /paperclip/). Prevents branch
switching in one agent's work from breaking other agents' instructions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 18:27:49 -04:00
Chris Farhood 91a3a29fff Update MiniMax agents to route through OpenRouter
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:41:12 -04:00
Chris Farhood 2bf860016d Deduplicate agent files: remove shared policy rules from individual SOUL.md
Stripped rules that are already in POLICIES.md from all 28 SOUL.md files:
- "GitHub issues are the primary tracker"
- "GitHub issues stay open until deployed and validated"
- "Push directly to main" (in WHAT YOU NEVER DO)
- "Approve or merge PRs on agents repo" (in WHAT YOU NEVER DO)
- "Modify .github/workflows" (in WHAT YOU NEVER DO)

Also fixed:
- CartSnitch CTO: removed stale merge authority (contradicted POLICIES.md)
- CartSnitch Annie: removed empty DEPLOYMENT & CI section
- Groom Book COMPANY.md: updated roster with all 6 agents
- PRI COMPANY.md: removed Samuel, added VP Product, updated models/adapters

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-21 11:17:40 -04:00
Chris Farhood 0c202506d5 Switch CMOs and QAs to minimax/MiniMax-M2.7 direct (no OpenRouter)
CMOs (Savannah, Addison, Clipper):
- Switched from claude_local/sonnet to opencode_local/minimax
- Uses MINIMAX_API_KEY secret_ref (direct MiniMax API, not OpenRouter)
- opencode.json with web search MCP
- Removed .mcp.json (claude_local only)
- promptTemplate required in DB (no instructionsFilePath)

QAs (Betty, Regina, Lint Roller):
- Switched from openrouter/minimax to minimax direct
- Model: minimax/MiniMax-M2.7 (was openrouter/minimax/minimax-m2.7)
- Uses MINIMAX_API_KEY instead of OPENROUTER_API_KEY

VP Products: unchanged (stay on opus, .mcp.json for web search MCP only)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-21 10:39:04 -04:00
Chris Farhood a45b822cfd Standardize heartbeat step 2: generic inbox-lite for all agents
Replaced hardcoded "Check for assigned work from <manager>" and
pnpm paperclipai CLI with consistent inbox-lite API call.
Agents work on whatever is assigned regardless of who assigned it.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 20:13:42 -04:00
Chris Farhood e29531913c Align Regina with other QA agents: Playwright, generic heartbeat, dedupe policies
- Added Playwright MCP to opencode.json and SOUL.md
- Heartbeat: "Check for assigned work from Nancy" → generic inbox check
- Heartbeat: simplified PR review, CI health, and bug triage steps
- Heartbeat: removed hardcoded agent IDs from issue assignments
- SOUL.md: removed ArtifactHub rule (already in shared POLICIES.md)
- SOUL.md: updated merge language to match PR workflow policy
- TOOLS.md: added MCP Servers section

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 19:40:41 -04:00
Chris Farhood 9abec895e6 Switch to role-based GitHub Apps across CartSnitch, PRI, and Groom Book
Each agent now uses the appropriate role-scoped GitHub App:
- CEO app: merge authority, org admin
- CTO app: PR review/approval, engineering + workflows
- QA app: PR review/approval, read-only contents
- Engineer app: push branches, open PRs, CI

CMO agents share the CEO app (no dedicated CMO app).
Samuel (social) uses the engineer app.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 12:44:16 -04:00
Chris Farhood b477940f2a Issues stay open until deployed and validated, not just merged
Updated across all POLICIES.md and SOUL.md files in all orgs.
Merging is a step in the process, not the finish line.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 08:02:25 -04:00
Chris Farhood 51fba9450e Upgrade QA agents from minimax m2.5 to m2.7
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 07:14:02 -04:00
Chris Farhood f7d36d96b4 Use Paperclip secret_ref for OPENROUTER_API_KEY instead of plain text
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 06:46:31 -04:00
Chris Farhood 043a0b23ca Disable snapshots in opencode.json
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 06:40:23 -04:00
Chris Farhood b9c3120771 Optimize model selection: opus for leadership, sonnet for ICs
CEOs and CTOs stay on claude-opus-4-6 (strategy, architecture, judgment).
IC agents move to claude-sonnet-4-6 (implementation, routine execution).
Lint Roller set up as opencode_local with minimax-m2.5 (matching Regina).

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-19 22:16:45 -04:00
Chris Farhood 1da01f59cc Fix AGENTS.md bootstrap: point to shared POLICIES.md and TOOLS.md
PRI agents were still referencing local TOOLS.md (deleted).
Now uses absolute paths to shared root files.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 23:14:47 -04:00
Chris Farhood d1103749eb Switch all agents to shared privilegedescalation.pem
All agents now use App ID 3097914 (privilegedescalation-paperclip) with
the shared PEM at /paperclip/secrets/github-pems/privilegedescalation.pem.
Individual per-agent PEMs have been removed from the k8s secret.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 21:10:52 -04:00
Chris Farhood 8a8fa24aac Consolidate shared policies and tools into root-level files
- Added POLICIES.md: env var handling, infra policy (ghcr.io, Renovate),
  git workflow, issue tracking, CI/CD access rules
- Added shared TOOLS.md: GitHub auth, Paperclip API, common tools, repos
- Removed all per-agent TOOLS.md files (shared file covers everything)
- Updated all AGENTS.md bootstraps to read shared POLICIES.md and TOOLS.md
- Removed duplicated env var directive from all HEARTBEAT.md files

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 20:19:10 -04:00
Chris Farhood 436292b9f3 Fix env var directive: provide localhost fallback instead of exit-on-401
The previous directive told agents to exit on 401, causing them to bail
on the first failed curl. PAPERCLIP_API_URL is injected by the adapter
but may not expand in all shell contexts. Fall back to localhost:3100.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 14:55:22 -04:00
Chris Farhood ec0eaf5a5b Stop agents from debugging env vars on every heartbeat
Added explicit directive to all heartbeats: PAPERCLIP_API_KEY and other
env vars are pre-injected and valid — do not inspect, decode, verify,
or debug them. Exit cleanly on 401 instead of retrying.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 14:26:58 -04:00
Chris Farhood ba68fcfeeb Add para-memory-files skill reference to all agents
Every agent now invokes the persistent memory skill for cross-heartbeat
knowledge retention: facts, daily notes, entities, synthesis, and recall.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 14:17:11 -04:00
Chris Farhood 0dc83a1e99 Remove junk empty-string fields from Regina adapter config
mode, effort, variant, modelReasoningEffort are not applicable to
opencode_local/minimax and were UI artifacts.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 11:02:04 -04:00
Chris Farhood 905f1f453c Standardize TOOLS.md across all agents
- Consistent table format with GitHub auth, Paperclip API, and tool inventory
- Added git, jq, node/npm/pnpm, python3, pnpm paperclipai to all agents
- Added repo ownership map for CEO/CTO
- Removed stale Gemini workspace section from Hugh (runs claude_local)
- Added opencode_local adapter notes to Regina (promptTemplate required)
- Flagged missing pod tools (docker, kubectl, flux)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 10:52:09 -04:00
Chris Farhood 5d01e6342e Standardize capabilities across all agents with delegation boundaries
C-level and VP agents explicitly state they do not do IC work and name
who they delegate to. IC agents declare owned domains and tech skills.
Format: scope sentence + delegation boundary + domain tags.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 10:36:43 -04:00
Chris Farhood f4350865f5 Standardize C-level/VP agents: 4hr heartbeat, 80 turns, opus 4.6 medium thinking
- CEO: intervalSec 86400→14400, maxTurnsPerRun 40→80, add effort "medium"
- CMO: intervalSec 86400→14400, add effort "medium"
- CTO: intervalSec 86400→14400, add effort "medium"
- VP Hugh: add effort "medium" (interval/turns already correct)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 10:22:00 -04:00
Chris Farhood 5f3b954db8 Add agents repo PR restriction: board-only approval
All agents now have explicit NEVER DO rule: only the board may approve
or merge PRs on the agents repo (agent configurations and prompts).

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-17 08:00:35 -04:00
Chris Farhood 1c088e7c9c Update all agents: GitHub issues as primary tracker, Paperclip secondary
- GitHub issues are the primary work tracker for all bugs, features, and work items
- Paperclip issues are secondary — used to trigger and coordinate agents
- GitHub issues stay open until the associated PR is approved AND merged
- Added GitHub issue triage step to CEO and CTO heartbeats
- Updated delegation references to specify GitHub where appropriate

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-17 07:58:20 -04:00
Chris Farhood 4414eccc36 fix: ArtifactHub plugin installer is the ONLY acceptable installation method
Nancy will close without merging and reprimand any PR proposing alternatives.
All agents updated to understand this is non-negotiable.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-16 07:18:56 -04:00
Chris Farhood d087d3f033 fix: IC agents — direct push to main = immediate termination, all changes through PRs
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-16 06:57:02 -04:00
Chris Farhood 33dfeb03f9 fix: add delegation target for workflow changes
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-16 06:46:42 -04:00
Chris Farhood a7c9a66180 chore: clarify workflow write access (Hugh only)
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-16 06:40:45 -04:00
Chris Farhood d2e1e8dbed chore: standardize heartbeat intervals (4h IC, 24h managers)
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-16 06:35:21 -04:00
Chris Farhood 492be961df Switch Hugh Hackman from gemini_local to claude_local opus-4-6
Gemini quota exhausted; moving to Claude.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-15 20:57:05 -04:00
Chris Farhood 5d3785a96c Update all paths from /paperclip/privilegedescalation/ to /paperclip/privilegedescalation/agents/
Repo renamed from privilegedescalation/privilegedescalation to
privilegedescalation/agents. All filesystem paths in agent configs,
heartbeats, and tools updated to match the new on-disk location.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 19:30:47 -04:00
Chris Farhood 69a1951318 Add HOME env to all agents to isolate gitconfig and gh auth state
Each agent gets HOME set to their cwd so ~/.gitconfig and
~/.config/gh/ don't collide between concurrent heartbeats.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 14:55:44 -04:00
Chris Farhood c402c3bbd6 Add checkout compliance and run traceability to all agents
Add explicit POST /api/issues/{issueId}/checkout and PATCH status
update curl templates with X-Paperclip-Run-Id headers to all agent
heartbeats. Document Gemini workspace sandboxing in Hugh's TOOLS.md.
Also removed Regina's ghost instructionsFilePath from live DB.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 12:01:50 -04:00
Chris Farhood 3e743b9d5a Fix Hugh's Gemini heartbeat compliance
Pin model from auto to gemini-2.5-pro, add explicit checkout
and X-Paperclip-Run-Id headers, and add required output gates
for steps 3-5 so Gemini can't silently skip them.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 11:52:42 -04:00
Chris Farhood 1b68650c1b Restore Gandalf's title to VP of Tasteless Pull Request Criticism
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 09:55:22 -04:00
Chris Farhood 3a0fa104fd Add shared get-github-token.sh for all agents
Single script at repo root that auto-detects GITHUB_APP_ID_* and
GITHUB_PEM_PATH_* env vars, generates a JWT, and exchanges it for a
GitHub App installation token. Contains no secrets.

Updated all heartbeats to reference the absolute path.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 08:58:48 -04:00
Chris Farhood efaae0a266 Standardize PEM paths to shared k8s Secret mount
All agents now reference PEMs at /paperclip/secrets/github-pems/<name>.pem
instead of per-agent secrets/ subdirectories. PEMs will be mounted from a
single Kubernetes Secret. Added .gitignore to prevent accidental secret commits.

Countess GitHub App ID set to 3097914.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 08:49:58 -04:00
Chris Farhood 5e22abeba0 Restructure agent roster to Paperclip 4-file standard
Split each agent from a single monolithic markdown file into the
Paperclip-recommended 4-file structure (AGENTS.md, SOUL.md, HEARTBEAT.md,
TOOLS.md) plus CONFIG.md as operational backup.

Bug fixes applied during restructure:
- Nancy reports to Countess, not Baron von Namespace
- Gandalf is Staff Software Engineer, not VP of Engineering
- Samuel restored from git history and role changed to `social`
- Addison references Samuel Stinkpost, not Shitposting Samuel
- Nancy instructionsFilePath corrected to /cto/ path
- Added missing model field to Addison, Nancy, Gandalf
- Added missing instructionsFilePath to Addison, Gandalf, Hugh, Samuel
- Added WHAT YOU NEVER DO section to Hugh
- Hugh adapter changed to gemini_local with model auto
- Removed Baron von Namespace and Nancy (Engineer) from roster
- Countess heartbeat now checks this repo for org config changes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 08:34:44 -04:00
Chris Farhood 3fadd5bca5 Rename org/engineering/regina/regression-regina.md to engineering/regina/regression-regina.md 2026-03-14 22:31:32 -04:00
Chris Farhood 93537de928 Rename org/engineering/hugh/hugh-hackman.md to engineering/hugh/hugh-hackman.md 2026-03-14 22:30:29 -04:00
Chris Farhood 5abf9413d5 Rename org/engineering/gandalf/gandalf-the-greybeard.md to engineering/gandalf/gandalf-the-greybeard.md 2026-03-14 22:29:23 -04:00