corpus(jcl): plant the PROC, teardown and executor idioms and re-bless against gitgalaxy#2755 (#2748–#2751) - #60
Merged
Conversation
…2751, close the DISP=OLD ledger question
…rules # Conflicts: # deviation_ledger.json
The note is append-structured, so the api / cleanup / globals / bare-PGM= clauses written before gitgalaxy#2755 still read as current fact next to the paragraph that reverses them. Mark each one as history and point at that paragraph; no measured value changes (expected_signals.json is not asserted against itself). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
squid-protocol
marked this pull request as ready for review
September 5, 2026 18:46
squid-protocol
added a commit
that referenced
this pull request
Sep 6, 2026
…itgalaxy#2773) (#66) Pairs squid-protocol/gitgalaxy#2773, merged as PR #2786 (engine 0b2e9b20), which gave the `args` rule a stated contract -- "args matches the parameters a callable declares", docs/args_rule_contract.md -- and anchored objective-c's and typescript's rules to it. No authoring change: the probe shells are untouched and the fix lands both languages on the planted 13 exactly (one parameter per probe, SPEC.md), which is the mechanical check that the new anchors are correct and not merely narrower. ## Manifests - data/objective-c: main 6 -> 4, a/b/c 5 -> 3. The rule matched every keyword-message SEND (a send is lexically identical to the untyped `label:name` parameter shape #1335 added) and its plain-C arm accepted any `name(...)` followed by `{`/`;`. The extra hits were XCTAssert/NSAssert (test), os_log/DDLogInfo (telemetry), free/release (cleanup) and abort/exit (high_risk_execution) -- other signals' plants, re-counted as arguments. - data/typescript: a.ts 5 -> 3. The class-member arm was `^[ \t]*IDENT(...)` with no declaration anchor, so describe(kit)/expect(kit) -- both `test` plants -- scored as parameter lists. ## Ledger `ts-callparen-args` named four languages; #2773 fixed two of them. - The entry keeps its original verdict verbatim and appends the reversal (the #59-vs-#60 pattern), scoped to the two languages it is named for: `languages_seen` objective-c + typescript, `still_reproduces` false, `upstream_issue` gitgalaxy#2773. Not deleted -- both re-blessed manifests cite this id, and per docs/GATING.md step 4 the manifests change in the same PR that flips `still_reproduces`. - apex and groovy are NOT fixed and move to a new entry, `args-call-site-counting-apex-groovy` (disposition upstream-bug, still_reproduces true, upstream gitgalaxy#2783 / #2782). Same shape #2773 fixed elsewhere: a `^[ \t]*IDENT(...)` member arm whose return-type prefix can match zero times. Their manifests' `notes` are re-pointed at the new id; their numbers do not change. ## Verified - verify_language.py: 46/46 PASS against engine main (0b2e9b20). - na_check.py: 0 unreviewed n/a cells, no new absences. Co-authored-by: Joe Esquibel <squid-protocol@users.noreply.github.com>
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.
Companion to squid-protocol/gitgalaxy#2755 (jcl
api,cleanup,globalsrules;high_risk_executionnarrowed — #2748–#2751), now merged. Part of #59's pairing table.Cross-repo: engine PR #2755 merged first (
rosetta:rebless-owed); this is step 2 of GATING.md's "Cross-repo flow" — the corpus re-bless against enginemain, green by construction. Verified locally against engine main (3b3568e0):verify_language.py jclPASS, 88 assertions across 4 files;na_check.py --ci0 unreviewed;bias_data.jsonengine_modefull-precision. After mergebias-history.ymlregenerates the report, chart and findings.Plants
main.jcl//ROSPROC PROC…// PENDaroundSTEP2— the procedure declaration theEXEC ROSPROCsteps invokeapi0 → 1 (file-level,api-non-function-surfaces);func_startstays 4,argsstays 13 corpus-widemain.jclPROBERISK/STEP2re-planted asPGM=IKJEFT01/PGM=BPXBATCHhigh_risk_executionstays 2 under the narrowed rule (IEFBR14no longer counts)c.jcl//DD3 DD DSN=&&TMP1,DISP=(OLD,DELETE)and//DD4 DD DSN=&&TMP2,DISP=(,DELETE),UNIT=SYSDAonprobe_cleanupcleanup0 → 2 (planted);io0 → 2 (ledgeredprobe-idiom-collides-with-measured-signal); DD3 is also theDISP=OLDplant gitgalaxy#2742 owed (sync_locks1);&&temp names add no DAG edgeb.jclSETlinesglobals0 → 2 (= median;batch4-dual-keyword-overlaps, the dockerfileENVdual)Ledger
jcl-sync-locks-disp-enq-question— the DISP=OLD plant Plantable cells still unplanted (css/yaml/dockerfile safety), DISP=OLD and %union plants owed, and the pairings for gitgalaxy#2748–#2753 #59 declined is now made. Plantable cells still unplanted (css/yaml/dockerfile safety), DISP=OLD and %union plants owed, and the pairings for gitgalaxy#2748–#2753 #59 declined it because the DD line'siocost bought only one signal; the entry itself named the revisit condition ("revisit if gitgalaxy#2749 lands acleanuprule onDISP=(...,DELETE)"), and #2749 shipped in #2755. The same line now payscleanupas well assync_locks, so the trade is the one Plantable cells still unplanted (css/yaml/dockerfile safety), DISP=OLD and %union plants owed, and the pairings for gitgalaxy#2748–#2753 #59 said would be worth making.still_reproduces: false, decision recorded, entry closed.jcl-2610-rebaseline-residual-morphology—cleanupandglobalsclauses retired (#2749/#2750 reversed #2610's overlap posture and found the scoped-vs-global distinction the entry said JCL lacked); signal narrowed tocomment_lines|dependency_links|doc|test.doc/testre-checked against the language crucible (0 structured header keys in 1,610//*lines; noTYPRUN=SCAN/IEBCOMPR) and stand.api-no-rule-defined— narrowed to markdown.api-non-function-surfaces,batch4-dual-keyword-overlaps,probe-idiom-collides-with-measured-signal— jcl added with the shape named.batch5-tier2-morphology-shapes— jcl clause rewritten:apinow reads via the rule, andhigh_risk_executionreads the planted 2 (the median 3 is the danger-only string decoy JCL cannot carry — a//*line is comment stream and an operand literal would have to be a PARM value).The two collective entries also carry #61's safety-plant text; this branch merged
mainand kept both sides.Measured effect (local full-precision regen against engine main, not shipped)
bias_report.py --gate→ exit 0, 0 unexplained out-of-band cells (10 undefined, 171 ledgered, 116 derived); consistency avg 87% across 49 metrics; length leaks 0/2 weak. jcl cells that move against corpusmain:cleanuphigh_risk_executionIEFBR14, so the re-plant is what restores the paired 2ioprobe-idiom-collides-with-measured-signal— the accepted cost of the two teardown DDssync_locksraw_arch_apiapi-non-function-surfacesrisk_safety_scorerisk_api_exposure/risk_documentationglobalsalready read 2 on main (the rule landed in #2755 andb.jcl'sSETlines carry it with no plant).func_start13 andargs13 are untouched — the PROC wrapper and thePGM=re-plant disturb neither.The regenerated
docs/bias_*are deliberately not in this PR (AGENTS.md rule 6):bias-history.ymlregenerates them against engine main after merge.🤖 Generated with Claude Code