You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The per-edit conformance lint's ADVISORY is now diff-scoped: an Edit / MultiEdit is nagged only for the advisory findings it INTRODUCED, not for
every pre-existing convention issue elsewhere in the file. Whole-file
attribution -- an edit flagged for a style / convention issue on a line it
never touched -- was the top false-positive source across every effectiveness
eval (79 to 100% of per-edit findings). chameleon reconstructs the pre-edit
content from the tool input, lints it the same way as the post-edit content,
and drops the advisory findings present in both.
ENFORCEMENT is unchanged. Every block-eligible rule (secrets, eval,
phantom-import, naming / import / inheritance / jsx / file-naming) is exempt
and surfaces whole-file, so the block partition, the inline block, and the
turn-end Stop-backstop arming are computed from exactly the same findings as
before. A pre-existing broken import or a credential still surfaces and
blocks; a follow-up clean edit can never disarm a block-eligible violation an
earlier edit in the turn introduced.
Measured 93 to 100% fewer per-edit advisory findings on benign edits across
Ruby, TypeScript (NestJS), and React fixtures, while every genuinely
introduced finding still surfaces (verified against an injected-violation
control).
Scope is narrow and fail-safe: Write / NotebookEdit author the whole
file (no pre-edit content to diff against, so whole-file lint stands), a replace_all edit or any ambiguous reversal falls back to whole-file, and
any error fails open to the whole-file findings. Kill switch: CHAMELEON_DIFF_LINT=0.