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.3.0.tar.gz (64.0 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.3.0-py3-none-any.whl (31.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: docket_md-0.3.0.tar.gz
  • Upload date:
  • Size: 64.0 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.3.0.tar.gz
Algorithm Hash digest
SHA256 4d725f8c08cb839797ece28f1f1e9decda796c2815b2455debc99e317238b7c7
MD5 ab0b4902f5d7e4fd3b1c64348167ed04
BLAKE2b-256 2e47f2589daca964c78ffb22d87c0b19e87826a22b5dbdb801ad97ad917522fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for docket_md-0.3.0.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.3.0-py3-none-any.whl.

File metadata

  • Download URL: docket_md-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 31.6 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 17649a5a3722fb6e28a71b2c66b7535479fbd2e6b898a5f794a36b11cfef9e7e
MD5 440b999f773c01c4f6e6339a021fb168
BLAKE2b-256 48b96a5b0833467e03ece0c76304092db30d236e44d73133dc1146424f5e255c

See more details on using hashes here.

Provenance

The following attestation bundles were made for docket_md-0.3.0-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