knowledge: 6 insights — gate EVIDENCE exit-code class (unset CLAUDE_PLUGIN_ROOT), jq . rebinding in predicates, worker-reported plan contradiction, benchmark speedup attribution, sequential-dispatch test under a thread pool, lock-protection race-window test (6 new pages, 0 merges, 0 drops) - #189
Open
choiyounggi wants to merge 1 commit into
Open
knowledge: 6 insights — gate EVIDENCE exit-code class (unset CLAUDE_PLUGIN_ROOT), jq . rebinding in predicates, worker-reported plan contradiction, benchmark speedup attribution, sequential-dispatch test under a thread pool, lock-protection race-window test (6 new pages, 0 merges, 0 drops)#189choiyounggi wants to merge 1 commit into
. rebinding in predicates, worker-reported plan contradiction, benchmark speedup attribution, sequential-dispatch test under a thread pool, lock-protection race-window test (6 new pages, 0 merges, 0 drops)#189choiyounggi wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Knowledge flush — 6 insight(s)
Run: auto-flush headless child (run id
20260910-161926-53458), queue drained from 3 session files (6 claimed rows, none previously processed). Outcome: 6 new pages, 0 merges, 0 folds, 0 drops. Lint after ingest:wiki-structure-checks.js282 pages / 13 indexes / 0 findings;wiki-lint-prohibitions.jsdirectives 75 / violations 0 (count unchanged, so the bats pin needs no bump); every new page ≤ 120 body lines (56–75). Six research agents vetted one candidate each against primary sources; local reproductions were run where the claim was runnable, and every cited URL was fetched or search-confirmed live this run.Verified best-practice
infrastructure-agent-orchestration-gate-evidence-exit-code-class(16f22ec2) — verified. GNU Bash manual "Exit Status" ("If a command is not found … returns a status of 127. If a command is found but is not executable, the return status is 126"); POSIX XCU §2.6.2 Parameter Expansion (an unset${parameter}with no modifier substitutes nothing, so${CLAUDE_PLUGIN_ROOT}/skills/…becomes/skills/…); code.claude.com plugins reference (${CLAUDE_PLUGIN_ROOT}is substituted only in skill/agent content, hook/monitor commands, MCP and LSP server fields — no plain-shell export documented). Source read of dev-loop v1.21.0:templates/plan-gates.mdleaves the variable live forgate-check.sh'sbash -c;gate-check.shrecordsexit=<code>: <output>with no 126/127 special-casing;plan-gate.shdocuments its own codes 0/2/3/4. Field: the candidate's ledger went met=1 unmet=4 (all exit=127) → met=5 unmet=0 with the variable exported and no file edited.platforms-tools-jq-dot-rebinding-in-predicates(3564214d) — verified. jqlang.org manual (pipe rebinds.: ".a | . | .bis the same as.a.b";index(s)on an array input is a subsequence search;IN(s);any(gen; cond)), identical wording in the 1.6 manual; Stack Overflow 48898983 (scalarindexis the one-element special case of subsequence search). Local reproduction on jq-1.7.1-apple:["a","b"] as $arr | ["b","zzz"] | any(.[]; $arr | index(.) != null)→trueeven for an input sharing nothing with$arr;. as $x | $arr | index($x) != nullandany(.[]; IN($arr[]))discriminate correctly;["a","b"] | index(["a","b"])→0. Field site confirmed by source read: dev-loopskills/orchestrate/scripts/graph-drop.sh:67.infrastructure-agent-orchestration-worker-reported-plan-contradiction(d7a0cae5) — field-tested. Supporting sources: Pythonsqlite3docs (IntegrityErrorandOperationalErrorare both subclasses ofDatabaseError⊂Error, soexcept sqlite3.Errorswallows anIntegrityErrora test asserts propagates — verified); Anthropic "Building multi-agent systems" (verification subagent must "run the complete test suite before marking as passed") and "How we built our multi-agent research system" (lead agent synthesizes subagent results as evidence) support the general resolve-by-running principle; principles-wiki DRY entry (a single source of truth is what stops representations diverging). No primary source names the exact design-doc-vs-step-file case, so the page stays field-tested; the field run is quoted (2 failed, 242 passed, both failuresDatabaseErrorwrappingIntegrityError).debugging-performance-attributing-a-benchmark-speedup(048faa67) — verified. Brendan Gregg "Active Benchmarking" ("you benchmark A, but actually measure B, and conclude you've measured C"); Gregg "Evaluating the Evaluation: A Benchmarking Checklist" ("what is the limiting factor?"; a firewall timeout measured as server latency); Gernot Heiser "Systems Benchmarking Crimes" (a measured delta does not follow from the change believed to cause it; compare against the real, correctly configured baseline). Field:bench_pipeline.py:354built the baseline withdelay_seconds=0.0whilelocal_scraper.py:126readdefault_config.DELAY_SECONDS(3.0) — the credited removed sleep cost nothing in the measurement.testing-quality-sequential-dispatch-assumption-under-concurrency(28c88c5f) — verified. Pythonconcurrent.futuresdocs (submit()schedules and returns a Future; defaultmax_workers = min(32, cpu+4);shutdown(cancel_futures=True)cancels only not-yet-started futures); Fowler "Eradicating Non-Determinism in Tests"; Google Testing Blog "Where do our flaky tests come from" (concurrency changes as a measured cause). Local reproduction, CPython 3.14.6: 3 tasks,max_workers=4, task 1 sets an Event checked at each task's top →ran: [0, 1, 2];max_workers=1→ran: [0, 1]. Field:test_shutdown_stops_after_current_companydeterministically red (call_count 3 vs 1) after the ThreadPoolExecutor migration, 265/266 on repeated runs.testing-quality-proving-a-critical-section-is-lock-protected(5d88d302) — verified. Python FAQ "What kinds of global value mutation are thread-safe?" (D[x] = D[x] + 1is not atomic);sys.setswitchintervaldocs; Google Testing Blog "Mutation Testing" (a test proves detection only if it fails when the guarded behavior is removed); Python free-threading HOWTO for the 3.13+ caveat. Local reproduction, CPython 3.14.6 with GIL: plain dict+=, 16 threads × 10, no lock → 160 in 20/20 trials (0 races);__setitem__-sleeping dict subclass, no lock → 10 in 10/10 trials; withwith lock:→ 160 in 10/10. The candidate arrived as a prohibition ("don't rely on raw stress") and was rewritten as the positive directive with the prohibition kept only as anInstead ofrow.Existing-layer check
Routing went INDEX.md → domain
index.md→ every page whose "load when" overlapped; a second domain index was read wherever the queue tag was doubtful (d7a0cae5 tagged backend → infrastructure/agent-orchestration, the domain that owns the coordinator/worker process; 048faa67 tagged qa → debugging/performance, which already hosts the sibling Gregg-sourced benchmark page; 28c88c5f/5d88d302 → testing/quality rather than testing/async or testing/flaky, since both concern a test's ability to fail, not async code or intermittent failures).Pages read: testing-quality-checks-that-cannot-pass, debugging-signals-reading-error-messages, platforms-environment-path-resolution, platforms-shells-command-text-inspected-before-execution, infrastructure-config-path-valued-config, infrastructure-agent-orchestration-session-completion-gates, infrastructure-agent-orchestration-control-signals-vs-primary-artifacts, platforms-tools-plugin-mcp-server-registration, platforms-shells-portable-shell-scripts, platforms-shells-escapes-in-shell-string-literals, platforms-processes-parsing-cli-structured-output, testing-quality-tests-that-cannot-fail, testing-quality-guard-shape-vs-consequence, infrastructure-agent-orchestration-autonomous-decision-rulings, infrastructure-agent-orchestration-unattended-worker-questions, infrastructure-agent-orchestration-shared-run-state, qa-process-evaluating-review-feedback, backend-common-llm-binding-instructions-for-agents, debugging-methodology-hypothesis-testing, qa-deliverables-quantitative-claims-in-a-published-document, qa-process-completion-claims, debugging-performance-profile-before-optimizing, debugging-methodology-probe-path-vs-operation-path, testing-quality-harness-reverse-controls, testing-async-async-testing, testing-flaky-diagnosing-flaky-tests, testing-quality-behavior-not-implementation, backend-common-concurrency-shared-state-and-pools, backend-python-concurrency-gil-and-concurrency-model, backend-node-runtime-graceful-shutdown, debugging-concurrency-intermittent-failures, testing-quality-mutation-harness-file-custody, testing-quality-write-path-assertions, backend-common-concurrency-distributed-locks
Read from open-PR branches only (not on main): testing-quality-gate-parsing-vs-command-execution (#183), infrastructure-agent-orchestration-checkable-claims-in-an-adopted-plan (#181), infrastructure-agent-orchestration-verify-command-in-a-worker-brief and -semantic-conflicts-after-parallel-merge (#179), infrastructure-agent-orchestration-inbound-validation-ownership-in-task-decomposition (#182), infrastructure-agent-orchestration-forward-references-in-a-numbered-protocol (#180), backend-common-llm-vendor-benchmark-claims-for-an-llm-tool (#182), testing-quality-narration-based-ordering-assertions and testing-quality-cross-task-stub-assertions (#188).
Overlaps and outcomes:
jq/index(.)/rebindfound no existing guidance); autonomous-decision-rulings (how to record a ruling, not how to decide a testable contradiction); profile-before-optimizing (pre-optimization profiling, not post-hoc attribution) and harness-reverse-controls (mutation-harness construct validity, not benchmark arms); async-testing (async code, not dispatch-model migration); intermittent-failures (widens a race to diagnose an observed flake — the new page authors a test before any failure is observed and cites it).${VAR}in MCP config stays literal while the shell expands it to empty.related:only, appended at the end of each list to minimise textual conflict with open PRs that touch the same files). The two testing pages link each other. Deferred until the owning PRs land, because the target ids do not resolve on main: gate-evidence-exit-code-class ↔ gate-parsing-vs-command-execution (knowledge: 9 insights — fresh-context review, gate parser/executor split, coordinator under tmux, sun_path limit, REPL sentinel await, allowlist bypass reproduction, version-drift gate, mock ts at emit (+3 folds onto #180/#181, 1 stale drop) #183); worker-reported-plan-contradiction ↔ checkable-claims-in-an-adopted-plan (knowledge: 12 insights — dropzone copy vs drop handlers, destination-in mask chaining, media-query inset reset, spatial clamp, env restore vs pop, synthetic-corpus floor, plan-claim recompute, multi-name command -v, alert suppression key, sibling validators (+2 folds) #181; the page's inline reference to it was rewritten as plain text); attributing-a-benchmark-speedup ↔ vendor-benchmark-claims-for-an-llm-tool (knowledge: 12 insights — sequential ids across parallel workers, inbound-validation task ownership, vendor benchmark claims, element crop screenshots, WebFetch summary vs raw page, Steps-prose guarantees, split fact-check verdicts (+4 folds, 1 dup) #182). The reverse link from tests-that-cannot-fail to the two new testing pages and the jq page is also deferred: three open PRs (knowledge: 12 insights — deny rules under bypass, merged-tree gate, worker verify command, Kotlin daemon heap, extracted-method this (+7 merges) #179, knowledge: 8 insights — SwiftPM executable-target tests, off-screen macOS capture without Screen Recording, Testcontainers reaper on Docker Desktop, ciphertext orphaned by a regenerated key, model-coupled guidance aging detector, CORS preflight probe silence, queued-candidate store check, literal-constant re-assertion (+3 folds onto #181, 1 pending-duplicate drop) #186, knowledge: 21 insights — fork-PR secret gates, review-bot exit codes, dict-subclass copy loss, iterative DFS, citation sweep, plugin-prose identity leak, xcodegen regen loss, narration ordering tests, autouse shadowing, stub contracts, real-CLI spot checks (+8 merges, 1 fold onto #183) #188) already edit that file, so a fourth edit was avoided; the forward links from the new pages are in place.Open-PR check
Open
knowledge/*heads listed viagh pr list --search "head:knowledge/"and fetched: #188 (knowledge/choiyounggi-20260908-154412), #187 (…-20260906-213635), #186 (…-20260906-013856), #185 (…-20260906-003745), #183 (…-20260904-133717), #182 (…-20260903-214027), #181 (…-20260903-203836), #180 (…-20260903-184706), #179 (…-20260903-172728). Each candidate was diffed against every head'swiki/changes (git diff origin/main origin/<head> -- wiki/, grepped for the candidate's key terms, overlapping pages read viagit show origin/<head>:<path>).Per-candidate verdicts:
CLAUDE_PLUGIN_ROOT, or "command not found"..rebinding). knowledge: 11 insights — login-expired panes, O_APPEND blackboard, numbered-protocol grafts, --ours on mixed conflicts, unittest floor false positives, SwiftUI sheet gating, silent hotkey registration, rolled-back-run assertions (+3 merges) #180 adds jq content to portable-shell-scripts about the shell re-splittingjq -routput in aforloop (same graph-drop script family, different root cause; its own suggested fix uses--argbinding and never mentions the pipe-rebinding trap). Not folded: one case per page.submit/dispatch semantics. knowledge: 21 insights — fork-PR secret gates, review-bot exit codes, dict-subclass copy loss, iterative DFS, citation sweep, plugin-prose identity leak, xcodegen regen loss, narration ordering tests, autouse shadowing, stub contracts, real-CLI spot checks (+8 merges, 1 fold onto #183) #188's narration-based-ordering-assertions is a different failure mode.Routing decision
No new category or domain was created; every candidate fit an existing category.
toolsper the bsd-vs-gnu-cli precedent for CLI-tool semantics — notshells, which owns quoting/portability)