loadout-system-design — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited loadout-system-design (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.
| What you need | Load |
|---|---|
| Two-process overview, file map, state flow, build pipeline | references/architecture.md |
| Extension entry, src/ modules, data.js API, security model | references/extension-host.md |
| Angular 21, state services, DataSyncService, shared primitives | references/webview-angular.md |
| Full message catalogue (WebviewMessage + ExtensionMessage types) | references/messaging-protocol.md |
| Domain types, storage paths, profiles, hash/sync mechanics | references/domain-storage.md |
| File size limits, CommonJS rules, Angular rules, git, formatting | references/coding-rules.md |
| Design tokens, color palettes, SCSS mixins, animations, a11y | references/ui-design-system.md |
These apply everywhere, always — no exceptions.
import vscode or use fs/path/os from any file under webview/.fs.writeFileSync in src/ modules.standalone: true + ChangeDetectionStrategy.OnPush — no exceptions.BehaviorSubject / ReplaySubject for state.src/ module or Angular subcomponent when approaching this.profiles.json.<svg>.require() / module.exports in all .js root files; update-claude.mjs is the sole ESM exception.cd webview && npm run build.When adding a new feature end-to-end, follow this order:
webview/src/app/core/messages.ts (single source of truth for all shared types).profiles.json, ui-state.json, or a new data.js function. Update data.js and src/snapshot.js::buildInitialData if InitialData changes.WebviewMessage union variant and/or ExtensionMessage variant to messages.ts; handle the new case in src/message-handler.js.core/state/*.state.ts to expose new signals or a setter; update DataSyncService.applyData() if InitialData fields changed.OnPush component or extend an existing feature. Inject the state service; never own domain state locally. Send actions via bridge.send() in methods, not templates.src/validators.js and call it in message-handler.js before acting.cd webview && npm run build, verify webview-dist/ is updated.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.