The prose says a short page alone should not trigger rendering, but needsRender returns true for every body below MIN_CHARS before checking the shell patterns. A legitimate 200-character status page therefore takes the browser path too.
I would separate “empty extraction” from “short but meaningful content” and test a small real page beside a JavaScript shell. Keeping an explicit escalation reason in Source would make unnecessary renders measurable. That would align the example with the cost-control benefit of exposing Search, Extract and Render as separate tools.