.agents/skills/code-review/SKILL.md
Use this skill when reviewing SynapseML changes.
git --no-pager diff --stat && git --no-pager diffsbt scalastyle test:scalastyleblack --check --extend-exclude 'docs/' .Apply when changes touch serialization, I/O, network, or authentication code.
ObjectInputStream.readObject() — use SafeObjectInputStream with an allowlistresolveClass allowlist validates array component types — never allowlist the [ prefix
directly; array handling must extract and validate the component class nameresolveProxyClass is overridden to block or validate dynamic proxy interfacesusing() or try-finallyApply when changes modify public classes, traits, or companion objects.
extends DefaultParamsReadable[T] preserved if it existedWrappable trait mixed in if the class needs a Python wrapperSynapseMLLogging trait mixed in; logClass() called in constructorjava.io._ → named imports)black==22.3.0target/ (auto-generated)src/main/python/ extend the generated _ClassNameusing() for resource cleanup (no bare .close() after assertions)