Skip to content

fix: _calls_out_ignore helper-key convention (#3282) - #3296

Merged
squid-protocol merged 1 commit into
mainfrom
fix/3282-ignore-key-helper-convention
Sep 22, 2026
Merged

squid-protocol merged 1 commit into
mainfrom
fix/3282-ignore-key-helper-convention

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Follow-up to #3288, unblocks #3294/#3295 CI. The per-language ignore set is a frozenset, not a regex — two audits rightly rejected the bare calls_out_ignore key (test_global_regex_syntax_integrity, signal-contract audit missing-contract). Adopts the repo's existing convention for non-regex strategy keys: underscore prefix + HELPER_KEYS registration (#1209 precedent, e.g. _args_arrow_count_groups).

  • detector.py reads rules["_calls_out_ignore"] (comment updated)
  • signal_contracts.py HELPER_KEYS entry added
  • detector unit test + dead-key baseline renamed (removal condition intact)

Verified: dead-key audit green; test_detector + regex-integrity + signal-contract-sheet all pass; ruff clean. Batch PRs #3294/#3295 will rename their writers and merge main.

🤖 Generated with Claude Code

…ention (#3282)

The foundation shipped the per-language ignore set as a bare rule key;
two audits correctly rejected that: test_global_regex_syntax_integrity
(every non-underscore rule must be a compiled regex) and the signal
contract audit (every non-underscore key needs a SignalContract). The
repo's convention for non-regex strategy keys is an underscore prefix +
a HELPER_KEYS entry (#1209) -- adopted here: detector reads
rules['_calls_out_ignore'], HELPER_KEYS documents it, dead-key baseline
entry renamed with its removal condition intact.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

@squid-protocol
squid-protocol merged commit ad6f361 into main Sep 22, 2026
32 checks passed
@squid-protocol
squid-protocol deleted the fix/3282-ignore-key-helper-convention branch September 22, 2026 22:40
squid-protocol added a commit that referenced this pull request Sep 22, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
squid-protocol added a commit that referenced this pull request Sep 22, 2026
# Conflicts:
#	tests/dead_key_audit_baseline.json
squid-protocol added a commit that referenced this pull request Sep 22, 2026
…used imports; empty dead-key baseline (writers ship here)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
squid-protocol added a commit that referenced this pull request Sep 22, 2026
…) (#3295)

* feat: command-position + build-tool calls_out paradigms (#3285)

- tcl/powershell/livecode -> shared CALLS_OUT_COMMAND_POSITION with
  per-language calls_out_ignore keyword sets (kills powershell's
  'param(' garbage; upgrades tcl from intentional blindness).
- makefile -> $(call name) only; prerequisite-list edges are a
  documented non-goal. Kills the 'ifeq(' garbage.
- batch -> 'call :label'/'call prog' (no rosetta folder; strict-tested).
- shell/dockerfile untouched: stay UNSUPPORTED by decision.
- agent's stray repo-wide reformatting churn (30+ out-of-scope files)
  reverted; only batch-scope files ship.

Verified: tests/extraction 8331 passed; verify_language mismatches are
calls_out cells only; check_calls_out_truth PASS 4/4 on scratch-
reblessed manifests; ruff/mypy clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore: adopt _calls_out_ignore helper-key convention (#3296); drop unused imports; empty dead-key baseline (writers ship here)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
squid-protocol added a commit that referenced this pull request Sep 22, 2026
) (#3294)

* feat: CALL-verb + mainframe calls_out paradigms (#3284)

- fortran/pli/rexx/db2_sql/assembly -> shared CALLS_OUT_CALL_VERB; rexx
  adds calls_out_ignore {on, off, error} ('call on error' is a condition
  trap, not a call).
- abap: PERFORM / CALL FUNCTION|METHOD|TRANSACTION target capture
  (=>method calls are a ledgered recall gap).
- hlasm: =V(NAME) linkage constants (system macros ledgered).
- agc_assembly: TC transfer-control only (BZF/BZMF/BMN are branches).
- jcl: stays CALLS_OUT_UNSUPPORTED -- the step-card EXEC lives on the
  signature line, outside the scanned body; no regex can fire (#3292).
- db2_sql note: rule works at splice level but corpus scans persist zero
  function rows (#3293); answer key deferred.
- dead_key_audit_baseline emptied: rexx ships the first calls_out_ignore
  writer (the entry's documented removal condition).
- strict tests extended for all nine; agent-gutted test files restored
  to their full originals with only the calls_out additions kept.

Verified: tests/extraction 8339 passed; verify_language mismatches are
calls_out_to cells only; check_calls_out_truth PASS 9/9 on scratch-
reblessed manifests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore: adopt _calls_out_ignore helper-key convention (#3296)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* test: re-bless golden masters (single leaf: sconstruct identity confidence)

Both legs drift by exactly one leaf: cpp/NVDA/sconstruct (extensionless,
already-excluded SCons file) Identity Confidence 40.9% -> 8.2%. The
legacy C-style calls_out regex's paren-matches were inflating a candidate
language's detection score on this file; the CALL-verb paradigm removes
those spurious hits. File stays excluded; no other cell moves (verified
via golden_diff.deep_compare on both fixtures: 1 diff each).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant