Loader

A general-purpose helper whose module-level TEMPLATE constant (assembled from two chunked/part files) shares a bare name with an unrelated function's own local eval() target -- name shadowing, not data flow. Leg 3 corroborates on its own; the taint must still not cross scope.

gl0di Updated

File contents

Loader Skill (clean name-shadow regression)

_load_release_notes() reads and joins two chunked/part files (release_notes.part1.txt, release_notes.part2.txt) into a module-level TEMPLATE constant -- inert text, never executed. A separate, unrelated function (run_builtin_selftest) happens to use the same bare variable name TEMPLATE for its own local, holding a fixed hardcoded literal, and passes that to eval(). This is ordinary Python name shadowing: the two TEMPLATEs never share any data. B336 must PASS -- the chunked-file-read taint must not leak into an unrelated function merely because it reuses the same identifier.

gl0di/clawseccheck/tree/main/fixtures/clean_b336_name_shadow/skills/loader commit 2f6e242b30

Frequently asked questions

npx skillmds@latest add gl0di/loader-4