Skip to main content

docket.md

The execution forge. Tasks, milestones, documents, Definition of Done.

Named for a court's docket: the queue of cases ready for resolution. Planning happens elsewhere; the docket is where work gets scheduled, dispatched, and closed. (Previously codenamed ike, after Eisenhower — same discipline, different metaphor.)


The Trilogy

docket.md is the third leg of a three-tool system for AI-driven work:

Tool Role When to use
research.md Decide with evidence Before making architectural choices
visionlog Record vision, goals, guardrails, ADRs Contracts all execution must honor
docket.md Execute within those contracts Daily work: tasks, milestones, docs

The trilogy is one loop with three stages:

research.md  →  visionlog  →  docket.md
  DECIDE        CONTRACT      EXECUTE
     ↑                           │
     └───────────────────────────┘
          execution reveals gaps

When docket.md reveals that a strategy is wrong — a task fails, a pattern repeats, a direction proves misguided — the feedback loop doesn't short-circuit back to visionlog directly. It goes all the way back to research.md:

  1. docket.md — execution surfaces a gap or contradiction
  2. research.md — earn the new answer with evidence before acting on it
  3. visionlog — record the decision as an ADR
  4. docket.md — execute the new direction

Skipping research.md means ADRs written under pressure, strategy updated on instinct, decisions that contradict each other three sessions later. The loop must complete fully to be trustworthy.

Session protocol: Read visionlog first (it tells you where the ladder points and what you must not cross). Then open docket.md and work. If execution reveals a gap in strategy, go back to research.md before updating visionlog.


Install

uv tool install docket-md
# or: pip install docket-md

Add to your .mcp.json:

{
  "mcpServers": {
    "docket": {
      "type": "stdio",
      "command": "docket-md"
    }
  }
}

GUID Workflow

docket.md uses a stable GUID registry — not fragile CWD scanning.

  1. New project: project_init → writes .docket/docket.json with a stable GUID
  2. Existing project: project_set → registers path→GUID in session memory
  3. Every other call: pass project_id (the GUID)

If you forget the GUID, the error message tells you exactly what to call to recover.


File Structure

your-project/
└── .docket/
    ├── docket.json          ← project config + stable GUID
    ├── tasks/            ← active tasks (TASK-0001 - slug.md)
    ├── completed/        ← Done tasks
    ├── archive/          ← Cancelled / superseded tasks
    ├── milestones/       ← MS-0001 - slug.md
    └── documents/        ← DOC-0001 - slug.md

All files are plain markdown with YAML frontmatter — readable without docket.md.


Tool Reference

Project

Tool What
project_init Initialize new project, get GUID
project_set Register existing project for session
project_list List registered projects
project_info Stats: task counts, milestones, docs

Tasks

Tool What
task_create Create task with optional priority, milestone, DoD
task_list List with status/milestone/assignee/tag filters
task_view Full detail for one task
task_edit Update any field; append notes
task_complete Mark Done, move to completed/
task_archive Cancel/supersede, move to archive/
task_search Keyword search across title + notes

Milestones

Tool What
milestone_create New milestone with optional due date
milestone_list All milestones (open + closed)
milestone_view Full detail
milestone_close Mark complete

Documents

Tool What
document_create New doc with content + tags
document_list All documents
document_view View by DOC-XXXX
document_update Replace or append content

Task Frontmatter

---
id: TASK-0001
title: Build the thing
status: To Do         # To Do | In Progress | Done | Draft
priority: high        # high | medium | low
milestone: MS-0001
assignees: [daniel]
tags: [infra, core]
dependencies: [TASK-0000]
acceptance-criteria:
  - Users can log in
definition-of-done:
  - Tests passing
  - Deployed to staging
created: 2026-03-20
updated: 2026-03-20
---

Notes go here as markdown body.

Philosophy

Tasks without contracts drift. Contracts without tasks are wishes.

docket.md is where the two meet. Before you create a task, the visionlog guardrail has already told you what you cannot do. The Definition of Done field is the contract written before the work begins — machine-checkable, not vibes.

19 tools across project, task, milestone, and document management. Inspired by backlog.md. Zero forked code. Full credit for the concept.


MIT License © 2025 Daniel Shanklin

Metadata

Release files for docket-md 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for docket-md 0.4.1
File Size Uploaded
docket_md-0.4.1.tar.gz 70.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for docket-md 0.4.1
File Interpreter ABI Platform
docket_md-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 118.6 kB

Release files / docket_md-0.4.1.tar.gz

Download URL docket_md-0.4.1.tar.gz
Size 70.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1f407ce61bf32e710f0369f028bbd82027dcc088da901ad528c7e362d0290951
BLAKE2b-256 checksum
How to use checksums
984ed614e73e41748bcdaee68e23355eb0e584087fd3c9bc1ce3a5b84b291b0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 14, 2026.

Transparency log

Release files / docket_md-0.4.1-py3-none-any.whl

Download URL docket_md-0.4.1-py3-none-any.whl
Size 47.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aecc4d168d69424d57131b6d116ff90f5c4fded3b8d459c9e7acdffbe820ac7e
BLAKE2b-256 checksum
How to use checksums
2848ce32a43e65160b612d9ee99acfe1423d5570c4594ccf65669df46482c126
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page