diff --git a/docs/defect-shapes-773.md b/docs/defect-shapes-773.md index 4ea87d81e..11801fe8d 100644 --- a/docs/defect-shapes-773.md +++ b/docs/defect-shapes-773.md @@ -506,7 +506,7 @@ every shape that exists. | Entry | Scope / surface | Measured | Verdict | |---|---|---|---| | `gitea` MCP | user `~/.claude.json` | **975 calls**, 105 transcripts, last 2026-08-28 | Keep — heaviest tool in the corpus | -| `codex` plugin | `codex exec` inside `Bash`, plus `SessionStart`/`SessionEnd`/`Stop` hooks | **109–126 `Bash` inputs invoke it at command position** across ~21 transcripts, last 2026-08-28 — 109 under a quote- and heredoc-aware parse, rising toward 126 if wrappers such as `nohup` are admitted. The range is stated rather than resolved: three successive parsers gave three answers, which is the point at which a hand-written command-position grammar stops being worth another round. **258** inputs merely *contain* the string — `pgrep -f "codex exec"` polling loops and heredoc bodies mention it — so a substring count overstates it roughly twofold | Keep — heavily used, and invisible to a skill-name search | +| `codex` plugin | `codex exec` inside `Bash`, plus `SessionStart`/`SessionEnd`/`Stop` hooks | **109–126 `Bash` inputs invoke it at command position** across ~21–26 transcripts, last 2026-08-28 — 109 under a quote- and heredoc-aware parse, rising toward 126 if wrappers such as `nohup` are admitted. The range is stated rather than resolved: three successive parsers gave three answers, which is the point at which a hand-written command-position grammar stops being worth another round. **258** inputs merely *contain* the string — `pgrep -f "codex exec"` polling loops and heredoc bodies mention it — so a substring count overstates it roughly twofold | Keep — heavily used, and invisible to a skill-name search | | `playwright` | plugin MCP | 64 calls, last 2026-08-27 | Keep | | `security-guidance` | **hooks** (`SessionStart`, `UserPromptSubmit`, `PostToolUse`, `Stop`) | **1,086 execution records** in `hookInfos` naming `security_reminder_hook`, across 78 transcripts / 23 UTC days, last 2026-08-28 | Keep — **not** dead; it exposes no tool at all | | `ssh-mcp` | project `.mcp.json` | 16 calls, 9 transcripts, last 2026-08-22 | Keep | @@ -556,8 +556,8 @@ sessions here. What was demonstrably wrong with this configuration was **duplica `~/.claude/settings.json.bak-doctor`, written moments earlier, still records `serena: false`. Its tools appear in **no transcript before 2026-08-14T12:42:54Z**, then in 6 transcripts that day and 186 across the 10 days since, always in a harness-emitted availability listing rather than prose -(counts as of the 2026-08-28 snapshot; the corpus is live and grows). The -#799 session had started at 12:01Z, so its tool set never contained them; its `ToolSearch` probe at +(counts as of the 2026-08-28 snapshot; the corpus is live and grows). The #799 session had started +at 12:01Z **and never reloaded**, so its tool set never contained them; its `ToolSearch` probe at 13:41Z correctly reported them absent, and that probe *did* carry a positive control — two other `ToolSearch` queries resolved in the same session minutes before. diff --git a/docs/local-lsp-tooling.md b/docs/local-lsp-tooling.md index 57557fc46..b53336609 100644 --- a/docs/local-lsp-tooling.md +++ b/docs/local-lsp-tooling.md @@ -179,8 +179,8 @@ No active project. Ask the user to provide the project path or to select a proje from this list of known projects: ['adversarial-reviewer', 'server-management', ...] ``` -That error is the tell, and it is the system reporting the cause rather than the caller inferring it -from an empty result. Activate by absolute path, once per directory: +That error is the tell, and it is the system reporting this prerequisite rather than the caller +inferring it from an empty result. Activate by absolute path, once per directory: ``` mcp__plugin_serena_serena__activate_project project=/Users/timothy/ersatztv @@ -215,9 +215,9 @@ Traps specific to it: - **A truncated answer degrades into a summary, and says so only in its first line.** `find_referencing_symbols` with `max_answer_chars: 4000` on `ChannelPlaylist` returned *"The answer is too long (5758 characters)"* followed by a "References without surrounding lines" list. Re-run - at `max_answer_chars: 60000`, the full answer names the **same 7 files and the same 17 symbols** — - so on this query the degraded form lost only the `content_around_reference` snippets, not - coverage. One comparison is not a guarantee for every query: raise the limit and diff the two + at `max_answer_chars: 60000`, the full answer names the **same 7 files and the same 17 reference + entries across 16 distinct symbols** (`GetChannelPlaylistHandler/Handle` is referenced twice) — so + on this query the degraded form lost only the `content_around_reference` snippets, not coverage. One comparison is not a guarantee for every query: raise the limit and diff the two before treating a truncated result as exhaustive. ## Traps