plugin-dependency-resolver — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited plugin-dependency-resolver (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.
Generate plugin dependency resolution logic.
interface PluginNode {
name: string;
dependencies: string[];
}
export function resolveDependencies(plugins: PluginNode[]): string[] {
const graph = new Map<string, string[]>();
const inDegree = new Map<string, number>();
for (const plugin of plugins) {
graph.set(plugin.name, plugin.dependencies);
inDegree.set(plugin.name, 0);
}
for (const [, deps] of graph) {
for (const dep of deps) {
inDegree.set(dep, (inDegree.get(dep) || 0) + 1);
}
}
const queue = [...inDegree.entries()].filter(([, d]) => d === 0).map(([n]) => n);
const result: string[] = [];
while (queue.length > 0) {
const node = queue.shift()!;
result.push(node);
for (const dep of graph.get(node) || []) {
inDegree.set(dep, inDegree.get(dep)! - 1);
if (inDegree.get(dep) === 0) queue.push(dep);
}
}
if (result.length !== plugins.length) {
throw new Error('Circular dependency detected');
}
return result.reverse();
}~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.