Meeting notes to actions
@opsdesk/meeting-notes-to-actions
Turn messy meeting notes into a clean list of decisions and action items, each with one owner and a real due date, plus a CSV you can paste into any tracker or spreadsheet.
- Activity
- New: be the first to try it
- Installs
- 0 installs
- Likes
- 0 likes
- Clones
- 0 clones
- 1{
- 2 "name": "meeting-notes-to-actions",
- 3 "owner": "opsdesk",
- 4 "version": "1.0.0",
- 5 "type": "skill",
- 6 "description": "Turn messy meeting notes into a clean list of decisions and action items, each with one owner and a real due date, plus a CSV you can paste into any tracker or spreadsheet.",
- 7 "category": "other",
- 8 "license": "MIT",
- 9 "compat": ["claude-code"],
- 10 "permissions": {
- 11 "shell": ["node scripts/actions-to-csv.mjs"],
- 12 "files": { "read": ["./notes/**", "./examples/**"], "write": ["./notes/**", "./out/**"] }
- 13 },
- 14 "tests": {
- 15 "cases": [
- 16 {
- 17 "name": "finds owners in three styles and resolves relative dates from the meeting date",
- 18 "inputs": {
- 19 "notes/sync.md": "# Product sync\n\nDate: 2026-11-04\n\n## Action items\n\n- [ ] Head of Product: share the Q1 roadmap draft (due 2026-11-13)\n- [ ] @DesignLead mock the new settings page by Friday\n- [ ] Head of Support to collect the top 10 tickets by end of week\n- [ ] Send the pricing FAQ to legal\n- [x] COO: book the offsite venue\n"
- 20 },
- 21 "checks": [
- 22 {
- 23 "type": "command_exits_zero",
- 24 "command": "node scripts/actions-to-csv.mjs notes/sync.md out/actions.csv"
- 25 },
- 26 { "type": "file_exists", "path": "out/actions.csv" },
- 27 { "type": "file_contains", "path": "out/actions.csv", "text": "1,Head of Product,Share the Q1 roadmap draft,2026-11-13,open,Product sync,2026-11-04" },
- 28 { "type": "file_contains", "path": "out/actions.csv", "text": "2,DesignLead,Mock the new settings page,2026-11-06,open" },
- 29 { "type": "file_contains", "path": "out/actions.csv", "text": "3,Head of Support,Collect the top 10 tickets,2026-11-06,open" },
- 30 { "type": "file_contains", "path": "out/actions.csv", "text": "4,UNASSIGNED,Send the pricing FAQ to legal,,open" },
- 31 { "type": "file_contains", "path": "out/actions.csv", "text": "5,COO,Book the offsite venue,,done" }
- 32 ]
- 33 },
- 34 {
- 35 "name": "reads Action: lines and quotes commas in the CSV",
- 36 "inputs": {
- 37 "notes/board-prep.md": "# Board prep\n\nAction: Head of Finance to update burn, runway, and hiring plan by 2026-11-20\nTODO: Head of Sales will refresh the pipeline slide by tomorrow\n"
- 38 },
- 39 "checks": [
- 40 {
- 41 "type": "command_exits_zero",
- 42 "command": "node scripts/actions-to-csv.mjs notes/board-prep.md out/actions.csv --meeting-date 2026-11-10"
- 43 },
- 44 { "type": "file_contains", "path": "out/actions.csv", "text": "1,Head of Finance,\"Update burn, runway, and hiring plan\",2026-11-20,open" },
- 45 { "type": "file_contains", "path": "out/actions.csv", "text": "2,Head of Sales,Refresh the pipeline slide,2026-11-11,open" }
- 46 ]
- 47 },
- 48 {
- 49 "name": "parses the shipped example",
- 50 "inputs": {},
- 51 "checks": [
- 52 {
- 53 "type": "command_exits_zero",
- 54 "command": "node scripts/actions-to-csv.mjs examples/weekly-ops-notes.md out/actions.csv"
- 55 },
- 56 { "type": "file_contains", "path": "out/actions.csv", "text": "3,Head of People,Draft the backfill job description,2026-11-10,open" }
- 57 ]
- 58 }
- 59 ]
- 60 }
- 61}
