feat: WP-0001 + WP-0002 complete — LEVEL1 core + service interfaces

WP-0001 (Foundation & LEVEL1 Core):
- manifest model (FR-100), MD→DOCX builder (FR-200), DOCX→MD importer
  (FR-300/400), template family registry (FR-600), drift detector (FR-700),
  CLI wiring, pre-commit config, CI skeleton, regression harness

WP-0002 (Service Interfaces & Workflow Orchestration):
- REST service via FastAPI (FR-900): /health, /version, /capabilities,
  /templates, /styles, /validate, /build, /import, /compare,
  /templates/register, /workflows/{name}, /evidence/{run_id}
- Evidence & report store (FR-1400): JSON-backed, per-run, retrievable
  through all interfaces, classification (pass/warnings/failed)
- Composite workflow orchestration (FR-1300): single-file-roundtrip,
  multi-file-roundtrip, release-regression, family-switch-build
- MCP server via FastMCP (FR-1000): all tools + resources
- CLI additions: `markidocx serve`, `markidocx workflow`, `markidocx mcp`
- Interface parity tests: CLI / REST / MCP produce equivalent results

135 tests passing, ruff + mypy clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-16 07:46:31 +00:00
parent 42789cad1e
commit 1f3dddf7d6
30 changed files with 4158 additions and 26 deletions

View File

@@ -3,10 +3,10 @@ id: MRKD-WP-0001
type: workplan
domain: markitect
repo: marki-docx
status: active
status: done
state_hub_workstream_id: de855681-7ce0-4ace-b283-ec61f7557066
created: 2026-03-14
updated: 2026-03-14
updated: 2026-03-16
---
# MRKD-WP-0001 — Foundation & LEVEL1 Core
@@ -25,7 +25,7 @@ and an end-to-end regression harness using the specs as the test corpus.
```task
id: MRKD-WP-0001-T01
status: todo
status: done
priority: high
state_hub_task_id: 5dd0e377-2a4e-4ddd-a6fa-aeb097ead292
```
@@ -42,7 +42,7 @@ Deliverable: `pip install -e ".[dev]"` works, `pytest` collects 0 tests without
```task
id: MRKD-WP-0001-T02
status: todo
status: done
priority: high
state_hub_task_id: d381a578-821a-44f0-b1a2-5254966aae48
```
@@ -64,7 +64,7 @@ Deliverable: `markidocx validate <manifest.yaml>` exits 0 on valid, 1 on error,
```task
id: MRKD-WP-0001-T03
status: todo
status: done
priority: high
state_hub_task_id: 2c466852-d136-48cf-ba53-8c999f11527e
```
@@ -86,7 +86,7 @@ Deliverable: `markidocx build <manifest.yaml>` produces a valid DOCX for a LEVEL
```task
id: MRKD-WP-0001-T04
status: todo
status: done
priority: high
state_hub_task_id: 117a5de0-eeef-4358-8c78-fed26ae55f2b
```
@@ -108,7 +108,7 @@ files (or fallback merge) and exits with structured status.
```task
id: MRKD-WP-0001-T05
status: todo
status: done
priority: medium
state_hub_task_id: 3d10a43b-301d-4717-9ab4-f43851058c3f
```
@@ -130,7 +130,7 @@ valid DOCX when used in a build.
```task
id: MRKD-WP-0001-T06
status: todo
status: done
priority: medium
state_hub_task_id: 0390f7d3-a9c3-4cac-a295-303adfe82960
```
@@ -150,7 +150,7 @@ Deliverable: `markidocx compare <manifest.yaml> <edited.docx>` exits 0 (no drift
```task
id: MRKD-WP-0001-T07
status: todo
status: done
priority: medium
state_hub_task_id: 2e455d87-9044-411e-91c7-3a512488904a
```
@@ -174,7 +174,7 @@ Machine-readable output flag (`--json`). Exit codes: 0 success, 1 error, 2 warni
```task
id: MRKD-WP-0001-T08
status: todo
status: done
priority: medium
state_hub_task_id: ca3ecede-aef3-48b0-b21b-2b9f59167cb5
```