generated from coulomb/repo-seed
219 lines
7.6 KiB
Markdown
219 lines
7.6 KiB
Markdown
---
|
|
id: MKTT-WP-0010
|
|
type: workplan
|
|
title: "Content References, Processors, and Literate Workflows"
|
|
domain: markitect
|
|
status: done
|
|
owner: markitect-tool
|
|
topic_slug: markitect
|
|
planning_priority: P1
|
|
planning_order: 55
|
|
depends_on_workplans:
|
|
- MKTT-WP-0004
|
|
depends_on_tasks:
|
|
- MKTT-WP-0003-T006
|
|
informs_workplans:
|
|
- MKTT-WP-0006
|
|
- MKTT-WP-0007
|
|
- MKTT-WP-0008
|
|
- MKTT-WP-0009
|
|
- MKTT-WP-0011
|
|
created: "2026-05-04"
|
|
updated: "2026-05-04"
|
|
state_hub_workstream_id: "7863fd01-0be0-4dbc-9941-0151365bb9e1"
|
|
---
|
|
|
|
# MKTT-WP-0010: Content References, Processors, and Literate Workflows
|
|
|
|
## Purpose
|
|
|
|
Build the richer framework layer for namespaced content references,
|
|
processor-driven Markdown blocks, reversible explode/implode, and literate
|
|
weave/tangle workflows.
|
|
|
|
This preserves the important `markitect-main` ideas that were intentionally not
|
|
pulled into the first transform/compose/include slice.
|
|
|
|
## Background
|
|
|
|
The first P3.5 implementation provides a clean deterministic kernel:
|
|
frontmatter/body/heading transforms, file composition, and explicit include
|
|
markers. That is better for the core toolkit than the old platform-heavy
|
|
implementation, but it leaves out several valuable capabilities:
|
|
|
|
- reversible explode/implode variants
|
|
- named chunks and Knuth-style weave/tangle
|
|
- scoped variables and conditional transclusion
|
|
- stable namespaces and content references
|
|
- processor semantics for fenced blocks
|
|
- reference graphs, provenance, and source maps
|
|
- deterministic multi-inheritance for content classes and overlays
|
|
|
|
See `docs/content-reference-literate-workflow-research.md`.
|
|
|
|
## P10.1 - Define reference address model and namespace rules
|
|
|
|
```task
|
|
id: MKTT-WP-0010-T001
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "f70d2b9d-151b-46c6-9613-bd6bdbf164e7"
|
|
```
|
|
|
|
Define stable content-unit identities, namespace mappings, reference syntax,
|
|
resolver inputs/outputs, and error cases.
|
|
|
|
Output: reference model docs, examples, and tests for path, namespace, selector,
|
|
and ID resolution.
|
|
|
|
Initial implementation completed with a `reference` extension package,
|
|
frontmatter namespace loading, root-bounded path resolution, existing query
|
|
selector reuse, heading/section/block fragment IDs, CLI access via
|
|
`mkt ref resolve`, reference docs, examples, and tests. Region/tag/fenced-block
|
|
addressing continues in P10.3; processor dependency/provenance use continues in
|
|
P10.2 and P10.5.
|
|
|
|
## P10.2 - Add token-safe transforms and operation provenance
|
|
|
|
```task
|
|
id: MKTT-WP-0010-T002
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "e35639b7-756f-4993-8b3c-2e58b23e0eca"
|
|
```
|
|
|
|
Make transform/include behavior aware of fenced blocks and parser tokens. Add
|
|
structured operation provenance, dependency edges, source spans, and diagnostics.
|
|
|
|
Output: token-safe transform implementation and provenance result envelope.
|
|
|
|
Initial implementation completed with token-safe heading shifts, include
|
|
markers that stay literal inside fenced or indented code blocks, additive
|
|
`OperationProvenance` events on transform/include results, dependency edges for
|
|
resolved includes, docs, and regression tests. Rich structured diagnostics and
|
|
source maps continue through P10.3, P10.4, and P10.5.
|
|
|
|
## P10.3 - Implement named regions and addressable block selectors
|
|
|
|
```task
|
|
id: MKTT-WP-0010-T003
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "98cafe28-a364-48f1-ae55-cb47c71d9441"
|
|
```
|
|
|
|
Support named Markdown/source regions, section IDs, fenced block IDs, and region
|
|
selection by ID/tag/line range where appropriate.
|
|
|
|
Output: region parser/resolver, CLI examples, and source-snippet tests.
|
|
|
|
Initial implementation completed as reference-layer extensions: named
|
|
`mkt:region` comments, region tags, fenced-block IDs and tags from info-string
|
|
attributes, `#line:start-end` ranges, convenience ID lookup ordering, docs,
|
|
examples, and tests. Deeper source maps and processor-owned block semantics
|
|
continue in P10.5 and P10.6.
|
|
|
|
## P10.4 - Reimplement reversible explode/implode variants
|
|
|
|
```task
|
|
id: MKTT-WP-0010-T004
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "67f77aa1-a7ee-485c-891e-6ae7ecc52067"
|
|
```
|
|
|
|
Recreate the useful `markitect-main` explode/implode functionality with a slim
|
|
variant interface and manifest-first reversibility.
|
|
|
|
Initial variants: flat and hierarchical. Semantic variant can follow once the
|
|
reference and processor model is stable.
|
|
|
|
Output: `mkt explode`, `mkt implode`, manifest schema, roundtrip tests.
|
|
|
|
Initial implementation completed with a separate `explode` extension package,
|
|
manifest-first flat and hierarchical variants, exact roundtrip implode,
|
|
non-empty output protection, CLI commands, docs, and tests. Semantic variants
|
|
remain deferred until processor and content-class semantics are stable.
|
|
|
|
## P10.5 - Define processor registry for fenced blocks
|
|
|
|
```task
|
|
id: MKTT-WP-0010-T005
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "eb7cde08-8a73-4163-ac54-19a2bc7b5f88"
|
|
```
|
|
|
|
Create a deterministic processor API for fenced blocks and directives.
|
|
Processors should receive content units, resolver access, context, and policy,
|
|
and return generated content/files, diagnostics, dependencies, and provenance.
|
|
|
|
Output: processor registry API, deterministic built-in processors, and tests.
|
|
|
|
Initial implementation completed with a deterministic `processor` extension
|
|
package, fenced-block discovery, explicit registry, context/policy envelope,
|
|
result files/diagnostics/dependencies/provenance, built-in identity,
|
|
uppercase, and reference-backed include processors, CLI `mkt process`, docs,
|
|
examples, and tests. Arbitrary code or LLM execution remains intentionally
|
|
outside this deterministic registry floor.
|
|
|
|
## P10.6 - Implement literate weave/tangle MVP
|
|
|
|
```task
|
|
id: MKTT-WP-0010-T006
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "090fcc38-758b-4414-b941-40f217eb17ca"
|
|
```
|
|
|
|
Implement Markdown-native literate workflows: named code chunks, chunk
|
|
references, target files, tangling, and woven documentation with chunk
|
|
cross-references.
|
|
|
|
Output: `mkt tangle`, `mkt weave`, chunk-reference diagnostics, examples.
|
|
|
|
Initial implementation completed with a `literate` extension package, named
|
|
fenced code chunks, `tangle` targets, noweb-style `<<chunk-id>>` expansion,
|
|
missing/cyclic chunk diagnostics, deterministic file writing, woven chunk
|
|
index output, CLI `mkt tangle`/`mkt weave`, docs, examples, and tests.
|
|
|
|
## P10.7 - Design content class composition and multi-inheritance
|
|
|
|
```task
|
|
id: MKTT-WP-0010-T007
|
|
status: done
|
|
priority: medium
|
|
state_hub_task_id: "220e6b27-2d7b-4c22-b5e8-304198ecfea8"
|
|
```
|
|
|
|
Define content classes, slots, merge policies, and deterministic
|
|
multi-inheritance resolution. Use a C3-like linearization with clear conflict
|
|
diagnostics.
|
|
|
|
Output: architecture note, examples, and a small deterministic resolver spike.
|
|
|
|
Initial implementation completed with a `content_class` extension package,
|
|
C3-style deterministic linearization, explicit slot merge policies, conflict
|
|
diagnostics, CLI `mkt class resolve`, docs, examples, and tests. Markdown
|
|
instantiation and snippet injection remain deferred to later integration work.
|
|
|
|
## P10.8 - Add migration examples from markitect-main
|
|
|
|
```task
|
|
id: MKTT-WP-0010-T008
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "287637d3-1997-43b2-b97d-10587d565cec"
|
|
```
|
|
|
|
Translate the relevant old explode/implode, transclusion, and spaces reference
|
|
graph tests into successor-style fixtures and examples.
|
|
|
|
Output: migration test inventory, example documents, and parity notes.
|
|
|
|
Initial implementation completed with WP-0010 migration parity notes,
|
|
successor-style examples for explode/implode, path include, reference-backed
|
|
transclusion, and literate tangling, plus tests that exercise these examples.
|
|
Legacy platform, database, infospace, rendering, and provider-specific
|
|
behaviors remain intentionally out of scope.
|