Agent skill

ceo-council

Use when needing strategic project analysis from multiple independent expert perspectives. Triggers on business decisions, growth strategy, product direction, competitive analysis, or any situation where diverse C-level opinions reduce blind spots

Stars 136
Forks 14

Install this agent skill to your Project

npx add-skill https://github.com/serejaris/ris-claude-code/tree/main/skills/ceo-council

SKILL.md

CEO Council — Independent Strategic Analysis

Launch parallel sub-agents as isolated C-level experts. Each analyzes the same project data from their perspective. No coordination between experts — isolation produces genuine diversity of opinion. Then synthesize consensus and disagreements.

Critical: How to Launch Experts

MUST use the Task tool with subagent_type: "general-purpose" and model: "opus".

Task(
  subagent_type: "general-purpose",
  model: "opus",
  prompt: "<expert prompt with data>",
  description: "CFO analysis"
)

DO NOT use bash, shell scripts, or background commands to launch experts. They will fail.

Launch all experts in a single message with multiple Task tool calls for true parallelism.

Step 1: Scan Project Context

Before suggesting experts, understand the project:

  1. Read CLAUDE.md (or README.md if absent)
  2. Scan .claude/rules/ for domain context
  3. Glance at top-level file structure

Based on findings, generate 4-6 expert roles tailored to THIS project. Roles must reflect the project's actual domain, challenges, and stage.

Step 2: Assemble the Council

MANDATORY: Ask the user before proceeding. Do not pick roles yourself.

Use AskUserQuestion with multiSelect: true:

  • Show 4-6 role options with short descriptions of their focus
  • User can always pick "Other" to define custom roles
  • Minimum 2 experts. If user picks 1, suggest adding one more for productive disagreement

Role Examples by Project Type

Don't copy these — generate fresh roles based on actual project context:

Project Type Typical Roles
SaaS Head of Engineering, Head of Product, Head of Growth, CFO, UX Researcher
Open Source Community Manager, Technical Architect, DevRel, Security Advisor
Content / Media Content Strategist, Audience Analyst, Monetization Expert, Distribution Expert
EdTech CMO, CFO, CPO, COO, Growth Advisor
E-commerce Head of Supply Chain, Marketing Director, CTO, Customer Experience Lead
Agency / Consulting Sales Director, Delivery Lead, Talent Manager, CFO

Step 3: Gather Current Data

Collect project state to feed all experts. Stay focused on what's relevant:

Read:

  • Key metrics/data files identified during context scan
  • Strategy and planning documents
  • Recent decisions or changes (git log --oneline -10)
  • Previous council analyses (if any)

Skip: GitHub traffic stats, stargazer counts, clone data, contributor lists — these are vanity metrics, not strategic data.

All experts must receive identical data context. Prepare the data block ONCE, then paste it into each expert prompt.

Step 4: Generate Expert Prompts

For each selected expert, create a prompt with the SAME data block:

You are the [ROLE] for [PROJECT NAME]. Analyze the data below from a [DOMAIN] perspective.

Focus on:
- [3-6 specific focus areas relevant to role and project]

Data:
[CURRENT PROJECT DATA — identical for all experts]

[Role-specific instruction: "show the math", "be the contrarian", "prioritize by effort/impact", etc.]

Respond in the same language as the data provided.

Rules:

  • Each expert gets the SAME data block — prepare it once, reuse
  • Focus areas must be specific to the project, not generic
  • Include a personality instruction (contrarian, pragmatic, data-driven)
  • Mention project constraints the expert should know

Step 5: Execute

Launch ALL selected experts in one message using multiple Task tool calls:

# In a single response, call Task for each expert:
Task(subagent_type: "general-purpose", model: "opus", prompt: "<CFO prompt>", description: "CFO analysis")
Task(subagent_type: "general-purpose", model: "opus", prompt: "<CPO prompt>", description: "CPO analysis")
Task(subagent_type: "general-purpose", model: "opus", prompt: "<CTO prompt>", description: "CTO analysis")

Wait for all experts to return results before proceeding to synthesis.

Step 6: Synthesize

Do not skip this step. The synthesis is the entire value of the council.

After all experts report, create a synthesis document:

markdown
# Council Session: [DATE]

## Council Members
[List of selected experts and their focus]

## Context
[Current metrics/state snapshot — brief]

## [Expert 1 Name]
[Key findings and recommendations]

## [Expert 2 Name]
[Key findings and recommendations]

## Consensus (all agree)
1. ...
2. ...

## Disagreements
| Expert | Position | Argument |
|--------|----------|----------|
| ... | ... | ... |

## Decisions
_To be filled after discussion._

Save Results

Save to a logical location:

  • docs/council-[DATE].md — default
  • Or project-specific path if context suggests one

Common Mistakes

Mistake Fix
Picking roles without asking user ALWAYS use AskUserQuestion first
Using bash to launch experts ONLY use Task tool with subagent_type: "general-purpose"
Giving experts different data Prepare ONE data block, paste into all prompts
Gathering vanity metrics Focus on project docs, strategy, actual metrics
Too many experts (6+) 3-4 is optimal for signal-to-noise
Skipping synthesis The synthesis IS the value — never skip

Expand your agent's capabilities with these related and highly-rated skills.

serejaris/ris-claude-code

readme-generator

Use when creating or rewriting README.md for projects. Triggers on "write README", "create README", "update README". Creates human-focused documentation with proper structure.

136 14
Explore
serejaris/ris-claude-code

gh-issues

Use when creating, searching, updating, or managing GitHub issues via CLI. Triggers: "issue", "create issue", "gh issue", "task tracking", "context", "handoff", "resume task", "session context", "save progress", "active tasks", "in-progress", "my tasks", "open issues". Covers: gh commands, bulk operations, JSON/jq, search filters, issue-to-PR workflow, AI session context storage, task workflow with labels.

136 14
Explore
serejaris/ris-claude-code

task-routing

Use when creating GitHub issues, adding tasks to backlog, or when unsure which repo/project an issue belongs to. Triggers on "создай задачу", "issue", "добавь в бэклог", "task routing", "куда положить задачу".

136 14
Explore
serejaris/ris-claude-code

product-data-audit

Use when auditing a product, business, or project ecosystem — analyzing data sources, decision loops, bottlenecks, and implementation contours. Triggers on "аудит продукта", "product audit", "data audit", "аудит данных", "аудит бизнеса", "проанализируй экосистему", "аудит систем".

136 14
Explore
serejaris/ris-claude-code

weekly-planning

Use when transitioning from retro to weekly plan, prioritizing backlog, choosing outcomes for the week, or when user says "план на неделю", "планирование", "W13 plan", "outcomes", "приоритизация". Runs after weekly-retro skill.

136 14
Explore
serejaris/ris-claude-code

cc-analytics

Use when user asks for Claude Code usage stats, weekly analytics, project activity summary, or wants to see what projects were worked on. Triggers on "аналитика", "статистика claude", "cc stats", "weekly report", "что делал"

136 14
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results