5.4 KiB
id, type, title, domain, status, owner, topic_slug, planning_priority, planning_order, depends_on_workplans, related_workplans, created, updated, state_hub_workstream_id
| id | type | title | domain | status | owner | topic_slug | planning_priority | planning_order | depends_on_workplans | related_workplans | created | updated | state_hub_workstream_id | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MKTT-WP-0020 | workplan | Render Export Adapter Contract | markitect | done | markitect-tool | markitect | complete | 150 |
|
|
2026-05-15 | 2026-05-15 | 19d1a377-848a-4156-b712-7b9febd836a6 |
MKTT-WP-0020: Render Export Adapter Contract
Purpose
Define the markitect-tool contract for optional render/export adapters
without implementing real renderer operations in the core toolkit.
This is the output-side sibling of the source adapter contract. Source
adapters normalize input formats into canonical Markdown; render/export
adapters transform Markitect-compatible Markdown into rendered artifacts or
renderer-specific sources. The two directions must stay separate now that
markitect-filter owns concrete source normalization.
Boundary
markitect-tool owns:
- render/export request and result envelopes
- adapter descriptors and extension catalog metadata
- declared output profiles such as plain, docs, slides, paged, static site, and PDF
- deterministic fake renderers for tests
- diagnostics, provenance, source maps, and capability declarations
markitect-tool does not own:
- Quarkdown CLI invocation
- Pandoc, browser, PDF, or static-site generator execution
- filesystem-writing publication jobs beyond test fixtures
- durable artifact storage
- renderer-specific dependency installation
- concrete application reports
Concrete Quarkdown integration belongs in markitect-quarkdown.
Implementation Summary - 2026-05-15
Implemented the contract-only render/export adapter layer:
RenderExportAdapterDescriptor,RenderExportAdapterRegistry, and optional package discovery throughmarkitect_tool.render_export_adapters.RenderExportRequest,RenderExportResult,RenderArtifact, andRenderProvenanceenvelopes.- Built-in deterministic
render.fakeadapter for contract tests. - Capability and safety diagnostics for filesystem, network, external process, native renderer dependency, assisted generation, and publication side-effect boundaries.
- Extension catalog descriptors for
render.export-registryandrender.fake. - Docs, fixture, public API exports, generated API reference, and tests.
No real renderer, Quarkdown invocation, external process, or filesystem-writing
publication behavior was added to markitect-tool.
P20.1 - Define render adapter descriptors
id: MKTT-WP-0020-T001
status: done
priority: high
state_hub_task_id: "5b52b196-a7f5-4e4f-abc6-972febdc2638"
Define a RenderExportAdapterDescriptor shape that mirrors the source adapter
descriptor style while remaining output-oriented.
Descriptor fields should include:
- stable adapter id
- version and human-readable name
- operations such as
export-source,render-artifact, andinspect-profile - supported input contracts
- output profiles and artifact media types
- option schema
- optional dependencies
- safety and capability metadata
- docs/examples links
Output: descriptor dataclass or schema, extension descriptor mapping, and registry tests.
P20.2 - Define render request and result envelopes
id: MKTT-WP-0020-T002
status: done
priority: high
state_hub_task_id: "3d43b168-7e55-4885-ae17-fcea262f2641"
Define service-free request/result types:
RenderExportRequestRenderExportResultRenderArtifactRenderDiagnosticRenderProvenance
Results should describe artifacts and source maps without requiring durable artifact storage.
Output: serializable models, round-trip tests, and docs.
P20.3 - Add deterministic fake renderer fixtures
id: MKTT-WP-0020-T003
status: done
priority: high
state_hub_task_id: "45748ad7-131c-4b75-9720-6958fde93208"
Add an in-tree fake renderer that proves the contract without invoking Quarkdown or any external process.
The fake renderer should support:
- profile inspection
- source export into deterministic text
- artifact metadata emission
- source-to-render provenance
- denied-operation diagnostics for disabled capabilities
Output: fake adapter, tests, and examples.
P20.4 - Define capability and policy gates
id: MKTT-WP-0020-T004
status: done
priority: medium
state_hub_task_id: "50aa8f00-eeba-495d-9d45-089f855fc3bd"
Pin a local capability vocabulary for render/export adapters:
- filesystem read
- filesystem write
- external process
- network
- native renderer dependency
- assisted generation
- publication side effect
This is a syntax-layer contract and local denial model, not a durable authorization service.
Output: capability constants, blocked-operation diagnostics, and tests.
P20.5 - Document Quarkdown handoff
id: MKTT-WP-0020-T005
status: done
priority: medium
state_hub_task_id: "173a75d0-d82c-4dcb-9ced-eb73e9438db2"
Document how markitect-quarkdown should implement a concrete Quarkdown
adapter against this contract.
Output: handoff note linking MQD-WP-0001, example descriptor metadata, and
no direct Quarkdown dependency in markitect-tool.
Exit Criteria
- Render/export adapters are discoverable through the extension framework.
- Contract tests pass with a fake deterministic renderer.
- Core Markitect remains usable without renderer dependencies.
markitect-filterremains read-side only.- Quarkdown interop is supported by contract, not by core dependency.