New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Two-layer memory architecture for board meeting decisions

Decision logger

by alirezarezvani · MIT license · ★ 26,349 on GitHub · updated Aug 30

Decision logger cover

Two-layer memory architecture for board meeting decisions. Manages raw transcripts (Layer 1) and approved decisions (Layer 2).

---
name: "decision-logger"
description: "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."
license: MIT
metadata:
  version: 1.0.0
  author: Alireza Rezvani
  category: c-level
  domain: decision-memory
  updated: 2026-03-05
  python-tools: scripts/decision_tracker.py
---

# Decision Logger

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.

## Keywords

Overview

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.

Manual install (npx, ZIP)
Claude Codenpx skills add alirezarezvani/claude-skills --skill decision-logger -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/alirezarezvani/claude-skills/tar.gz/19392f7a0826 \ | tar -xz -C ~/.claude/skills --strip-components=3 claude-skills-19392f7a0826/c-level-advisor/skills/decision-logger
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/9d7886406b6f662156fc/decision-logger.zip" -OutFile "$env:TEMP\decision-logger.zip"; Expand-Archive "$env:TEMP\decision-logger.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md5.5 KB
  • scripts/1 file · 23.0 KB
  • templates/1 file · 2.3 KB
Read the files here
alirezarezvani/19392f73 files
SKILL.md
Show the full text155 lines

Decision Logger

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.

Keywords

decision log, memory, approved decisions, action items, board minutes, /cs:decisions, /cs:review, conflict detection, DO_NOT_RESURFACE

Quick Start

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

Commands

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

Two-Layer Architecture

Storage follows the canonical two-layer decision memory (see ../agent-protocol/SKILL.md → "Decision Memory (Canonical Layout)") — the same layout /cs:decide writes.

Layer 1 — Raw Transcripts

Location: ~/.claude/decisions/raw/YYYY-MM-DD-<slug>.md

  • Full Phase 2 agent contributions, Phase 3 critique, Phase 4 synthesis
  • All debates, including rejected arguments
  • NEVER auto-loaded. Only on explicit founder request.
  • Archive after 90 days → ~/.claude/decisions/raw/archive/YYYY/
Layer 2 — Approved Decisions

Location: ~/.claude/decisions/approved/ — one record per decision (YYYY-MM-DD-<slug>.md) plus the append-only index decisions.md

  • ONLY founder-approved decisions, action items, user corrections
  • Loaded automatically in Phase 1 of every board meeting
  • Append-only. Decisions are never deleted — only superseded.
  • Managed by Chief of Staff after Phase 5. Never written by agents directly.

Migration: a legacy memory/board-meetings/ folder may exist from earlier versions; read it for history but write all new entries to ~/.claude/decisions/.


Decision Entry Format

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

Conflict Detection

Before logging, Chief of Staff checks for:

  1. DO_NOT_RESURFACE violations — new decision matches a rejected proposal
  2. Topic contradictions — two active decisions on same topic with different conclusions
  3. Owner conflicts — same action assigned to different people in different decisions

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]".

Logging Workflow (Post Phase 5)

  1. Founder approves synthesis
  2. Write Layer 1 raw transcript → ~/.claude/decisions/raw/YYYY-MM-DD-<slug>.md
  3. Check conflicts against ~/.claude/decisions/approved/decisions.md
  4. Surface conflicts → wait for founder resolution
  5. Write the approved record to ~/.claude/decisions/approved/YYYY-MM-DD-<slug>.md and append to the index decisions.md
  6. Confirm: decisions logged, actions tracked, DO_NOT_RESURFACE flags added

Marking Actions Complete

- [x] [Action] — Owner: [name] — Completed: [DATE] — Result: [one sentence]

Never delete completed items. The history is the record.


File Structure

~/.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

References

  • templates/decision-entry.md — single entry template with field rules
  • scripts/decision_tracker.py — CLI parser, overdue tracker, conflict detector
1---
2name: "decision-logger"
3description: "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."
4license: MIT
5metadata:
6 version: 1.0.0
7 author: Alireza Rezvani
8 category: c-level
9 domain: decision-memory
10 updated: 2026-03-05
11 python-tools: scripts/decision_tracker.py
12---
13 
14# Decision Logger
15 
16Two-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.
17 
18## Keywords
19decision log, memory, approved decisions, action items, board minutes, /cs:decisions, /cs:review, conflict detection, DO_NOT_RESURFACE
20 
21## Quick Start
22 
23```bash
24python scripts/decision_tracker.py --demo # See sample output
25python scripts/decision_tracker.py --summary # Overview + overdue
26python scripts/decision_tracker.py --overdue # Past-deadline actions
27python scripts/decision_tracker.py --conflicts # Contradiction detection
28python scripts/decision_tracker.py --owner "CTO" # Filter by owner
29python scripts/decision_tracker.py --search "pricing" # Search decisions
30```
31 
32---
33 
34## Commands
35 
36| Command | Effect |
37|---------|--------|
38| `/cs:decisions` | Last 10 approved decisions |
39| `/cs:decisions --all` | Full history |
40| `/cs:decisions --owner CMO` | Filter by owner |
41| `/cs:decisions --topic pricing` | Search by keyword |
42| `/cs:review` | Action items due within 7 days |
43| `/cs:review --overdue` | Items past deadline |
44 
45---
46 
47## Two-Layer Architecture
48 
49Storage follows the canonical two-layer decision memory (see `../agent-protocol/SKILL.md` → "Decision Memory (Canonical Layout)") — the same layout `/cs:decide` writes.
50 
51### Layer 1 — Raw Transcripts
52**Location:** `~/.claude/decisions/raw/YYYY-MM-DD-<slug>.md`
53- Full Phase 2 agent contributions, Phase 3 critique, Phase 4 synthesis
54- All debates, including rejected arguments
55- **NEVER auto-loaded.** Only on explicit founder request.
56- Archive after 90 days → `~/.claude/decisions/raw/archive/YYYY/`
57 
58### Layer 2 — Approved Decisions
59**Location:** `~/.claude/decisions/approved/` — one record per decision (`YYYY-MM-DD-<slug>.md`) plus the append-only index `decisions.md`
60- ONLY founder-approved decisions, action items, user corrections
61- **Loaded automatically in Phase 1 of every board meeting**
62- Append-only. Decisions are never deleted — only superseded.
63- Managed by Chief of Staff after Phase 5. Never written by agents directly.
64 
65Migration: a legacy `memory/board-meetings/` folder may exist from earlier versions; read it for history but write all new entries to `~/.claude/decisions/`.
66 
67---
68 
69## Decision Entry Format
70 
71```markdown
72## [YYYY-MM-DD] — [AGENDA ITEM TITLE]
73 
74**Decision:** [One clear statement of what was decided.]
75**Owner:** [One person or role — accountable for execution.]
76**Deadline:** [YYYY-MM-DD]
77**Review:** [YYYY-MM-DD]
78**Rationale:** [Why this over alternatives. 1-2 sentences.]
79 
80**User Override:** [If founder changed agent recommendation — what and why. Blank if not applicable.]
81 
82**Rejected:**
83- [Proposal] — [reason] [DO_NOT_RESURFACE]
84 
85**Action Items:**
86- [ ] [Action] — Owner: [name] — Due: [YYYY-MM-DD] — Review: [YYYY-MM-DD]
87 
88**Supersedes:** [DATE of previous decision on same topic, if any]
89**Superseded by:** [Filled in retroactively if overridden later]
90**Raw transcript:** ~/.claude/decisions/raw/[DATE]-<slug>.md
91```
92 
93---
94 
95## Conflict Detection
96 
97Before logging, Chief of Staff checks for:
981. **DO_NOT_RESURFACE violations** — new decision matches a rejected proposal
992. **Topic contradictions** — two active decisions on same topic with different conclusions
1003. **Owner conflicts** — same action assigned to different people in different decisions
101 
102When a conflict is found:
103```
104⚠️ DECISION CONFLICT
105New: [text]
106Conflicts with: [DATE] — [existing text]
107 
108Options: (1) Supersede old (2) Merge (3) Defer to founder
109```
110 
111**DO_NOT_RESURFACE enforcement:**
112```
113🚫 BLOCKED: "[Proposal]" was rejected on [DATE]. Reason: [reason].
114To reopen: founder must explicitly say "reopen [topic] from [DATE]".
115```
116 
117---
118 
119## Logging Workflow (Post Phase 5)
120 
1211. Founder approves synthesis
1222. Write Layer 1 raw transcript → `~/.claude/decisions/raw/YYYY-MM-DD-<slug>.md`
1233. Check conflicts against `~/.claude/decisions/approved/decisions.md`
1244. Surface conflicts → wait for founder resolution
1255. Write the approved record to `~/.claude/decisions/approved/YYYY-MM-DD-<slug>.md` and append to the index `decisions.md`
1266. Confirm: decisions logged, actions tracked, DO_NOT_RESURFACE flags added
127 
128---
129 
130## Marking Actions Complete
131 
132```markdown
133- [x] [Action] — Owner: [name] — Completed: [DATE] — Result: [one sentence]
134```
135 
136Never delete completed items. The history is the record.
137 
138---
139 
140## File Structure
141 
142```
143~/.claude/decisions/
144├── raw/YYYY-MM-DD-<slug>.md # Layer 1: full transcript per meeting
145├── raw/archive/YYYY/ # Raw files after 90 days
146├── approved/YYYY-MM-DD-<slug>.md # Layer 2: one record per approved decision
147└── approved/decisions.md # Layer 2 index: append-only, founder-approved
148```
149 
150---
151 
152## References
153- `templates/decision-entry.md` — single entry template with field rules
154- `scripts/decision_tracker.py` — CLI parser, overdue tracker, conflict detector
155 
View all files on GitHub →

Details

Updated
Aug 30, 2026
License
MIT
Stars on the repo
★ 26,349
Checked
Source
alirezarezvani/claude-skills ↗
Creator
alirezarezvani · 363 listings
View creator

Similar skills

See all →
SkillPaste the plan or decision you're about to make and get backPoke Holes In My Plan Before I CommitJeffallan/claude-skills · by https://github.com/JeffallanPaste the plan or decision you're about to make and get back its strongest weaknesses, blind spots, and hidden assumptions — plus a tougher version of the plan.★ 11.6k GitHub starsSkillTurns an answer into a one-page visual HTML explainerAnswer me with HTML: answer a complex question with one HTML pageQingYunA/answer-me-with-html · by QingYunATurns an answer into a one-page visual HTML explainer: the model writes a short Markdown draft and the bundled CLI builds one page. Use it proactively and liberally, without being asked, whenever a page would help the reader more than plain text, even if plain text would also work: any explanation of how something works or how parts relate (flow, request path, architecture, code or folder structure, state machine, lifecycle, history); any comparison, trade-off or decision with pros and cons; any diagnosis, review or investigation, especially with several causes or findings to rank; any answer with a table, a numbered or ranked list, steps, branches or several sections; or when the user says "I don't get it / draw it / explain visually / 讲讲原理 / 没看懂 / 画个图". When in doubt, use it: a page is quick and cheap to make. Also for explainer videos ("make a video", "做个视频") and for changing its settings. Skip only for small talk, a trivial one-line answer, or when the user asks for plain text.★ 3.7k GitHub starsSkillPrepare and validate research-only clinical decision-supportClinical Decision-Support Research and EvaluationK-Dense-AI/scientific-agent-skills · by K-Dense-AIPrepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.★ 46k GitHub starsSkillHand in a decision you're stuck onTough Decision Advisor: Every Angle ConsideredK-Dense-AI/scientific-agent-skills · by K-Dense-AIHand in a decision you're stuck on. Get back a clear breakdown of every angle — the trade-offs, the risks, the blind spot, and a recommended path.★ 46k GitHub starsSkillWrite and maintain Architecture Decision Records followingwshobson/agents · by wshobsonWrite and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.★ 39.9k GitHub starsSkillRun a pre-mortem risk analysis on a PRD or launch planPre-Mortem: Risk Analysis for Product Launchphuryn/pm-skills · by phurynRun a pre-mortem risk analysis on a PRD or launch plan. Categorizes risks as Tigers (real problems), Paper Tigers (overblown concerns), and Elephants (unspoken worries), then classifies as launch-blocking, fast-follow, or track. Use when preparing for launch, stress-testing a product plan, or identifying what could go wrong.★ 26.6k GitHub stars

More from alirezarezvani

SkillResume a paused experiment/ar:ar-resume — Resume Experimentalirezarezvani/claude-skills · by alirezarezvaniResume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:ar-resume or asks to pick up a previously started autoresearch experiment.★ 26.3k GitHub starsSkillShow experiment dashboard with results, active loops/ar:ar-status — Experiment Dashboardalirezarezvani/claude-skills · by alirezarezvaniShow experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going.★ 26.3k GitHub starsSkillStart an autonomous experiment loop with user-selected/ar:loop — Autonomous Experiment Loopalirezarezvani/claude-skills · by alirezarezvaniStart an autonomous experiment loop with user-selected interval (10min, 1h, daily, weekly, monthly). Uses CronCreate for scheduling. Use when the user runs /ar:loop or asks to run an autoresearch experiment continuously on a schedule.★ 26.3k GitHub starsSkillRun a single experiment iteration/ar:run — Single Experiment Iterationalirezarezvani/claude-skills · by alirezarezvaniRun a single experiment iteration. Edit the target file, evaluate, keep or discard. Use when the user runs /ar:run or asks for one manual autoresearch iteration.★ 26.3k GitHub starsSkillSet up a new autoresearch experiment interactively/ar:setup — Create New Experimentalirezarezvani/claude-skills · by alirezarezvaniSet up a new autoresearch experiment interactively. Collects domain, target file, eval command, metric, direction, and evaluator. Use when the user runs /ar:setup or asks to start optimizing a file with the autoresearch loop.★ 26.3k GitHub starsSkill/cs:boardroom <brief/cs:boardroom — Multi-Role Boardroom Deliberationalirezarezvani/claude-skills · by alirezarezvani/cs:boardroom <brief> — 6-phase multi-role deliberation across the C-suite with Phase 2 isolation, critic pre-screen, and synthesis. Outputs a board memo. Use when a decision spans multiple executive domains — e.g. a pricing change touching finance, positioning, and product, or a raise-vs-cut runway call.★ 26.3k GitHub stars