skills/skinnyandbald/ceos/ceos-dashboard

ceos-dashboard

SKILL.md

ceos-dashboard

State of the Business summary — a read-only dashboard that aggregates data from all CEOS skills into a single view. Quick pulse check before L10 meetings, weekly reviews, or any time the leadership team needs the big picture.

When to Use

  • "Dashboard" or "show me the dashboard"
  • "State of the business" or "how are we doing?"
  • "Business health" or "pulse check"
  • "Overview" or "what's the state of things?"
  • "Quick summary" or "where do we stand?"
  • Before L10 meetings for a pre-meeting snapshot

Context

Finding the CEOS Repository

Search upward from the current directory for the .ceos marker file. This file marks the root of the CEOS repository.

If .ceos is not found, stop and tell the user: "Not in a CEOS repository. Clone your CEOS repo and run setup.sh first."

Sync before use: Once you find the CEOS root, run git -C <ceos_root> pull --ff-only --quiet 2>/dev/null to get the latest data from teammates. If it fails (conflict or offline), continue silently with local data.

Key Files

File Purpose
data/vision.md V/TO document (Core Focus, targets, plans)
data/rocks/YYYY-QN/ Rock files for current quarter
data/scorecard/metrics.md Metric definitions
data/scorecard/weeks/YYYY-WNN.md Weekly scorecard entries
data/issues/open/ Open issues awaiting resolution
data/people/ Person evaluation files
data/accountability.md Accountability chart (team structure)

Design Principles

  • Read-only. Dashboard never modifies any data files. It reads and summarizes.
  • Graceful degradation. Missing data sections show guidance, not errors. New CEOS repos with partial setup work fine.
  • Cross-skill coordination. Each section suggests the relevant skill for taking action. Dashboard presents the data; other skills change it.

Process

The dashboard has a single mode — it reads all available data and presents a summary.

Step 1: Determine Current Period

Calculate from today's date:

  • Current quarter: Jan-Mar = Q1, Apr-Jun = Q2, Jul-Sep = Q3, Oct-Dec = Q4. Format: YYYY-QN
  • Current ISO week: Format: YYYY-WNN (Week 1 is the week containing the first Thursday of the year)

Step 2: V/TO Snapshot

Read data/vision.md.

If the file exists:

  1. Extract the company name from the document header
  2. Extract Core Focus (Purpose + Niche) — show as one line
  3. Extract 10-Year Target — show as one line
  4. Extract 3-Year Picture — show revenue/headcount targets if present
  5. Extract 1-Year Plan — show key goals

Display as a compact summary:

V/TO — [Company Name]
  Core Focus: [Purpose — Niche]
  10-Year Target: [Target]
  3-Year Picture: [Key metrics]
  1-Year Plan: [Key goals]

If the file does not exist:

V/TO: Not configured. Run `ceos-vto` to set your vision.

Step 3: Rock Status

Read all .md files in data/rocks/[current-quarter]/.

If the directory exists and contains files:

  1. Parse each Rock's YAML frontmatter for status and owner
  2. Count by status: on_track, off_track, complete, dropped
  3. Calculate total Rock count
  4. If frontmatter milestones array exists, count milestone progress (done vs total)

Display:

Rocks — [Quarter]
  Total: [N] | On Track: [N] | Off Track: [N] | Complete: [N] | Dropped: [N]
  [If off-track Rocks exist, list them by owner:]
  Off track: [Rock title] ([owner]), [Rock title] ([owner])

If the directory does not exist or is empty:

Rocks: No Rocks set for [quarter]. Run `ceos-rocks` to set priorities.

Step 4: Scorecard Health

Read data/scorecard/weeks/[current-ISO-week].md.

If the file exists:

  1. Parse the metrics table from the markdown body
  2. Count metrics with on_track status vs off_track status
  3. List any off-track metric names

Display:

Scorecard — [Week]
  [N] on track | [N] off track
  [If off-track metrics exist:]
  Off track: [Metric name] ([owner]), [Metric name] ([owner])

If the file does not exist:

Fall back: check for the most recent week file in data/scorecard/weeks/ (sorted by filename descending). If one exists within the last 2 weeks, show it with a note: "(latest available: [week])".

If no recent files exist:

Scorecard: No data for this week. Run `ceos-scorecard` to log.

If data/scorecard/ directory doesn't exist:

Scorecard: Not set up yet. Run `ceos-scorecard` to define metrics and log weekly.

Step 5: Open Issues

Read all .md files in data/issues/open/.

If the directory exists and contains files:

  1. Parse each issue's YAML frontmatter for priority (1-5) and created date
  2. Count total open issues
  3. Count by priority level
  4. Calculate age of the oldest issue (days since created)

Display:

Open Issues — [N] total
  By priority: [N] P1 | [N] P2 | [N] P3 | [N] P4 | [N] P5
  Oldest: [issue title] ([N] days)

If the directory is empty or does not exist:

Open Issues: None. Great work!

Step 6: People Summary

Read all .md files in data/people/ (exclude the alumni/ subdirectory).

If the directory exists and contains files:

  1. Parse each person's YAML frontmatter for status and departed
  2. Skip any files where departed: true
  3. Count total active team members
  4. Count by status: right_person_right_seat, below_bar, wrong_seat, evaluating
  5. Flag any below_bar or wrong_seat counts (but do NOT expose names — privacy)

Display:

People — [N] team members
  Right person, right seat: [N] | Below bar: [N] | Wrong seat: [N] | Evaluating: [N]

If there are below_bar or wrong_seat members:

  [N] flagged — review with `ceos-people` for details

If the directory is empty or does not exist:

People: No evaluations on file. Run `ceos-people` to evaluate team members.

Step 7: Action Suggestions

After displaying all sections, provide a brief list of suggested next actions based on the data:

  • If any Rocks are off-track: "Review off-track Rocks with ceos-rocks"
  • If any Scorecard metrics are off-track: "Investigate off-track metrics with ceos-scorecard"
  • If open issues exist with P1 priority: "Resolve critical issues with ceos-ids"
  • If any people are below_bar or wrong_seat: "Review flagged team members with ceos-people"
  • If V/TO is missing: "Set your vision with ceos-vto"
  • If no Rocks exist: "Set quarterly priorities with ceos-rocks"

Only show suggestions where action is needed. If everything looks healthy, show:

All clear — no immediate action items.

Output Format

The complete dashboard output:

State of the Business
━━━━━━━━━━━━━━━━━━━━━
Date: YYYY-MM-DD

V/TO — Acme Corp
  Core Focus: Helping SMBs automate operations — B2B SaaS
  10-Year Target: $100M ARR
  3-Year Picture: $20M revenue, 50 employees, 3 products
  1-Year Plan: $8M revenue, launch Product #2

Rocks — Q1 2026
  Total: 6 | On Track: 4 | Off Track: 2 | Complete: 0 | Dropped: 0
  Off track: Hire VP Sales (daniel), Partner Program (brad)

Scorecard — W07
  5 on track | 2 off track
  Off track: New Customers (daniel), Support Response Time (sarah)

Open Issues — 8 total
  By priority: 2 P1 | 3 P2 | 2 P3 | 1 P4 | 0 P5
  Oldest: Slow customer onboarding (45 days)

People — 5 team members
  Right person, right seat: 3 | Below bar: 1 | Wrong seat: 1 | Evaluating: 0
  2 flagged — review with `ceos-people` for details

━━━━━━━━━━━━━━━━━━━━━
Suggested Actions:
  • Review off-track Rocks with `ceos-rocks`
  • Investigate off-track metrics with `ceos-scorecard`
  • Resolve 2 critical (P1) issues with `ceos-ids`
  • Review flagged team members with `ceos-people`

Graceful degradation example (new repo with only V/TO set up):

State of the Business
━━━━━━━━━━━━━━━━━━━━━
Date: YYYY-MM-DD

V/TO — Acme Corp
  Core Focus: Helping SMBs automate operations — B2B SaaS
  10-Year Target: $100M ARR

Rocks: No Rocks set for Q1 2026. Run `ceos-rocks` to set priorities.

Scorecard: Not set up yet. Run `ceos-scorecard` to define metrics and log weekly.

Open Issues: None. Great work!

People: No evaluations on file. Run `ceos-people` to evaluate team members.

━━━━━━━━━━━━━━━━━━━━━
Suggested Actions:
  • Set quarterly priorities with `ceos-rocks`
  • Define scorecard metrics with `ceos-scorecard`
  • Evaluate team members with `ceos-people`

Guardrails

  • Read-only ALWAYS. Dashboard never modifies any data files. It reads, summarizes, and reports. If a user asks to change something from the dashboard context, direct them to the appropriate skill.
  • Suggest skills for action. Every section that shows a problem ends with a skill suggestion. The user decides whether to act — dashboard never auto-invokes other skills.
  • No auto-invoke. Never call other skills automatically. Mention ceos-rocks, ceos-scorecard, ceos-ids, ceos-people, and ceos-vto when relevant, but let the user decide when to switch workflows.
  • Graceful degradation. Missing data is normal for new CEOS repos. Show helpful guidance ("Run ceos-X to get started"), not errors. Never crash or stop because one data source is missing — continue with the others.
  • Current state only. Dashboard shows the current snapshot — current quarter Rocks, current week Scorecard, currently open Issues. For historical analysis or trends, direct users to specific skills (e.g., ceos-scorecard Trend Analysis mode).
  • Privacy-aware. Don't expose individual names in the People section flags. Show counts ("2 flagged") and suggest ceos-people for details. People evaluations are sensitive.
  • Malformed data tolerance. If a file has invalid YAML frontmatter, skip it with a console note ("Skipping [filename] — invalid frontmatter") and continue. One bad file shouldn't break the entire dashboard.
  • Quarter detection. Always auto-detect the current quarter from today's date. Don't prompt the user for the quarter — dashboard is meant to be instant.
  • Sensitive data warning. On first use, remind the user: "Dashboard data may include sensitive business information. Use a private repo."

Integration Notes

V/TO (ceos-vto)

  • Read: Dashboard reads data/vision.md for the V/TO Snapshot section. Extracts Core Focus, 10-Year Target, 3-Year Picture, and 1-Year Plan.
  • Suggested flow: If V/TO is missing, suggest: "Set your vision with ceos-vto."

Rocks (ceos-rocks)

  • Read: Dashboard reads data/rocks/[current-quarter]/ for Rock Status. Counts by status, lists off-track Rocks.
  • Suggested flow: If Rocks are off-track, suggest: "Review off-track Rocks with ceos-rocks."

Scorecard (ceos-scorecard)

  • Read: Dashboard reads data/scorecard/weeks/[current-week].md for Scorecard Health. Falls back to the most recent available week if current week hasn't been logged.
  • Suggested flow: If metrics are off-track, suggest: "Investigate off-track metrics with ceos-scorecard."

IDS (ceos-ids)

  • Read: Dashboard reads data/issues/open/ for Open Issues summary. Counts by priority, identifies the oldest unresolved issue.
  • Suggested flow: If P1 issues exist, suggest: "Resolve critical issues with ceos-ids."

People Analyzer (ceos-people)

  • Read: Dashboard reads data/people/ (excluding alumni/) for People Summary. Counts by status, flags below_bar and wrong_seat without exposing names.
  • Suggested flow: If flagged people exist, suggest: "Review flagged team members with ceos-people."

Clarity Break (ceos-clarity)

  • Distinction: Both dashboard and ceos-clarity show "State of the Business" context. Dashboard is a quick status check — factual counts and summaries. Clarity Break is a strategic reflection tool — includes the same context plus guided reflection prompts. Use dashboard for meetings and quick checks; use ceos-clarity for dedicated thinking time.

Read-Only Principle

Dashboard never writes to any data files. It is a pure read-only aggregator across all CEOS data directories. Each data domain has a single writer skill:

Data Writer Skill
data/vision.md ceos-vto
data/rocks/ ceos-rocks
data/scorecard/ ceos-scorecard
data/issues/ ceos-ids
data/people/ ceos-people
data/accountability.md ceos-accountability

Dashboard reads from all of them, writes to none of them.

Weekly Installs
2
First Seen
13 days ago
Installed on
opencode2
claude-code2
github-copilot2
codex2
amp2
cline2