---
name: CEO Council
slug: ceo-council
category: AI Engineering
description: CEO Council launches isolated expert analyses to examine project data from multiple C-level perspectives. Use it for business decisions, growth strategy, product direction, or competitive analysis when you want independent viewpoints before synthesis.
github: "https://github.com/serejaris/personal-corp-os/tree/main/skills/ceo-council"
language: HTML
stars: 224
forks: 25
install: "npx degit https://github.com/serejaris/personal-corp-os/tree/main/skills/ceo-council ~/.claude/skills/ceo-council"
installs_to: ~/.claude/skills/ceo-council
source_path: skills/ceo-council/SKILL.md
collection_size: 25
category_size: 2793
collection_url: "https://dirskills.com/collections/serejaris/personal-corp-os"
added: 2026-09-03T06:05:21.988Z
last_synced: 2026-09-03T06:05:21.988Z
canonical_url: "https://dirskills.com/skills/ceo-council"
---

# CEO Council

CEO Council launches isolated expert analyses to examine project data from multiple C-level perspectives. Use it for business decisions, growth strategy, product direction, or competitive analysis when you want independent viewpoints before synthesis.

**Install:**

```bash
npx degit https://github.com/serejaris/personal-corp-os/tree/main/skills/ceo-council ~/.claude/skills/ceo-council
```

## README

# 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 |
