Commit Graph

34 Commits

Author SHA1 Message Date
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 10935a9acc Fix CEO triage: dynamically list all org repos instead of hardcoded list
CEOs were missing issues in repos not explicitly listed (e.g.,
groombook/infra, PRI plugin repos). Now uses gh repo list to
discover all repos in the org at triage time.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 23:00:19 -04:00
Chris Farhood d7b34fff30 Hire VP of Product for CartSnitch, Groom Book, and Privileged Escalation
New agents:
- Coupon Carl (CartSnitch) — grocery price tracking product vision
- Pawline Prioritizer (Groom Book) — pet grooming business tool product vision
- Kubectl Karen (PRI) — Headlamp K8s plugin product vision

Each VP Product has:
- Detailed product vision with target users, anti-personas, and scope boundaries
- Explicit prioritization framework with P0-P3 tiers
- Feature spec template with acceptance criteria
- Competitive landscape analysis
- In-scope / out-of-scope / gray-area classifications
- Scope guard responsibility on PRs (not code quality)
- Backlog ownership and "say no" authority

Reports to CEO. Uses opus 4.6 (judgment-heavy role).
Uses CEO GitHub App for backlog management.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 20:42:34 -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 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 33c076aaa0 Enforce PR workflow: QA + CTO approve, CEO merges, GitHub branch protection
POLICIES.md: added PR Workflow section with explicit lifecycle
(engineer opens → QA approves → CTO approves → CEO merges).
Updated issue tracking to reference dual approval before merge.
Added branch protection enforcement directive.

CEO: added merge step to heartbeat, merge authority in SOUL.md,
branch protection enforcement responsibility.

CTO: removed merge authority, review and approve only.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 07:18:52 -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 d8d9d23a55 Revert memory commit/push — gitignore life/ and memory/ instead
Agent memory files can contain secrets (API keys, credentials, infra
details). These must not be committed to git. Memory persists on the
pod's persistent volume. Git is for board-authored config only.

- Added life/ and memory/ back to .gitignore
- Removed git add/commit/push from CEO heartbeat sync (pull-only now)
- Removed auto-merge workflow (no longer needed)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 14:43:00 -04:00
Chris Farhood aef34e2461 Add auto-merge workflow for agent-sync branch and stop pushing to main
CEO commits memory/runtime updates to agent-sync branch instead of main.
GitHub Actions workflow auto-merges agent-sync into main on push.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 14:33:27 -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 ce5e524398 Fix git sync: commit memory files before pull, push back to remote
- .gitignore: exclude runtime junk (.claude/, .cache/, .npm/) but track
  life/ and memory/ so agent knowledge persists across pod restarts
- CEO heartbeat: git add + commit local changes before pull --rebase,
  then push to persist memory files in the repo
- Fixes agents wasting turns debugging dirty working tree on every heartbeat

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 14:23:56 -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 a0d54e87e8 Fix git paths in CEO heartbeat sync and add capabilities to PATCH
- Fixed /paperclip/privilegedescalation → /paperclip/privilegedescalation/agents
- Added capabilities as top-level PATCH field in sync step

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 12:10:24 -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 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 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 7a2d88a5f5 Update Countess heartbeat with exact Paperclip API calls
PATCH replaces adapterConfig entirely (no merge), so the heartbeat now
specifies an explicit read-merge-write flow to prevent wiping promptTemplate
and secret env values. Includes exact curl commands and safety rules.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 09:28:51 -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 96e47397d7 Add repo-sync workflow to Countess heartbeat
Countess now pulls the agent roster repo on every heartbeat and applies
config changes to the live Paperclip system via API. Includes prompt-wipe
safety rules for opencode_local (Regina) and GitHub app env var placeholders.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 08:40:08 -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 0b1f4f551a Rename org/ceo/countess-von-containerheim.md to ceo/countess-von-containerheim.md 2026-03-14 22:27:56 -04:00