Explore
connor / cpo
The Ulys CPO operations rig: orchestrates product operations across the company. Keeps Linear the source of truth for progress and PRDs for requirements - status roll-ups, drift audits, and a daily digest that files project-related Slack/email/meeting conversations into the specs repo.
v0.2.0claude-code
rig use hub:connor/cpoCopy a Claude Code setup prompt
Readme
rig-CPO
The Ulys CPO operations rig — an agent workspace for orchestrating product operations across the company.
What it does
The core mandate is keeping Linear as the source of truth for progress and PRDs as the source of truth for requirements:
- Pull current status on deliverables, projects, and cycles from Linear
- Flag drift — work that's happening but not reflected in Linear (missing issues, stale statuses, unowned or undated work)
- Roll up progress per team/project into leadership-ready summaries
- Daily comms digest (every morning, ~7 AM ET, from Connor's machine): sweep the trailing 24h of public Slack channels, email, and meeting notes for project mentions, and file a dated summary per project in the specs repo
For the team — what you'll see, and how to work with it
You don't need to install or run anything. Here's what's happening and how to make it work for you:
- Every project folder in
ulys-product-specsaccumulates a daily record of what was said about it, atprds/<project>/comms-digest/YYYY-MM-DD.md— key points, decisions (quoted and linked to the source), open questions, and who was involved. - DRAFT folders: Linear projects with no PRD yet get a scaffolded folder marked
DRAFT — scaffolded from Linear. That's a placeholder for digests to land in, not a reviewed spec. Every Linear project links back to its folder. - Say the project's name. The sweep matches on project names and obvious aliases in public channels, email, and synced meeting notes. If a discussion matters, name the project in it — "the trading thing" won't be caught; "Advanced Trading" will.
- Decisions in 1:1s or DMs are invisible to it (by design — privacy rules). If you decide something that should persist, restate it in a public channel.
- It records, it doesn't act. A decision appearing in a digest changes nothing in the PRD or Linear by itself. Requirement and status changes still go through the normal process.
- PRD changes get announced. When Connor updates a PRD (directly or via a
reviewed rig change), the matching
#prj-<project>channel gets a short message from him with the change and a link. Only his own changes are announced this way. - Spot something wrong in a digest — misattributed, missing, miscited? Call it out in Slack and tag Connor.
Setup
- Install the rig (or clone this workspace) and run
claudefrom the root. - Create
me/profile.mdwith your name, role, and current priorities (local-only). - Authenticate the Linear MCP server: run
/mcpinside Claude Code and complete the OAuth sign-in (the server is preconfigured in.mcp.jsonwith read/write access). - Optional: enable the Gmail connector at the account level (Claude desktop app →
Settings → Connectors) for email context. This attaches to your Claude account, not
the rig — see
CLAUDE.md→ MCP access for how the agent treats email.
Layout
| Path | Purpose | Packaged? |
|---|---|---|
CLAUDE.md | Agent orientation | yes |
.claude/skills/ | Skill set | yes |
me/ | Personal profile | no (local-only) |
state/ | Session-to-session working state | no (local-only) |
reports/ | Generated roll-ups | no (local-only) |
Files
.claude7 files
mecreated on install
reportscreated on install
statecreated on install
.mcp.json112 B
CLAUDE.md4.5 KB
README.md3.2 KB
rig.toml1.2 KB
Versions (2)
v0.2.0a21c8b20
v0.1.00d029dfc