From 0c202506d5d00257e83fb185921e0b45e2ff9dc3 Mon Sep 17 00:00:00 2001 From: Chris Farhood Date: Sat, 21 Mar 2026 10:39:04 -0400 Subject: [PATCH] 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 --- cmo/.mcp.json | 12 ------------ cmo/CONFIG.md | 24 ++++++++++++------------ cmo/opencode.json | 20 ++++++++++++++++++++ engineering/regina/CONFIG.md | 4 ++-- engineering/regina/opencode.json | 2 +- 5 files changed, 35 insertions(+), 27 deletions(-) delete mode 100644 cmo/.mcp.json create mode 100644 cmo/opencode.json diff --git a/cmo/.mcp.json b/cmo/.mcp.json deleted file mode 100644 index f44ccd0..0000000 --- a/cmo/.mcp.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "mcpServers": { - "minimax-search": { - "type": "stdio", - "command": "uvx", - "args": ["minimax-coding-plan-mcp", "-y"], - "env": { - "MINIMAX_API_HOST": "https://api.minimax.io" - } - } - } -} diff --git a/cmo/CONFIG.md b/cmo/CONFIG.md index 08b1392..3e3d675 100644 --- a/cmo/CONFIG.md +++ b/cmo/CONFIG.md @@ -1,6 +1,8 @@ # Addison Addington — Config -> This file is the operational backup. The active prompt is split across AGENTS.md, SOUL.md, and HEARTBEAT.md. +> This file is the operational backup. +> +> **Note:** Uses the `opencode_local` adapter with MiniMax M2.7 direct. Prompt lives as `promptTemplate` in the Paperclip DB. The active prompt is split across AGENTS.md, SOUL.md, and HEARTBEAT.md. ## Identity @@ -9,7 +11,7 @@ | ID | `606d2953-ca84-4ffc-b575-cb7e2e5897d3` | | Role | `cmo` | | Title | Chief Sign Spinner | -| Adapter | `claude_local` | +| Adapter | `opencode_local` | | Reports To | Countess von Containerheim (`cc3abd0b-f1fb-44fd-af37-81ba3184f328`) | | Budget | 0 cents/month | @@ -32,20 +34,18 @@ "cwd": "/paperclip/privilegedescalation/agents/cmo", "env": { "HOME": { "type": "plain", "value": "/paperclip/privilegedescalation/agents/cmo" }, - "MINIMAX_API_KEY": { "type": "secret_ref", "secretId": "fc5a9197-9084-4478-a63d-b1c00a901f9e" }, - "GITHUB_APP_ID_ADDISON": { "type": "plain", "value": "3140977" }, - "GITHUB_PEM_PATH_ADDISON": { "type": "plain", "value": "/paperclip/secrets/github-pems/privilegedescalation-ceo.pem" } + "MINIMAX_API_KEY": { "type": "secret_ref", "secretId": "fc5a9197-9084-4478-a63d-b1c00a901f9e" } }, - "model": "claude-sonnet-4-6", - "effort": "medium", - "graceSec": 15, - "timeoutSec": 0, - "maxTurnsPerRun": 80, - "instructionsFilePath": "/paperclip/privilegedescalation/agents/cmo/AGENTS.md", - "dangerouslySkipPermissions": true + "model": "minimax/MiniMax-M2.7" } ``` ## Capabilities Owns and executes the full marketing function for Privileged Escalation — strategy, content creation, social media, community engagement, and sponsor outreach. Does not write code or manage infrastructure. Developer relations, GitHub Sponsors, open source marketing, CNCF ecosystem. + +## Known Issues (opencode_local adapter) + +- **Env + model wipe on UI save**: Saving config via the Paperclip UI wipes `env` and `model`. Restore via DB patch after any UI save. +- **Prompt UI blank**: The `opencode_local` adapter does not hydrate `promptTemplate` back into the Lexical editor. The prompt is correctly stored in the DB — the blank editor is a display bug. +- **No `instructionsFilePath`**: The `opencode_local` adapter does not support file-based prompt loading. The prompt must be concatenated from SOUL.md + HEARTBEAT.md and set as `promptTemplate` in the DB. diff --git a/cmo/opencode.json b/cmo/opencode.json new file mode 100644 index 0000000..65f1db0 --- /dev/null +++ b/cmo/opencode.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://opencode.ai/config.json", + "permission": "allow", + "experimental": { + "snapshots": false + }, + "mcp": { + "minimax-search": { + "type": "local", + "command": [ + "uvx", + "minimax-coding-plan-mcp", + "-y" + ], + "environment": { + "MINIMAX_API_HOST": "https://api.minimax.io" + } + } + } +} \ No newline at end of file diff --git a/engineering/regina/CONFIG.md b/engineering/regina/CONFIG.md index d188034..d819348 100644 --- a/engineering/regina/CONFIG.md +++ b/engineering/regina/CONFIG.md @@ -34,11 +34,11 @@ "cwd": "/paperclip/privilegedescalation/agents/engineering/regina", "env": { "HOME": { "type": "plain", "value": "/paperclip/privilegedescalation/agents/engineering/regina" }, - "OPENROUTER_API_KEY": { "type": "secret_ref", "secretId": "d843133a-0702-4f44-b8e8-43249879995f" }, + "MINIMAX_API_KEY": { "type": "secret_ref", "secretId": "fc5a9197-9084-4478-a63d-b1c00a901f9e" }, "GITHUB_APP_ID_REGINA": { "type": "plain", "value": "3141386" }, "GITHUB_PEM_PATH_REGINA": { "type": "plain", "value": "/paperclip/secrets/github-pems/privilegedescalation-qa.pem" } }, - "model": "openrouter/minimax/minimax-m2.7" + "model": "minimax/MiniMax-M2.7" } ``` diff --git a/engineering/regina/opencode.json b/engineering/regina/opencode.json index 0865c06..661ed3f 100644 --- a/engineering/regina/opencode.json +++ b/engineering/regina/opencode.json @@ -10,4 +10,4 @@ "url": "http://playwright-privilegedescalation.paperclip.svc.cluster.local:3000/sse" } } -} +} \ No newline at end of file