materialization-aware-refresh-escalation-4b0b5a — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited materialization-aware-refresh-escalation-4b0b5a (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Domain: extensions-mcp Trigger: When background plugin installation reconcilers detect that declared marketplaces differ from what is materialized, use the diff to decide whether to auto-refresh plugins or escalate to a manual refresh prompt. Source Pattern: Distilled from reviewed extension lifecycle and source-reconciliation patterns.
getDeclaredMarketplaces()), the previously materialized config (loadKnownMarketplacesConfig()), and compute diffMarketplaces() so you know which names are missing or changed.pendingNames from diff.missing plus diff.sourceChanged so the UI reports exactly which marketplaces are still being processed; return early when that array is empty so no work runs unless there is material change.reconcileMarketplaces({ onProgress }), map the installing/installed/failed events to AppState, track metrics for installed/updated/failed/up-to-date counts, and log them via logEvent and diagnostics helpers.result.installed.length > 0, clear the marketplace cache, log the auto-refresh path, and await refreshActivePlugins(setAppState) inside a try/catch so MCP caches are rebuilt. On refresh failure, log the error, clear the plugin cache, and set plugins.needsRefresh via AppState only if it was previously false.result.updated.length > 0, clear both marketplace and plugin caches and set the needsRefresh flag so the UI invites /reload-plugins while avoiding an automatic refresh.refreshActivePlugins or setting needsRefresh so stale artifacts cannot leak into the new plugin state.refreshActivePlugins in a try/catch, log failures (logError, logForDebugging), and fall back to needsRefresh rather than silently suppressing the error.needsRefresh setter so it only flips once per failure path and never reassigns while the flag is already true.Installing a curated marketplace during background startup on a fresh homespace uses this path so the new tools become available without forcing the user to manually run /reload-plugins.
result.installed.length === 0; the caches were already populated and redundant refreshes slow startup.needsRefresh flag exists so the UI can surface /reload-plugins once the auto-path fails.refreshActivePlugins; stale cache entries must be removed before the refresh attempt or the refresh may still resolve to old code.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.