Action tracker
Gather, date and format in a single file every action that falls on the user in the current conversation, whether it surfaced in the discussion itself or inside something produced during it: minutes, a drafted email, a memo, a note.
The output is a flat table, meant to be pasted into whatever list the user actually keeps.
Trigger
Activated when the user:
- Says "my actions", "scan my actions", "extract my actions", "my todo", "what did I sign up for"
- Asks to gather what they have to do, from a conversation and the files produced in it
Step 0: who is "me"
Ask once, unless the answer is already obvious from the conversation:
- What name should be matched? The user's name as it appears when someone addresses them, plus any role they are referred to by ("the project manager", "the PM").
- What is this conversation about? One label, used in the filename.
- Where should the file go?
Nothing else is needed. This skill deliberately knows very little.
Principles
One person only. The table lists only actions where the user is the one who has to act. The owner is implicit, so there is no owner column. An action assigned to someone else is excluded, however long it was discussed.
The current conversation only. Scan where the skill was launched: the discussion and the deliverables produced in it. No searching across other conversations.
No inference. Due date, requester and impact are recorded only when stated. When absent, the cell carries 🔴 and stays empty. Never guess a deadline, a priority or a requester: a guessed due date is worse than a missing one, because nobody goes back to check it.
No fabrication. Record only actions that were actually stated. In doubt about whether an action exists, leave it out.
Honest coverage. Declare what was actually read: the whole conversation, or only the part still in context. Never claim every message was scanned when older ones were summarised away.
Workflow
Step 1: inventory the sources
Before extracting anything, list:
- The conversation body: every message visible in the current context.
- The deliverables produced in it: any file generated during the session. Open and re-read each one. A commitment can live only there, such as an emailed "I will send the figures by Friday" that was never said in the chat.
If part of the conversation is out of context, note it now for the coverage statement.
Step 2: extraction pass
Look for anything where the user has to do something.
First-person commitments in the conversation
- "I will…", "I'll take care of…", "I'm chasing…", "I need to…", "let me…", "I'll get back to…", "I'll send them…"
Actions assigned to the user by someone else
- "[name], can you…", "[name] will…", addressed to them
- An action line whose owner is the user, in minutes produced during the session
Commitments inside a deliverable
- An email, draft or document where the user, or the voice they signed as, undertakes to do something
- A "next steps" or "asks" line whose execution falls on them
- Any first-person future tense in a document they issued
For each action found, capture the verbatim wording, or a faithful paraphrase, and exactly where it came from: which message, or which file.
Excluded: other people's actions; vague intentions with no concrete commitment; backlog items, which belong to a backlog scan, unless the user commits to doing something about one, in which case the act of doing it is their action.
Step 3: fill the fields
| Field | How to determine it |
|---|---|
| Timestamp | From the source when it carries one, otherwise the date of this run |
| Description | What the user has to do, stated plainly, in the implied first person: "chase the vendor about the licences" |
| Requester | Who asked, or who they committed to. Stated only, otherwise 🔴 |
| Due date | Stated deadlines only. Otherwise 🔴, never inferred |
| Impact | High, medium or low, stated only. Otherwise 🔴, never inferred |
| Source | "Conversation", or the filename. If both, list both |
Step 4: deduplicate within the run
The same action surfacing both in the conversation and in a deliverable is one line. The source field lists both origins. Merge the fields by keeping the most explicit value: a due date present in the email and absent from the chat is the one that survives.
Step 5: produce the file
# Actions: {conversation label}, {YYYYMMDD}
Coverage: {an honest statement, such as "whole conversation read in
context" or "the first ~40 messages were summarised out of context
and not scanned in detail"}.
| # | Date | Description | Requester | Due | Impact | Source |
|---|---|---|---|---|---|---|
| 1 | {date} | {what} | {who} | {when} | H/M/L | {where} |
| 2 | {date} | {what} | 🔴 | 🔴 | 🔴 | {where} |
🔴 Cells to fill before this goes anywhere: line 2 (requester, due
date, impact).
Format notes:
- One flat table, so rows can be pasted straight into whatever list the user keeps.
- A missing value is 🔴 in the cell, never a plausible guess.
- If the user has no actions in this conversation, say so plainly. An empty result is a result.
Step 6: filename
{YYYYMMDD} - {label} - Actions v{NN}.md, where the label is the
smallest scope that covers the content. Increment the version rather
than overwriting an existing file.
Quality checks before delivery
- Every line is genuinely the user's action, with none of someone else's slipped in.
- No due date, requester or impact was inferred. Everything not stated is 🔴.
- Every action is traceable to a named source.
- No duplicates: an action stated in both places is one line.
- The coverage statement reflects what was actually read, with no claim of completeness that is not true.
- Each captured action was checked against its source wording, with no paraphrase that changed the meaning.