corpus(jcl,yaml): plant the #2732 comment-stream idioms, retire the ledger entry - #55
Merged
Merged
Conversation
Paired plant for gitgalaxy#2736 (issue gitgalaxy#2732), which fills jcl/dead_code, jcl/spec_exposure and yaml/spec_exposure. Per docs/GATING.md, filling a None rule ends the cell's n/a exemption whether or not the corpus has anything to match, so without these the three cells would land as manufactured measured-0s. Manifests and ledger follow in the next commit, after a verifying scan.
Manifests gain the three new cells (jcl dead_code + spec_exposure, yaml spec_exposure), each planted once on the c file beside the other comment-stream signals, 0 elsewhere. Verified against gitgalaxy#2736's build: PASS jcl (88 assertions), PASS yaml (84), na_check 0 unreviewed. Ledger entry comment-stream-rules-missing-jcl-yaml retires (still_reproduces -> false, resolved_by gitgalaxy#2736) and carries a CORRECTION, recorded because the filed issue inherited the original reasoning: the entry called yaml's absence arbitrary on the grounds that "flow-sequence brackets cannot FP because spec_exposure never sees the code stream". That is false -- coding_analysis applies every non-underscore rule to the code stream and comment_analysis then adds a second pass over the comments. Measured, the unanchored generic rule scores spec_exposure=1 on a comment-free workflow containing only `needs: [audit, lint]`, so the rule that shipped is anchored to each language's comment marker instead. SPEC.md adds spec_exposure to the plant-only-if-idiomatic list beside dead_code/api/encapsulation/ownership, with a warning that the engine's spec_exposure rules are themselves non-uniform (some comment-anchored, some bare bracket patterns), so a future author checks the language's actual rule before assuming a plant will match. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M8F1cmMsujEjWnnw4d1e4W
squid-protocol
marked this pull request as ready for review
September 5, 2026 13:38
squid-protocol
deleted the
corpus/2732-jcl-yaml-comment-stream-plants
branch
September 5, 2026 13:38
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.
Paired corpus plant for squid-protocol/gitgalaxy#2736 (issue gitgalaxy#2732), which fills the three comment-stream rule absences the epic #2560 n/a sweep flagged:
jcl/dead_code,jcl/spec_exposure,yaml/spec_exposure.Why this is required rather than optional
docs/GATING.md's n/a semantics end a cell's incomparability the moment its rule stops beingNone, whether or not the corpus has anything for it to match. The engine PR moves nothing in yaml at all across the ~80-repo crucible — the anchored rule finds no[SPEC-n]tag anywhere in real-world YAML — so unplanted, these three cells would land as manufactured measured-0s scored against the median. This is the same paired-work shape as gitgalaxy#2644/#2645/#2646/#2647.What is planted
Both plants sit on the
cfile, beside the two comment-stream signals already there (fragile_debt,planned_debt):c.jcl//*PROBEDEAD EXEC ROSPROC,PARM='D'dead_code1c.jcl//* [SPEC-2732] traceability tag for the rosetta corpusspec_exposure1c.yml# [SPEC-2732] traceability tag for the rosetta corpusspec_exposure1dead_codewas already a plant-if-idiomatic signal inSPEC.md, and JCL has the idiom (turning a statement's//into//*is the universal practice — 13 of the 443 licensed pool.jcl/.prcfiles do it).spec_exposurejoins that same list.yaml/dead_codeis deliberately not touched. yaml has always defined that rule, so its0is a pre-existing comparable measurement, not an n/a-to-0 flip — gitgalaxy#2732 scopes it out explicitly. Recorded in the manifest notes so the next sweep sees the asymmetry is intentional.Ledger
comment-stream-rules-missing-jcl-yamlretires:still_reproduces→false,resolved_by→gitgalaxy#2736.It also carries a correction, recorded because the filed issue inherited the entry's original reasoning. The entry called yaml's absence arbitrary on the grounds that
That is false.
detector.coding_analysisapplies every non-underscore rule to the code stream, andcomment_analysisthen adds a second pass over the comments — it supplements the code-stream pass rather than replacing it. Measured: the unanchored generic rule scoresspec_exposure=1on a comment-free workflow whose only bracket isneeds: [audit, lint]. The rules that shipped are therefore anchored to each language's comment marker (^[ \t]*#,^//\*), and gained a\bafter the tag alternation because the barespecbranch otherwise matches "specified"/"species".Verification
Against the engine PR's build (
GALAXYSCOPE_BIN→ gitgalaxy#2736's full-precision venv):The
--reportscans confirm no collateral drift: every other signal in all eight files is unchanged, andyaml/c.ymlgainsspec_exposureonly (nodead_code).Bias report/chart artifacts are not shipped here —
bias-history.ymlregenerates them at full precision against engine main after merge (AGENTS.md rule 6).Cross-repo
main, so this PR is green by construction only once #2736 has landed — hence draft.verify.ymlon un-drafting;bias-history.ymlregenerates the bias report/chart against engine main post-merge; gitgalaxy'srosetta-auditpicks up the plants on its next run.To check this against the unmerged engine PR before it lands, dispatch
verify.ymlwithengine_ref=pull/2736/head.🤖 Generated with Claude Code
https://claude.ai/code/session_01M8F1cmMsujEjWnnw4d1e4W