docs/reference/api-review-checklist.md
These checkists are to be used when performing code reviews for API design, performance optimization, security vulnerabilities, and standards compliance. They are not exhaustive but cover common patterns and issues to look for. Always consider the specific context of the code being reviewed and apply judgment accordingly.
End-to-end, real-world performance is the priority over micro-optimizations.
workerd::RingBuffer instead of kj::Vector for bounded queues)compatibility-date.capnp) and
autogates (util/autogate.h/c++). Use the compat-date-at tool to look up flag details.
Use the next-capnp-ordinal tool when adding new flags.cross-reference tool to look up JSG registration, type groups, and test
coverage for API classes under review.jsg-interface tool to extract the full structured JS API (methods,
properties, constants, nested types, inheritance) for a class under review.kj::Exception to a JS TypeError, or between JS error types) is not normally considered
a breaking change because well-written user code should not depend on specific error types. The
exception is when the change removes properties that code could reasonably depend on — for
instance, changing from a DOMException to a TypeError is breaking because DOMException has
properties like code and name with specific values that TypeError does not. Use judgment:
if the error type change could plausibly break real user code in a substantial way, treat it as
breaking and gate it behind a compat flag.docs/reference/cpp-safety-review-checklist.md checklist.