The following documentation statements contradict the actual code. Grouped into one issue since each is a small wording fix.
1. start-screen “any key” overstatement
plugin/startscreen.vim — line 57 (prompt text) and line 96 (comment) vs lines 97-110 (enumerated mappings)
The on-screen prompt reads 'Press any key to start...' and the in-code comment on line 96 says 'Any keypress closes the start screen', but dismissal is wired to a hard-coded enumeration: a-z, A-Z, 0-9, , , , , the four arrows, , and :, /, ?. Keys outside that set are not mapped and do nothing useful on this nomodifiable buffer (they bell or are silently ignored): common ones a user is likely to mash include '.', ',', ';', '-', '+', '*', '#', '%', '~', Enter on the numpad, /, /, -, and mouse clicks. So a user who presses, e.g., '.' or PageDown expecting 'any key' to dismiss gets no response, contradicting both the prompt and the comment. (Note: CLAUDE.md's wording is accurate — it lists the enumerated set; only the user-facing prompt string and the line-96 comment overpromise.)
Fix: Either soften the wording (prompt: 'Press Enter, Esc, or Space to start...'; comment: 'A common set of keys closes the start screen') OR broaden coverage so it truly behaves as 'any key' — e.g. map punctuation/function/page keys too, or simpler, route everything through a single fallback by also handling the unmapped case. The minimal honest fix is the wording change since the enumerated set already covers the keys CLAUDE.md documents.
2. CLAUDE.md lists phantom ::/-> triggers
CLAUDE.md — Autocomplete section, line 108
Line 108 describes trigger characters as "filetype-configured trigger characters (., ::, ->, etc.)". The engine matches a single character before the cursor against b:ivim_complete_triggers, and every ftplugin only registers single characters (c/cpp use ['.', '>'], css uses [':'], html uses ['<','/',' '], sh uses ['$'], etc.). No ftplugin uses the multi-char strings :: or ->; per the project's own design notes, :: was explicitly removed because the multi-char :: froze Rust/Lua/C++ completion. Listing ::/-> as configured triggers contradicts both the code and the recorded design decision.
Fix: Replace the illustrative list with the actually-used single characters, e.g. "(., >, :, <, /, $, space)", and drop the ::/-> examples.
3. README omits HTML space trigger
README.md — Autocomplete section, line 159
README line 159 lists the omnifunc trigger characters as "(., :, >, <, /, $)". after/ftplugin/html.vim registers space as a trigger (['<', '/', ' ']), so in HTML buffers a literal space fires htmlcomplete#CompleteTags. The space trigger is omitted from the documented set.
Fix: Add space to the documented trigger list, or note that HTML additionally triggers on space.
4. README structure tree omits plugin/context_menu.vim
README.md — Project Structure block, lines 195-200
The README "Project Structure" diagram lists five files under plugin/ (autocomplete.vim, keymaps.vim, settings.vim, startscreen.vim, statusline.vim) but omits plugin/context_menu.vim, which is a real file that implements the right-click Copy/Cut/Paste menu documented elsewhere in the same README (line 105) and in CLAUDE.md. A reader auditing the directory against the README would find an undocumented plugin file.
Fix: Add │ ├── context_menu.vim # Right-click Copy/Cut/Paste menu to the README plugin/ listing to match the actual file set and CLAUDE.md.
Filed from an automated multi-agent source review (2026-05-29); finding adversarially verified at high confidence. Line numbers reflect the audit-fixes-2026-05 working tree.
The following documentation statements contradict the actual code. Grouped into one issue since each is a small wording fix.
1. start-screen “any key” overstatement
plugin/startscreen.vim— line 57 (prompt text) and line 96 (comment) vs lines 97-110 (enumerated mappings)The on-screen prompt reads 'Press any key to start...' and the in-code comment on line 96 says 'Any keypress closes the start screen', but dismissal is wired to a hard-coded enumeration: a-z, A-Z, 0-9, , , , , the four arrows, , and :, /, ?. Keys outside that set are not mapped and do nothing useful on this nomodifiable buffer (they bell or are silently ignored): common ones a user is likely to mash include '.', ',', ';', '-', '+', '*', '#', '%', '~', Enter on the numpad, /, /, -, and mouse clicks. So a user who presses, e.g., '.' or PageDown expecting 'any key' to dismiss gets no response, contradicting both the prompt and the comment. (Note: CLAUDE.md's wording is accurate — it lists the enumerated set; only the user-facing prompt string and the line-96 comment overpromise.)
Fix: Either soften the wording (prompt: 'Press Enter, Esc, or Space to start...'; comment: 'A common set of keys closes the start screen') OR broaden coverage so it truly behaves as 'any key' — e.g. map punctuation/function/page keys too, or simpler, route everything through a single fallback by also handling the unmapped case. The minimal honest fix is the wording change since the enumerated set already covers the keys CLAUDE.md documents.
2. CLAUDE.md lists phantom
::/->triggersCLAUDE.md— Autocomplete section, line 108Line 108 describes trigger characters as "filetype-configured trigger characters (
.,::,->, etc.)". The engine matches a single character before the cursor against b:ivim_complete_triggers, and every ftplugin only registers single characters (c/cpp use ['.', '>'], css uses [':'], html uses ['<','/',' '], sh uses ['$'], etc.). No ftplugin uses the multi-char strings::or->; per the project's own design notes,::was explicitly removed because the multi-char::froze Rust/Lua/C++ completion. Listing::/->as configured triggers contradicts both the code and the recorded design decision.Fix: Replace the illustrative list with the actually-used single characters, e.g. "(
.,>,:,<,/,$, space)", and drop the::/->examples.3. README omits HTML space trigger
README.md— Autocomplete section, line 159README line 159 lists the omnifunc trigger characters as "(
.,:,>,<,/,$)". after/ftplugin/html.vim registers space as a trigger (['<', '/', ' ']), so in HTML buffers a literal space fires htmlcomplete#CompleteTags. The space trigger is omitted from the documented set.Fix: Add space to the documented trigger list, or note that HTML additionally triggers on space.
4. README structure tree omits
plugin/context_menu.vimREADME.md— Project Structure block, lines 195-200The README "Project Structure" diagram lists five files under plugin/ (autocomplete.vim, keymaps.vim, settings.vim, startscreen.vim, statusline.vim) but omits plugin/context_menu.vim, which is a real file that implements the right-click Copy/Cut/Paste menu documented elsewhere in the same README (line 105) and in CLAUDE.md. A reader auditing the directory against the README would find an undocumented plugin file.
Fix: Add
│ ├── context_menu.vim # Right-click Copy/Cut/Paste menuto the README plugin/ listing to match the actual file set and CLAUDE.md.Filed from an automated multi-agent source review (2026-05-29); finding adversarially verified at high confidence. Line numbers reflect the
audit-fixes-2026-05working tree.