Deburr Edge Cases Skill: Make coding agents systematize their local code A new structured code quality pass, 'deburr-edge-cases', helps coding agents systematically remove AI-generated cruft from branches before merge, targeting defensive checks, redundant validation, and speculative abstraction while preserving load-bearing seams. | name | deburr-edge-cases | |---|---| | description | Strip AI-codegen cruft from a branch — defensive checks the type system should make unrepresentable, redundant validation, speculative abstraction, no-op wrappers — while preserving load-bearing seams. Use after a feature lands and before merge, when asked to "simplify", "de-ornament", "remove cruft", "make erroneous states unrepresentable", or "clean up" a diff. | A structured pass to remove accumulated cruft from a branch — particularly the failure mode where code solves, at a narrow local layer, a problem that should be addressed globally or structurally. The canonical example: instead of enforcing design intent in the type system making erroneous states unrepresentable , the code accumulates defensive runtime checks to detect and flag bad states that a better type would forbid at compile time. This is a quality pass, not a bug hunt. Every change must be behavior-preserving, with the existing test suite as the safety net. It complements a correctness-focused review which hunts bugs ; route bug findings there, not here. If you trip over a genuine correctness bug mid-pass, note and surface it separately — do not fix it as part of this pass. A recognizable shape — an unwrap or , a single- impl trait — is a prompt to ask whether the construct earns its keep here , not a finding in itself. Reason about intent and invariants, not form. - After a feature branch lands, before merge — especially work assembled by several contributors or agents, which tends to accrete per-phase scaffolding that reads as cruft once the whole is in view. - When the user asks to "simplify", "de-ornament", "remove cruft / ceremony / boilerplate", "make bad states unrepresentable", "tighten the types", or "clean up" a set of changes. Defensive coding the type system should forbid. Runtime checks, branches, or asserts guarding states a tighter type would make unrepresentable — for example a tri-state Option