A format specification for declarative agentic engineering, a new paradigm for human+agent engineering.
Write your project as Markdown. An agent keeps the code in sync.
A tree of Markdown files mirrors your codebase 1:1. You describe what each
file should do; the projectmd CLI runs your coding agent to compile those
descriptions into code, and to keep both sides consistent as either one
changes. Works for any generated artifact: web, game, infra, firmware, prose.
Full spec: docs/spec.md (draft v0.1)
-
A
PROJECT.mdat the repo root declares the two trees:version: "0.1.0" name: "Acme" description: "..." codebase: "." # your real code project: "./project" # the Markdown mirror
-
Each Markdown file in the mirror describes one file in the codebase.
project/src/main.mdmaps tosrc/main.py:# Functionality Print "Hello, world!" using python's `print` function.
No frontmatter needed. The file mapping lives in agent-managed
INDEX.yamlfiles, not in your nodes. -
projectmd syncdiffs against the last sync point (tracked in.projectmd/sync, so it survives clones) and acts per file:- Spec changed: the agent regenerates the code.
- Code changed: the agent updates the spec to match.
- Both changed: the agent reconciles, after you confirm.
- Unchanged: untouched.
| Command | What it does |
|---|---|
projectmd init |
Create PROJECT.md and scaffold a new project |
projectmd migrate |
Generate the Markdown mirror from existing code |
projectmd sync |
Reconcile mirror and codebase (--dry-run, --yes) |
projectmd status |
Show what sync would do, without acting |