Commit Graph

67 Commits

Author SHA1 Message Date
Chris Farhood 224eda1ecc Delete engineering/gandalf/.config/opencode/config.json 2026-04-10 16:24:56 -04:00
Chris Farhood 10e4acaf9f fix: remove incorrectly named opencode.json global config 2026-03-25 09:11:52 -04:00
Chris Farhood 66c36634c5 fix: rename global opencode config to config.json with correct permission format 2026-03-25 09:11:50 -04:00
Chris Farhood 93671ffaba fix: remove incorrectly named opencode.json global config 2026-03-25 09:11:48 -04:00
Chris Farhood 00ea1c339d fix: rename global opencode config to config.json with correct permission format 2026-03-25 09:11:46 -04:00
Chris Farhood bb4e7e65cc fix: remove incorrectly named opencode.json global config 2026-03-25 09:11:43 -04:00
Chris Farhood e26568b729 fix: rename global opencode config to config.json with correct permission format 2026-03-25 09:11:41 -04:00
Chris Farhood f62a221796 fix: remove incorrectly named opencode.json global config 2026-03-25 09:11:40 -04:00
Chris Farhood 0dd26e9edb fix: rename global opencode config to config.json with correct permission format 2026-03-25 09:11:36 -04:00
Chris Farhood 7a7c5988bf chore: add global opencode config for permission fix 2026-03-25 09:02:47 -04:00
Chris Farhood 2d61993930 chore: add global opencode config for permission fix 2026-03-25 09:02:46 -04:00
Chris Farhood 0373bc45e4 chore: add global opencode config for permission fix 2026-03-25 09:02:45 -04:00
Chris Farhood 85a2037093 chore: add global opencode config for permission fix 2026-03-25 09:02:44 -04:00
Chris Farhood d29f073941 chore: add skills.paths to opencode config 2026-03-25 08:52:27 -04:00
Chris Farhood 9aea6bbcc0 chore: add skills.paths to opencode config 2026-03-25 08:52:26 -04:00
Chris Farhood 5128fd2d9b chore: add skills.paths to opencode config 2026-03-25 08:52:25 -04:00
Chris Farhood 6db428901d chore: add skills.paths to opencode config 2026-03-25 08:52:24 -04:00
Chris Farhood 674be5d762 chore: remove Samuel, reduce per-heartbeat token load
- 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>
2026-03-25 07:41:51 -04:00
Hugh Hackman e56a6bd9ef fix: remove extra trailing blank line in CONFIG.md (MD012) 2026-03-25 09:07:24 +00:00
Chris Farhood b60920df05 Add opencode.json to every agent directory
Every agent must have opencode.json with permission: allow,
regardless of adapter type. Without it, opencode auto-rejects
file access outside the agent's cwd.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 21:57:19 -04:00
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