Install
$ agentstack add skill-aleksander-dytko-ai-pm-workspace-meeting ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Process Meeting Notes
You are helping process raw meeting notes into a structured meeting note. Action items for the user land in Dashboard/tasks.md.
Input Modes
The skill operates in one of three modes based on $ARGUMENTS:
| Mode | Arguments | When to use | |------|-----------|-------------| | Browse | (none) or browse | List recent files in Meetings/ that look unprocessed | | Specific file | File path or partial name | Process notes from a specific file | | Paste | Pasted text (long string) | Meeting notes pasted directly into the prompt |
Workflow
Step 0: Determine mode and get raw notes
If no arguments (Browse mode):
- Use the
Globtool with patternMeetings/*.mdto list meeting files. Do NOT useBash ls- Glob is quieter and shows results already sorted. - Read the top N candidates (up to 5) in parallel and identify files with raw/unstructured notes (no "## Decisions", no structured format).
- Show a numbered list of unprocessed files.
- Ask: "Which meeting do you want to process?"
If specific file path:
- Read the file.
- If already structured (has Decisions, Action Items sections): warn and ask to confirm before overwriting.
- If raw notes: proceed directly.
If pasted text:
- Use the pasted text as raw input.
- Ask for meeting date and title if not obvious from the text.
Step 1: Analyze raw notes
Extract:
- Meeting title (from filename or content)
- Date (from filename or content)
- Attendees (mentioned names)
- Key topics discussed
- Decisions made (explicit or implicit)
- Action items (tasks, follow-ups, commitments - with owners)
- Open questions (unresolved topics)
Step 2: Cross-reference attendees
- Read
Dashboard/people-profiles.mdto verify attendee names and roles. - Use tags (e.g.,
#FirstName) when mentioning people.
Step 3: Search for related context
- Search
Loose Notes/Work/for related decisions or notes. - Check
Dashboard/Weekly P-Tasks.mdfor related P-tasks. - Identify which existing notes this meeting relates to - used in the "Related" section.
Step 4: Create structured meeting note
- Location:
Meetings/YYYY-MM-DD - [Meeting Title].md(or overwrite the source file if processing in-place). - Template:
templates/meeting-note.md. - Date: the meeting's actual date, not today's date.
- Fill all sections:
- Attendees (verified names, correct tags)
- Topics (high-level)
- Meeting notes (organized by topic)
- Decisions (extracted explicitly)
- Action Items (checkboxes with owners and deadlines)
- Open Questions
- Related (wikilinks to relevant notes)
Step 5: Link in the meeting's journal
- Journal path:
journals/YYYY/MM-Month/DD-MM-YYYY.mdfor the meeting's date. - Add under
## Notes:- [[YYYY-MM-DD - Meeting Title]] - [One-line summary]. - If the journal for that date doesn't exist, skip.
Step 6: Prepare tasks for the user (confirm before writing)
- Only prepare tasks for the vault owner - skip tasks owned by others.
- Avoid duplicates: scan
Dashboard/tasks.md(all three sections) for matching task content. - Prepare a proposed list:
- Text: "[Action item]"
- Optional due date (if a deadline was mentioned)
- Optional priority (P2 critical / P3 normal / P4 low)
- Source link back to the meeting note (
source: [[YYYY-MM-DD - Meeting Title]])
Show the proposed list and wait for confirmation before writing.
After confirmation, append the tasks to Dashboard/tasks.md under the "This week" section, using this format:
- [ ] Action description - source: [[YYYY-MM-DD - Meeting Title]] - due: YYYY-MM-DD - priority: P3
Priority and due date are optional - include only when meaningful.
Output Format
When reporting results to the user in chat, reference files with backtick-wrapped paths, not markdown links with spaces and not [[wikilinks]]. Claude Code renders backtick paths as clickable file references; markdown links with unescaped spaces break, and wikilinks only work inside vault files rendered in Obsidian.
In chat:
Meeting note created: `Meetings/YYYY-MM-DD - Meeting Title.md`
Linked in journal: `journals/YYYY/MM-Month/DD-MM-YYYY.md` (or "skipped - no journal for that date")
Proposed tasks for Dashboard/tasks.md (your action items only):
1. [Task] - due YYYY-MM-DD - P2
2. [Task] - P3
Already in Dashboard/tasks.md (skipping):
- [Existing task]
Tasks for others (not added to your list):
- [Task] - [Person]
Confirm: add tasks to Dashboard/tasks.md? (Y / N / pick numbers like 1,3)
After confirmation, append tasks to the "This week" section of Dashboard/tasks.md.
Inside the meeting note file itself (the Markdown being written to disk), keep using [[wikilink]] style for the Related section and task source: fields - those are for vault navigation (Obsidian/future tooling), not for chat rendering.
Notes
- Use the meeting's actual date, not today's date.
- If a meeting already has a structured note, warn before overwriting.
- Only write tasks that belong to the vault owner.
- Always check
Dashboard/tasks.mdfor duplicates before proposing new tasks. - If attendees aren't clear, ask the user.
- If no deadline is mentioned for an action item, don't set one.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: aleksander-dytko
- Source: aleksander-dytko/ai-pm-workspace
- License: MIT
- Homepage: https://productpeak.substack.com/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.