$npx -y skills add softspark/ai-toolkit --skill briefingExecutive daily briefing aggregating reports from all agents into decision-focused summary. Triggers: briefing, daily summary, status across system, executive update.
| 1 | # Briefing Command |
| 2 | |
| 3 | Triggers the Chief of Staff to generate an executive summary. |
| 4 | |
| 5 | ## Usage |
| 6 | |
| 7 | ```bash |
| 8 | /briefing [period] |
| 9 | # Example: /briefing today |
| 10 | # Example: /briefing week |
| 11 | /briefing --tokens [--since 7d|24h|30m] |
| 12 | # Reports real session token usage from Claude Code JSONL. |
| 13 | ``` |
| 14 | |
| 15 | ## Protocol |
| 16 | 1. **Collect**: Gather logs from `kb/learnings/`, `maintenance/` logs, and recent runs. |
| 17 | 2. **Synthesize**: Group by category (Ops, Strategy, Actions). |
| 18 | 3. **Filter**: Remove low-priority success logs. |
| 19 | 4. **Present**: Render the Daily Brief. |
| 20 | |
| 21 | ## Example |
| 22 | |
| 23 | ``` |
| 24 | ## Daily Brief — 2026-04-23 |
| 25 | |
| 26 | ### Ops |
| 27 | - night-watch: 3 dep updates shipped, 1 rolled back (breaking change in `x-pkg@2.0`) |
| 28 | - health: all green except `mailpit` (degraded, non-critical) |
| 29 | |
| 30 | ### Strategy |
| 31 | - predict: new PR #42 overlaps with in-flight refactor in `/src/auth` |
| 32 | |
| 33 | ### Actions needed |
| 34 | - Review rollback from night-watch (ETA: 5 min) |
| 35 | - Decide on `x-pkg` pin strategy (open question on GitHub #41) |
| 36 | ``` |
| 37 | |
| 38 | ## Rules |
| 39 | |
| 40 | - **MUST** stay under 200 words unless the user explicitly asks for more detail |
| 41 | - **MUST** lead with decision-relevant facts, not chronology — "what should I act on" before "what happened" |
| 42 | - **NEVER** invent agent activity — report only what the logs show; absence of logs means "no data", not "nothing happened" |
| 43 | - **CRITICAL**: separate Ops (what ran) from Strategy (what was decided) from Actions (what needs a human) — mixing them defeats the brief |
| 44 | - **MANDATORY**: when no material activity exists for a category, omit the category heading instead of writing "none" |
| 45 | |
| 46 | ## Gotchas |
| 47 | |
| 48 | - `kb/learnings/` often mixes drafts with completed entries. Filter by frontmatter `status: final` or by filename convention before aggregating. |
| 49 | - `maintenance/` branch logs from `/night-watch` use a different format (Shift Report markdown) than agent run logs. Do not concatenate blindly — parse each source separately and normalize. |
| 50 | - "Recent runs" without an explicit time bound defaults to **everything** on some log backends. Always pass `--since` or a date filter, or you will read a week into yesterday's memory. |
| 51 | - Successful runs outnumber interesting runs by an order of magnitude. Aggressively filter green/noop entries — they are the signal's noise floor. |
| 52 | |
| 53 | ## Token Receipts |
| 54 | |
| 55 | The `--tokens` flag reports real token usage parsed from Claude Code session JSONL — not estimates. Useful for: |
| 56 | |
| 57 | - Verifying `output-mode: concise` actually reduces tokens vs default sessions |
| 58 | - Spotting expensive runs before they show up on the bill |
| 59 | - Capturing a baseline before changing prompts or skills |
| 60 | |
| 61 | Underlying script: `scripts/session_token_stats.py`. |
| 62 | |
| 63 | ```bash |
| 64 | # Aggregate current session |
| 65 | python3 scripts/session_token_stats.py --json |
| 66 | |
| 67 | # Statusline-friendly one-line output |
| 68 | python3 scripts/session_token_stats.py --statusline |
| 69 | |
| 70 | # Trend vs baseline |
| 71 | python3 scripts/session_token_stats.py --statusline --baseline ~/.softspark/ai-toolkit/baseline.json |
| 72 | ``` |
| 73 | |
| 74 | ### Status line (installed by default in v3.2.0+) |
| 75 | |
| 76 | `ai-toolkit install` wires `~/.claude/settings.json` to `app/hooks/ai-toolkit-statusline.sh`. The hook reads native Claude Code statusLine stdin (no session JSONL parsing) and renders one line: |
| 77 | |
| 78 | ``` |
| 79 | ➜ <dir> git:(branch) ✗ ████░░░░░░ 43% ↑6.5k ↓252k effort:xhigh <model> |
| 80 | ``` |
| 81 | |
| 82 | Segments left to right: |
| 83 | |
| 84 | - `➜ <dir>` — current directory basename |
| 85 | - `git:(branch) ✗` — git branch + dirty marker |
| 86 | - 10-cell **progress bar** for context-window usage. Color tiers: green `<70%`, orange `70–89%`, red `≥90%` |
| 87 | - `↑in ↓out` — token arrows. Green up = input (upload), red down = output (download). Both cumulative across the session. |
| 88 | - `effort:level` — Claude Code effort level (low / medium / high / xhigh) |
| 89 | - model name |
| 90 | |
| 91 | Custom statusLine entries you set yourself (without the `_source: ai-toolkit` tag) are preserved untouched on install. |
| 92 | |
| 93 | Opt-outs (no reinstall required): |
| 94 | |
| 95 | - `AI_TOOLKIT_STATUSLINE_DISABLE=1` — silence the line entirely |
| 96 | - `AI_TOOLKIT_STATUSLINE_NO_TOKENS=1` — hide token arrows segment |
| 97 | - `AI_TOOLKIT_STATUSLINE_NO_GIT=1` — hide git segment |
| 98 | - `AI_TOOLKIT_STATUSLINE_NO_EFFORT=1` — hide effort level segment |
| 99 | - `AI_TOOLKIT_STATUSLINE_NO_COLOR=1` — disable ANSI colors |
| 100 | - `AI_TOOLKIT_STATUSLINE_SHOW_COST=1` — append Claude Code's reported cost (`cost.total_cost_usd`) |
| 101 | - `AI_TOOLKIT_STATUSLINE_DUMP=1` — write received stdin to `/tmp/cc-statusline-input.json` (debug) |
| 102 | |
| 103 | ### Save a baseline |
| 104 | |
| 105 | ```bash |
| 106 | python3 scripts/session_token_stats.py --json | jq '.totals' > ~/.softspark/ai-toolkit/baseline.json |
| 107 | export AI_TOOLKIT_STATUSLINE_BASELINE=~/.softspark/ai-toolkit/baseline.json |
| 108 | ``` |
| 109 | |
| 110 | The statusline then renders trend arrows (↑ / ↓) against that baseline. |
| 111 | |
| 112 | ## When NOT to Use |
| 113 | |
| 114 | - For a specific production incident — use `/workflow incident- |