Task Markdown Driven - A lightweight PDCA cycle management framework integrated with OpenSpec
npm install @tmddev/tmd
TMD - Task Markdown Driven
Ten seconds to Ten minutes Task Markdown Driven Development!
Ten seconds to Ten minutes Task Markdown Driven Development!
A lightweight PDCA cycle management framework integrated with OpenSpec for specification-driven development.
This project is available at: https://tmdd.dev
Ten seconds to Ten minutes Task Markdown Driven Development!
TMD (Task Markdown Driven) combines OpenSpec's specification-driven development with the PDCA (Plan-Do-Check-Act) continuous improvement methodology. It provides a structured, traceable development management tool that ensures transparency and traceability through documentation-driven processes.
At the core of TMD is the principle that tasks should be pee-break (10 seconds to 10 minutes) sized - small, atomic, and completable in a single focused session.
- PDCA Cycle Management: Four-phase commands for Plan, Do, Check, and Act
- Pipe Execution: Automated PDCA cycles without human input for CI/CD and AI agent workflows
- Ten sec to Ten min Task!: Tasks are designed to be pee-break (10 seconds to 10 minutes) sized for quick completion
- Built-in Spec Engine: OpenSpec-compatible specs/changes without external openspec
- Skills System: Reusable capabilities for AI agents with cross-agent invocation support
- Step Executors: Built-in executors for bash commands, file operations, and API calls
- English Language Standard: All documents and specifications use English
- Markdown-Based: All documentation stored in Markdown format
- CLI Interface: Simple command-line interface with aliases
node --version or bun --versionOption A: Using npm
``bash`
npm install -g @tmddev/tmd@latest
Verify installation:
`bash`
tmd --version
Option B: Using pnpm
`bash`
pnpm install -g @tmddev/tmd@latest
Option C: Use locally
`bash`
git clone https://github.com/sdd330/tmd.git
cd tmd
pnpm install
pnpm run build
pnpm link --global # Optional: link for local development
Option D: Using Bun
`bash`
bun install -g @tmddev/tmd@latestor run without global install:
bun x @tmddev/tmd --version
bun run tmd --help # when in a project with @tmddev/tmd as a dependencybun install
In the TMD repo: , bun run build, bun run test, and bun ./bin/tmd.js --version are all supported.
Prerequisites: Node.js >=20.19.0 or Bun >=1.0, pnpm, Rust (for the tmd-skills binary), git.
`bashtmd
git clone https://github.com/sdd330/tmd.git
cd tmd
pnpm install
pnpm build # includes the tmd-skills native binary
pnpm link --global # optional: use from this build`
Optional:
- pnpm build:native ā Rebuild only the tmd-skills Rust binary (faster when only Rust code changed)../bin/agent-browser install
- ā When using the agent-browser skill, install the agent-browser CLI if this script is provided (e.g. by the agent-browser project; skip if not present).
Example: install a skill from an ecosystem repo (defaults to npx skills), then re-index into the skills DB:
`bashList skills in a repo
tmd skills add vercel-labs/agent-skills --list
Quick Start
$3
`bash
tmd plan "Generate README in different languages"
or use alias
tmdp "Generate README in different languages"
`This creates:
- Task directory structure
- Plan document template
- Resources document
Important: Task Size Guidelines - Ten sec to Ten min Task!
Tasks in the plan should be atomic and completable in pee-break (10 seconds to 10 minutes) sized tasks. This ensures:
- Tasks are actionable and completable by AI agents or humans
- Progress tracking is meaningful (tasks are either done or not done)
- No task requires complex multi-step coordination
- Agent Skills can be designed to complete individual tasks
Good atomic tasks:
- "Add import statement"
- "Update function signature"
- "Create test file"
- "Fix typo in documentation"
Tasks to break down:
- "Implement authentication and authorization" ā Break into: "Add auth middleware", "Create login endpoint", "Add password validation"
- "Create API and update frontend" ā Break into: "Create API endpoint", "Update frontend component", "Add API integration"
$3
`bash
tmd do
or use alias
tmdd
`This creates:
- Execution document
- Data collection document
$3
`bash
tmd check
or use alias
tmdc
`This creates:
- Evaluation document
- Deviation analysis document
$3
`bash
tmd act
or use alias
tmda
`This creates:
- Improvement actions document
- Standardization document (if
--standardize flag is used)Task Size Principle
Ten seconds to Ten minutes Task Markdown Driven Development!
Tasks should be pee-break (10 seconds to 10 minutes) sized.
This principle ensures tasks are:
- Atomic: Cannot be meaningfully broken down further
- Actionable: Clear single action that can be completed
- Trackable: Either done or not done (no partial states)
- Agent-friendly: Suitable for AI agent autonomous execution
- Skill-compatible: Can be completed by a single Agent Skill
$3
- ā
Good: "Add import statement", "Update function signature", "Create test file"
- ā Too large: "Implement authentication and authorization", "Create API and update frontend"
- š” Break down large tasks into smaller atomic tasks before planning
Commands
For a full reference, run
tmd --help (and tmd ), or see docs/.$3
`bash
tmd init
tmd plan "Describe the work"
tmd do
tmd check
tmd act
`$3
-
tmd skills add defaults to the ecosystem CLI (npx skills add), installs skills under {project_root}/.agents/skills/, and then indexes them into {project_root}/.tmd/skills.db.
- tmd skills sync re-indexes {project_root}/.agents/skills/ into {project_root}/.tmd/skills.db.docs/skills.md for commands, flags, and troubleshooting.$3
-
tmd ui launches the Desktop app (browse tasks, skills, agents, config)Directory Structure
`
.tmd/
āāā plan/
ā āāā [task-id]/
ā āāā plan.md
ā āāā resources.md
āāā do/
ā āāā [task-id]/
ā āāā execution.md
ā āāā data.md
āāā check/
ā āāā [task-id]/
ā āāā evaluation.md
ā āāā deviation.md
āāā act/
ā āāā [task-id]/
ā āāā improvement.md
ā āāā standardization.md
``
.agents/
āāā skills/
āāā [skill-name]/
āāā SKILL.md
āāā steps.yaml
āāā config.yaml
āāā metadata.yaml
`Examples
$3
`bash
Plan (with atomic tasks in plan.md)
tmd plan "Generate README in different languages"
Tasks in plan.md should be broken down, e.g.:
- [ ] Read README.md template file
- [ ] Extract translatable sections
- [ ] Translate content to Chinese
- [ ] Translate content to Spanish
- [ ] Generate README.zh.md
- [ ] Generate README.es.md
- [ ] Validate markdown syntax
- [ ] Update language index in main README
Do
tmd do 20240115-generate-readme-different-languagesCheck
tmd check 20240115-generate-readme-different-languages --compareAct
tmd act 20240115-generate-readme-different-languages --standardize --complete
`Note: The plan should break down the high-level goal into atomic pee-break (10 seconds to 10 minutes) sized tasks (Ten sec to Ten min Task!) in the Tasks section of plan.md.
$3
`bash
Create a skill
tmd plan "As a developer, I want to generate README files in multiple languages, so as to make the project accessible to international contributors" --skillUse the skill in a new task
tmd plan "Generate README for new project" --use-skill generate-readme-multilangExecute the skill
tmd do --skill generate-readme-multilang
`$3
`bash
Create a plan with tasks
tmd plan "Build and deploy application"Initialize pipe configuration
tmd pipe init 20260123-build-and-deploy-applicationPreview what will happen (dry run)
tmd pipe run 20260123-build-and-deploy-application --dry-runRun the full automated PDCA cycle
tmd pipe run 20260123-build-and-deploy-applicationCheck pipe status
tmd pipe status 20260123-build-and-deploy-application
`Output:
`
Pipe: 20260123-build-and-deploy-application
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Phase: DO
Tasks to execute: 5/5
Phase do completed
Phase: CHECK
Goals met: 3/3
Phase check completed
Phase: ACT
Task marked as completed
Phase act completed
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Pipe completed successfully
`$3
`bash
List available Feishu chats
tmd feishu chatsList chats in JSON format
tmd feishu chats --jsonGet messages from a chat
tmd feishu messages --chat-id oc_1234567890abcdefGet messages with pagination and sorting
tmd feishu messages --chat-id oc_1234567890abcdef --page-size 20 --sort-type ByCreateTimeAscSend a message to a Feishu chat
tmd feishu message send --chat-id oc_1234567890abcdef --message "Hello from TMD!"Reply to a message
tmd feishu message reply --message-id om_1234567890abcdef --message "This is a reply"Get a specific message
tmd feishu message get --message-id om_1234567890abcdefGet message in JSON format
tmd feishu message get --message-id om_1234567890abcdef --json
`Note: Feishu commands require credentials to be configured. Use
tmd ui to open the desktop application and configure feishu_app_id and feishu_app_secret in Settings.Language Standard
All documents and specifications use English. The system:
- Generates all templates in English
- Validates user input (warns if non-English detected)
- Enforces English for OpenSpec specifications
Development
`bash
Install dependencies
pnpm installBuild
pnpm run buildDevelopment mode (watch)
pnpm run devTest
pnpm test
`How It Works
TMD follows the PDCA (Plan-Do-Check-Act) cycle:
`
āāāāāāāāāāāāāāāāāāāāāā
ā Plan ā
ā Define objectives ā
ā Set goals & tasks ā
āāāāāāāāāā¬āāāāāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāāāāā
ā Do ā
ā Execute tasks ā
ā Collect data ā
āāāāāāāāāā¬āāāāāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāāāāā
ā Check ā
ā Evaluate results ā
ā Analyze deviations ā
āāāāāāāāāā¬āāāāāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāāāāā
ā Act ā
ā Improve & ā
ā Standardize ā
āāāāāāāāāāāāāāāāāāāāāā
`Contributing
Contributions are welcome! Please ensure all documentation follows the English language standard.
$3
`bash
Install dependencies
pnpm installBuild
pnpm run buildTest
pnpm testDevelopment mode (watch)
pnpm run devLint
pnpm lint
``See MAINTAINERS.md for maintainer information.
Apache-2.0