assess.js
A read-only site assessment, emitted with every build alongside
assess-manifest.md. Paste it in the target site's console before a
first deploy to learn whether this pack fits this site.
Read-only guarantee
Every call is a GET except the contextinfo digest fetch and one
read-only CSOM ProcessQuery. The guarantee is structural, not just
promised: the shared HTTP write helpers are packaged in a separate
template partial that assess.js does not include, so the absence of
write machinery is auditable from the script text itself.
Three tiers
- Always-run enumerations — site identity and template, lock state, platform build, effective permission bits (ManageLists, ManagePermissions, NoScript), creatable list templates, regional and language settings, group connection, storage, hub status, retention labels, app catalog and SPFx footprint, search.
- Pack-driven attempt-probes — per-declared-list collision probes;
property-surface probes (sealing,
AllowDeletion, column and form formatter surfaces) against an existing declared list where one exists; intelligent-versioning trim mode; CSOM availability when the pack declares groups; sensitivity label and Preservation Hold Library signals. - Not assessable — a printed honesty block listing what cannot be determined from the operator's site context (tenant policies, licence-gated behaviour), so absence of a finding is never mistaken for a pass.
The verdict
Findings roll up per requirement key to a single line:
COMPATIBLE— no blocking or degrading findings.DEGRADED— deployable, but WARN findings deserve review first.BLOCKED— a named requirement fails (for example, missing permission bits or a locked site); resolve before deploying.
assess-manifest.md documents what will be probed and how to read the
result, so the verdict can be shared with a site owner who never sees
the console.