generated from coulomb/repo-seed
Add Quarkdown render adapter boundary
This commit is contained in:
66
docs/adapter-boundary.md
Normal file
66
docs/adapter-boundary.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# Markitect Quarkdown Adapter Boundary
|
||||
|
||||
`markitect-quarkdown` provides the concrete `render.quarkdown` adapter for the
|
||||
Markitect render/export contract. Core `markitect-tool` owns the passive
|
||||
request/result/artifact/provenance contracts; this repository owns Quarkdown
|
||||
runtime behavior.
|
||||
|
||||
## Adapter Contract
|
||||
|
||||
The adapter supports:
|
||||
|
||||
- `inspect-profile`
|
||||
- `export-source`
|
||||
- `render-artifact`
|
||||
|
||||
`inspect-profile` and `export-source` do not invoke Quarkdown. `render-artifact`
|
||||
requires a Quarkdown CLI plus runtime dependencies.
|
||||
|
||||
The adapter descriptor declares filesystem writes, external process execution,
|
||||
native renderer dependency, and permission-controlled network behavior. Callers
|
||||
can block render execution through Markitect request policy:
|
||||
|
||||
```python
|
||||
RenderExportRequest(
|
||||
source="# Demo",
|
||||
operation="render-artifact",
|
||||
profile="pdf",
|
||||
policy={"external_process": False},
|
||||
)
|
||||
```
|
||||
|
||||
## Execution Plan
|
||||
|
||||
`build_quarkdown_execution_plan` produces an inspectable command plan with:
|
||||
|
||||
- Quarkdown command path
|
||||
- source file path
|
||||
- output directory
|
||||
- expected artifact path
|
||||
- Markitect profile
|
||||
- Quarkdown document type
|
||||
- output format
|
||||
- permission flags
|
||||
- runtime dependency notes
|
||||
|
||||
The default output directory is `quarkdown-output`. The default permission
|
||||
allow-list is `project-read`, and network access is denied by default.
|
||||
|
||||
## Structured Failure
|
||||
|
||||
The adapter returns `RenderExportResult` diagnostics instead of raising for
|
||||
expected render failures:
|
||||
|
||||
- `render.quarkdown.runtime_missing`
|
||||
- `render.quarkdown.execution_failed`
|
||||
- `render.quarkdown.artifact_missing`
|
||||
- `render.quarkdown.artifact_extension`
|
||||
- `render.quarkdown.artifact_empty`
|
||||
- `render.quarkdown.capability_blocked`
|
||||
|
||||
## Artifact Validation
|
||||
|
||||
`validate_quarkdown_artifact` validates that the expected artifact exists, has
|
||||
the expected extension, is non-empty, and receives a sha256 digest. The result
|
||||
is a Markitect `RenderArtifact` with source-to-artifact provenance generated by
|
||||
the adapter.
|
||||
Reference in New Issue
Block a user