{
 "schema": "aiblocks-page/1",
 "id": "executive-work-keeper",
 "type": "agent",
 "name": "Work commitment and follow-up writer",
 "summary": "Keep an action list in step with new notes. Get due follow-up drafts and a brief of what changed.",
 "headline": "Work commitment and follow-up writer",
 "subhead": "Share new notes and the saved action list. It updates affected commitments, checks what is due and drafts only the follow-ups still needed. You get a current brief, open questions and a record of delivery status. A draft or sent message does not mark the underlying task complete.",
 "job": {
  "id": "organise-work",
  "name": "Run meetings, notes and plans"
 },
 "level": "advanced",
 "thinking": "high",
 "tested": true,
 "updated": "2026-11-03",
 "first_published": "2026-10-21",
 "inputs": [
  {
   "type": "meeting_notes",
   "required": true,
   "label": "Meeting notes",
   "what": "an agenda, notes or decisions from a meeting"
  },
  {
   "type": "spreadsheet",
   "required": false,
   "label": "Spreadsheet",
   "what": "a spreadsheet with its data, formulas and charts"
  },
  {
   "type": "document",
   "required": false,
   "label": "Document",
   "what": "a finished document, such as a Word file, a PDF or a page of notes"
  }
 ],
 "outputs": [
  {
   "type": "document",
   "required": true,
   "label": "Document",
   "what": "a finished document, such as a Word file, a PDF or a page of notes"
  }
 ],
 "you_give": [
  "New notes since the last run: meeting notes, a transcript or email threads, pasted in or attached (only the ones in scope)",
  "Your saved action list as a CSV, a spreadsheet export or pasted text, with task, owner, due date and status (skip it on the first run)",
  "The two state files from last time, agent-state.json and decision-log.md, in a folder you choose (optional on the first run; in a plain chat, paste them back)",
  "Today's date and your timezone",
  "Who may be contacted, and the tone you want for drafts (optional)"
 ],
 "you_get": [
  "A list of commitments marked new, changed, unchanged or blocked, each with its source note and date",
  "Follow-up drafts only for tasks that are due and still need a message, with To, subject and body",
  "A short work brief: what changed, what is due and what you are waiting on",
  "Updated agent-state.json and decision-log.md files, or the same text to save in a note",
  "Missing facts, and one next action"
 ],
 "use_when": [
  "A weekly team meeting just ended and its notes should update the action list you already keep.",
  "A client email moved a due date and you need to know which commitments it touches.",
  "Three tasks passed their due date and you want follow-up email drafts to the right people.",
  "You keep an action list in a spreadsheet or a note and want it checked against new notes each week."
 ],
 "skip_when": [
  "You have notes and want an action list once, with no saved state. Use the Action item tracker keeper.",
  "You only want today's priorities from your calendar. Use the Daily executive brief writer.",
  "You want one follow-up email drafted from one thread. Use the Task follow-up writer.",
  "You expect it to send emails, update your task app or run every morning. It prepares drafts and files only. You send, and you set any schedule."
 ],
 "output_sample": {
  "input": [
   "New meeting notes or email threads since the last run",
   "Your saved action list (skip on the first run)",
   "The two state files from last time, agent-state.json and decision-log.md (skip on the first run)",
   "Today's date and your timezone",
   "Who may be contacted and the tone for drafts (optional)"
  ],
  "prerequisites": [
   "An AI that can read files, or a chat where you can paste the saved state back each time"
  ],
  "output": [
   {
    "name": "STATE",
    "contains": "The date and timezone, plus whether this run was a first run or found new, changed, unchanged, pending or blocked work."
   },
   {
    "name": "PATH",
    "contains": "Which skill ran and why, and which skills were skipped."
   },
   {
    "name": "CHANGED COMMITMENTS",
    "contains": "Each task with its owner, due date, status (new, changed, unchanged or blocked) and the note it came from."
   },
   {
    "name": "DRAFTS (not sent)",
    "contains": "Follow-up drafts for due tasks that still need a message, with who it goes to, subject and first line."
   },
   {
    "name": "BRIEF",
    "contains": "What changed, what is due and what you are waiting on."
   },
   {
    "name": "MISSING",
    "contains": "Each gap in the facts and what it stops the agent from doing."
   },
   {
    "name": "NEXT ACTION",
    "contains": "One line on the single thing to do next."
   },
   {
    "name": "agent-state.json and decision-log.md",
    "contains": "The saved state and the evidence behind each decision, ready for your next run."
   }
  ]
 },
 "output_shape": "STATE <date, timezone>: <first run | new | changed | unchanged | pending | blocked>\nPATH <which skill ran and why, and which were skipped>\n\nCHANGED COMMITMENTS\n  <task ID> | <task> | <owner> | due <date> | <new | changed | unchanged | blocked> | source <note, date>\n\nDRAFTS (not sent)\n  <task ID> | To <name> | Subject: <subject> | <first line of the body>\n\nBRIEF\n  <what changed> | <what is due> | <waiting on>\n\nMISSING <each gap, and what it stops>\nNEXT ACTION <one line>\nFILES agent-state.json, decision-log.md",
 "how_to_use": [
  "Open Claude, ChatGPT or Gemini and add the pack, which holds this agent and its three skills. Add all three. If one is missing, the agent says so and reads it from its page. If your AI can't keep files, paste the agent first.",
  "First run: paste your notes or action list and say there is no saved state. Pick a folder for the two state files, or ask for them as text to save in a note.",
  "Later runs: paste the new notes and the saved state files, then give today's date and your timezone.",
  "Check the line that says which path ran. If you gave it new notes and it says nothing changed, ask it to show which notes it read.",
  "Read every draft before you use it. Check the recipient, the date and any promise. Send it yourself, and mark the task done yourself.",
  "Save the new state files. You will paste them in next time."
 ],
 "checks": [
  "Facts trace back to sources.",
  "Missing inputs are clear.",
  "The result matches the stated goal.",
  "Proposed actions stay distinct from completed actions."
 ],
 "steps": [
  {
   "position": 1,
   "id": "executive-action-register",
   "name": "Action item tracker",
   "summary": "Share meeting notes or email threads. Get action items with owners, deadlines and unresolved commitments.",
   "url": "https://useaiblocks.com/skills/executive-action-register"
  },
  {
   "position": 2,
   "id": "executive-due-task-drafts",
   "name": "Task follow-up writer",
   "summary": "Share dated tasks and their message threads. Get recipient-specific follow-up drafts, missing facts and a clear draft/sent status.",
   "url": "https://useaiblocks.com/skills/executive-due-task-drafts"
  },
  {
   "position": 3,
   "id": "executive-daily-digest",
   "name": "Daily executive brief writer",
   "summary": "Share your calendar, action list and updates. Get a dated brief of priorities, decisions, conflicts and work waiting on others.",
   "url": "https://useaiblocks.com/skills/executive-daily-digest"
  }
 ],
 "next": [
  {
   "name": "Week priority picker",
   "url": "https://useaiblocks.com/prompts/week-priority-picker",
   "why": "Plan your strategy"
  }
 ],
 "source": null,
 "credits": [
  {
   "title": "Executive assistant job ideas",
   "by": "mgonto",
   "url": "https://github.com/mgonto/executive-assistant-skills",
   "used": "Inspiration for meeting preparation, action tracking, email drafting and daily briefings. These are original portable instructions, not copies of the unlicensed source."
  }
 ],
 "files": [],
 "links": {
  "page": "https://useaiblocks.com/agents/executive-work-keeper",
  "markdown": "https://useaiblocks.com/agents/executive-work-keeper.md",
  "json": "https://useaiblocks.com/agents/executive-work-keeper.json",
  "instructions": "https://useaiblocks.com/skills/executive-work-keeper/SKILL.md",
  "api_item": "https://useaiblocks.com/api/v1/items/executive-work-keeper",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/executive-work-keeper",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
