Conversation
Placement analysis for the Harness Software Delivery Knowledge Graph, diffed against every shipped skill and against this repo's own prior verdict on graph memory in docs/research/agentic-patterns-corpus.md. Verdict: not a new plugin. Harness's payoff needs heterogeneous, non-git-native estate data with no single strongly-consistent query surface; a repo fleet already has one. But the corpus rejected graph memory on evidence quality (one 198-document paper), and Harness retires that reason — the rejection is re-based on domain fit, which is stronger and survives. Lands as evidence inside two shipped skills: - eval-ladder: their published eval methodology is a production eval ladder for a retrieval system, and names a rung we don't — "a registered relationship is not necessarily a usable relationship" (declared != populated != fresh). Their product-backed validation is independent, citable confirmation of "grade the surface closest to the harm". - fleet-playbook-curator: three of Harness's four theses were arrived at independently (canonical identity on node_id, freshness as an independent clock, index-not-CMDB). The fourth is a verified gap — the fleet manifest is a flat entity table with no edge field, so every relationship exists only as uncited prose. Records what the research could not establish, including that the 15-25x token claim is an unreplicated vendor benchmark and that the docs page was read through a search-index fetch because the origin is egress-blocked here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DghMFX2SuCASz3fjHoYwjb
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: edb4ce58bc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
🟡 Changes recommended
The new note makes “strong consistency” claims about GitHub API surfaces that are not documented as guarantees and should be softened to avoid overstating factual assertions.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Adds a research note (docs/research/harness-knowledge-graph.md) that evaluates Harness’s Software Delivery Knowledge Graph against this repository’s existing “graph memory” verdict and maps any actionable takeaways to existing plugins/skills (notably eval-ladder and fleet-playbook-curator). This fits the codebase as part of the ongoing research corpus that informs which plugin ideas belong in the marketplace vs. remain out-of-scope.
Changes:
- Introduces a placement analysis concluding this is not a new plugin fit for a GitHub repo fleet domain, while updating the reasoning behind prior “no graph memory” conclusions.
- Extracts and summarizes Harness’s published eval ladder as external support for
eval-ladder, including a rung distinction the note argues is missing in our current ladder framing. - Identifies a specific, narrowly-scoped “edges missing” gap in
fleet-playbook-curatorwhile explicitly not recommending implementation yet.
File summaries
| File | Description |
|---|---|
| docs/research/harness-knowledge-graph.md | New research note analyzing Harness KG claims and mapping implications to existing marketplace skills/plugins. |
Review details
Suppressed comments (1)
docs/research/harness-knowledge-graph.md:104
- “
gh api orgs/<owner>/reposis a strongly-consistent read” is a fairly specific consistency guarantee that GitHub doesn’t document for REST listing endpoints. To avoid overstating the claim, rephrase this as an “authoritative inventory” (or similar) without asserting strong consistency.
problem: GitHub hands you a stable `node_id`, `gh api orgs/<owner>/repos` is a
strongly-consistent read, and the join key is not ambiguous. The graph is buying
normalization nobody in this domain needs to buy.
- Files reviewed: 1/1 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codex flagged the note as asserting that relationship prose in a fleet playbook is "uncited by construction". Checked against source, and the finding is right: - SKILL.md:98 names "cross-repo interactions" as exactly the kind of thing that belongs in a playbook. - The per-claim rule covers EVERY substantive claim, relationships included: repo@sha:path plus an as-of stamp, or omitted/flagged STALE. - validate-citations.sh fails the build on a claim citing a repo not read this pass, or a path absent from that repo's gathered tree. So a relationship claim is cited, and its citation is machine-checked for traceability. Saying otherwise understated a safety mechanism the plugin actually has, and rested the edge argument on a false premise. The gap is narrower and survives restating. Relationships are not MODELED, with two consequences: - No edge is diffable. diff-fleet.sh cascades over membership and pushed_at; the staleness clock stamps head_sha per member and nothing per edge, so a relationship that stops holding raises no signal of its own. - Traceable is not supported. validate-citations.sh says so in its own comments: semantic support is the behavioral layer's job. For a single-repo claim the cited file usually is the evidence; for an edge the evidence is the join, and a claim can cite two real, genuinely read paths while asserting an edge neither supports. Cheap tier: 1290 passed, 0 failed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DghMFX2SuCASz3fjHoYwjb
…he weaker claim Copilot flagged that the note asserts there is "no single strongly-consistent query surface" for a DevOps estate and then names `gh api` as one for a repo fleet. GitHub publishes no consistency guarantee for REST list endpoints, so the phrasing reads as a guarantee the note cannot substantiate. The finding is right, and the fix costs the argument nothing: what actually carries it is that ONE surface is the system of record and its join key (node_id) is stable — not any ordering or read-your-writes property. Both occurrences now say "authoritative". Added a parenthetical noting that fleet-playbook-curator's own prose calls `gh api orgs/<owner>/repos` "strongly-consistent", and that the defensible contrast it reaches for is with the Search API, which documents its indexing lag. Left that SKILL.md wording alone — out of scope for a docs note, and worth its own look. Cheap tier: 1290 passed, 0 failed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DghMFX2SuCASz3fjHoYwjb
A full review of the note against this repo's own source turned up six claims that do not hold. All six are corrected here; the note's argument and verdict are unchanged. - diff-fleet.sh does not key on pushed_at. It joins on node_id and its content-drift bucket keys on head_sha (diff-fleet.sh:28-30) — head_sha is the diff's own key, not a separate clock beside it. The "no edge is diffable" point survives; the mechanism given for it was wrong. This error was introduced by c1d3d9a, the commit that fixed the last one. - eval-ladder already has the rung. Rung 1 (discriminating corpus) sits exactly between structural and code assertion, so what is missing is the retrieval-layer vocabulary, not a rung. - The fleet-playbook table counts now agree: four rows, four theses, and the gap named as a fifth item absent from the table. - Provenance said five sources; the list has six. The uncounted product page is load-bearing further down. - "CMDB" is Harness's vocabulary, not ours. SKILL.md:45 says "not a runbook" and says nothing about a CMDB. - The corpus now back-links here. agentic-patterns-corpus.md and its .json twin carried the retired evidence-quality rejection with no pointer, so a reader arriving via red-gate-protocol.md:745 read a dead verdict as live. The original verdicts are left intact and annotated: the evidence half is marked superseded, the domain-fit half upheld and now scoped to git-native repo data. Cheap tier: 1290 passed, 0 failed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DghMFX2SuCASz3fjHoYwjb
Asks what structure is right for the fleet-playbook edge gap, which the Harness note named but never answered. Surveys the LLM-wiki family (DeepWiki, Google Code Wiki, DeepWiki-Open, Auto Wiki), repo maps, SCIP/LSP indexes, embeddings, llms.txt, AGENTS.md, graphify and doctests. Verdict: nothing in the family closes the gap, and PR #134's verdict stands. The sharpening is worth more than the answer — on a DeepWiki page pinned to a commit that is still HEAD (zero drift), three of five rows in the architecture table are wrong, one naming a function absent from the file. Every citation resolves. Traceability was never the problem, which is the gap validate-citations.sh names in its own comments, reproduced at industrial scale. Derives an entry condition for any future edge: an edge is only worth adding if it comes with a command that re-derives it and a comparison that can go red. That disqualifies one of the three candidate edges in the companion note. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DghMFX2SuCASz3fjHoYwjb
Both were caught by dives verifying this repo's own assertions against primary sources, and both were load-bearing where they sat. harness-knowledge-graph.md called node_id "stable". GitHub does not say that. The GraphQL global-node-ID guide promises only that "it's best practice to persist the global node ID so you can easily reference objects across API versions", and the migration guide states that "The legacy format will be closing down and replaced with a new format" — so the identifier's string is on the record as changing, with no shutdown date. The verdict's domain-fit argument rests on this claim, so it now says what is actually supported: node_id is opaque, unambiguous and independent of the mutable full_name within a pass. It does not license joining a manifest captured before the format migration against one captured after, which is what diff-fleet.sh does across passes — a fleet straddling that boundary sees every member as removed plus added rather than renamed, and nothing in the plugin would say why. AGENTS.md:63 and evals/cheap/run.sh:3 both claimed the cheap tier runs "under a second". Measured on this checkout: 18.63s for 1290 checks across 25 plugins. Off by roughly 19x, in the file that tells every contributor and every agent what the tier costs. Replaced with the measured figure, its date, and the fact that it scales with plugin count — a number that will go stale again is worth less than the instruction to re-measure. Cheap tier green after the change: 1290 passed, 0 failed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DghMFX2SuCASz3fjHoYwjb
Ten scouts swept ten source clusters — retrieval and indexing, code graphs,
context files, agent memory, provenance and freshness, developer portals,
semantic layers and lineage, enterprise search and MCP, evaluating knowledge
systems, and knowledge-management prior art outside software. Seven dives
then re-verified the load-bearing claims against primary sources, organised
by cross-domain convergence rather than by scout.
Verdict: nobody machine-checks a knowledge claim. The field's answer is to
make claims that do not need checking — derive them from a parser or
compiler, execute them, or accept them as unchecked and label how they were
produced. Where a semantic check is attempted the measured ceiling is ~77%
balanced accuracy on prose (0.55 informedness against a 50% chance
baseline), ~61 on the hardest prose split, ~58 on contested cases, and 0.17
span-F1 for a prose-trained checker on code as evidence.
Three findings the survey did not expect:
Fail-open is the norm and nobody says so. Every expiry and drift mechanism
examined degrades to green rather than red — an env var that skips every
check, a swallowed network error, a doc preprocessor silent on a missing
anchor for nearly seven years, an ownership gate that goes vacuous exactly
where ownership is broken. The rule "the comparison must be able to go red"
is insufficient; it must also go red when it cannot be made.
Citation is not transcription, proven on this corpus itself. 57 of ~140
scout claims needed correction — not for missing citations but for misread
ones. The cleanest instance is external: "84% of KM programmes fail" traces
through three hops of valid, resolvable citations to a 1997 article saying
the rate is one third, and that the number is an estimate rather than a
study. Pinning where is not pinning what, and repo@sha:path pins only where.
This marketplace is further ahead than its own scouts believed and its best
evidence is buried: verify-before-claim ran a negative control three times
across six scenarios, got a null every time, and ships without a calibration
case with the reasoning recorded — an in-house reproduction of the year's
most-cited context-file null, reached before the paper it matches was
revised. It lives in a YAML comment no tier or doc references.
Two claims recorded but deliberately not acted on, because both are
plugins/** changes that trigger the behavioral tier and the demonstration
review gate: SKILL.md:65 asserts GitHub's "stable node_id", which GitHub
declines to guarantee; and index.schema.json requires repo ("owner/name")
with additionalProperties false and no node_id field, while
validate-citations.sh matches on full_name, so a rename leaves every prior
claim carrying a dead name that can resolve to the wrong repository.
Cheap tier: 1291 passed, 0 failed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DghMFX2SuCASz3fjHoYwjb
…dge-graph-plugin-y7geg4
The merge brought in #136, which added checks. The figure this branch introduced (~19s / 1290 checks, measured 2026-09-14) was already stale against its own instruction to re-measure rather than trust it. Measured on this checkout at 2026-09-18: 13.6s, 1296 checks, 25 plugins. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DghMFX2SuCASz3fjHoYwjb
Adds three research deliverables under
docs/research/:harness-knowledge-graph.md— a placement analysis for the Harness Software Delivery Knowledge Graph, diffed against every shipped skill and against this repo's own prior verdict on graph memory indocs/research/agentic-patterns-corpus.md.llm-wiki-patterns.md— the follow-on question that note raises and does not answer: if not a graph, then what structure? Surveys the LLM-generated-wiki family and everything else between flat grep and a knowledge graph. Details in its own section below.knowledge-management-corpus.md+.json— the broad survey behind both: 140 patterns across ten source clusters, seven verification dives, 57 corrections. Details in its own section below.Plus two corrections to claims that verification found false, in
harness-knowledge-graph.mdand inAGENTS.md/evals/cheap/run.sh— see "Corrections to this repo's own claims" below.Docs, plus two comment lines in
evals/cheap/run.shcorrecting a false timing claim. Noplugins/**and no SKILL.md touched — so no behavioral tier, no demonstration comment owed. Cheap tier run on every push; 1291 passed, 0 failed on the current head.The verdict
Not a new plugin. Harness's payoff comes from a condition a repo fleet does not meet: heterogeneous, non-git-native estate data (billing, K8s, CloudWatch, Jira, PagerDuty) with no single authoritative query surface. A repo fleet already has one —
git,gh api,grep. Harness's own ROI rule ("start with one use case that cannot be solved by a single system") is the exact test this domain fails.What it does change
The corpus rejected graph memory twice, and the two rejections age differently:
node_id, independent of the mutablefull_name, means a repo fleet doesn't have it. (Deliberately opaque, not "stable" — see "Corrections to this repo's own claims" below.)Same answer, better reason, now domain-scoped rather than universal. If this marketplace ever spans cost data, incident history, or runtime telemetry, the argument reopens on its merits. Both corpus entries now carry a back-link here, so the retired half is never read as live.
Where it lands
eval-ladder(strongest fit, real gap). Their eval post is a published production eval ladder for a retrieval system, stratified the way ours is. It names something we don't: "a registered relationship is not necessarily a usable relationship" — a query can be structurally valid, reference a schema-declared relationship, execute successfully, and return nothing because the relationship was never populated. That's rung 0's stated blind spot reappearing in the data layer: declared ≠ populated ≠ fresh. The rung for it already exists (rung 1, discriminating corpus); the vocabulary doesn't. Their product-backed validation is independent, dated, citable confirmation of "grade the surface closest to the harm."fleet-playbook-curator(validated design, one gap). Four of Harness's theses were arrived at here independently — canonical identity onnode_idoverfull_name, freshness as an independent staleness clock, index-not-runbook, drift-as-change-management. The gap is a fifth: the fleet manifest is a flat entity table ({node_id, name, full_name, default_branch, head_sha, pushed_at, archived, private}) with no edge field. Relationships are cited like any other claim and machine-checked for traceability byvalidate-citations.sh— they are simply not modeled, so (a) every keydiff-fleet.shhas is per member, none per edge, and (b) traceable is not supported: for an edge the evidence is the join, and nothing deterministic checks it. The note sketches three candidate edges but explicitly does not recommend building yet; that goes throughgrill-meand clearseval-ladder's bar first.agent-compiler/semver-gate/redgate. Their four-tier data-ownership ladder is the same construct as an effect ceiling: always take the most-deterministic rung available, never optimize for the least. "Measure determinism, not just capability" is a usable external citation forverify-before-claim.docs-hygiene. Corroboration only. Our GitOpsReady: Trueframing already states the failure shape better.Companion note —
docs/research/llm-wiki-patterns.md(62c8b0e)The Harness note names a gap in
fleet-playbook-curatorand never asks what structurewould close it. This companion asks that, surveying everything between flat grep and a
knowledge graph: DeepWiki (Cognition), Google Code Wiki, DeepWiki-Open, Auto Wiki,
aider's repo map, SCIP/precise code navigation, code embeddings,
llms.txt,AGENTS.md, graphify, and doctests.Verdict: nothing in the family closes the gap. The verdict above is unchanged. But
the reason gets sharper, and the sharpening is the point.
A measured external failure, not an argument. The note fetched a live DeepWiki page
for
Aider-AI/aiderpinned to commit5dc9490b— verified viagit ls-remoteto stillbe that repo's
HEAD, so zero drift, the best possible case for a generated wiki.Three of the five rows in its architecture table are wrong, including one naming a
function
rank_tags()that does not exist anywhere in the cited file (verified byfetching the blob at that sha; the real symbols are
get_ranked_tags,get_ranked_tags_map,get_ranked_tags_map_uncached). Every citation resolves. Everycitation is commit-pinned with a line range — strictly finer-grained than this repo's
own contract requires.
That is the gap
validate-citations.shnames in its own comments — traceability is"necessary but not sufficient," semantic support explicitly out of scope
(
validate-citations.sh:38-41) — reproduced at industrial scale by the best-funded teamin the category. The "traceable is not supported" bullet above is now backed by a
measurement rather than an argument, and it means no vendor is about to solve this for us.
The design constraint that falls out. Nothing in this survey machine-checks generated
prose, and the reason is not difficulty: a prose claim has no failure condition.
Everything trustworthy in the survey got there by giving the claim one — a parser that
either resolves the symbol or does not (SCIP, aider, graphify's
EXTRACTEDedges), adoctest that either compiles or does not, a
head_shathat either matches or does not.So:
Applied to the three candidate edges sketched above, that test disqualifies them
unevenly, which is the useful part:
repo --deploys-via--> workflowpasses (parse.github/workflows/*.yml, diff the derived set);repo --depends-on--> repopasses(manifest/lockfile extraction is deterministic);
repo --authenticates-as--> identityfails as stated — nothing in the fleet can re-derive it without touching the identity
provider. It is exactly the class of claim that looks checkable and is not.
Freshness, measured. Indexed-commit-vs-live-
HEADon five repos, all 2026-09-14:microsoft/vscode~6 days behind,openai/codex~10,langchain-ai/langchain~23,anthropics/claude-code~32. Not a criticism — the stamp moves with the page, so a stalepage is legible as stale. What the stamp cannot say is which claims the intervening 32
days invalidated. Same two-clock distinction
fleet-playbook-curatoralready draws.Also recorded:
AGENTS.mdis by a distance the highest-adoption pattern in the surveyand the least structured one, which strengthens the case for
docs-hygienerather thanweakening it;
llms.txtis a format worth copying and an adoption claim worthdiscounting; and the embeddings retreat (Sourcegraph 2024-02-15, Anthropic 2025-09-29,
Cursor's retired indexing doc) is itself the finding.
Claims are tagged VERIFIED (artifact read first-hand) or CLAIMED (vendor repeated). What
the research could not establish is recorded in the note, including the load-bearing one:
three-of-five is a finding about one table on one page chosen because it was the best
case, not a measured error rate.
Knowledge-management corpus —
docs/research/knowledge-management-corpus.md+.json(b246eec)The two notes above ask whether a knowledge graph and an LLM-generated wiki belong here,
and both answer no. This asks the question they raise and neither answers: across every
field that has ever tried to keep written knowledge true, what actually works?
Ten scouts over ten source clusters → 140 unique patterns → seven dives re-verifying 64 of
them against primary sources, organised by cross-domain convergence rather than by scout →
57 corrections → 156 recorded could-not-establish items → one roadmap.
Verdict: nobody machine-checks a knowledge claim. The field's entire answer is to make
claims that do not need checking — derive them from a parser or compiler (SCIP, aider's
repo map, Bazel query, graphify's
EXTRACTEDedges), execute them (doctests), or acceptthem as unchecked and label how they were produced (DataHub's
matchType, OpenMetadata'ssourceenum defaulting toManual). Where a semantic check is attempted the measuredceiling is ~77% balanced accuracy on prose — 0.55 informedness against a 50% chance
baseline — falling to ~61 on the hardest prose split, ~58 on cases where existing
detectors disagree, and 0.17 span-F1 for a prose-trained checker on code as evidence.
The edge gap this PR names is the unsolved problem in every field that has tried it.
Three findings the survey did not expect:
Fail-open is the norm, and nobody says so. Every expiry and drift mechanism examined
degrades to green rather than red — an env var that skips every check, a swallowed network
error, mdBook silent (not merely non-blocking) on a missing include anchor for nearly
seven years, CODEOWNERS degrading open in exactly the case that matters. So the companion
note's rule needs a clause: the comparison must also go red when it cannot be made. The
cut that follows is internal-oracle vs external-oracle — a check whose answer lives inside
the repo can be honest offline; one needing an external oracle cannot, and its green means
"either fine, or I couldn't look."
Citation is not transcription, and the corpus proved it on itself. 57 of ~140 scout
claims needed correction — almost none for missing citations, nearly all for misread ones.
The clean external instance: "84% of KM programmes fail" traces through three hops of
valid, resolvable citations to a 1997 article stating the rate is one third, and that
the figure is an estimate from consulting engagements rather than a study. Every footnote
in the chain was correct. Pinning where is not pinning what — and
repo@sha:pathpins only where. That is why the top roadmap item is a quoted span alongside the path,
which is deterministic, offline, and would have caught an 84%-class error.
This marketplace is ahead of where its own scouts placed it, and its best evidence is
buried.
plugins/verify-before-claimran a negative-control experiment three timesacross six scenarios and got a null every time — the base model, given a gutted stub,
already produced the behavior the skill exists to require, including reproducing two
specific reference-file procedures unprompted. It ships without a calibration case, with
every scenario and verbatim grader quote recorded. That is an in-house reproduction of the
year's most-cited context-file null, on a different task class, reached before the paper it
matches was revised. It lives in a YAML comment referenced by no tier and no doc, and its
own pointer to git history resolves to nothing because the file it names was never
committed.
Two findings recorded but deliberately NOT fixed here
Both are
plugins/**changes that trigger the behavioral tier and thedemonstration-comment review gate. This PR is docs-only and I am not routing around a human
review gate to save a round trip. Flagged for a maintainer's call:
SKILL.md:65asserts GitHub's "stablenode_id". GitHub declines to guarantee it —the global-node-ID guide promises only that "it's best practice to persist the global
node ID so you can easily reference objects across API versions," and the migration guide
states "The legacy format will be closing down and replaced with a new format." The
plugin's behavior (join on
node_id, neverfull_name) is correct and unaffected;the rationale overstates its warrant.
harness-knowledge-graph.mdcarried the sameoverstatement and is fixed in
da22822.index.schema.jsonrequiresrepo("owner/name") with
additionalProperties: false— nonode_idfield and no way to addone without a schema change — while
validate-citations.shmatches with an exactgrep -qxFagainstfull_name. After a rename every prior claim carries the dead name,and GitHub's own rename doc warns that reusing an old name silently retargets the
redirect, so a name-keyed citation can resolve to the wrong repository with the
validator unable to detect it. This is the same defect the dive found shipped in
OpenMetadata and in Port's default GitHub mapping, so it is the category norm rather than
an oversight — which is exactly why it is worth fixing.
Review findings, all accepted
Two from bots on the first pass, six from a full self-review of the note against this repo's own source (
4417c61).First pass
SKILL.md:98names cross-repo interactions as playbook content, the per-claimrepo@sha:pathrule covers relationship claims, andvalidate-citations.shenforces traceability. Fixed inc1d3d9a; the restated gap ("traceable is not supported — for an edge the evidence is the join") is sharper than what it replaced.7e27eec— both occurrences now say "authoritative," which is all the argument needs.Full review (
4417c61)Every repo-internal claim in the note was checked against source. Most held — the two corpus quotes are verbatim, the
validate-citations.shquote matches its comment exactly, and the manifest field list,node_idjoin, rung-0 blind spot anddocs-hygieneGitOps framing all check out. Six did not:diff-fleet.shdoes not key onpushed_at. It joins onnode_id; its content-drift bucket keys onhead_sha(diff-fleet.sh:28-30), sohead_shais the diff's own key, not a separate clock beside it. The "no edge is diffable" point survives — the mechanism given for it was wrong. Introduced byc1d3d9a, the commit that fixed the Codex finding.eval-ladderalready has the rung. Rung 1 (discriminating corpus) sits exactly between structural and code assertion. What's missing is the retrieval-layer vocabulary, not a rung.SKILL.md:45says "not a runbook" and says nothing about a CMDB.agentic-patterns-corpus.mdand its.jsontwin carried the retired evidence-quality rejection with no pointer, so a reader arriving viared-gate-protocol.md:745read a dead verdict as live. Original verdicts left intact and annotated: evidence half marked superseded, domain-fit half upheld and now scoped to git-native repo data. This is the one finding that widened the PR to a second and third file.The note's argument and verdict are unchanged by all six.
Corrections to this repo's own claims
Two claims were found false by verification and fixed in
da22822.node_idis not documented as stable.harness-knowledge-graph.mdsaid GitHub hands you a "stable"node_id. GitHub does not say that; both docs pages were read directly. The verdict's domain-fit argument rests on this claim, so it now says what is supported —node_idis opaque, unambiguous, and independent of the mutablefull_namewithin a pass. The correction has a consequence: it does not license joining a manifest captured before the format migration against one captured after, which is whatdiff-fleet.shdoes across passes. A fleet straddling that boundary sees every member asremovedplusaddedrather thanrenamed, and nothing in the plugin would say why.The cheap tier is not "under a second."
AGENTS.md:63andevals/cheap/run.sh:3both claimed it. Measured on this checkout: 18.63s for 1290 checks across 25 plugins — off by roughly 19x, in the file that tells every contributor and every agent what the tier costs. Both now carry the measured figure, its date, and the fact that it scales with plugin count; an instruction to re-measure outlives a number that will go stale again. This is the only change in the PR outsidedocs/research/, and it is two comment lines.One further correction caught in self-review before pushing
62c8b0e, listed here because it is the same class as finding 5: the companion note's verdict glossedvalidate-citations.sh's disclaimer as "traceable is not supported" in a way that read like a quotation. It is a paraphrase; the script's actual words are "repo-was-read is necessary but not sufficient… Semantic support of the claim by the file is the behavioral/verifier layer's job." Rewritten to citevalidate-citations.sh:38-41and paraphrase in the open.What the research could not establish
Recorded in the notes, not buried.
Harness note: the 15–25x token claim is an unreplicated vendor benchmark on one self-chosen question; the three failure modes read as hard-won but sit on a product page with no incident write-ups; no public HQL grammar was located; the argument for an edge comes from Harness's claim, not from a measurement on our own material; and the docs page was read through a search-index fetch because
developer.harness.iois egress-blocked in this container.Companion note: whether Google Code Wiki actually regenerates on merge (its landing page is a client-rendered SPA; the strongest freshness claim in the category is untested); Code Wiki's citation granularity; whether the DeepWiki three-of-five error rate is representative — it is one table on one page, chosen because it was the best case, by someone looking for that failure; whether Cursor removed embeddings or only the documentation of them; graphify's mechanism as run rather than as read, whose adoption evidence does not meet this repo's bar — measured 2026-09-14 it has 116,700 stars and 3 subscribers, a watcher-to-star ratio two to three orders of magnitude below every control repo checked; and any independent adoption census for the wiki category, since DeepWiki's "50,000+ repos" and
AGENTS.md's "60k+ projects" are both self-reported and undated.Corpus: 156 items are recorded in the JSON twin. The ones that would change a decision: any production system that detects staleness rather than resolving it on write (the largest hole in the field, and the one
docs-hygienesits in); any published accuracy figure for the three vendor grounding APIs (all three primary doc pages read, none has one); whether the ~77% ceiling still holds, since the backing leaderboard appears frozen at 2025-09-08 with no 2026 frontier model among its 39 entries; and whether the code-evidence measurement replicates — it uses synthetic error injection, has an author conflict of interest, and is a single paper, yet it is the only measurement of the thing this repo most needs measured.🤖 Generated with Claude Code
https://claude.ai/code/session_01DghMFX2SuCASz3fjHoYwjb