====== Non-functionality ====== Generated reference pages describe **what the code is**. They cannot describe what the code is *not* good at. This section covers the four non-functional areas of Scriptlog, and every claim on these pages is measured from the source tree by a token-level analysis pass rather than inferred from docblocks. ===== The four areas ===== * [[scriptlog:nonfunctional:requirements|Requirements]] — the runtime, platform, service and quality constraints the code actually depends on, including the ones it only hopes for. * [[scriptlog:nonfunctional:limits|Limits and Non-behaviour]] — the documented bounds, hard ceilings and behaviours that were deliberately left out. * [[scriptlog:nonfunctional:boundaries|Layer Boundaries and Dependencies]] — the intended architecture, the measured dependency graph, and every place the two disagree. * [[scriptlog:nonfunctional:negative-space|Negative Space and Dead Code]] — types and functions that exist, are documented, and are never reached. ===== How the numbers were obtained ===== All figures come from a token-level pass over the first-party tree. Third-party code is excluded: `lib/vendor/`, `lib/HTMLPurifier/` and the flat `lib/core/HTMLPurifier*` shims, `node_modules/`, and `vendor-bin/`. | Measure | Method | |---|---| | Method documentation | Method has a `/** ... */` block immediately above it. | | Return type | Method has a declared return type. | | Parameter types | Share of parameters carrying any type declaration. | | Layer dependencies | `use` statements resolved to a first-party class. | | Superglobal access | Occurrences of `$_GET` and friends outside comments and strings. | | Reachability | Name searched across the whole tree, comments and strings removed. | **Reachability is the weakest of these measures** and is reported as a *candidate* list. A name can be reached by a mechanism a text search cannot see: a plugin hook invoked by the admin UI, a function dispatched from a name array, or a template calling a global helper. Each candidate is called out explicitly on the [[scriptlog:nonfunctional:negative-space|Negative Space]] page. **Superglobal access counts are literal occurrences.** They say how much global state a layer touches, not whether that access is safe. ===== Related ===== * [[scriptlog:architecture:overview|Architecture Overview]] * [[scriptlog:index|Contents]]