Filed by @paulrbrenner from a fleet of 5 derived wikis (4 running this capability, 1 deliberately without), with the orchestrator agent. Nothing has been changed in this template repo — this is a request for your evaluation.
TL;DR
We built and battle-tested a five-part "coverage & discovery" capability across four
derived wikis. It makes an evolving-landscape wiki self-correcting against the field
instead of dependent on the right keyword being in a search string. It is orthogonal to
the wiki mechanics you already ship (KG, gate, wiki-write-protocol) and layers cleanly on
top. We propose packaging it as an opt-in template feature (features/coverage-discovery/,
using the feature mechanism you already have) so any derived project can enable and
parameterize it. This doc explains the components, the evidence, the design decisions worth
preserving, where it does not apply, and the risks — so you can decide whether/how to
adopt it upstream.
We are not asking you to take our project-specific content; we are proposing the
generic pattern be available to all derived wikis.
1. Motivation — three failure modes of a landscape wiki
A wiki that tracks a fast-moving external field (research literature, a program landscape)
degrades in three ways that internal lint never catches:
- Keyword-dependent scanning misses novelty. Confirming search strings find what you
already know to look for. New entities appear under terms not in the strings.
- The concept taxonomy ossifies. A fixed backbone (mechanisms, domains, pillars) has
no home for emerging hypotheses, so they get dropped rather than parked.
- "Named in prose, never paged" leaks. An intervention/entity mentioned on a page but
never given its own node is invisible to the KG and to future queries.
The internal lint checks health (orphans, dead links, frontmatter). None of it asks
"what exists in the field that we don't cover?"
2. What we built and proved
Piloted on a Long COVID research wiki, then replicated to three others (AI-for-science,
defense-AI, human-AI-team-science). Concrete results:
- Registry census caught real gaps mechanically. Long COVID: a ClinicalTrials.gov
census (656 interventional studies) surfaced ensitrelvir, taVNS, pyridostigmine, AXA1125
— none of which depended on a keyword. Defense-AI: a USAspending census returned 157
AI-relevant DoD awards, 63 untracked. AI-for-science: a HuggingFace proxy returned 183
untracked science-relevant models/datasets.
- The "do not mass-stub" discipline held. Of the untracked long tail, only the clear
in-scope leaks were stubbed (Long COVID: 12; Defense-AI: 0 — all 63 deferred);
the rest defer to a quarterly audit. No KG flooding.
- The candidate watchlist + promotion rule behaved. Emerging mechanisms/themes were
parked and not prematurely promoted (e.g. MCAS/small-fiber neuropathy strengthened but
kept as candidates pending the documented threshold).
- We found and fixed a real gate hole (worth upstreaming as-is). The stub→backbone
link was expressed via a tag/body-link, which the typed-edge-only reciprocity check never
fired on — 14 pages silently missed their back-reference and the gate still passed. Fix:
a reciprocity criterion that triggers for a link by ANY means (tag, body link, OR
typed edge). This is a generic gate improvement independent of the rest of the proposal.
3. The five components (generalized)
- Registry census + diff. Pull a canonical enumeration of the domain's tracked
objects; diff against what the wiki pages; untracked in-scope items become candidate
stubs. Registry is a pluggable adapter: ClinicalTrials.gov (medical), USAspending/SAM
(federal programs), Papers-with-Code/HuggingFace (AI methods/models), or none (pure
literature → this folds into the audit). Runs per ingest cycle.
- Open taxonomy + candidate register + promotion rule. Declare the backbone
non-exhaustive; a lightweight Candidate-*-Watchlist holding page (one line per
hypothesis, not a page each); a documented promotion rule (e.g. ≥2 independent
cohorts/sources OR 1 Tier-1 review) that logs an auditable promotion event.
- Discovery + adjacent-field search families. Alongside the confirming strings: a broad
periodic sweep, a rotating candidate-census over watchlist terms, and adjacent-field
queries (overlapping literatures where signals surface first).
- Quarterly external-coverage audit (distinct from lint). Diff the wiki's inventory
against (a) taxonomies in recent field review articles and (b) the census. Misses flow
into the registers (watchlist entry or candidate stub, tagged with the audit id) + a
dated log entry. No parallel gap-ticket system.
- Stub rule + hardened reciprocity gate. Every named entity/concept that is the subject
of a claim (or surfaced by census/review) gets ≥ a stub node (graded lowest-confidence,
lifecycle: candidate, citing what named it). The gate enforces: (i) named→resolves,
and (ii) any-means reciprocity (see §2).
4. Proposed template integration — an opt-in feature
Your repo already has the feature mechanism (features/, feature.json,
enable-feature.sh, install-feature.sh) with agent-comms as precedent. We propose:
features/coverage-discovery/ shipping:
- SCHEMA_ section fragments:
lifecycle: candidate addition, open-taxonomy statement,
promotion-rule template, stub invariant, discovery search-parameter families.
verification-gate fragments: the named→resolves + any-means reciprocity criteria
(with a hub-page exemption — hubs legitimately list many children).
- A
census.py skeleton with a small registry-adapter interface and reference adapters
(clinicaltrials, usaspending, papers-with-code/huggingface, and a none mode).
- A
/coverage-audit command template (quarterly).
/ingest step fragments: census + stub-sweep.
- A
Candidate-Watchlist.md.template.
Recommendation: the any-means reciprocity gate fix (§2, last bullet) should land in
the base template's verification-gate.md regardless of whether the full feature is
adopted — it's a correctness fix to the reciprocity check you already ship.
5. Per-project parameterization (the config surface)
A feature.json/config would capture the ~4 domain knobs: the backbone-taxonomy name
(mechanisms / domains / pillars / concepts), the registry adapter (or none), the
adjacent fields, and the promotion threshold. Everything else is generic.
6. Design decisions worth preserving (hard-won)
- Census is maintenance-side, not scan-side — it must read local wiki state and be
deterministic; scan agents surface discovery leads, they don't run the census.
- Do-not-mass-stub — the census defers its long tail to the quarterly audit; only clear
in-scope leaks are stubbed live. Without this, the KG floods.
- Watchlist (holding page) for few/conceptual items; individual stubs for many/1:1 items.
Mechanisms → one watchlist page; interventions/programs → individual KG nodes.
- Any-means reciprocity — do not restrict the reciprocity check to typed edges.
7. Where it does NOT apply
8. Risks, costs, mitigations
- KG flooding → the do-not-mass-stub rule (mandatory in the feature).
- Census feed reliability → adapters are best-effort and labeled; a feed being down is
non-blocking (proven — SAM.gov/Papers-with-Code were unreachable in runs without failing).
- Per-domain census maintenance → the adapter interface keeps domain logic small; most
projects use one existing adapter or none.
- Reciprocity false-positives on hubs → hub-page exemption in the criterion.
9. Backward compatibility
Opt-in. Existing wikis are unaffected until they run enable-feature.sh coverage-discovery.
The one exception we'd argue for shipping unconditionally is the reciprocity gate fix (§4).
10. What we're asking you to evaluate / decide
- Do you want this capability in the template at all, or should it stay per-project?
- If yes: package as a feature (our proposal) vs. fold into base SCHEMA_/gate?
- Adopt the any-means reciprocity gate fix into base
verification-gate.md now,
independent of the rest?
- If you want it, we can prepare a PR against your current manifest/feature structure
(template-manifest.sh / features/) — tell us the shape you prefer and we'll conform
to your conventions rather than impose ours.
Evidence / reference: working implementations live in five derived wikis (four with the
feature, one deliberately without); happy to walk through the LongCovid pilot, the live
census outputs, and the gate-hole post-mortem on request.
Filed by @paulrbrenner from a fleet of 5 derived wikis (4 running this capability, 1 deliberately without), with the orchestrator agent. Nothing has been changed in this template repo — this is a request for your evaluation.
TL;DR
We built and battle-tested a five-part "coverage & discovery" capability across four
derived wikis. It makes an evolving-landscape wiki self-correcting against the field
instead of dependent on the right keyword being in a search string. It is orthogonal to
the wiki mechanics you already ship (KG, gate, wiki-write-protocol) and layers cleanly on
top. We propose packaging it as an opt-in template feature (
features/coverage-discovery/,using the feature mechanism you already have) so any derived project can enable and
parameterize it. This doc explains the components, the evidence, the design decisions worth
preserving, where it does not apply, and the risks — so you can decide whether/how to
adopt it upstream.
We are not asking you to take our project-specific content; we are proposing the
generic pattern be available to all derived wikis.
1. Motivation — three failure modes of a landscape wiki
A wiki that tracks a fast-moving external field (research literature, a program landscape)
degrades in three ways that internal lint never catches:
already know to look for. New entities appear under terms not in the strings.
no home for emerging hypotheses, so they get dropped rather than parked.
never given its own node is invisible to the KG and to future queries.
The internal lint checks health (orphans, dead links, frontmatter). None of it asks
"what exists in the field that we don't cover?"
2. What we built and proved
Piloted on a Long COVID research wiki, then replicated to three others (AI-for-science,
defense-AI, human-AI-team-science). Concrete results:
census (656 interventional studies) surfaced ensitrelvir, taVNS, pyridostigmine, AXA1125
— none of which depended on a keyword. Defense-AI: a USAspending census returned 157
AI-relevant DoD awards, 63 untracked. AI-for-science: a HuggingFace proxy returned 183
untracked science-relevant models/datasets.
in-scope leaks were stubbed (Long COVID: 12; Defense-AI: 0 — all 63 deferred);
the rest defer to a quarterly audit. No KG flooding.
parked and not prematurely promoted (e.g. MCAS/small-fiber neuropathy strengthened but
kept as candidates pending the documented threshold).
link was expressed via a tag/body-link, which the typed-edge-only reciprocity check never
fired on — 14 pages silently missed their back-reference and the gate still passed. Fix:
a reciprocity criterion that triggers for a link by ANY means (tag, body link, OR
typed edge). This is a generic gate improvement independent of the rest of the proposal.
3. The five components (generalized)
objects; diff against what the wiki pages; untracked in-scope items become candidate
stubs. Registry is a pluggable adapter: ClinicalTrials.gov (medical), USAspending/SAM
(federal programs), Papers-with-Code/HuggingFace (AI methods/models), or none (pure
literature → this folds into the audit). Runs per ingest cycle.
non-exhaustive; a lightweight
Candidate-*-Watchlistholding page (one line perhypothesis, not a page each); a documented promotion rule (e.g. ≥2 independent
cohorts/sources OR 1 Tier-1 review) that logs an auditable promotion event.
periodic sweep, a rotating candidate-census over watchlist terms, and adjacent-field
queries (overlapping literatures where signals surface first).
against (a) taxonomies in recent field review articles and (b) the census. Misses flow
into the registers (watchlist entry or candidate stub, tagged with the audit id) + a
dated log entry. No parallel gap-ticket system.
of a claim (or surfaced by census/review) gets ≥ a stub node (graded lowest-confidence,
lifecycle: candidate, citing what named it). The gate enforces: (i) named→resolves,and (ii) any-means reciprocity (see §2).
4. Proposed template integration — an opt-in feature
Your repo already has the feature mechanism (
features/,feature.json,enable-feature.sh,install-feature.sh) withagent-commsas precedent. We propose:features/coverage-discovery/shipping:lifecycle: candidateaddition, open-taxonomy statement,promotion-rule template, stub invariant, discovery search-parameter families.
verification-gatefragments: the named→resolves + any-means reciprocity criteria(with a hub-page exemption — hubs legitimately list many children).
census.pyskeleton with a small registry-adapter interface and reference adapters(clinicaltrials, usaspending, papers-with-code/huggingface, and a
nonemode)./coverage-auditcommand template (quarterly)./ingeststep fragments: census + stub-sweep.Candidate-Watchlist.md.template.Recommendation: the any-means reciprocity gate fix (§2, last bullet) should land in
the base template's
verification-gate.mdregardless of whether the full feature isadopted — it's a correctness fix to the reciprocity check you already ship.
5. Per-project parameterization (the config surface)
A
feature.json/config would capture the ~4 domain knobs: the backbone-taxonomy name(mechanisms / domains / pillars / concepts), the registry adapter (or
none), theadjacent fields, and the promotion threshold. Everything else is generic.
6. Design decisions worth preserving (hard-won)
deterministic; scan agents surface discovery leads, they don't run the census.
in-scope leaks are stubbed live. Without this, the KG floods.
Mechanisms → one watchlist page; interventions/programs → individual KG nodes.
7. Where it does NOT apply
is no open external field to be complete against, so the feature should stay off. This
is why one of our five wikis deliberately does not use it.
registry: noneso Discipline gates + Verification Gate + PostToolUse advisory hook #1 foldsinto the audit (Attribute every wiki log entry to a user, one commit per log entry #4) rather than shipping a census script.
8. Risks, costs, mitigations
non-blocking (proven — SAM.gov/Papers-with-Code were unreachable in runs without failing).
projects use one existing adapter or
none.9. Backward compatibility
Opt-in. Existing wikis are unaffected until they run
enable-feature.sh coverage-discovery.The one exception we'd argue for shipping unconditionally is the reciprocity gate fix (§4).
10. What we're asking you to evaluate / decide
verification-gate.mdnow,independent of the rest?
(
template-manifest.sh/features/) — tell us the shape you prefer and we'll conformto your conventions rather than impose ours.
Evidence / reference: working implementations live in five derived wikis (four with the
feature, one deliberately without); happy to walk through the LongCovid pilot, the live
census outputs, and the gate-hole post-mortem on request.