- Align agent files with on-disk workplan prefixes (infer from workplan ids) - Set workplan domain to registered domain_slug; add topic_slug where applicable - Repair frontmatter delimiter formatting; migrate legacy task status literals - Regenerate AGENTS.md, CLAUDE.md, and .claude/rules from State Hub templates
markitect-filter
markitect-filter provides concrete source-format adapters for converting
external document formats into canonical Markitect Markdown representations.
The first adapters are read-only source adapters that implement the
markitect-tool source adapter contract:
source.epub3for EPUB3 packagessource.pdffor digitally-readable PDFs
Development
Run tests from this checkout:
PYTHONPATH=src:/home/worsch/markitect-tool/src python3 -m pytest
The EPUB3 adapter is registered through:
[project.entry-points."markitect_tool.source_adapters"]
epub3 = "markitect_filter.adapters:epub3_adapter_descriptor"
pdf = "markitect_filter.adapters:pdf_adapter_descriptor"
The first PDF slice is stdlib-only and targets deterministic text extraction from local, digitally-readable PDFs. OCR, scanned-document recognition, and layout-perfect reconstruction are intentionally deferred.
Read-side attachment metadata is exposed through
NormalizedMarkdownDocument.attachments for EPUB3 package resources, PDF
embedded files, and PDF image-resource signals. See
docs/source-attachment-metadata.md for the handoff contract to passive render
asset manifests.