148 lines
4.2 KiB
Markdown
148 lines
4.2 KiB
Markdown
|
|
---
|
||
|
|
id: MKTF-WP-0003
|
||
|
|
type: workplan
|
||
|
|
title: "Source Attachment Manifest Compatibility"
|
||
|
|
domain: markitect
|
||
|
|
status: todo
|
||
|
|
owner: markitect-filter
|
||
|
|
topic_slug: markitect
|
||
|
|
planning_priority: P2
|
||
|
|
planning_order: 30
|
||
|
|
depends_on_workplans:
|
||
|
|
- MKTF-WP-0001
|
||
|
|
- MKTF-WP-0002
|
||
|
|
related_workplans:
|
||
|
|
- MKTT-WP-0018
|
||
|
|
- MKTT-WP-0021
|
||
|
|
- MKTT-WP-0020
|
||
|
|
created: "2026-05-15"
|
||
|
|
updated: "2026-05-15"
|
||
|
|
state_hub_workstream_id: "16e5c830-31e3-4070-9e27-65d28ed06595"
|
||
|
|
---
|
||
|
|
|
||
|
|
# MKTF-WP-0003: Source Attachment Manifest Compatibility
|
||
|
|
|
||
|
|
## Purpose
|
||
|
|
|
||
|
|
Provide the read-side source attachment and asset metadata needed by the
|
||
|
|
Markitect render reference and asset manifest contract without making
|
||
|
|
`markitect-filter` a renderer or export pipeline.
|
||
|
|
|
||
|
|
`markitect-filter` owns concrete source-format normalization. It should expose
|
||
|
|
attachments, embedded media, package resources, and related provenance as
|
||
|
|
normalized source metadata that `markitect-tool` can consume when building a
|
||
|
|
render asset manifest.
|
||
|
|
|
||
|
|
## Boundary
|
||
|
|
|
||
|
|
`markitect-filter` owns:
|
||
|
|
|
||
|
|
- source-format-specific attachment discovery
|
||
|
|
- read-side source asset metadata
|
||
|
|
- media type, extension, size, and digest capture where available
|
||
|
|
- provenance back to package paths, pages, anchors, or source members
|
||
|
|
- diagnostics for skipped or unsupported embedded resources
|
||
|
|
- fixtures proving EPUB3 and PDF adapters preserve read-side asset metadata
|
||
|
|
|
||
|
|
`markitect-filter` does not own:
|
||
|
|
|
||
|
|
- write/export adapters
|
||
|
|
- renderer execution
|
||
|
|
- output asset copying
|
||
|
|
- final render artifact paths
|
||
|
|
- publication lifecycle or durable artifact storage
|
||
|
|
- Quarkdown invocation
|
||
|
|
|
||
|
|
Those responsibilities belong to `markitect-tool` contracts,
|
||
|
|
`markitect-quarkdown` render integration, or later runtime/publication systems.
|
||
|
|
|
||
|
|
## P3.1 - Align attachment metadata with Markitect source contracts
|
||
|
|
|
||
|
|
```task
|
||
|
|
id: MKTF-WP-0003-T001
|
||
|
|
status: todo
|
||
|
|
priority: high
|
||
|
|
state_hub_task_id: "d119daca-8141-4662-8ad7-ce43ccd79044"
|
||
|
|
```
|
||
|
|
|
||
|
|
Confirm how existing `markitect_tool.source.SourceAsset` and
|
||
|
|
`NormalizedMarkdownDocument.attachments` should be populated by concrete read
|
||
|
|
adapters.
|
||
|
|
|
||
|
|
Output: compatibility note, adapter metadata conventions, and tests that can be
|
||
|
|
run with `markitect-tool` on `PYTHONPATH`.
|
||
|
|
|
||
|
|
## P3.2 - Add EPUB3 embedded resource metadata
|
||
|
|
|
||
|
|
```task
|
||
|
|
id: MKTF-WP-0003-T002
|
||
|
|
status: todo
|
||
|
|
priority: medium
|
||
|
|
state_hub_task_id: "ebcbf480-210d-46e7-a4e4-fbe7e9baa39a"
|
||
|
|
```
|
||
|
|
|
||
|
|
Extend the EPUB3 adapter to report package resources that are relevant to
|
||
|
|
future render manifests, such as images, stylesheets, fonts, and media where
|
||
|
|
safe and cheap to inspect.
|
||
|
|
|
||
|
|
Output: EPUB3 attachment metadata, provenance, diagnostics, and fixtures.
|
||
|
|
|
||
|
|
## P3.3 - Add PDF attachment and image-signal metadata
|
||
|
|
|
||
|
|
```task
|
||
|
|
id: MKTF-WP-0003-T003
|
||
|
|
status: todo
|
||
|
|
priority: medium
|
||
|
|
state_hub_task_id: "d8b7b820-387f-4d45-bf22-296b227f917a"
|
||
|
|
```
|
||
|
|
|
||
|
|
Extend the PDF adapter with read-side metadata for attachments or embedded
|
||
|
|
resource signals where the current dependency profile can expose them
|
||
|
|
reliably.
|
||
|
|
|
||
|
|
Do not add OCR, layout reconstruction, or renderer behavior.
|
||
|
|
|
||
|
|
Output: PDF metadata conventions, diagnostics, and tests.
|
||
|
|
|
||
|
|
## P3.4 - Preserve checksums and provenance
|
||
|
|
|
||
|
|
```task
|
||
|
|
id: MKTF-WP-0003-T004
|
||
|
|
status: todo
|
||
|
|
priority: high
|
||
|
|
state_hub_task_id: "ca539c01-c272-4635-8f60-86f870bbef0c"
|
||
|
|
```
|
||
|
|
|
||
|
|
For each attachment or source asset, preserve stable identity fields:
|
||
|
|
|
||
|
|
- source URI or package member path
|
||
|
|
- media type and extension
|
||
|
|
- byte size where available
|
||
|
|
- digest/checksum where feasible
|
||
|
|
- page, anchor, section, or package path provenance
|
||
|
|
- extraction diagnostics and quality notes
|
||
|
|
|
||
|
|
Output: deterministic digest/provenance tests.
|
||
|
|
|
||
|
|
## P3.5 - Provide handoff fixtures for render manifests
|
||
|
|
|
||
|
|
```task
|
||
|
|
id: MKTF-WP-0003-T005
|
||
|
|
status: todo
|
||
|
|
priority: medium
|
||
|
|
state_hub_task_id: "f2213a20-ce6f-4e16-9b9b-557b99f8b4d1"
|
||
|
|
```
|
||
|
|
|
||
|
|
Add fixtures that `MKTT-WP-0021` can use to prove source attachments flow into
|
||
|
|
render asset manifests without renderer execution.
|
||
|
|
|
||
|
|
Output: fixture files, README/docs update, and cross-repo validation command.
|
||
|
|
|
||
|
|
## Exit Criteria
|
||
|
|
|
||
|
|
- EPUB3 and PDF read adapters can expose read-side asset metadata when present.
|
||
|
|
- Unsupported or skipped resources produce structured diagnostics.
|
||
|
|
- `markitect-filter` remains read-only and does not implement export/render
|
||
|
|
behavior.
|
||
|
|
- `markitect-tool` can consume the metadata for passive render asset manifests.
|