Decision Extractor
Scan recent notes (weekly reports, meetings) for decision language and surface decisions that should be logged in project files.
Arguments
- Time range (optional): "this week", "last 2 weeks", "this month" (default: last 2 weeks)
- Project filter (optional): Only look for decisions about a specific project
--include-slack: Also scan Slack for decision language (default: vault only)
Steps
Find files to scan:
- Glob recent weekly reports based on time range
- Glob meeting notes in those week folders
- If project filter, narrow scope
Scan vault for decision language:
Pattern match for phrases indicating decisions:
- "decided to", "decision:", "the call is"
- "agreed on", "agreed to", "we'll go with"
- "chose to", "choosing", "selected"
- "approved", "signed off on"
- "not doing", "won't pursue", "deprioritizing"
- "the plan is", "moving forward with"
- "resolved to", "committed to"
Scan Slack for decisions (if --include-slack):
- Use
mcp__playground-slack-mcp__get_messages with action: my_messages
- Time range: Match the vault time range argument
- Search sent messages and @mentions for same decision patterns
- These are "async decisions" that may not have made it to vault notes
- Skip gracefully if Slack MCP unavailable
Extract decision context:
- The decision itself
- Date (from file or section)
- People involved (if mentioned)
- Project/topic it relates to
- Rationale (if stated)
- Source: vault file or Slack (channel + thread link)
Match to projects:
- For each decision, identify which project it relates to
- Check if project has a Decision Log section
- Check if decision is already logged
Present findings:
- Show decisions found
- Indicate which are already logged vs. new
- Group by project
- Mark Slack decisions with source channel
Offer to update:
- For new decisions, ask if user wants to add to Decision Log
- If confirmed, use Edit tool to append to project file
Output Format
## Decisions Found ([time range])
### [[project-1]]
**Already Logged:**
- [Date]: [Decision] ?
**New (not in Decision Log):**
- [Date]: [Decision]
- Source: `meeting-2025-01-06-person.md`
- Context: [brief rationale if found]
- -> Add to Decision Log? [Y/N]
### [[project-2]]
**New:**
- [Date]: [Decision]
- Source: `weekly-report-w02.md`
- -> Add to Decision Log? [Y/N]
### Unmatched (no clear project)
- [Date]: [Decision]
- Source: [file]
- Possible projects: [[project-a]], [[project-b]]
### From Slack (--include-slack)
- [Date]: [Decision]
- Source: #[channel] ([thread link])
- Participants: @person1, @person2
- -> Add to Decision Log? [Y/N]
Decision Log Format
When adding to project files, use this table format:
## Decision Log
| Date | Decision | Context |
|------|----------|---------|
| 2025-01-06 | Chose Figma over Sketch for prototypes | Team familiarity, better collaboration |
| 2025-01-08 | Scoped out mobile for v1 | #proj-channel (Slack) |
For Slack decisions, include channel name as context. Link to thread if available.
Notes
- Don't add duplicates. Check existing Decision Log first.
- If a project doesn't have a Decision Log section, offer to create one
- For decisions that span multiple projects, log in the primary project and note the connection
- "Context" should be brief (one sentence). Link to source file for details.
- Ask before writing. This skill modifies files.
- Some "decisions" are actually action items. Use judgment. Decisions are choices between options; actions are tasks to do.
1---2name: decision-extractor3description: Scan recent notes for decision language and offer to update project Decision Logs4---5
6# Decision Extractor
7
8Scan recent notes (weekly reports, meetings) for decision language and surface decisions that should be logged in project files.
9
10## Arguments
11
12- Time range (optional): "this week", "last 2 weeks", "this month" (default: last 2 weeks)
13- Project filter (optional): Only look for decisions about a specific project
14- `--include-slack`: Also scan Slack for decision language (default: vault only)
15
16## Steps
17
181. **Find files to scan:**
19 - Glob recent weekly reports based on time range
20 - Glob meeting notes in those week folders
21 - If project filter, narrow scope
22
232. **Scan vault for decision language:**
24 Pattern match for phrases indicating decisions:
25 - "decided to", "decision:", "the call is"
26 - "agreed on", "agreed to", "we'll go with"
27 - "chose to", "choosing", "selected"
28 - "approved", "signed off on"
29 - "not doing", "won't pursue", "deprioritizing"
30 - "the plan is", "moving forward with"
31 - "resolved to", "committed to"
32
333. **Scan Slack for decisions (if --include-slack):**
34 - Use `mcp__playground-slack-mcp__get_messages` with action: `my_messages`
35 - Time range: Match the vault time range argument
36 - Search sent messages and @mentions for same decision patterns
37 - These are "async decisions" that may not have made it to vault notes
38 - Skip gracefully if Slack MCP unavailable
39
404. **Extract decision context:**
41 - The decision itself
42 - Date (from file or section)
43 - People involved (if mentioned)
44 - Project/topic it relates to
45 - Rationale (if stated)
46 - Source: vault file or Slack (channel + thread link)
47
485. **Match to projects:**
49 - For each decision, identify which project it relates to
50 - Check if project has a Decision Log section
51 - Check if decision is already logged
52
536. **Present findings:**
54 - Show decisions found
55 - Indicate which are already logged vs. new
56 - Group by project
57 - Mark Slack decisions with source channel
58
597. **Offer to update:**
60 - For new decisions, ask if user wants to add to Decision Log
61 - If confirmed, use Edit tool to append to project file
62
63## Output Format
64
65```markdown
66## Decisions Found ([time range])
67
68### [[project-1]]
69
70**Already Logged:**
71- [Date]: [Decision] ?
72
73**New (not in Decision Log):**
74- [Date]: [Decision]
75 - Source: `meeting-2025-01-06-person.md`
76 - Context: [brief rationale if found]
77 - -> Add to Decision Log? [Y/N]
78
79### [[project-2]]
80
81**New:**
82- [Date]: [Decision]
83 - Source: `weekly-report-w02.md`
84 - -> Add to Decision Log? [Y/N]
85
86### Unmatched (no clear project)
87
88- [Date]: [Decision]
89 - Source: [file]
90 - Possible projects: [[project-a]], [[project-b]]
91
92### From Slack (--include-slack)
93
94- [Date]: [Decision]
95 - Source: #[channel] ([thread link])
96 - Participants: @person1, @person2
97 - -> Add to Decision Log? [Y/N]
98```
99
100## Decision Log Format
101
102When adding to project files, use this table format:
103
104```markdown
105## Decision Log
106
107| Date | Decision | Context |
108|------|----------|---------|
109| 2025-01-06 | Chose Figma over Sketch for prototypes | Team familiarity, better collaboration |
110| 2025-01-08 | Scoped out mobile for v1 | #proj-channel (Slack) |
111```
112
113For Slack decisions, include channel name as context. Link to thread if available.
114
115## Notes
116
117- Don't add duplicates. Check existing Decision Log first.
118- If a project doesn't have a Decision Log section, offer to create one
119- For decisions that span multiple projects, log in the primary project and note the connection
120- "Context" should be brief (one sentence). Link to source file for details.
121- Ask before writing. This skill modifies files.
122- Some "decisions" are actually action items. Use judgment. Decisions are choices between options; actions are tasks to do.