You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make public provider documentation mechanically agree with the shipped registry
and verified experiment catalog. Document every currently registered provider,
its installation/selection contract, exact authority and fact limits,
configuration/rebuild behavior, platform support, fallback, and measured
status. Prevent future registry/documentation drift in CI.
This issue changes documentation and its verification source; it does not claim
the future semantic completeness planned in #63/#72-#84.
Scala, Swift and Zig intentionally have no strict provider on current master.
Their registry placeholders were removed rather than advertising non-existent
or coverage-regressing programs.
The root README explains the registry and only documents TypeScript and Go,
then says the remaining languages use their listed language servers until
compiler-owned providers land. That sentence is false: nine additional strict
entries can be selected, with sharply different facts and requirements.
The install table also omits strict dependencies and overrides such as:
For Ruby/Dart, say only that both end-to-end cells failed to finish before the
1,800-second guard. The separate request diagnosis covers strict-disabled LSP
fan-out, not isolated strict-producer time.
Decision: one support manifest, generated README block, parity test
Create a versioned maintainer-owned support manifest, for example docs/provider-support.json, with one row per advertised provider:
Do not make prose the sole source of machine-checkable provider names/facts.
Do not make runtime provider closures introspect documentation strings.
The manifest is a documentation source of truth whose registry-facing fields
are mechanically checked:
import/inspect GRAPH_PROVIDERS;
compare provider name, languages, authority and facts exactly;
compare environment override names against provider resolver metadata or an
explicit exported descriptor;
compare experiment provider/tool/capability rows in tests/experiment/src/catalog.mjs;
validate platform/install/benchmark links and unique rows; and
reject both an undocumented registered provider and a documented absent
provider.
Where resolver closures currently hide override/command metadata, refactor a
small immutable descriptor shared by resolver and support-manifest validation.
Do not duplicate magic environment names in three unrelated files.
Generate a delimited README support-matrix block from the manifest. Human
introduction, caveats and examples remain hand-written; the dense provider
matrix is reproducible. packages/graph/README.md remains generated/copied and
must not be hand-edited.
Required public structure
Product trust paragraph
Explain:
strict provider selection is per registered provider and can decline;
authority grades differ;
facts means a producer can defend that family, not universal completeness;
current dumps carry provider provenance, universe/manifest/content digests;
Show authority and exact current facts. Empty current fact lists must be visible,
not euphemized as “semantic index.” Separate “registered today” from “final
route tracked by #72-#84.”
Lifecycle/performance table
State actual current mode (full-rebuild, shard-reuse, semantic- incremental) only when a trace proves it. Link the exact experiment and
measurement. Separate preparation, native analysis, export/merge and resident
claims. Label engineering targets as targets.
Troubleshooting
For each provider, give the command/override, expected provenance name, common
decline reason and fallback. A user following the install table must be able to
tell whether the strict provider served the build.
Implementation map
Add the support-manifest schema and current 11 rows from code/experiment
evidence.
Export/refactor only the provider descriptor fields required to verify
commands/overrides; do not change runtime behavior.
Add a renderer/check command and focused parity tests.
Replace the README's two-provider/obsolete timing sections with a generated
block plus concise explanatory prose.
Run the package build/copy and prove packages/graph/README.md matches root.
Add the check to CI so future registry changes must update documentation in
the same pull request.
Acceptance
All 11 current provider entries and all advertised languages appear
exactly once.
Registry name/languages/authority/facts equal the support manifest.
Install commands, decoder/toolchain requirements, environment overrides,
preparation, platforms, mode, limitations and fallback are present.
Scala/Swift/Zig are clearly ordinary-only today with links to their open
strict-provider issues.
The TypeScript/Go-only sentence and MCP completeness overclaim are removed
or accurately qualified.
Document current master immediately; do not wait for every #72-#84 provider.
When a child provider ships, its registry/experiment/support-manifest row and
README block update are one atomic change. #63's future structured coverage
fields extend the same manifest/table but do not block correcting today's
false claims.
Outcome
Make public provider documentation mechanically agree with the shipped registry
and verified experiment catalog. Document every currently registered provider,
its installation/selection contract, exact authority and fact limits,
configuration/rebuild behavior, platform support, fallback, and measured
status. Prevent future registry/documentation drift in CI.
This issue changes documentation and its verification source; it does not claim
the future semantic completeness planned in #63/#72-#84.
Current master mismatch
GRAPH_PROVIDERScontains 11 provider entries:
ttscgraphsamchon-graph-gosamchon-graph-luarust-analyzer-scipscip-clangscip-javascip-dotnetscip-pythonscip-rubyscip-dartscip-phpScala, Swift and Zig intentionally have no strict provider on current master.
Their registry placeholders were removed rather than advertising non-existent
or coverage-regressing programs.
The root README explains the registry and only documents TypeScript and Go,
then says the remaining languages use their listed language servers until
compiler-owned providers land. That sentence is false: nine additional strict
entries can be selected, with sharply different facts and requirements.
The install table also omits strict dependencies and overrides such as:
scip, rustc and Cargo;scip-clang,scip-java,scip-dotnet,scip-python,scip-ruby,scip_dart,scip-php;SAMCHON_GRAPH_SCIP_*, toolchain and decoder overrides; andpackages/graph/README.mdis a build copy of the root, so npm publishes thesame mismatch.
Measurement truth that documentation must preserve
The exact current table is
tests/benchmark/results/graph.json,produced by
run
30448033020.It has 13 same-run strict/strict-off pairs.
Documentation must not:
For Ruby/Dart, say only that both end-to-end cells failed to finish before the
1,800-second guard. The separate request diagnosis covers strict-disabled LSP
fan-out, not isolated strict-producer time.
Decision: one support manifest, generated README block, parity test
Create a versioned maintainer-owned support manifest, for example
docs/provider-support.json, with one row per advertised provider:Do not make prose the sole source of machine-checkable provider names/facts.
Do not make runtime provider closures introspect documentation strings.
The manifest is a documentation source of truth whose registry-facing fields
are mechanically checked:
GRAPH_PROVIDERS;explicit exported descriptor;
tests/experiment/src/catalog.mjs;provider.
Where resolver closures currently hide override/command metadata, refactor a
small immutable descriptor shared by resolver and support-manifest validation.
Do not duplicate magic environment names in three unrelated files.
Generate a delimited README support-matrix block from the manifest. Human
introduction, caveats and examples remain hand-written; the dense provider
matrix is reproducible.
packages/graph/README.mdremains generated/copied andmust not be hand-edited.
Required public structure
Product trust paragraph
Explain:
factsmeans a producer can defend that family, not universal completeness;and
Remove “the graph holds every symbol, call, type, decorator and test” unless the
statement is qualified by provider coverage.
Installation/selection table
For every language:
Capability table
Show authority and exact current facts. Empty current fact lists must be visible,
not euphemized as “semantic index.” Separate “registered today” from “final
route tracked by #72-#84.”
Lifecycle/performance table
State actual current mode (
full-rebuild,shard-reuse,semantic- incremental) only when a trace proves it. Link the exact experiment andmeasurement. Separate preparation, native analysis, export/merge and resident
claims. Label engineering targets as targets.
Troubleshooting
For each provider, give the command/override, expected provenance name, common
decline reason and fallback. A user following the install table must be able to
tell whether the strict provider served the build.
Implementation map
evidence.
commands/overrides; do not change runtime behavior.
block plus concise explanatory prose.
packages/graph/README.mdmatches root.the same pull request.
Acceptance
exactly once.
preparation, platforms, mode, limitations and fallback are present.
strict-provider issues.
or accurately qualified.
describes Ruby/Dart timeout limits precisely.
the canonical build/copy path.
pnpm build,pnpm test, andpnpm coveragepass.
Coordination
Document current master immediately; do not wait for every #72-#84 provider.
When a child provider ships, its registry/experiment/support-manifest row and
README block update are one atomic change. #63's future structured coverage
fields extend the same manifest/table but do not block correcting today's
false claims.