# markitect-main → Successor Repos: Gap Assessment

**Date:** 2026-05-23
**Author:** Claude (custodian session)
**Status:** Draft — awaiting Bernd's decisions on items A/B/C below

## Purpose

Bernd is retiring `markitect-main` and has transferred most functionality to
sibling repos. This document identifies what was provided by `markitect-main`
that is **not addressed** in those successors, and flags candidates that may
not fit any successor's intent.

## Successor Ecosystem (5 repos, not 3)

| Repo | Role |
|---|---|
| `markitect-tool` | Markdown syntax layer + structured-document primitives; defines source-adapter and render-adapter contracts. CLI: `mkt`. |
| `kontextual-engine` | Headless knowledge operations engine: artifacts, collections, persistence, relationships, workflow runs/manifests, query, quality/assessment, API. |
| `infospace-bench` | Application layer — concrete infospaces, evaluation methodology, reference pilots. |
| `markitect-filter` | Source-format ingestion adapters (`source.epub3`, `source.pdf`) implementing the markitect-tool source-adapter contract. |
| `markitect-quarkdown` | Render/export adapter — implements the markitect-tool render-adapter contract via Quarkdown. |

## Method

Analysis is grounded in each successor's own assessment docs (recent, May 2026):

- `markitect-tool/docs/markitect-main-scope-assessment.md`
- `kontextual-engine/docs/markitect-main-scope-assessment.md`
- `kontextual-engine/docs/system-layer-extraction-inventory.md`
- `kontextual-engine/docs/system-layer-migration-backlog.md`
- `infospace-bench/docs/markitect-main-scope-assessment.md`
- `infospace-bench/docs/legacy-infospace-feature-inventory.md`
- `infospace-bench/docs/replacement-acceptance-matrix.md`

Cross-checked against actual `markitect-main` module sizing (Python LOC) and
`__init__.py` docstrings.

**Confidence:** These successor docs are authoritative on *intent*. They have
**not** been line-verified to confirm every "reimplement"-classified item
actually landed in the successor. Where verification matters, it's flagged.

---

## A. Doesn't fit any successor's intent — needs a new home or explicit retirement

These are explicitly pushed away by tool/engine/bench and are unrelated to
filter/quarkdown.

| markitect-main area | LOC | What it is | Status |
|---|---|---|---|
| `markitect/finance/` | ~8,100 | Cost-tracking system: cost items, period allocation to issues, financial reports, audit trails | **Orphan.** markitect-main's own SCOPE.md lists "financial transactions" as out-of-scope. Belongs with issue/project-ops, not knowledge tooling. |
| `issue_tracker/` + `_issue-tracking/` + `.issues/` | ~1,200 | Issue tracking (finance allocates costs to these issues) | **Orphan to the five** — but likely already superseded by the `issue-facade` capability / `use-issues` skill. **Verify before retiring.** |
| `markitect/profile/` | ~1,600 | User-profile CRUD, multi-profile, DB-backed | **Orphan.** Unrelated to all five. (Distinct from quarkdown's *render* "profile".) |
| `markitect/production/` | ~3,800 | Deployment-readiness validation, cross-platform checks, perf benchmarking | Engine keeps only "structured error/audit *ideas*". Deployment-validation bulk is orphan. |
| `tools/`, `services/`, gitea/tddai glue | ~5,500 | Project-ops tooling | Out-of-scope everywhere. |
| `markitect/legacy/` + `legacy_compat.py` | ~2,700 | Backward-compat shims | Retire by definition. |

## B. Rendering / asset / plugin layer — only *partially* covered, real residual gap

**This is the most consequential gap.** `SCOPE.md` lists "Rendering: markdown
→ interactive HTML via plugin system (testdrive-jsui)" as an in-scope
capability of markitect-main.

| Area | LOC | Covered? |
|---|---|---|
| `markitect/plugins/` (generic processor/formatter/validator/exporter plugin system) | ~8,000 | **No.** tool defines a render-adapter *contract* and an *extension* point, but the general plugin runtime isn't carried. |
| `markitect/assets/` (content-addressable asset store, dedup, `.mdpkg` ZIP packaging, symlink handling) + `asset_registry.json` (277 KB) | ~6,000 | **No.** Bench says "leave behind unless a concrete export needs assets." |
| Interactive-HTML / testdrive-jsui rendering, `static/`, `themes/`, `templates/document.html`, JS UI | — | **Partial only.** quarkdown covers a *Quarkdown* export path; the interactive-HTML / JS-UI path has no home. |

**Decision needed:** spin these into a dedicated render/asset repo (sibling to
quarkdown), fold the asset store into one of the existing repos, or retire the
interactive-HTML path.

## C. The other "Information Space" lineage — `markitect/spaces/` (~11,000 LOC)

**Distinct from `markitect/infospace/`** (which infospace-bench inherited).
`spaces/` is an older/parallel abstraction with features bench did *not* take:

- event-driven change tracking & notifications
- persistent transclusion context with cross-space references
- bidirectional directory synchronization
- HTML rendering of spaces with caching/themes

Engine takes generic persistence concepts and bench takes infospace semantics,
but **these specific `spaces/` behaviors (bidirectional sync, event
notifications, cross-space transclusion context) aren't mapped anywhere.**

Likely intended as dead/superseded — but 11k LOC warrants an explicit "retire
vs salvage" call.

## D. Declined-by-design (confirm retirement, don't re-extract)

| Area | LOC | Disposition |
|---|---|---|
| `markitect/graphql/` | ~4,000 | All three explicitly declined GraphQL ("evidence of API need, not a commitment"). |
| `markitect/query_paradigms/` | ~3,500 | Engine/tool keep the *QueryResult envelope* concept but say "do not port the registry wholesale." |
| `markitect/proxy/` | ~870 | Non-markdown→md proxy with checksum/freshness tracking. **Overlaps markitect-filter.** Freshness/staleness-tracking mechanism may be worth checking against bench's deferred "stale-mappings." |
| `capabilities/` (top-level) | ~8,300 | Capability-packaging architecture; partially maps to tool (schema generation) but the packaging approach itself isn't carried. |

---

## What this means

The successors are, by their own assessments, **near complete for the
in-scope core** (parsing/schema → tool; persistence/workflow → engine;
infospace lifecycle → bench; ingestion → filter; one render path →
quarkdown). The truly unaddressed functionality is almost entirely the stuff
markitect-main accreted **beyond** its stated scope: finance, issue tracking,
user profiles, production/deployment validation, the asset/plugin/interactive-HTML
rendering stack, and the older `spaces/` abstraction.

## Decisions for Bernd

Three live decisions, not a long extraction backlog:

### Decision 1 — Render/asset stack (Section B)
The one with genuine product value left.
- **Option 1a:** new repo (sibling to quarkdown) for plugin runtime + asset store + interactive-HTML
- **Option 1b:** fold the asset store into an existing repo (most likely markitect-tool, behind a flag); retire interactive-HTML
- **Option 1c:** retire the interactive-HTML path entirely; trust quarkdown export as the single render story

### Decision 2 — `markitect/spaces/` (Section C)
- **Option 2a:** salvage bidirectional-sync / event-tracking / cross-space transclusion into engine (engine has the persistence story to support it)
- **Option 2b:** retire wholesale as superseded by infospace

### Decision 3 — Project-ops cluster (Section A: finance + issues + profile)
- **Option 3a:** confirm `issue-facade` already replaces `issue_tracker/` + `finance/`; retire both
- **Option 3b:** identify a home for any pieces worth keeping

---

## Suggested verification before deciding

If verification matters before committing:

- **For Decision 1:** grep the five repos for any render/asset adapter that already covers the HTML path beyond Quarkdown.
- **For Decision 2:** check whether engine's `OperationRun` + collection model can express bidirectional-sync semantics, or whether new primitives would be needed.
- **For Decision 3:** confirm whether `issue-facade` truly replaces `issue_tracker/` + `finance/` end-to-end.

Happy to do any of these focused passes when you're ready to decide.
