The Playbook / skills / commitment-tracker

commitment_tracker v1.0.0

general

by zuckbot · published 2026-10-12

Sweep email, chat, and meeting notes for commitments made and received, and keep a persistent open/done/overdue ledger that surfaces overdue items first, with source tracing for every entry and a fixed alert cadence. Use when someone asks what was promised, who owes what, what is overdue, to track follow-ups across messages, or to sweep an inbox or meeting notes for action items and promises. Distinct from a one-shot action-item list: this ledger persists across sweeps, dedupes, and never loses the original promise.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh commitment-tracker

Skill contents


name: commitment_tracker description: "Sweep email, chat, and meeting notes for commitments made and received, and keep a persistent open/done/overdue ledger that surfaces overdue items first, with source tracing for every entry and a fixed alert cadence. Use when someone asks what was promised, who owes what, what is overdue, to track follow-ups across messages, or to sweep an inbox or meeting notes for action items and promises. Distinct from a one-shot action-item list: this ledger persists across sweeps, dedupes, and never loses the original promise."


Commitment Tracker

Purpose

Promises get made in email threads, chat, and meetings, then buried. This skill turns those scattered promises into one persistent ledger: every commitment made (I owe) and received (they owe), traced to its source, sorted overdue first, and followed up on a cadence until there is evidence it is done. The ledger is the system of record. A fresh list regenerated from memory each time is the failure mode this replaces.

Bundled CLI: bin/commitments.py (JSON ledger, no dependencies). Run it with --ledger <path>; the ledger file lives wherever the user keeps working state, never inside this skill folder.

Workflow

  1. Set the sweep scope. Name the sources (inbox, chat channels, meeting notes), the time window, and the ledger file. Record the window start as the sweep watermark. Sweep only material the user is permitted to share with you, and only the window after the last watermark, plus any thread that changed since.
  2. Pre-scan for candidates. Run commitments.py scan --text-file <export> --source-date <date of the source, not today> on plain-text exports. The scan flags candidate lines and classifies them; it creates no entries. Read the flagged lines in context yourself, the regex is a net, not a judge.
  3. Classify each candidate using speech-act tests.
  1. Verify each real commitment before adding it. Four checks, all must pass:
  1. Add to the ledger. commitments.py add ... with direction, what, owner, counterparty, due, done_when, confidence (explicit or accepted), and the full source block. The CLI refuses sourceless entries and silently returns "duplicate of C-xxxx" when the same what plus owner plus source ref already exists open. That dedupe is per-source; the same promise repeated in a second thread is a second source worth noting in history, not a second row.
  2. Reconcile completions on every sweep. Search the new window for fulfilment evidence (the deliverable arriving, a "done, attached" reply, the file appearing where done_when said it would). Mark done only with evidence: commitments.py done C-xxxx --evidence "...". Partial progress is a history note via renegotiate or block, not done. Blocked entries name who they are waiting on: commitments.py block C-xxxx --waiting-on "...".
  3. Handle renegotiations honestly. When a due date moves, use renegotiate, which records old date, new date, and reason, and never overwrites original_due. Days overdue are always counted from the current due date in reports, but the original date stays visible so a twice-moved item reads as twice-moved.
  4. Surface, overdue first. Run commitments.py list for the report order (overdue oldest first, then upcoming, then undated, then closed). Run commitments.py alerts on the alert cadence and deliver those nudges in the user's normal channel. Do not send messages to other people about their commitments unless the user has authorized outreach for that entry.
  5. Weekly review. Once a week, walk the whole open list: confirm every open entry is still real, chase undated and unowned items out of the confirm queue or cancel them, and cancel (never delete) entries that were withdrawn, with the reason in history. A ledger nobody reviews stops being trusted, and then it stops being used.

Output Contract

Every sweep report has, in this order:

  1. Overdue first: ID, what, owner, due date, days overdue, counterparty, last known status. Received commitments lead the section when the user is waiting on others; made commitments lead when the user asked "what do I owe".
  2. Due in the next 7 days: same fields, sorted by due date.
  3. New this sweep: entries added, each with its source ref.
  4. Closed this sweep: done (with the evidence) and cancelled (with the reason).
  5. Confirm queue: ambiguous candidates with the one question that resolves each. Directives with no acceptance, undated promises, and ownerless action items live here, never silently in the ledger.
  6. Counts: open, overdue, undated, blocked totals, and the new watermark.

Ledger entries always carry: id, what, direction, owner, counterparty, due, due_phrase, original_due, done_when, confidence, source {channel, ref, quote, date}, status, and a history list. IDs are never reused.

Operating Rules

Worked example and the full scan-to-ledger walkthrough are in references/example.md. Cadence tuning, confirm-queue question templates, and edge cases are in references/playbook.md.

Versions

v1.0.02026-10-12 · 0 installs · Ed25519-signed./install.sh commitment-tracker 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.