Repository navigation
Skill fetch-at-activation: harness matrix, provenance visibility, and the runtime fetch path (follow-up to #1958) #2532
Description
Context
Follow-up to #1958 ("Make the graph the source of truth for the NodeSpace skill, and decide how guidance reaches external agents"), closed with 15/18 acceptance criteria verified. The 3 remaining criteria are captured here rather than left open on a mostly-done issue. They are NOT one uniform "needs more testing" gap — two are genuinely unbuilt feature work, one is a testing-tooling gap:
Remaining scope (from #1958's own acceptance criteria)
-
Manual harness matrix — requires "at least Claude Code and Codex," covering activation, fetch-follow-through, daemon-down degradation, and a static control arm. Only the Claude Code leg is done (verified 2026-08-25 on a real machine, real session, real 321-node database). Codex/Gemini CLI/OpenCode legs need a machine with those CLIs installed — not available in the sandbox environment this work has run in so far.
-
Fetched guidance visible, not gated — provenance must be marked where fetched guidance lands, so a user can see what changed and an injection-class failure produces signal rather than passing silently. Genuinely unbuilt: checked directly,
SKILL.mdcurrently has no instruction telling an agent to fetch procedural guidance from the graph at activation, and there's nofetch_guidance-shaped code anywhere inpackages/skill/packages/cli. The delivery-channel decision (fetched, hybrid-shaped) is made and recorded on Make the graph the source of truth for the NodeSpace skill, and decide how guidance reaches external agents #1958 — this criterion is implementing that decision, not testing it. -
A user's/team's own graph edit reaches an external agent — the runtime half of the fetch mechanism, blocked on Create design system foundation #2 existing first. Has its own prerequisite: seeding currently skips by node type, so a guidance change never reaches an existing install even once the fetch mechanism exists — that prerequisite is real, self-contained work independent of the channel decision.
Why this is its own issue
#1958's own status checks (2026-08-27, 2026-09-01) were explicit that items 2/3 are "the epic's actual remaining body of work" — real design+build, not a quick add-on — and recommended picking them up as a dedicated focused pass rather than bolting them onto other work. Splitting them out here does that, and lets #1958 close on its 15 genuinely-done criteria rather than sit open indefinitely on a testing-tooling gap (item 1) that has nothing to do with items 2/3's engineering.
Acceptance criteria
- Manual harness matrix run against Codex (minimum bar per Make the graph the source of truth for the NodeSpace skill, and decide how guidance reaches external agents #1958's own criterion) — needs a machine/environment with the Codex CLI installed
- Fetch-at-activation mechanism implemented: an agent activating the skill fetches procedural guidance from the graph rather than only reading static
SKILL.mdcontent - Fetched guidance is visibly marked with provenance (not silently merged into static content)
- The seeding-skips-by-node-type prerequisite fixed, so a guidance edit reaches an existing install, not just a fresh one
- A user's/team's own graph edit demonstrably reaches an external agent session (the runtime half, end to end)
Related
- Make the graph the source of truth for the NodeSpace skill, and decide how guidance reaches external agents #1958 (closed, 15/18 criteria — this issue tracks the remaining 3)
Activity
mstomar125 commentedon Sep 10, 2026
Opened PR #2559 implementing 4 of the 5 acceptance criteria. Summary:
Fetch-at-activation mechanism implemented —
nodespace skill guidance <query>(packages/cli) fetches procedural guidance from the graph's seededskillnodes via the existingNodeService.SearchNodesRPC (no new server/proto surface).SKILL.md's body gained a## Graph-Authored Guidance (Fetched)section instructing an activated agent to call it before a nontrivial operation.Provenance is visible, not gated — every result carries a marker (a
GRAPH-FETCHED GUIDANCEbanner in human mode,"provenance": "graph-fetched"in--json), and a new on-demand reference (references/graph-authored-guidance.md) covers the trust boundary: fetched content can supply procedure, never permission.The seeding-skips-by-node-type prerequisite turned out to already be fixed — PR #1818 (closed #1812, merged 2026-07-30, per-node versioned reconciliation) predates both #1958 and #2532. New tests against the real
seed_skill_nodes()registry confirm it still holds.The runtime half (a user's own graph edit reaching an external agent) is demonstrated both in headless tests and live against a real isolated daemon + real embedding model: edited a seeded guidance node's content directly, re-ran
nodespace skill guidance, and the edit came back.Left honestly open: the manual harness matrix against Codex (and ideally Gemini CLI/Cursor) — this environment has no machine with those CLIs installed. Only the Claude Code leg is verified (from #1958, 2026-08-25). Not faked or attempted here.
Full design-call reasoning (which graph node type holds guidance, why no new CLI plumbing was needed beyond the provenance wrapper, a known limitation around the seeded skill nodes'
SeedTier::Systemclassification and long-term user-edit durability) is in the PR description.Add fetch-at-activation guidance mechanism for external agent skill s…
mstomar125 commentedon Sep 10, 2026
Closing — implemented and merged via PR #2559, with a follow-up fix cycle after adversarial review caught 3 real issues (a --limit cap bug producing empty-content banners, 8 bare issue-number references violating CLAUDE.md, and a real provenance-spoofing hardening gap in the trust-boundary claim itself) — all fixed, re-reviewed, confirmed at the code level.
4 of 5 acceptance criteria closed:
nodespace skill guidance <query>)One criterion genuinely not closeable here: the manual harness matrix against Codex/Gemini CLI/Cursor — this environment has no machine with those CLIs installed. Left open, not faked.
One real tension found and tracked separately, not silently absorbed: seeded skill-guidance nodes have no durability protection against code-driven content replacement, so a user's own edit could be silently overwritten on the next content version bump. Filed as #2560.