c-level-advisor/skills/decision-logger/SKILL.md
Two-layer memory architecture for board meeting decisions. Manages raw transcripts (Layer 1) and approved decisions (Layer 2). Use when logging decisions after a board meeting, reviewing past decisions with /cs:decisions, or checking overdue action items with /cs:review. Invoked automatically by the board-meeting skill after Phase 5 founder approval.
npx skillsauth add alirezarezvani/claude-skills decision-loggerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Two-layer memory system. Layer 1 stores everything. Layer 2 stores only what the founder approved. Future meetings read Layer 2 only — this prevents hallucinated consensus from past debates bleeding into new deliberations.
decision log, memory, approved decisions, action items, board minutes, /cs:decisions, /cs:review, conflict detection, DO_NOT_RESURFACE
python scripts/decision_tracker.py --demo # See sample output
python scripts/decision_tracker.py --summary # Overview + overdue
python scripts/decision_tracker.py --overdue # Past-deadline actions
python scripts/decision_tracker.py --conflicts # Contradiction detection
python scripts/decision_tracker.py --owner "CTO" # Filter by owner
python scripts/decision_tracker.py --search "pricing" # Search decisions
| Command | Effect |
|---------|--------|
| /cs:decisions | Last 10 approved decisions |
| /cs:decisions --all | Full history |
| /cs:decisions --owner CMO | Filter by owner |
| /cs:decisions --topic pricing | Search by keyword |
| /cs:review | Action items due within 7 days |
| /cs:review --overdue | Items past deadline |
Storage follows the canonical two-layer decision memory (see ../agent-protocol/SKILL.md → "Decision Memory (Canonical Layout)") — the same layout /cs:decide writes.
Location: ~/.claude/decisions/raw/YYYY-MM-DD-<slug>.md
~/.claude/decisions/raw/archive/YYYY/Location: ~/.claude/decisions/approved/ — one record per decision (YYYY-MM-DD-<slug>.md) plus the append-only index decisions.md
Migration: a legacy memory/board-meetings/ folder may exist from earlier versions; read it for history but write all new entries to ~/.claude/decisions/.
## [YYYY-MM-DD] — [AGENDA ITEM TITLE]
**Decision:** [One clear statement of what was decided.]
**Owner:** [One person or role — accountable for execution.]
**Deadline:** [YYYY-MM-DD]
**Review:** [YYYY-MM-DD]
**Rationale:** [Why this over alternatives. 1-2 sentences.]
**User Override:** [If founder changed agent recommendation — what and why. Blank if not applicable.]
**Rejected:**
- [Proposal] — [reason] [DO_NOT_RESURFACE]
**Action Items:**
- [ ] [Action] — Owner: [name] — Due: [YYYY-MM-DD] — Review: [YYYY-MM-DD]
**Supersedes:** [DATE of previous decision on same topic, if any]
**Superseded by:** [Filled in retroactively if overridden later]
**Raw transcript:** ~/.claude/decisions/raw/[DATE]-<slug>.md
Before logging, Chief of Staff checks for:
When a conflict is found:
⚠️ DECISION CONFLICT
New: [text]
Conflicts with: [DATE] — [existing text]
Options: (1) Supersede old (2) Merge (3) Defer to founder
DO_NOT_RESURFACE enforcement:
🚫 BLOCKED: "[Proposal]" was rejected on [DATE]. Reason: [reason].
To reopen: founder must explicitly say "reopen [topic] from [DATE]".
~/.claude/decisions/raw/YYYY-MM-DD-<slug>.md~/.claude/decisions/approved/decisions.md~/.claude/decisions/approved/YYYY-MM-DD-<slug>.md and append to the index decisions.md- [x] [Action] — Owner: [name] — Completed: [DATE] — Result: [one sentence]
Never delete completed items. The history is the record.
~/.claude/decisions/
├── raw/YYYY-MM-DD-<slug>.md # Layer 1: full transcript per meeting
├── raw/archive/YYYY/ # Raw files after 90 days
├── approved/YYYY-MM-DD-<slug>.md # Layer 2: one record per approved decision
└── approved/decisions.md # Layer 2 index: append-only, founder-approved
templates/decision-entry.md — single entry template with field rulesscripts/decision_tracker.py — CLI parser, overdue tracker, conflict detectordevelopment
Use when someone wants to run a weekly review, close open loops, audit stalled projects and commitments, get their system back to trusted, restart a lapsed review habit, or says "/cs:weekly-review". Walks David Allen's three-phase loop — GET CLEAR, GET CURRENT, GET CREATIVE — with deterministic scripts that inventory open loops, gate the checklist with named gaps, and score commitment health 0-100.
development
Use when someone wants to decide whether a meeting is worth calling, price a meeting in dollars, build a timeboxed agenda with desired outcomes, or turn messy meeting notes into owned action items — or says "should this be a meeting", "/cs:meeting-prep", or "/cs:meeting-actions". Runs a cost gate (ASYNC / NOT-READY / MEET), builds a decision-first agenda, and extracts an owner + due-date checklist that flags every orphan.
development
Convert a rambling description of a desired outcome into one polished, autonomous /goal prompt ready to paste into a fresh session. Use when the user says "/fable-goal", "turn this into a goal prompt", "write me a fable prompt", "write the prompt that builds X", or rambles about something they want made and asks for the prompt that makes it happen. The output is a single copy-paste prompt, never the build itself. Do NOT use when the user wants the thing built right now in this session — only when they want the PROMPT that will make it happen in a fresh session.
development
Use when someone wants to plan a deep work day, time-block their calendar or task list, budget or cut shallow work, protect focus hours, track deep-work sessions and streaks, run an end-of-day shutdown ritual, or says "/deep-work" or "/time-block". Classifies tasks deep vs shallow, builds an energy-first time-blocked schedule that refuses deep demand past the 4-hour ceiling, batches shallow work into at most two windows, and logs focus sessions against a weekly target.