This page explains non-obvious findings and their upstream basis. For the full list of checks, inputs and severities, see the rule reference. Configuration defines which directories are inspected.
Checks evaluate local settings, not the effective configuration of an installed PM. A missing setting may receive lower severity only when its documented default is safe across supported versions and environments. A declared version alone does not establish an environment-dependent default.
unsupported-settings covers only the listed introduction versions.
It does not establish compatibility for unlisted settings, removals, backports or
version-specific values. A tagged source establishes behavior in that version;
introduction dates require release history. Aube's unversioned sources do not
establish per-setting introduction versions.
Any valid, active positive release-age window satisfies that check; three days is a suggestion, not a guaranteed safe delay. Units differ: npm uses days, pnpm/Aube minutes, Bun seconds, and Yarn numeric minutes or duration strings. Individual package exclusions are not audited.
ignore-scriptstakes precedence over script approval policy.- An explicit
beforein.npmrctakes precedence overmin-release-age. A valid past cutoff satisfies the check. Future, disabled or malformed cutoffs require correction; setting a relative age alone does not repair the override. siro reports malformed dates even though npm discards them. package.json#publishConfig.provenanceoverrides local.npmrc#provenance, including false. The remedy targets the responsible file. CLI flags and environment overrides are outside this check, and this precedence is not assumed for other PMs.publishConfig.access: "private"is accepted as npm's alias of"restricted".- Known pre-12 targets may use
npm-shrinkwrap.json; npm 12+ requirespackage-lock.json. Shrinkwrap-only projects with unknown targets are asked to declare their version or migrate. Presence does not establish lockfile validity.
Sources: npm 12 configuration, publish options, npm 11 shrinkwrap, npm 12 changes.
ignoreScripts: truesatisfies the lifecycle check. Otherwise,dangerouslyAllowAllBuildsbypasses approval from pnpm 10.9. Before that version the bypass setting is ignored; remove it before upgrading.- Although
strictDepBuildsarrived in 10.3, using it inpnpm-workspace.yamlrequires 10.6. The checked file location matters, not only the setting's name. - Version- or CI-dependent defaults do not lower severity merely because a target version is declared. Set the checked controls explicitly to pin local policy.
Sources: build settings, dependency resolution, store settings, 10.3 configuration, 10.6 YAML support, 10.9 build bypass.
CI lockfile immutability and public-PR hardened mode depend on the execution
environment. Their defaults are not treated as unconditional protection. Release
age accepts positive numeric minutes and Yarn duration strings, such as 3d.
Sources: Yarn configuration, duration formats, CI immutability, hardened mode.
- An empty
trustedDependencieslist replaces Bun's curated default allowlist. install.auto = falseand"disable"both satisfy the auto-install check.- The provenance finding recommends publishing through npm; it does not claim that Bun emits attestations natively.
- The scanner API became available in 1.2.21, before the 1.3 overview. Release-age configuration requires 1.3.0.
Sources: lifecycle scripts, configuration, 1.2.21 scanner release, 1.3 release age, provenance support.
- siro reads strict
deno.json, not JSONC or external import maps. Exact pinning checks registry mappings in both inlineimportsandscopes, without resolving scope reachability. Blocking null mappings are not dependencies. Malformed consumed mappings fail inspection; dependency script opt-ins are not checked. - An explicit
minimumDependencyAgetakes precedence over.npmrc#min-release-age. A valid object with absent/nullageneeds a positive local fallback; object shape alone is not protection. Zero fallback is an opt-out. Invalid or inactive explicit ages are not rescued by fallback. - Deno accepts integral minutes, supported ISO durations and past date cutoffs. npmrc fallback uses integer days. In either form the age must produce a valid, representable past cutoff. Version-dependent defaults remain conservatively reported when no active local value is provided.
- Configured project-relative lockfile paths are honored;
lock: falseis flagged.
Sources: Deno 2.9.4 configuration, npmrc values, duration formats, 2.8.1 fallback introduction, 2.8.1 fallback behavior, 2.9.4 defaults.
jailBuildsis checked inaube-workspace.yaml;strictDepBuildsin.npmrc.paranoidforces several security controls but does not overrideverifyStoreIntegrity: false.advisoryCheckandtrustPolicyhave safe current defaults. Other settings files and global overrides are outside this local check.- Text
bun.lockis supported; binarybun.lockbwithout a text replacement is rejected, anddeno.lockis not reused. preferFrozenLockfiledoes not enforce immutability. The finding asks users to verify that install commands useaube cior--frozen-lockfile.
Sources: settings and accepted locations, security behavior, lockfile support.