Documentation truth and structure: compiled-in-parser story, stale counts, no config reference, README as diary #527
Labels
No labels
code-review
correctness
dos
performance
security
severity/high
severity/low
severity/medium
tech-debt
Kind/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
h-dv/code-index#527
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Consolidated scope (triage 2026-11-09)
Priority: Medium: users and agents are told the wrong product shape.
This issue is now the canonical tracker for:
docs/configuration.mdfrom theConfigstructs;initwrites[logging], which nothing reads;[watcher] mode/poll_interval_msare silently ignored (from #528, closed and merged here; its full report stays readable there)docs/*with an index; comment policy (invariants, not history) (from #529, closed and merged here; its full report stays readable there)Original report
Summary
The user-facing docs still describe a product with compiled-in parsers, contradict themselves, and carry about 15 stale concrete claims. Every one of them passes CI, because the doc gates check names and verbs, never meaning, counts or config keys.
A. The builtin-vs-plugin story is told three incompatible ways
README.md:683-686: release has no native parsers and "no native fallback".README.md:880-882: "Native language fallbacks remain enabled during the staged rollout".README.md:586-595: the language table labels each plugin "tree-sitter-rust" and so on, as if compiled in.README.md:888-890says the "built-in TypeScript and JavaScript plugins/extractor" handle.svelte.tsand Vue<script>.crates/plugins/Cargo.toml: "THE SHIPPED BUILD KEEPS ONLY RUBY'S BUILTIN". But release builds use--no-default-features, so it keeps none, which the running daemon confirms..forgejo/workflows/ci.yml:1787repeats the claim.UpdateConfigdoc atcrates/indexer/src/config.rsaround line 105 sayslanguages.enabled"selects among builtins".README.md:251-263:cargo build --release, theninit, thenindex) yields Ruby only, and nothing tells the user how to get the other languages.README.md:921-925, 949-951say the daemon detects languages and installs and enables signed first-party packages.ARCHITECTURE.md:552-555says enabling "requires an explicit capability grant".README.md:898-900still says to runlanguages owner <lang> packageby hand.B. CONTRIBUTING's "Adding a language plugin" describes a retired path
CONTRIBUTING.md:163-182: implementLanguagePluginincrates/plugins/src/<lang>.rsand register it inall_plugins(). Languages now ship as.cipwasm packages, and the real guide,_prdoc/guides/80-package-authoring.md, is never linked.C. Stale counts and facts
ARCHITECTURE.md:7says "Three binaries"; there are four, countingcode-index-plugin-host.ARCHITECTURE.md:49saysIndexAccesshas "18 methods total";crates/daemon/src/access.rs:147-637has 43.ARCHITECTURE.md:380-381says "21*Argstypes / tool 22"; there are 23 tools.ARCHITECTURE.md:455-460says the daemon has "a singleArc<Mutex<Connection>>"; a read pool exists (daemon/src/startup.rs:52, and the document's own line 255).ARCHITECTURE.md:536-537: the plugin operator surface listed there omitsadd,update,catalog,key,trustandsign.ARCHITECTURE.md:557-559says the citation gate "cannot see markdown"; it can now.README.md:296says "14 resources"; at least 17 are served.README.md:878says "ten packages";distribution/registry.v1.jsonhas 11.README.md:1225: the relationship enum is missingworktree(config.rs:613).README.md:1279promises "Phase 2" tools that do not exist (find_base_definition, …).CONTRIBUTING.md:6says "Rust 1.88+"; the workspacerust-versionis 1.99.1 (Cargo.toml:80).CONTRIBUTING.md:62says "Seven corpus repositories";tests/corpus/corpus.tomlhas 9.CONTRIBUTING.md:199-211says 6 crates and "five language plugins"; there are 17+ crates.CONTRIBUTING.md:166saysrust.rsis "~450 lines"; it is 3,864.CONTRIBUTING.md:221says the daemon "owns a single port"; it binds127.0.0.1:0.CONTRIBUTING.md:18lists "four gates"; CLAUDE.md requires six.D. Why the gates miss this
crates/abi/tests/doc_citation_gate.rschecks that backticked lower-snake names of five or more words resolve to real items. Its own table shows the root markdown yields 670 backticked spans and 1 citation, so README and ARCHITECTURE are effectively ungated. It does not scandocs/**or the MCP-servedcrates/mcp-server/src/docs/*.md.readme_cli_reference.rsonly checks that each--helpverb appears somewhere in the README.Proposal
init/the daemon installs automatically, on which trigger, signed by whom, and how to turn it off. Fix A and B against that paragraph, and add a "from source" section.IndexAccessarity, the relationship enum, the binary list,rust-versionand the corpus size. Extend the citation gate's scan todocs/**andcrates/mcp-server/src/docs.Note: per project rules, do not write the current release version into new docs.
Found by an automated docs-vs-code review (2026-11-09). README:880, CONTRIBUTING:6, ARCHITECTURE:7 and release.yml were verified by hand.
Filed from a five-agent review of master @
e3ec6ead(bloat, robustness, agent usefulness, docs, architecture). Every finding was spot-checked in the main session before filing.Docs describe compiled-in parsers and carry ~15 stale counts that no gate checks — add a derived-facts registryto Documentation truth and structure: compiled-in-parser story, stale counts, no config reference, README as diaryMerged into #570.
docs/configuration.md is checked by configuration_reference_matches_decoder_both_ways; product/build/authoring guidance was corrected on master.
Remaining: Documentation structure and facts; no-effect key policy is under Compatibility and release settings.