- AgentHub: 13 files updated with non-engineering examples (content drafts, research, strategy) — engineering stays primary, cross-domain secondary - AgentHub: 7 slash commands, 5 Python scripts, 3 references, 1 agent, dry_run.py validation (57 checks) - Marketplace: agenthub entry added with cross-domain keywords, engineering POWERFUL updated (25→30), product (12→13), counts synced across all configs - SEO: generate-docs.py now produces keyword-rich <title> tags and meta descriptions using SKILL.md frontmatter — "Claude Code Skills" in site_name propagates to all 276 HTML pages - SEO: per-domain title suffixes (Agent Skill for Codex & OpenClaw, etc.), slug-as-title cleanup, domain label stripping from titles - Broken links: 141→0 warnings — new rewrite_skill_internal_links() converts references/, scripts/, assets/ links to GitHub source URLs; skills/index.md phantom slugs fixed (6 marketing, 7 RA/QM) - Counts synced: 204 skills, 266 tools, 382 refs, 16 agents, 17 commands, 21 plugins — consistent across CLAUDE.md, README.md, docs/index.md, marketplace.json, getting-started.md, mkdocs.yml - Platform sync: Codex 163 skills, Gemini 246 items, OpenClaw compatible Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5.0 KiB
5.0 KiB
title, description
| title | description |
|---|---|
| Decision Logger — Agent Skill for Executives | Two-layer memory architecture for board meeting decisions. Manages raw transcripts (Layer 1) and approved decisions (Layer 2). Use when logging. Agent skill for Claude Code, Codex CLI, Gemini CLI, OpenClaw. |
Decision Logger
:material-account-tie: C-Level Advisory
:material-identifier: `decision-logger`
:material-github: Source
Install:
claude /plugin install c-level-skills
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
Layer 1 — Raw Transcripts
Location: memory/board-meetings/YYYY-MM-DD-raw.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 →
memory/board-meetings/archive/YYYY/
Layer 2 — Approved Decisions
Location: memory/board-meetings/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.
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:** memory/board-meetings/[DATE]-raw.md
Conflict Detection
Before logging, Chief of Staff checks for:
- DO_NOT_RESURFACE violations — new decision matches a rejected proposal
- Topic contradictions — two active decisions on same topic with different conclusions
- 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)
- Founder approves synthesis
- Write Layer 1 raw transcript →
YYYY-MM-DD-raw.md - Check conflicts against
decisions.md - Surface conflicts → wait for founder resolution
- Append approved entries to
decisions.md - 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
memory/board-meetings/
├── decisions.md # Layer 2: append-only, founder-approved
├── YYYY-MM-DD-raw.md # Layer 1: full transcript per meeting
└── archive/YYYY/ # Raw files after 90 days
References
templates/decision-entry.md— single entry template with field rulesscripts/decision_tracker.py— CLI parser, overdue tracker, conflict detector