- Python 3.9 or later
- An Obsidian vault
- An LLM coding agent capable of reading a vault-level
AGENTS.md
Clone this repository somewhere outside the vault, then run:
python3 install.py --vault /path/to/vaultThe installer creates missing operational directories and copies framework
contracts, templates, tools, safe Obsidian settings, recurrence defaults, and
sanitized seed pages. It does not copy .git metadata and does not overwrite
existing files by default. Preview with --dry-run; deliberately replace
framework files with --force after reviewing the changes.
- Review
AGENTS.mdandDTM.mdfor local preferences. - Keep
scratch.mdhuman-only or remove that convention explicitly. - Edit
dtm/recurring-tasks.json; example rules are disabled by default. - Configure automation definitions for the local agent host. Replace every
{{PLACEHOLDER}}; never commit the resulting machine-specific values. - Open the directory as an Obsidian vault.
The vault installer keeps canonical skills under skills/. To make the
framework skills discoverable by Codex, copy them into the user's Codex skills
directory:
mkdir -p "${CODEX_HOME:-$HOME/.codex}/skills"
cp -R skills/dtm "${CODEX_HOME:-$HOME/.codex}/skills/"
cp -R skills/dtm-handoff "${CODEX_HOME:-$HOME/.codex}/skills/"
cp -R skills/voice "${CODEX_HOME:-$HOME/.codex}/skills/"
cp -R skills/markdown-to-pdf "${CODEX_HOME:-$HOME/.codex}/skills/"
cp -R skills/resolve-document-items "${CODEX_HOME:-$HOME/.codex}/skills/"Start a thread in the installed vault and invoke $dtm. That thread remains in
DTM mode until $end-dtm or an explicit permanent switch to the Knowledge
Agent. The DTM activation names the thread DTM YYYY-MM-DD, and only that
explicitly activated DTM thread should update Daily Notes directly. Use
$dtm-handoff from other work threads to send completed outcomes back to the
active DTM thread.
Invoke $voice after representative writing has reached ready/ or
published/, or after representative internal documents have reached
documents/final/. It updates the private voice pack without analysing drafts.
Invoke $markdown-to-pdf when you want a shareable PDF from a Markdown note or
managed document, including Mermaid diagrams when present.
Invoke $resolve-document-items when you want to work through open questions,
unowned actions, assumptions, and pending decisions in a document one question
at a time, updating the document only when the answer resolves or records the
item.
If you want managed Markdown-to-PDF generation with Mermaid support, install:
brew install pandoc typst mermaid-cli
npx puppeteer browsers install chrome-headless-shellThe PDF command is:
python3 tools/document_deliverables.py pdf documents/drafts/example.mdMermaid rendering launches a headless browser. Inside sandboxed agent environments, that step may require unsandboxed execution approval even after the dependencies are installed.
python3 tools/contracts.py lint
python3 tools/wiki.py lint
python3 tools/dtm.py lint
python3 tools/documents.py lint
python3 tools/writing.py lint