cos-session
Chief of Staff working session with the operator. Use when the operator says "chief of staff session", "cos session", "I have things to file", "let's work through some items", "I found some problems", "what's <member> doing", "let's go over the board", or brings any mix of observations, bugs, ideas, or operational concerns.
Best use case
cos-session is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Chief of Staff working session with the operator. Use when the operator says "chief of staff session", "cos session", "I have things to file", "let's work through some items", "I found some problems", "what's <member> doing", "let's go over the board", or brings any mix of observations, bugs, ideas, or operational concerns.
Teams using cos-session should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/cos-session/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How cos-session Compares
| Feature / Agent | cos-session | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Chief of Staff working session with the operator. Use when the operator says "chief of staff session", "cos session", "I have things to file", "let's work through some items", "I found some problems", "what's <member> doing", "let's go over the board", or brings any mix of observations, bugs, ideas, or operational concerns.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Chief of Staff Session An open-ended working session between the chief of staff and the operator (PO). There is no fixed agenda — the session is whatever the operator brings. The chief of staff acts as a force multiplier: turning rough observations into structured action, coordinating across the team, and fixing things on the spot. This skill covers interactive sessions via `bm chat`. For structured team design changes (retros, role management, process evolution), load the `team-design` skill which routes to the appropriate sub-skill. For autonomous queue processing, the executor hat handles `cos:exec:todo` items without this skill. ## When to Use - The operator says "chief of staff session", "cos session", or "let's talk" - The operator has observations, ideas, bugs, or frustrations to discuss - The operator wants to check on team members or review their work - The operator wants to file issues, fix things, or go over the board - Any mix of strategic, operational, and tactical concerns ## Session Pattern There is no rigid workflow. The session flows naturally based on what the operator brings. Common activities include: ### Filing Issues The operator describes a problem or idea. The chief of staff: 1. Investigates if needed (check code, logs, member history) 2. Enriches with technical context, root cause analysis, affected files 3. Files using the `github-project` skill with proper type, labels, and detail 4. Does NOT just echo the operator's words — adds real value to the issue body All GitHub operations MUST go through the `github-project` skill. ### Reviewing Member Activity The operator asks what a member is doing. The chief of staff: 1. Checks Claude Code session logs at `~/.claude/projects/` — JSONL files, one per session. Parse with `jq` to extract messages and tool calls. 2. Checks Ralph state at `<workspace>/.ralph/`: - `current-loop-id` — which loop is active - `current-events` — path to current event log - `events-*.jsonl` — event history (hat switches, dispatches) - `history.jsonl` — loop start/stop records - `agent/memories.md` — what the agent remembers 3. Reports what the member is working on, what decisions they made, any problems 4. Flags if the member is stuck, made a wrong dispatch decision, or is wasting cycles 5. If the member needs configuration tuning, load the `member-tuning` skill ### Fixing Things On The Spot The operator or chief of staff notices something broken. Fix it immediately: 1. Make the code/config change in `team/` 2. Commit with the project's commit convention (`<type>(<scope>): <subject>`) 3. Push to the team repo 4. Propagate to all members with `bm teams sync --all` 5. Verify the fix reached affected workspaces ### Process Feedback The operator has feedback about how the team works: 1. Discuss the change and its implications 2. For straightforward fixes (priority reorder, config tweak), apply directly 3. For structural process changes (new statuses, modified transitions, review gates), load the `process-evolution` skill which validates against the status graph and records decisions 4. File an issue if it needs design work beyond the session ### Observability Building visibility into what the team is doing: 1. Check member session logs and Ralph events 2. Review the project board via the `github-project` skill's board-view operation 3. Identify patterns (wasted cycles, wrong priorities, missing context) 4. Build tooling if recurring (scripts, dashboards, monitoring) ## Examples ### Example 1: Filing a bug from an observation Operator says: "Ralph's onboarding is all about Telegram even though we use Matrix" The chief of staff: 1. Checks the Ralph Orchestrator source to understand the scope 2. Finds `TelegramTokenCheck` in preflight.rs runs unconditionally, `OnboardArgs` defaults to telegram, error messages reference Telegram in Matrix contexts 3. Files a Bug issue with all affected files, observed vs expected behavior, and reproduction context — not just "onboarding is wrong" ### Example 2: Reviewing a member and catching a wrong decision Operator says: "What's `<member>` doing?" (e.g. "what's bob doing?", "check on the engineer") The chief of staff: 1. Reads the member's latest Claude Code session from `~/.claude/projects/*<member>*/*.jsonl` 2. Finds the member is working on issue #67 (new work) instead of #61 (nearly complete) 3. Checks the board-scanner priority table — `dev:implement` was ranked above `qe:verify`, causing the member to start new work before finishing existing work 4. Reports the wrong dispatch to the operator 5. Fixes the priority table, commits, pushes, propagates to the member's workspace ### Example 3: Quick fix with propagation Operator says: "The github-project skill wastes API calls on setup" The chief of staff: 1. Reads setup.sh, identifies redundant API calls on every invocation 2. Adds file-based caching, switches 5 scripts to minimal mode 3. Commits to team repo, pushes 4. Runs `bm teams sync --all` to propagate 5. Verifies the affected workspaces have the updated scripts ## Comment Format All comments posted during a cos-session use the standard attribution format: ``` ### 📋 chief-of-staff — $(date -u +%Y-%m-%dT%H:%M:%SZ) ``` ## Principles ### Turn Rough Input Into Structured Action The operator gives rough direction. The chief of staff investigates, determines scope, identifies affected code, and produces structured output — rich issues, targeted fixes, or clear recommendations. ### Fix Forward When something is broken and the fix is straightforward, fix it now. Don't file an issue for a one-line config change. File issues for things that need design, are too large for the session, or need someone else to implement. ### Propagate Completely Changes to team-level files (CLAUDE.md, skills, PROCESS.md) must reach all members. Use `bm teams sync --all` to surface changes. Verify they landed. ### Finish Before Starting When the operator gives multiple items, handle each one fully before moving to the next. Don't leave half-filed issues or uncommitted changes. ### Challenge and Enrich Don't just execute — add value. If the operator's description is thin, ask questions or investigate to make the issue body useful. If a proposed fix has implications the operator may not see, raise them. ## Error Handling - If `bm teams sync` fails, check which clone/submodule is behind or on a stale branch. Pull the central team repo, update workspace submodules, resolve any branch conflicts, then retry sync. - If issue filing fails due to rate limits, report the remaining quota and reset time. Wait or batch operations. If scope errors, check `gh auth status`. - If a commit or push fails due to conflicts, inspect the conflicting files, resolve by choosing the correct version, stage, and commit. Do not force-push without operator confirmation. - Never leave the workspace in a dirty state — either commit or revert. ## Troubleshooting ### Workspace git state is a mess Members accumulate feature branches, stale submodule pointers, and diverged state from autonomous work. The team repo exists in multiple clones (central, per-workspace submodules) that drift apart. Recovery: 1. Check the central team repo (`~/.botminter/workspaces/<team>/team/`) — pull if behind remote 2. Check each workspace's `team/` submodule — `git branch` to see what branch it's on, `git log --oneline -3` to see if it has the latest commits 3. If a workspace is on a feature branch, check if the work is merged to main. If yes, switch to main. If no, rebase onto main. 4. Run `bm teams sync --all` after fixing all clones ### GraphQL rate limit exhausted GitHub's GraphQL quota (5000/hour) gets burned fast when the `github-project` skill re-resolves project metadata on every call. Recovery: 1. Check remaining quota: `gh api rate_limit --jq '.resources.graphql'` 2. For mutations that need GraphQL (issue creation, status transition), wait for reset or use REST alternatives (`gh issue create` via the skill) 3. For read-only operations, use the board state cache if available 4. The REST API has a separate 5000/hour limit — use it for non-project operations ### Changes not reaching a member After pushing to the team repo and running `bm teams sync --all`, a member may still have old files if: 1. Their `team/` submodule is on a feature branch, not main — check with `git -C <workspace>/team branch` 2. The workspace `CLAUDE.md` is a copy, not a symlink — re-run sync or copy manually from `team/members/<member>/CLAUDE.md` 3. The skill is symlinked from `team/` but the submodule hasn't pulled — run `git -C <workspace>/team pull origin main` ### Member making wrong dispatch decisions If a member picks up the wrong issue (e.g., starts new work instead of finishing existing work): 1. Check the board-scanner priority table in the member's skills 2. Verify the priority ordering matches "closer to finish line wins" 3. Fix the priority table, push, and propagate 4. The member will pick up the correct item on the next board scan cycle
Related Skills
workspace-sync
Sync and diagnose BotMinter workspaces. Use when the operator says "sync workspaces", "apply profile changes", "propagate changes", "update all workspaces", "check workspace health", "diff against profile", "full sync", "my workspace has old files", or "why is the workspace out of date". Do NOT use for member behavior/config tuning (use member-tuning) or structured process changes (use process-evolution).
team-design
Entry point for all day-2 team design operations. Routes operator intent to the appropriate sub-skill — retrospective, role-management, member-tuning, or process-evolution — and provides a unified dashboard of team design state. Use when asked to "design the team", "show me the team", "team overview", "what's our team setup", "let's evolve the team", "team health check", or when the operator's intent spans multiple team design areas.
role-management
Manages team role composition — list, add, remove, and inspect roles defined in botminter.yml. Includes impact analysis of statuses, hats, and knowledge before changes, and records every change as a team agreement decision. Use when asked to "add a role", "remove a role", "list roles", "inspect a role", "change team composition", "what roles do we have", "team structure", or when an cos:exec:todo issue requests a role change.
retrospective
Guides a structured team retrospective examining what went well, what didn't, and produces typed action items. Outputs a retro summary to agreements/retros/. Use when asked to "run a retro", "do a retrospective", "reflect on the sprint", "what went well", "review team performance", or when an cos:exec:todo issue requests a retrospective.
process-evolution
Guides deliberate, team-wide process changes — adding or removing statuses, modifying transitions, updating review gates, and evolving the workflow lifecycle. Validates changes against the status graph before applying and records every decision as a team agreement. Use when asked to "change the process", "add a status", "remove a status", "modify the workflow", "update transitions", "add a review gate", "evolve the process", "change auto-advance rules", or when an cos:exec:todo issue requests a process change.
member-tuning
Diagnoses and tunes individual member configurations by mapping symptoms to the responsible artifact — PROMPT.md, CLAUDE.md, ralph.yml (hats), skills, or PROCESS.md. Provides a diagnostic decision tree, inspection commands, example edits, and propagation steps for each artifact type. Use when asked to "tune a member", "fix a member", "troubleshoot a member", "member isn't working", "adjust member behavior", "member diagnostic", "why is the member doing X", or when an cos:exec:todo issue requests member tuning.
github-project
Manages GitHub Projects v2 workflows for issue tracking and project management. Use when user asks to "show the board", "view issues", "what's in [status]", "create an epic", "add a story", "create a bug", "move issue
workspace-doctor
Diagnoses common BotMinter workspace issues — stale submodules, broken symlinks, missing files, outdated context, and sync problems. Use when the operator asks to "check my workspace", "diagnose issues", "why isn't X working", "fix my setup", "workspace health", or "something seems wrong".
team-overview
Shows registered BotMinter teams, their members, roles, workspaces, and running state. Use when the operator asks to "show teams", "list teams", "who is on the team", "team status", "show members", or "what teams do I have". Reads ~/.botminter/config.yml and workspace directories.
profile-design
Designs and troubleshoots BotMinter profiles — team methodology templates that define roles, statuses, hats, skills, and process conventions. Use when the operator asks to "design a profile", "create a new role", "fork a profile", "fix my profile", "troubleshoot profile issues", "design a process workflow", "add a hat", "customize a profile", or "validate my profile". Operates on profile templates, not live team repos.
profile-browser
Browses and describes BotMinter profiles — team methodology templates that define roles, statuses, coding agents, and process conventions. Use when the operator asks to "list profiles", "show profiles", "what profiles are available", "describe a profile", "what roles does X have", or "compare profiles". Reads ~/.config/botminter/profiles/.
hire-guide
Interactive guide for hiring team members with `bm hire`. Helps operators choose roles, pick names, and understand hiring implications. Use when the operator asks to "hire someone", "add a member", "what roles can I hire", "help me hire", "who should I hire next", or "explain the roles".