1
0
Fork 0
Code Issues Pull requests Projects Releases 2 Packages Wiki Activity Actions Pages
DocForge2/SLICE_HISTORY.md

83 lines
4 KiB
Markdown
Raw Normal View History

# Completed slices
## DFG-0 contract freeze and DFG-1 standalone read-only core
### Changed
- Created the standalone DocForge repository and versioned the project, node, edge, result, and
reserved changeset contracts.
- Added one-root project descriptors with confined canonical, authority, cache, and index paths.
- Added generic Markdown front matter and TOML node loading, stable IDs, typed relationships,
authority classes, limits, deterministic ordering, dependency-cycle validation, and hashes.
- Added atomic SQLite FTS5 indexes with project-root fingerprints, source revisions, logical row
validation, stale rejection, and preservation of the previous index when rebuilds fail.
- Added exact lookup, bounded search and filtering, backlinks, dependencies, impact traversal, and
cited token-budgeted context compilation with explicit omissions.
- Added deterministic JSON CLI commands for project information, validation, index operations,
retrieval, traversal, and context compilation.
- Added two unrelated generic fixtures. No Worldforge or AssetForge vocabulary entered the core.
### Verification
- Ruff lint and format checks passed.
- Python compilation passed.
- All 13 unit and integration tests passed.
- Tests covered root and symbolic-link escapes, unknown configuration, cache overlap, duplicate and
broken graph state, dependency cycles, source-set changes, stale indexes, tampered rows,
cross-project cache reuse, query-time source changes, deterministic retrieval, and bounded context.
- Installed CLI proof built and checked a temporary project index, returned the expected search
result, selected the required node and dependency, used 153 of 180 estimated tokens, and reported
the omitted proof node.
### Limits
- No MCP server exists yet.
- No changeset or write operation exists.
- No project adapter or renderer exists.
- The token estimator is deliberately conservative and lexical; measured project adoption remains a
later gate.
### Next gate
DFG-2: expose only the proven read operations through a project-bound local stdio MCP server.
## DFG-2 project-bound read-only MCP server
### Changed
- Pinned the official stable MCP Python SDK to the compatible `mcp>=1.28,<2` release line.
- Added a local standard input/output server bound to one immutable project root at startup.
- Exposed eleven read tools for project health, contract boundaries, exact lookup, search, metadata
filtering, backlinks, dependencies, impact, bounded context, source validation, and render status.
- Added project identity, root fingerprint, revision, source hash, adapter version, staleness, server
version, and an untrusted-content warning to tool results.
- Added structured domain failures for missing nodes, stale indexes, and oversized results without
returning partial content.
- Exposed no write, proposal, arbitrary file, shell, Git, build, deployment, publication, or
project-switching operation.
- Kept cache rebuilding as an explicit CLI integration action. MCP queries fail closed when the
derived index is missing or stale.
### Verification
- Ruff lint and format checks passed.
- Python compilation passed.
- All 19 core, CLI, and MCP tests passed with `ResourceWarning` treated as an error.
- Protocol tests called all eleven tools through the official in-memory MCP transport.
- A separate subprocess test initialized the server through real stdio transport and retrieved only
its configured fixture project.
- Tests proved the exact read-only tool surface, fixed project identity, structured missing and stale
failures, output limits, explicit omissions, safe fallback when passive Git revision detection is
unavailable, and the absence of canonical write tools.
### Limits
- The server cannot create changesets or proposals yet.
- The server cannot rebuild its own index.
- Render status reports `not_configured` until DFG-4 defines renderer orchestration.
- Worldforge and AssetForge adapters remain unopened.
### Next gate
DFG-3: add isolated, hash-bound proposal changesets without canonical write authority.