Support external vault roots across tooling

This commit is contained in:
2026-09-20 17:05:21 +02:00
parent 1cb6369282
commit 293b582e97
16 changed files with 573 additions and 204 deletions
+18 -20
View File
@@ -26,6 +26,9 @@ through MCP.
## MCP tools
- `read_instructions` — framework `AGENTS.md` and `AGENT_QUERY_GUIDE.md`.
Call this first and read both; report failure if unavailable. These documents
live outside the data graph, and the server locates them without a guessed path.
- `graph_summary` — overview of the graph: counts, repo scopes, the tag
vocabulary (`by_tag`, most frequent first) and central nodes.
- `graph_search_nodes` — find nodes by tag / type / repo / id / text.
@@ -39,7 +42,7 @@ through MCP.
Given a **topic or task**, return a complete, cited briefing:
1. **Orient** — what the vault holds and where the topic likely lives (`graph_summary`).
2. **Find** — every relevant note, via `graph_search_nodes` (+ text-search fallback).
2. **Find** — every relevant note, via `graph_search_nodes`, then `read_note` for candidate note bodies.
3. **Read** — the actual Markdown via `read_note`; the answer is there, not in the index.
4. **Follow links** — traverse internal links (via `graph_neighbors`) AND external URLs.
5. **Synthesize** — one briefing, every claim cited to a note path/id.
@@ -47,15 +50,15 @@ Given a **topic or task**, return a complete, cited briefing:
## Vault layout (PARA)
```
01_projects/ active efforts with a goal and an end
02_areas/ ongoing standards: policies, value-stream areas, decisions (ADRs)
03_resources/meta/ taxonomy + note templates
03_resources/repos/<repo>/ per-repo info.md (+ decisions/)
03_resources/repos/repo-landscape.md index of documented repos
04_archives/ inactive items
README.md vault hub
01_projects/ active efforts with a goal and an end
02_areas/ ongoing responsibilities and standards
03_resources/ reference material
04_archives/ inactive items
```
Framework owns agents, skills and tooling. The MCP server selects the data vault;
its directory is independent of this agent definition's location.
Every note carries taxonomy frontmatter: `id`, `title`, `type`
(`hub|project|area|guideline|policy|feature|roadmap|decision|note|meta|reference`, enforced by
`generate-graph.py --validate`), `status`
@@ -68,23 +71,18 @@ Legacy `[[wiki links]]` are rejected by the graph validator and must not be writ
Start broad with `graph_summary` to see node counts, repo scopes, the tag
vocabulary and the most-central notes. Its `by_tag` list is the only place the
tag spellings are visible — read it before filtering by `tag`, which matches
verbatim. Then `read_note` the entry points:
- vault hub (`README.md`) — entry points.
- `03_resources/repos/repo-landscape.md` — index of documented repos, grouped.
- `02_areas/ways-of-working.md` — global engineering policy.
- `03_resources/meta/taxonomy.md` — frontmatter fields and PARA buckets.
For a repo topic, `read_note` on `03_resources/repos/<repo>/info.md`. If
`graph_search_nodes` returns no node for it, say it is not yet documented.
verbatim. Find hubs with `graph_search_nodes(type="hub")` and read relevant
ones with `read_note`. Discover policies and repo scopes through the graph;
do not assume a root README or any particular taxonomy subfolders exist.
If no relevant node exists, say the topic is not yet documented.
## 2. Find — query the graph
Use `graph_search_nodes` to locate notes:
- by **repo** — every note tied to a repo (e.g. `tenant-controller`).
- by **repo** — every note tied to a repo (e.g. `<repo>`).
- by **type** — `policy`, `decision`, `feature`, `guideline`, `project`, ...
- by **tag** — e.g. `kcp`. Exact match; take the spelling from `by_tag`.
- by **tag** — e.g. a value from `by_tag`. Exact match; take the spelling from `by_tag`.
- by **text** — `query` matches a node's id, title, path and tags, not the note
body. Widen with a tag or repo filter rather than a longer phrase.
@@ -119,7 +117,7 @@ Links are the intended navigation. Traverse, do not guess.
- Answer the topic/task directly from what the notes say.
- Cite every claim by vault-relative `path` (e.g.
`03_resources/repos/controller-util/info.md`) and/or `id`.
`03_resources/<resource>/index.md`) and/or `id`.
- Separate vault facts from external-source facts (give the URL) and from your
own inference.
- Flag `status: draft`/`deprecated` notes. If the vault does not cover part of