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

@@ -64,14 +64,29 @@ manifest + Markdown sources
evidence artefacts
```
### Implementation State
| Module | Status | FR coverage |
|--------|--------|-------------|
| `cli.py` | implemented — all commands wired (`build`, `import`, `compare`, `validate`, `serve`, `workflow`, `mcp`, `template`) | all |
| `manifest.py` | implemented | FR-100 |
| `builder.py` | implemented | FR-200 |
| `importer.py` | implemented | FR-300/400 |
| `differ.py` | implemented | FR-700 |
| `templates.py` | implemented | FR-600 |
| `evidence.py` | implemented | FR-1400 |
| `workflows.py` | implemented (`single-file-roundtrip`, `multi-file-roundtrip`, `release-regression`, `family-switch-build`) | FR-1300 |
| `rest.py` | implemented — FastAPI app, all endpoints | FR-900 |
| `mcp_server.py` | implemented — FastMCP server, all tools and resources | FR-1000 |
`tests/conftest.py` provides shared fixtures (`tmp_project`, `SIMPLE_MANIFEST_YAML`, `SIMPLE_MARKDOWN`). WP-0001 and WP-0002 complete — 135 tests passing. All interfaces (CLI, REST, MCP) implemented and parity-tested.
---
## Development Commands
> **Pre-implementation note:** No code exists yet. Commands below describe the intended interface; update this section as the package takes shape.
```bash
# Install in editable mode (once pyproject.toml exists)
# Install in editable mode
pip install -e ".[dev]"
# Run tests
@@ -115,7 +130,7 @@ This project is tracked as the **markitect** domain in the Custodian State Hub.
| Repo ID | `75d31180-acf5-4d47-aea8-2a5b1e71e6a9` |
| Repo slug | `marki-docx` |
Hub API: `http://127.0.0.1:8000` — if offline: `cd ~/the-custodian/state-hub && make api`
Hub API: `http://127.0.0.1:18001` — if offline: `cd ~/the-custodian/state-hub && make api`
---
@@ -283,7 +298,7 @@ Templates: `~/the-custodian/canon/standards/contrib-templates/`
After updating dependencies:
```bash
cd ~/the-custodian/state-hub
make ingest-sbom REPO=marki-docx SCAN=1 REPO_PATH=/home/worsch/marki-docx
make ingest-sbom REPO=marki-docx SCAN=1 REPO_PATH=/home/tegwick/marki-docx
```
---