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
Conversation
…parser/executor split, coordinator under tmux, sun_path limit, REPL sentinel await (+3 merges, 3 folds, 1 drop)
|
Fold from knowledge-flush 2026-09-08 (PR #188) — a queued insight overlaps this PR's New | A ledger's `CHECK:` field is written as a multi-line command (heredoc, or `python -c "…"` spanning several lines) | gate-check.sh's line-based parser matches only the line carrying the `CHECK: ` marker (`skills/loop-implement/scripts/gate-check.sh:117-118`), and its parsing loop has no wildcard case, so every continuation line is silently dropped rather than appended or flagged. The truncated fragment (an unterminated `python -c "`) reaches the executor unchanged, so `--run` reports `exit=2: unexpected EOF while looking for matching quote` — a shell syntax error that reads as a broken implementation, not a malformed gate. Reproduce the CHECK by hand first: collapse it to one line, or point `CHECK` at a script file holding the multi-line logic, then re-run. If the collapsed version succeeds, the ledger's `CHECK` was malformed, not the code being gated |New - Local reproduction 2026-09-08 (`skills/loop-implement/scripts/gate-check.sh --run`): a ledger with `CHECK: python3 -c "` on one line and its body/closing quote on the next two lines produced `EVIDENCE: exit=2: /bin/bash: -c: line 0: unexpected EOF while looking for matching \`"'`; the identical logic collapsed to one line produced `EVIDENCE: exit=0 matched: WSGI_APP_OK` and ticked the boxAlso append to the page's Origin: field incident |
Knowledge flush — 12 insight(s)
12 candidates claimed from
~/.dev-loop/queue(harvested 2026-08-19 … 2026-09-02). Outcome: 5 new pages, 4 amended main pages, 3 candidates folded onto open knowledge PRs (#180 ×2, #181 ×1), 1 dropped as stale. Every quote below was re-fetched withcurlin this run after three read-only research agents drafted it; local reproductions were re-run in this session.Verified best-practice
verified. https://arxiv.org/abs/2603.12123 (Song, "Cross-Context Review", Mar 2026) re-fetched: abstract reads "CCR reached an F1 of 28.6%, outperforming SR (24.6%, p=0.008, d=0.52), SR2 (21.7%, p<0.001, d=0.72), and SA (23.8%, p=0.004, d=0.57)"; SR2 vs SR p=0.11. Corroborated by this repo's ownagents/test-quality-auditor.md("so the session that wrote the code does not grade its own tests") andagents/integration-reviewer.md("from a fresh context the coordinator's own session never reaches").verifiedfor the technique (CWE-88 https://cwe.mitre.org/data/definitions/88.html; Cargo docs:--manifest-pathpackage selection https://doc.rust-lang.org/cargo/commands/cargo-test.html, build scripts "It will then run the script" https://doc.rust-lang.org/cargo/reference/build-scripts.html,--config"should be in TOML syntax" https://doc.rust-lang.org/cargo/reference/config.html); the linkly-crew incident itself is field evidence (2026-08-31).field-tested(dev-loop mpa1 run, 2026-08-23); the mechanism is an internal-repo fact (dev-loop's marketplace entry is a url-source self-reference — confirmed byscripts/check-versions.sh's own comment).verified. CWE-78 https://cwe.mitre.org/data/definitions/78.html;timeout(1)https://man7.org/linux/man-pages/man1/timeout.1.html ("run a command with a time limit", exit 124 "if COMMAND times out"); local read ofskills/loop-implement/scripts/gate-check.sh(--status … never executes CHECK,GATE_CHECK_TIMEOUT … via a perl alarm).d37fd67(2026-09-02, "fix(orchestrate): stop archive_scratch from archiving gitignored deps (orchestrate: safe-cleanup teardown hangs archiving gitignored deps (node_modules) via ls-files --others without --exclude-standard #170)") switched enumeration togit ls-files --others --exclude-standardandtests/safe-cleanup.bats:746guards it. The proposed manual recursive delete of.worktrees/*/targetbefore teardown would be stale advice against the current tool.field-tested. tmux(1) https://man7.org/linux/man-pages/man1/tmux.1.html ("Each session is persistent and will survive accidental disconnection", "all sessions are managed by a single server"); POSIX §11.1.10 https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap11.html ("the SIGHUP signal shall be sent to the controlling process for which the terminal is the controlling terminal"); Orca docs https://www.onorca.dev/docs/ssh ("A short grace period (5 minutes by default, configurable per target)") — this corrects the candidate's--grace-time 0, which is not carried into the page as fact.field-tested, causal claim labelled hypothesis. https://code.claude.com/docs/en/authentication ("credentials are stored in~/.claude/.credentials.json", a differentCLAUDE_CONFIG_DIR"reads a different entry"); RFC 9700 §2.2.2 https://www.rfc-editor.org/rfc/rfc9700.txt ("Refresh tokens for public clients MUST be sender-constrained or use refresh token rotation") supports the general pattern only.verified. https://code.claude.com/docs/en/plugin-marketplaces ("Avoid settingversionin bothplugin.jsonand the marketplace entry. Claude Code always uses theplugin.jsonvalue without warning"); https://raw.githubusercontent.com/mattpocock/skills/main/scripts/sync-plugin-version.mjs (--check→process.exit(1), wired ascheck-plugin-version); this repo'sscripts/check-versions.sh+.github/workflows/test.yml"Version gate (marketplace.json vs plugin.json)" step.verified. Local read ofskills/orchestrate/scripts/test-floor.shclassify()(patterns*.bats,test_*.py,*_test.go,*.test.*,*/tests/*— no.rs); Rust Book https://doc.rust-lang.org/book/ch11-03-test-organization.html ("put unit tests in the src directory in each file with the code that they're testing … create a module named tests in each file").sun_pathlimit in deep worktrees (886a2b6aff8e8a6b) —verified. macOS SDKsys/un.hline 79char sun_path[104];; Linux https://man7.org/linux/man-pages/man7/unix.7.htmlchar sun_path[108]; Node https://nodejs.org/api/net.html ("Typical values are 107 bytes on Linux and 103 bytes on macOS"); local reproduction this run:net.createServer().listen(<131-byte path under ~/.dev-loop/tmp>)→listen EINVAL.verified. https://nodejs.org/api/repl.html ("Support for theawaitkeyword is enabled at the top level"); local reproduction this run (Node v26.7.0,node -ivia piped stdin): unawaited IIFE printed onlyPromise { <pending> }, awaited form printeddone-awaited.field-tested. Research agent read linkly-crew commit530e7e2("stamp MockEventSource ts at delivery, not build time") and its regression test; no external doc names this specific pattern, so it rides on the host pages' verified methodology.Existing-layer check
Pages read: qa-process-llm-review-pipelines, qa-process-evaluating-review-feedback, qa-process-adversarial-change-review, infrastructure-agent-orchestration-session-context-token-budget, security-input-validation-at-trust-boundaries, platforms-shells-option-like-argument-values, qa-exploratory-guard-true-path-coverage, qa-document-verification-spec-document-gates, infrastructure-config-keys-ahead-of-their-consumer, platforms-shells-command-text-inspected-before-execution, security-agent-exposure-in-session-tool-exposure, testing-quality-checks-that-cannot-pass, infrastructure-agent-orchestration-pane-delivery-confirmation, infrastructure-agent-orchestration-control-signals-vs-primary-artifacts, infrastructure-agent-orchestration-session-completion-gates, infrastructure-agent-orchestration-usage-limit-paused-workers, platforms-tools-version-keyed-artifact-cache, qa-document-verification-generated-reference-drift-gates, infrastructure-ci-cd-pipeline-structure, platforms-tools-plugin-mcp-server-registration, testing-quality-tests-that-cannot-fail, testing-quality-unasserted-return-fields, testing-mocking-what-to-mock, platforms-filesystems-paths-case-and-line-endings, infrastructure-agent-orchestration-worktree-isolated-workers, testing-async-async-testing, platforms-processes-driving-a-tui-in-a-tmux-pane, platforms-processes-non-interactive-cli-invocation, qa-environments-browser-console-capture-gaps, databases-transactions-application-clock-vs-database-timestamps
Also read on open-PR branches (not on main, so not listed above):
infrastructure-agent-orchestration-login-expiry-during-unattended-turnsandtesting-quality-assertion-scanner-false-positive-on-unittest-convention(PR #180),infrastructure-agent-orchestration-checkable-claims-in-an-adopted-plan(PR #181).qa/process/adversarial-change-review(sharpens its technique 4 + confirm-before-blocking step; index row extended). knowledge: spec/mapping artifact checks — coverage vs value validity, per-check negative controls, GFM pipe parsing (2 insights) #8 →platforms/tools/version-keyed-artifact-cache(the only main page mentioningmarketplace.json; it stopped at "bump both by hand"). knowledge: non-interactive CLI stdin, LLM response completeness, externally-owned defaults #12 →testing/quality/unasserted-return-fields(assertion side) +testing/mocking/what-to-mock(mock-authoring side, sibling of its clock row).qa/process/fresh-context-code-review(llm-review-pipelines is about building a CI pipeline, not which session reviews); knowledge: kubelet resource-metrics, PID1 log flush, date %3N detection #4testing/quality/gate-parsing-vs-command-execution(spec-document-gates explicitly delegates check authoring to testing/quality); knowledge: kubelet resource metrics, cgroupns visibility, LLM completion validation, gateway alias defaults (4 insights) #6infrastructure/agent-orchestration/client-bound-pty-coordinator-loss(sibling pages cover worker liveness, not coordinator PTY hosting); knowledge: spec-document gates (4 axes + controls) and non-ASCII grep matching #10platforms/filesystems/unix-domain-socket-path-length(paths-case-and-line-endings covers OS path limits, not the socket-address buffer); knowledge: non-interactive CLI hangs, gates that read command text, editing a gated document (4 insights → 3 pages) #11platforms/processes/sentinel-driven-repl-payloads(driving-a-tui covers tmux echo, not the stdin sentinel race).related:line (forward link only): llm-review-pipelines, evaluating-review-feedback, adversarial-change-review (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); checks-that-cannot-pass (knowledge: 12 insights — deny rules under bypass, merged-tree gate, worker verify command, Kotlin daemon heap, extracted-method this (+7 merges) #179/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); spec-document-gates (knowledge: 12 insights — deny rules under bypass, merged-tree gate, worker verify command, Kotlin daemon heap, extracted-method this (+7 merges) #179/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); control-signals-vs-primary-artifacts, worktree-isolated-workers, tests-that-cannot-fail, what-to-mock (knowledge: 12 insights — deny rules under bypass, merged-tree gate, worker verify command, Kotlin daemon heap, extracted-method this (+7 merges) #179); usage-limit-paused-workers (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); browser-console-capture-gaps (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).Open-PR check
Open
knowledge/*heads listed viagh pr list --search "head:knowledge/": #179knowledge/choiyounggi-20260903-172728, #180knowledge/choiyounggi-20260903-184706, #181knowledge/choiyounggi-20260903-203836, #182knowledge/choiyounggi-20260903-214027. Each head was fetched and diffed againstorigin/main -- wiki/.login-expiry-during-unattended-turns.md— same symptom, but that page treats expiry as always genuinebc1cac7(+1 edge row, +3 sources, index row extended), PR comment postedassertion-scanner-false-positive-on-unittest-convention.md— same root cause (path/name classifier with no entry for the convention)bc1cac7(+When-this-applies paragraph, +Do item 6, +1 edge row, +3 sources,applies_to+rust, index row extended)checkable-claims-in-an-adopted-plan.md— same page family, case not yet present58c6bd1(+Do item 7, +1 Finding row, +1 source, log line), PR comment postedvalidation-at-trust-boundaries(spatial-range case), #182 touchesadversarial-change-reviewrelated:line onlyspec-document-gates(word-boundary fix,related:), #179/#180 touchchecks-that-cannot-passrelated:d37fd67, see above)No sibling duplicate PR was opened; this flush's PR carries only main-branch changes.
Routing decision
qa/process/fresh-context-code-review(new)qa/process/adversarial-change-review(merge)infrastructure/agent-orchestration/checkable-claims-in-an-adopted-plan(fold, PR #181)testing/quality/gate-parsing-vs-command-execution(new)infrastructure/agent-orchestration/client-bound-pty-coordinator-loss(new)infrastructure/agent-orchestration/login-expiry-during-unattended-turns(fold, PR #180)platforms/tools/version-keyed-artifact-cache(merge)testing/quality/assertion-scanner-false-positive-on-unittest-convention(fold, PR #180)platforms/filesystems/unix-domain-socket-path-length(new)platforms/processes/sentinel-driven-repl-payloads(new)testing/quality/unasserted-return-fields+testing/mocking/what-to-mock(merge rows)No new category was needed. Lint:
wiki-structure-checks.js wiki→ 280 pages, 0 findings;wiki-lint-prohibitions.js wiki→ 0 violations (1 pre-existing info).