feat: establish read-only DocForge MCP foundation
This commit is contained in:
commit
9702ed1265
32 changed files with 3323 additions and 0 deletions
82
SLICE_HISTORY.md
Normal file
82
SLICE_HISTORY.md
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
# 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue