docs/: fifteen paths name files and directories that are not in the tree
@melbinjp is already working on this.
Since Aug 24, 2026.
- Dominant language
- Go
- Stars
- 2.2k
- Forks
- 300
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 184
Description
Fifteen paths in docs/ name files or directories that are not in the tree. Verified
against main at 0b8acf26 immediately before opening: every destination confirmed
present, every source confirmed absent, every commit read.
Opening as an issue rather than a pull request because CONTRIBUTING asks for one first, and
because only five of the fifteen have an answer I can give from outside.
Five are plain renames, and I can send them as a PR whenever you want
| document | says | actually |
|---|---|---|
docs/server/README.md:27 |
docs/swagger.json |
docs/server/swagger.json |
docs/server/README.md:28 |
docs/swagger.yaml |
docs/server/swagger.yaml |
docs/server/README.md:29 |
docs/docs.go |
docs/server/docs.go |
docs/operator/virtualmcpserver-observability.md:27 |
pkg/vmcp/server/telemetry.go |
pkg/vmcp/internal/backendtelemetry/backendtelemetry.go |
docs/telemetry-migration-guide.md:250 |
pkg/vmcp/server/telemetry.go |
same |
The first three moved together in 0da4f9a8 ("refactor: openapi, add readme", #448) and the
README that names them is itself in docs/server/ - the three files are its own
neighbours, and it points one directory up. The other two moved in 87fa2ac8 ("Implement
stateless core VMCP constructor", #5457). Git recorded all five as renames.
Five lines, three files, no prose changes. Sent as #6388, DCO-signed, so this half needs no decision from you beyond a review.
Eight need a judgement I should not make from outside
Grouped by what the deleting commit says it was doing, because the right fix differs.
Moved to toolhive-core, so the replacement is a cross-repository reference rather than a
path:
docs/arch/03-transport-architecture.md:763namespkg/permissions/profile.go, gone in
80c3133f("Move permissions and registry packages from toolhive to toolhive-core", #3912).docs/error-handling.md:62namespkg/errors/errors.goas holdingWithCode,Codeand
CodedError, gone in2e5ac005("Adopt httperr from toolhive-core for HTTP error
handling", #3551). The four neighbouring bullets in that list are all still correct.
Removed as dead code, so the line probably goes rather than moves:
docs/arch/10-virtual-mcp-architecture.md:934anddocs/arch/vmcp-library.md:58both name
pkg/vmcp/discovery, removed in6132d91b("Remove dead vMCP discovery seam and default
router", #5627).docs/arch/10-virtual-mcp-architecture.md:948names
pkg/vmcp/server/backend_enrichment.go, removed in799b4222("Remove dead legacy
session-registration path", #5622).
A feature that no longer exists:
docs/arch/12-skills-system.md:553has a table row "Lock file rollout gate |
pkg/skills/feature_gate.go", removed in78541159("Sign pushes by default and remove
the lock feature gate", #6139). The other nine rows of that table are all still correct.
The registry section, which is half-updated and is the one worth a proper look:
docs/arch/06-registry-system.md:922namespkg/registry/schema_validation.gounder
Validation, gone in80c3133f. Three lines above it the same paragraph already says
the schemas are "published instacklok/toolhive-coreunderregistry/types/data/" - so
the block knows about the move and the validation line did not follow. Worth noting:
pkg/registry/schema_validation_test.gois still there and still runs as
package registry, so the behaviour did not leave, only the filename.docs/arch/06-registry-system.md:863namespkg/registry/types.gofor "Provenance type
definitions", gone in8739ec42("Add registry format converters and support for the
Official MCP Registry", #2469). The onlytype Provenance structin the tree today is
pkg/skills/lockfile/lockfile.go:98, which is the skills lockfile and looks like a
different thing.
Two whole directories, not just files
docs/arch/06-registry-system.md:864, the line directly under the Provenance one, names
pkg/container/verifier/for Sigstore and cosign verification. It went in7095e8e1
("Remove /verifier in favour of one coming from toolhive-core", #3929) - so that paragraph
is three implementation bullets and two of the three are gone, both to the same place.docs/arch/10-virtual-mcp-architecture.md:80reads "Implementation:pkg/vmcp/
(discovery:pkg/vmcp/discovery/, routing:pkg/vmcp/router/)".pkg/vmcp/router/is
there;pkg/vmcp/discovery/went in6132d91bwith the dead seam above.
Worth saying plainly: docproof was silent on both of these until an hour ago. It skips a
documented directory when the parent is tracked, because git stores files rather than
directories and an empty one cannot be told from an absent one - and pkg/container is very
much alive. Finding pkg/container/verifier/ by hand while checking the rest is what showed
the guard was too broad. It is fixed and measured now, and it is mentioned here so you know
which of these came from the tool and which came from reading.
What found this
Found by docproof, a documentation checker that
resolves documented paths against the repository and its git history. It read 189 of this
project's 247 documentation files, 76%; the 58 it did not read are under .claude/,
deploy/, .github/, cmd/ and skills/, which are outside its default scope of
top-level files plus doc/ and docs/.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.