ike.md
The execution forge. Tasks, milestones, documents, Definition of Done.
Named for Eisenhower — the man who planned D-Day and then ran the free world. Ike didn't just plan. He executed at scale, across many agents, under time pressure, with contracts that had to be honored.
The Trilogy
ike.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 |
| ike.md | Execute within those contracts | Daily work: tasks, milestones, docs |
The trilogy is one loop with three stages:
research.md → visionlog → ike.md
DECIDE CONTRACT EXECUTE
↑ │
└───────────────────────────┘
execution reveals gaps
When ike.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:
- ike.md — execution surfaces a gap or contradiction
- research.md — earn the new answer with evidence before acting on it
- visionlog — record the decision as an ADR
- ike.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 ike.md and work. If execution reveals a gap in strategy, go back to research.md before updating visionlog.
Install
# Clone
git clone git@github.com:eidos-agi/ike.md.git
cd ike.md
npm install
npm run build
Add to your .mcp.json:
{
"mcpServers": {
"ike": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/ike.md/dist/index.js"]
}
}
}
GUID Workflow
ike.md uses a stable GUID registry — not fragile CWD scanning.
- New project:
project_init→ writes.ike/ike.jsonwith a stable GUID - Existing project:
project_set→ registers path→GUID in session memory - 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/
└── .ike/
├── ike.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 ike.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.
ike.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 ike-md 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ike_md-0.2.0.tar.gz | 71.2 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ike_md-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 84.4 kB
Release files / ike_md-0.2.0.tar.gz
| Download URL | ike_md-0.2.0.tar.gz |
|---|---|
| Size | 71.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6858235b930797955db4564264aeacf45ff5cee1a1af6bd80913151f1794e7c2
|
|
BLAKE2b-256 checksum How to use checksums |
101daed98c283a6d3461382d49b9d9d829267eb91d817fdda47e8946f0a62504
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 22, 2026.
Transparency logRelease files / ike_md-0.2.0-py3-none-any.whl
| Download URL | ike_md-0.2.0-py3-none-any.whl |
|---|---|
| Size | 13.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2bb85c135e6c164392585dec7488ff012dc74fb15c03ad6bd9eca10cb06ed710
|
|
BLAKE2b-256 checksum How to use checksums |
c4859c9cb67e918feb09d613198bee73b4d352e763e1e12fd465cbcd66b7b422
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 22, 2026.
Transparency logSecurity for ike-md 0.2.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for ike_md-0.2.0.tar.gz
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 Mar 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.