v3.0.0
docgraph v3.0.0
A major release: docgraph now models documentation as two independently-enforced
graphs and, for the first time, serves that graph to agents and tools.
Breaking
- Module path moved to
github.com/lockyc/docgraph/v3. Reinstall with
go install github.com/lockyc/docgraph/v3@latestand regenerate any pre-push
hook (docgraph install-hook --force). A hook still pointing at/v2@latest
keeps installing the v2 line. orphansis now the content-graph island rule. An orphan is a non-root
doc with zero inbound content edges (markdown.mdlinks ∪ path-mentions,
scanned over the doc body). Root-reachability is no longer enforced — findability
is served by the newgraphview instead of a hand-curated index chain.- A frontmatter block is now required on every doc, except any file named
README.md(basename-wide — GitHub renders leading YAML as a metadata table).
Repos that don't want this opt out with--skip frontmatter.
New
disconnectedcheck — the metadata-graph island rule. A doc carrying
frontmatter but declaring no doc→doc edge (part-of/supersedes/see-also/
depends-on;covers→code andsource→external don't count) is flagged. It
enforces that every doc declares its place in the structure. Opt out with
--skip disconnected.docgraph graph— a read-only view that serves both graphs. Human render
(thepart-ofhierarchy, cross-references, and both island lists) by default;
--jsonemits a stable,schemaVersion: 1, uniformly-camelCase payload
(nodes,contentEdges,metadataEdges,islands) — the machine seam a
catalog or ecosystem graph ingests. Likecovers/index/stale, it never
gates.
Fixes since v2.1.0
- The guided installer's detect step and install hints completed the
/v2module
sweep. - The
.gitignorescratch/worktree baseline was completed.
Migrating a consumer repo
- Reinstall:
go install github.com/lockyc/docgraph/v3@latest. - Regenerate the hook:
docgraph install-hook --force. - Run
docgraph .and conform, or opt out per the repo's doc model:- a nav-driven MkDocs repo:
--skip orphans(every page is a prose-orphan by design); - a repo not adopting frontmatter yet:
--skip frontmatter(and--skip disconnected); - a derived/generated corpus:
.docgraphignore.
A prose-linked repo conforms by giving each doc atype:frontmatter block and
a doc→doc edge, and linking any genuine orphans.
- a nav-driven MkDocs repo: