Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate plugin dependency resolution logic with topological sorting.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | -5% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -56% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -55% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -40% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -42% | 0% |
Generate plugin dependency resolution logic.
typescriptinterface 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(); }
Other measured skills in the registry, with their headline benchmark lift.