Claude-skills-kit decision-log

"Extracts structured decisions from meeting notes, Slack threads, or email

install
source · Clone the upstream repo
git clone https://github.com/KirKruglov/claude-skills-kit
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/KirKruglov/claude-skills-kit "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/decision-log" ~/.claude/skills/kirkruglov-claude-skills-kit-decision-log && rm -rf "$T"
manifest: skills/decision-log/SKILL.md
source content

Skill: decision-log

Extracts decisions from meeting notes, messages, and threads and builds a structured log — separate from action items. Supports two modes: new log creation and appending to an existing log with deduplication.


Triggers

Russian: «зафиксируй решения», «залоги решения», «decision log», «лог решений», «извлеки решения из встречи», «обнови лог решений», «добавь решения в лог», «запиши решения» English: "log decisions", "decision log", "extract decisions", "capture decisions from meeting", "update decision log", "add to decision log", "decisions from this meeting"


Language Detection

Determine the language of the user's first message — it sets the language for the entire conversation, output, and template.

Input languageOutput languageTemplate
RussianRussian
decision-log-template.ru.md
EnglishEnglish
decision-log-template.md

Input

Required:

  • Text from a meeting, Slack thread, email chain, or meeting notes (any format)

Optional:

  • Existing decision log (table or cards) — for append mode

Parameters (specified explicitly or selected in Step 1):

  • Output format:
    table
    (markdown table) or
    cards
    (markdown cards)
  • Mode:
    new
    (new log) or
    append
    (add to existing log)

Output

A structured decision log in the chosen format.

Each record contains 6 fields:

  1. Decision — precise formulation of the decision (1–2 sentences)
  2. Context — why it was made: constraints, rationale, trigger
  3. Alternatives — what was considered and why rejected (if mentioned)
  4. Participants — who was involved in making the decision
  5. Date — date (if stated in the text; otherwise blank)
  6. Related — linked tasks, risks, dependencies (if mentioned)

Instructions

Step 1 — Determine mode and format

Determine mode and format from the request context:

ConditionModeAction
Only source text provided
new
Create log from scratch
Source text + existing log provided
append
Add new records
Format not specifiedAsk the user

If the output format is not specified explicitly, ask in the user's language:

  • EN: "Which format do you prefer: table (one row per decision) or cards (one block per decision)?"
  • RU: "Какой формат предпочтительнее: таблица (одна строка на решение) или карточки (отдельный блок на каждое решение)?"

Wait for the answer before processing.

Step 2 — Extract decisions

Scan the text and identify all points where a decision was made.

Decision signals (as opposed to action items or information):

  • Choice between options: "decided to use X instead of Y"
  • Stated position: "agreed that...", "confirmed...", "approved..."
  • Change of approach: "switching to...", "dropping..."
  • Prioritization: "focusing on X, deferring Y"
  • Implicit agreement: a clear brief response ("ok", "yeah", "sounds fine", "agreed", «ок», «хорошо», «договорились») to a proposal involving a choice — only if context makes it clear which option was accepted

Do NOT extract:

  • Action items ("Ivan will do this by Friday")
  • Informational statements with no choice involved
  • Open questions and hypotheses

Fill in all 6 fields for each decision found. If a field is not mentioned in the text — leave it blank or use a dash.

Step 3 — Deduplication (append mode only)

Compare extracted decisions against the existing log.

Consider records duplicates if:

  • The decision wording matches in meaning (different words are acceptable)
  • Context and date match

When a duplicate is detected:

  • Do not add the record again
  • Note in the output: "[duplicate, skipped: brief wording]"

Step 4 — Generate output

Use headings and labels matching the determined output language.

Format

table
— EN:

| # | Decision | Context | Alternatives | Participants | Date | Related |
|---|----------|---------|--------------|--------------|------|---------|
| 1 | ... | ... | ... | ... | ... | ... |

Format

table
— RU:

| # | Решение | Контекст | Альтернативы | Участники | Дата | Связанные |
|---|---------|----------|--------------|-----------|------|-----------|
| 1 | ... | ... | ... | ... | ... | ... |

Format

cards
— EN:

### Decision 1: [short title]

- **Decision:** ...
- **Context:** ...
- **Alternatives:** ...
- **Participants:** ...
- **Date:** ...
- **Related:** ...

Format

cards
— RU:

### Решение 1: [краткое название]

- **Решение:** ...
- **Контекст:** ...
- **Альтернативы:** ...
- **Участники:** ...
- **Дата:** ...
- **Связанные:** ...

After the output, add a brief summary: how many decisions found, how many are new (in append mode), how many duplicates skipped.


Templates

The skill uses files from

templates/
:

FileLanguagePurpose
templates/decision-log-template.md
ENBlank log template (English)
templates/decision-log-template.ru.md
RUBlank log template (Russian)

Constraints

  • Does not extract action items — that is a separate domain
  • Does not integrate with external systems directly (task trackers, messengers)
  • Text input only — audio, video, and images are not supported
  • Does not assess the quality or correctness of decisions
  • Does not make recommendations or suggest alternatives
  • If the source text contains no decisions — reports this explicitly and does not generate empty records