agentleFS
cerebrocybersolutionscerebrocybersolutions/libro/skills/ceo-brief/SKILL.md

ceo-brief

Skill1 starsChanged 40 days agoApache-2.0View on GitHub

CEO-level cross-department briefing for {{operator_name}} at {{company_name}}. Reads all department Brain sessions and decisions, synthesizes into a structured brief covering what moved, what's stuck, pending decisions, and upcoming deadlines. Use this skill whenever {{operator_name}} says: "brief me", "what's the state of the company", "morning brief", "company status", "what happened", "catch me up", "how are we doing", "daily brief", "what do I need to know", or at the end of any sessionend to close the loop. Also triggers on: "what's moving", "macro view", "give me a company update". This is the Chief of Staff brain — always run it when the operator needs a company-wide picture, even if they don't say "brief" explicitly. NOTE: backlog-lane intents (aging / pending / unresolved decisions) route to cross-dept-decisions, not here. See {brain_root}/AGENTS.md §Known DRY pairs.

The file

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 6 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Default (no qualifier): run Full Brief.

    line 64
  2. Distinctive:

    Always use this exact structure — concise, scannable, no fluff:

    line 70
  3. Distinctive:

    Keep each section to 3 bullets max.

    line 95
  4. Distinctive:

    One Insight is required: Don't skip it. This is the Chief of Staff's job — connecting dots the operator might not see because they're …

    line 117
  5. Distinctive:

    Check circuit-breaker state on every full brief: If any breaker is open or half-open, the orchestrator is diverting traffic — surface it in …

    line 124
  6. Distinctive:

    If the operator says yes to aging decisions, run Stage 2 (Decisions Only) inline.

    line 168

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

CEO Brief — Chief of Staff Skill

Synthesizes all active department activity into a CEO-level briefing. The operator should never have to hunt across department Brains to know what's happening — this skill does that for them.


COMPANY PROFILE

Company:   {{company_name}}  |  {{company_type}}
Operator:  {{operator_name}} |  {{operator_email}}
Brain:     {brain_root}/
Dashboard: {brain_root}/mission-control/DASHBOARD.md

Loaded from ~/.cerebro/profile.yaml at runtime (populated by first-run wizard). Never prompt for this information.


BRAIN CHECK — Always Run First

Load before generating any brief:

  1. {brain_root}/mission-control/DASHBOARD.md — current department status table and red flags
  2. Last ops session from {brain_root}/mission-control/sessions/ — any cross-dept decisions or context
  3. {brain_root}/mission-control/state/circuit-breakers.json — orchestration routing health (only surface if open/half-open — see "Routing Health" below)

THE 4 STAGES

Route based on what the operator asked for:

Operator saysStageReference
"brief me" / "what's happening" / morningFull Briefreferences/stage1_full_brief.md
"what decisions are pending"Decisions Onlyreferences/stage2_decisions.md
"how is [dept] doing"Dept Drill-Downreferences/stage3_dept_drilldown.md
"what's due soon" / deadlinesDeadline Scanreferences/stage4_deadlines.md

Default (no qualifier): run Full Brief.


BRIEF OUTPUT FORMAT

Always use this exact structure — concise, scannable, no fluff:

## CEO Brief — [Day, Date]

### 🟢 What Moved
[Dept]: [1 line — what actually happened, concrete outcome]

### 🔴 What's Stuck / Red Flags
[Dept]: [1 line — what's blocked and why]

### ⚡ Decisions Needed From {{operator_name}}
1. [Decision] — [Dept] — aging X days
2. [Decision] — [Dept] — deadline context

### 📅 Upcoming Deadlines (next 14 days)
- [Date] | [item] | [Dept] | [Status]

### 🔌 Routing Health (orchestration stack)
- [tier / task-class] | [state: open / half-open] | [hours since open / probe due]

### 💡 One Insight
[Single most important observation — pattern, risk, or opportunity across departments]

Keep each section to 3 bullets max. If there's nothing to report in a section, omit it. Give signal, not noise.

Routing Health is OFF by default. Include it ONLY when the circuit-breaker state file at {brain_root}/mission-control/state/circuit-breakers.json has one or more entries in state open or half-open. If every breaker is closed (or the file is absent), omit the section entirely.


KEY RULES

  1. Read the actual session files, not just DASHBOARD.md. The dashboard is a snapshot; sessions have the real detail. Always read the last 1–2 session entries from each dept that has been active in the last 7 days.
  2. Surface aging decisions. Any decision that's been open for 7+ days without resolution is a red flag. Name the decision, name the department, name how many days it's been open.
  3. Never generate a brief without reading the Brain first. A brief written from memory is stale by definition. Always load fresh context.
  4. One Insight is required. Don't skip it. This is the Chief of Staff's job — connecting dots the operator might not see because they're heads-down in a single department.
  5. If a department has had no sessions in 7+ days, flag it. Dormant departments aren't moving. Check {brain_root}/mission-control/DASHBOARD.md for dept posture context before recommending activation of any dept marked as deprioritized.
  6. Check circuit-breaker state on every full brief. If any breaker is open or half-open, the orchestrator is diverting traffic — surface it in "Routing Health" with tier, task-class, state, and hours-since-opened.

DEPARTMENT PATHS — Read These for Full Briefs

{operator_departments} — configured in brain.config.yml at install time

# Example structure:
#   {dept}/brain/sessions/           ← session logs
#   {dept}/brain/decisions/decisions.md   ← dept decision log
#   mission-control/sessions/           ← ops/cross-dept sessions
#   mission-control/decisions/          ← company-wide decisions

All paths relative to {brain_root} (populated by first-run wizard at install time).


RENDER TARGETS

ceo-brief is the engine for cross-department briefing. The synthesis step (load Brain, score aging, extract insight) is target-agnostic. The render step varies by surface:

TargetConsumerFormatStatus
Text briefChat session, sessionend/sessionstart ritualMarkdown per BRIEF OUTPUT FORMAT above✅ shipping
HTML dashboardOperator's local browserInteractive HTML with expandable dept cards + decision-queue widget + deadline timeline🟡 building
Export artifactExec summary, one-pagerDocument output🔴 deferred

Rule: the Brain → synthesis step is a single code path. Adding a render target means extending the render step only, not re-reading the Brain.


AFTER THE BRIEF

Always offer:

"Want to drill into any department, or should I surface the aging decisions list?"

If the operator says yes to aging decisions, run Stage 2 (Decisions Only) inline.


Scope Contract

DimensionScope
Read pathsAll dept session folders ({dept}/brain/sessions/), {brain_root}/mission-control/awareness.md, {brain_root}/mission-control/DASHBOARD.md, {brain_root}/mission-control/decisions/, ~/.cerebro/profile.yaml
Write pathsNone. Read-only synthesizer — renders current state, never mutates it.
MCP / tool surfacePython stdlib for brief synthesis; HTML rendering for dashboard (localhost-only)
Network egressNone for text brief; dashboard uses localhost rendering only
SurfaceClaude Code
CredentialsNone for text brief; dashboard reads ~/.cerebro/profile.yaml for operator identity
Escalation triggerIf dept session frontmatter drift ≥20%, emit [DRIFT] warning to stderr
<!-- AUTOLINK-START — Obsidian wikilink graph backfill (idempotent; safe to re-run) -->

References (auto-wikilinks)

  • [[DASHBOARD]]
  • [[awareness]]
  • [[decisions]]
  • [[stage1_full_brief]]
  • [[stage2_decisions]]
  • [[stage3_dept_drilldown]]
  • [[stage4_deadlines]]
<!-- AUTOLINK-END -->

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.