fix(781,799): remove the last startup-cause clause, and two count nits
PR Gates / CI image pin matches docker/ci (pull_request) Successful in 9s
review-verdict/h10 Review-verdict: MERGEABLE @ 9b4844c (base: main)
Build ErsatzTV Image / Delimiter ban (release path) (pull_request) Successful in 20s
PR Gates / Fix proofs (Proves trailers) (pull_request) Successful in 16s
PR Gates / Docs update reminder (pull_request) Successful in 44s
Build ErsatzTV Image / CI toolchain image resolves (pull_request) Successful in 17s
Review verdict / Set review-verdict status (pull_request_target) Successful in 11s
PR Gates / decisions lifecycle (pull_request) Successful in 17s
PR Gates / Script lint and tests (ruff + pytest) (pull_request) Successful in 5m30s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 6m42s
Build ErsatzTV Image / Functional E2E (curl + UI contracts) (pull_request) Successful in 6m13s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (pull_request) Successful in 7s
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (pull_request) Successful in 6s
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 8m44s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Skipped
PR Gates / CI image pin matches docker/ci (pull_request) Successful in 9s
review-verdict/h10 Review-verdict: MERGEABLE @ 9b4844c (base: main)
Build ErsatzTV Image / Delimiter ban (release path) (pull_request) Successful in 20s
PR Gates / Fix proofs (Proves trailers) (pull_request) Successful in 16s
PR Gates / Docs update reminder (pull_request) Successful in 44s
Build ErsatzTV Image / CI toolchain image resolves (pull_request) Successful in 17s
Review verdict / Set review-verdict status (pull_request_target) Successful in 11s
PR Gates / decisions lifecycle (pull_request) Successful in 17s
PR Gates / Script lint and tests (ruff + pytest) (pull_request) Successful in 5m30s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 6m42s
Build ErsatzTV Image / Functional E2E (curl + UI contracts) (pull_request) Successful in 6m13s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (pull_request) Successful in 7s
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (pull_request) Successful in 6s
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 8m44s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Skipped
Round 3. The startup-cause clause the previous commit set out to delete survived one paragraph above its own refutation: :560 still read "started at 12:01Z, so its tool set never contained them" while :564 said start time separates nothing. Sweeping to where the reviewer pointed rather than to every site making the claim is the trap this repo calls "sweep by subject, not verb". The clause now carries the variable that actually differs — "and never reloaded" — so the two paragraphs agree. Dropping the /reload-plugins count was the right call and is now proven so: the 12:05:35Z record I had counted as a second invocation is a /doctor command whose arguments quote the words "run /reload-plugins". The reliable instrument is the harness's own receipt — `<local-command-stdout>Reloaded: N plugins`, which occurs exactly three times corpus-wide — not the command string. Two nits: the codex range is paired with ~21-26 transcripts rather than the strict parse's 21 alone, and the truncation comparison says 17 reference entries across 16 distinct symbols, since GetChannelPlaylistHandler/Handle is referenced twice. Also "the system reporting the cause" now reads "this prerequisite", since the paragraph above it establishes that activation was not #799's cause. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user