knowledge: a generated closed-vocabulary reference needs coverage assertions, not just --check (1 ingested, 2 dropped as in-flight dups of #47) - #69
Open
choiyounggi 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 — 3 insight(s): 1 ingested, 2 dropped as in-flight duplicates
Queue drained: 3 pending candidates from 2 sessions (
linkly,groundwork).Verified best-practice
1. Generate a closed-vocabulary reference from the owning constant, and gate it — INGESTED
Claim. When a reference document enumerates a closed vocabulary that a model will
emit tokens from (DSL verbs, config keys, diagnostic codes, enum members), generate the
enumerated part from the compiler/runtime constant, gate it with a
--checkmode calledfrom the test suite, and put a machine-readable generated banner on line 1. A green
--checkis not sufficient on its own: it compares the committed file against thegenerator's own output, so a generator that hardcodes a column regenerates happily and
stays green. Per-member coverage assertions against the constant, plus a
not-a-single-repeated-value negative control, are a separate layer.
Sources checked (all fetched this session, quotes verified):
^// Code generated .* DO NOT EDIT\.$, before the first non-comment text — the banner is machine-readable by convention, not a polite comment--check"will output a human-friendly message and a list of unformatted files, if any"; returns "exit code1in the second case, which is helpful inside the CI pipelines" — the check-mode-as-gate shape// Code generated by stringer -type Pill pill.go; DO NOT EDIT.) but states no regex; the normative text is incmd/goaboveLocal verification (re-run this session, not taken from the harvested block):
python3 scripts/gen_plugin_references.py --checkinlinkly→rc=0against thecommitted references.
impl/tests/test_plugin_references.pyruns it inside the suite:test_no_drift_between_source_and_committed_filesassertsreturncode == 0;test_check_mode_detects_a_hand_editandtest_check_mode_reports_a_missing_fileboth assert
returncode == 1;test_generated_files_carry_the_do_not_edit_bannerasserts the line-1 banner(confirmed present in
plugins/lnpl/skills/lnpl-authoring/references/declarations.md).--check-is-insufficient nuance is documented in that same suite, in thedocstring of
test_every_diagnostic_code_reaches_the_document_with_its_grade:"
--checkalone cannot see this: it compares the committed file against thegenerator's own output, so a generator that hardcoded every grade to
warningwouldregenerate happily and stay green" — with
test_the_grade_column_is_not_a_single_repeated_valueas the negative control. Thisrefinement was not in the harvested candidate; it was found while verifying it and
is the strongest part of the page.
impl/tests/test_cli_diagnostics.py::test_compile_reports_all_six_and_still_succeedspins the hand-written golden
examples/login.lnplatrc == 0witherr.count("unknown-verb") == 3— three steps compile to nothing while the compilereports success. The harvested block claimed "3 of 6 steps"; the verified form is
"3 unknown-verb diagnostics on a golden example that still exits 0", and the page says
only that.
Confidence:
verified. The generation/--check/banner mechanics are backed byofficial docs (Go, Prettier, Google docguide) and by a reproduction run this session;
the agent-consumer framing is backed by Anthropic's own tool-definition guidance.
2. Usage-limit worker pause vs. crash — DROPPED (duplicate, see Open-PR check)
Claim (workers go quiet simultaneously, every liveness check passes, find the
You've hit your session limit · resets HH:MMmarker, resume after the reset with astate-recheck → remaining-DoD → completion-signal prompt) was not independently
re-verified, because it is already carried in open PR #47 with the same field evidence.
No new page or edit was made for it.
3. Dispatch immediately after
worker_done→runtime_unavailable— DROPPED (duplicate)Same disposition: already carried in open PR #47, including the task-consumption
asymmetry (a failed
worker-startconsumes the Task, so recreate from the spec ratherthan retrying it) and the
tui-idleprecondition.Existing-layer check
Routed via
INDEX.md. The harvesteddomain: platformshint was checked and rejectedfor candidate 1 —
platformsis scoped to OS-level differences (shells, BSD-vs-GNU,filesystems, toolchains), and this is a document-verification case.
qaowns"automated verification of document deliverables (spec/RFC gates)".
Pages read: qa-document-verification-spec-document-gates, qa-document-verification-editing-a-gated-document, qa-deliverables-generated-artifacts-as-deliverable-source, qa-exploratory-lowered-declaration-survival, backend-common-api-design-unenforced-declarations, infrastructure-agent-orchestration-control-signals-vs-primary-artifacts, infrastructure-agent-orchestration-pane-delivery-confirmation, testing-quality-tests-that-cannot-fail
Overlaps found and how each was resolved:
qa-deliverables-generated-artifacts-as-deliverable-source--checkin the suite, banner assertion, coverage assertions). Cross-linked both directions; step 1 of the new page defers to it for the generated-body-vs-hand-written-narrative splitqa-document-verification-spec-document-gates--checkis self-consistent. Cross-linked both directionsbackend-common-api-design-unenforced-declarationstesting-quality-tests-that-cannot-failrelated:link only; no content duplicatedinfrastructure-agent-orchestration-control-signals-vs-primary-artifactsinfrastructure-agent-orchestration-pane-delivery-confirmationConflicts flagged: none. No existing directive contradicts the new page.
Link-integrity note: the new page originally cited
backend-common-change-impact-widening-a-closed-value-table, which exists only onopen PR #51's branch and not on
main. Everyrelated:id was resolved against thischeckout's
wiki/and that one was replaced withbackend-common-api-design-unenforced-declarationsso the page carries no dangling idif #51 is rejected.
Edits to existing files:
wiki/qa/index.md(+1 row), plusrelated:back-links and alast_verifiedbump onspec-document-gates.mdandgenerated-artifacts-as-deliverable-source.md. No existing body text was rewritten.Open-PR check
Listed with
gh pr list --repo choiyounggi/dev-loop --state open --search "head:knowledge/"— 14 open heads: #68, #66, #64, #62, #61, #58, #57, #56, #55, #52, #51, #50, #49, #47.
Six with plausibly overlapping triggers were fetched and diffed against
origin/mainunder
wiki/: #68, #66, #64, #51, #50, #47.--checkgateknowledge/choiyounggi-20260808-013406) touchesqa/document-verification/spec-document-gates.mdand addsqa/deliverables/command-transcripts-in-a-document.md; #51 addsbackend/common/change-impact/widening-a-closed-value-table.md--checkin the suite, the generated banner, or the fact that--checkcannot detect a hardcoding generator. #51 is about widening a closed value table in code, not its reference document. No open head adds a page under a generated-reference triggerknowledge/dch0202-20260806-130040)control-signals-vs-primary-artifacts.md("search each worker's pane/terminal tail for the CLI's usage-limit marker (e.g.You've hit your session limit · resets HH:MM) … re-verify state → remaining definition-of-done → completion signal"), plus the matchinginfrastructure/index.md"load when" extension and the same 2026-08-06 three-worker/resets 01:10field-evidence line. The only delta in the queued row was naming the send mechanism (orca terminal send --enter, tmuxsend-prompt.sh send), whichpane-delivery-confirmationalready owns — not worth a push to a stale branchworker_doneorca terminal wait --for tui-idleas the precondition, "the done message is the worker's report time, not the substrate's release time", and the consumed-Task rule ("create a new task from the same spec — the consumed one cannot be retried"). Nothing in the queued row is absentNo sibling duplicate PR was opened, and nothing was pushed to #47.
Routing decision
qa/document-verification/generated-reference-drift-gates.md(idqa-document-verification-generated-reference-drift-gates) — new pagedocument-verificationalready exists and owns automated checks that decide whether a document meets its requirements; this is that, for a generated document.qa/deliverableswas considered and rejected: its trigger is producing a hand-off deliverable, not gating a shipped oneThe harvested
domain: platformshint on insight 1 was overridden:platformscoversOS-level differences across macOS/Linux/Windows, and nothing about this case is
OS-dependent. Insights 2 and 3 also carried
platformshints; #47 had already routed thesame content to
infrastructure/agent-orchestration, which is where it belongs.All 3 queued rows are retired from the active queue (1 ingested, 2 dropped) so neither
dropped row re-crosses the auto-flush threshold.