Skip to main content

The execution forge — tasks, milestones, documents, Definition of Done

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docket_md-0.4.1.tar.gz (70.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docket_md-0.4.1-py3-none-any.whl (47.8 kB view details)

Uploaded Python 3

File details

Details for the file docket_md-0.4.1.tar.gz.

File metadata

  • Download URL: docket_md-0.4.1.tar.gz
  • Upload date:
  • Size: 70.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for docket_md-0.4.1.tar.gz
Algorithm Hash digest
SHA256 1f407ce61bf32e710f0369f028bbd82027dcc088da901ad528c7e362d0290951
MD5 7d30ff4e5e49c939ef4790607f9fb5c9
BLAKE2b-256 984ed614e73e41748bcdaee68e23355eb0e584087fd3c9bc1ce3a5b84b291b0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for docket_md-0.4.1.tar.gz:

Publisher: publish.yml on eidos-agi/docket.md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file docket_md-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: docket_md-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 47.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for docket_md-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aecc4d168d69424d57131b6d116ff90f5c4fded3b8d459c9e7acdffbe820ac7e
MD5 d3ff799df85dfc56b359f40e4e4d1e28
BLAKE2b-256 2848ce32a43e65160b612d9ee99acfe1423d5570c4594ccf65669df46482c126

See more details on using hashes here.

Provenance

The following attestation bundles were made for docket_md-0.4.1-py3-none-any.whl:

Publisher: publish.yml on eidos-agi/docket.md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page