Smoke-test surfaced that check_deps hard-failed on missing pandoc even
for CSV / JSON / code-fence / image conversions that never call pandoc.
Pandoc is now checked lazily by need_pandoc(), invoked only from
convert_pandoc and convert_doc (the two paths that actually need it).
Matches install.sh soft-warn behavior: pandoc is opt-in for docx/pptx/
html, not a universal requirement.
Verified: tomd.sh /tmp/test.csv now returns markdown table with only
python3 + jq installed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- New _primitives/ directory, analogous to _blocks/_manifests/_bridges
- tomd.sh: standalone PDF/DOCX/XLSX/PPTX/CSV/code/image → markdown
converter (180 LOC, ported from PROJECT-D bin/keiagent-tomd)
- [tomd] error tag for KeiSeiKit style, KEISEI_TOMD_CACHE env var
- README.md: purpose + invocation + compose-solution discovery
Primitives are first-class building blocks that agents and pipelines
depend on. Installed at $HOME/.claude/agents/_primitives/ by install.sh
in a follow-up commit.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>