CtrlK
BlogDocsLog inGet started
Tessl Logo

agent-pagerank-analyzer

Agent skill for pagerank-analyzer - invoke with $agent-pagerank-analyzer

49

9.44x
Quality

26%

Does it follow best practices?

Impact

85%

9.44x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.agents/skills/agent-pagerank-analyzer/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

25%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a long, marketing-style catalog of capabilities, domains, and integration patterns, padded with concepts Claude already knows and built around code examples that are pseudocode (undefined variables and helper functions throughout). It begins with a malformed second YAML frontmatter block, has no bundle files or progressive disclosure, and its workflows lack any validation checkpoints or concrete commands.

Suggestions

Cut the buzzword catalogs (Application Domains, Integration Patterns, Performance Optimization, Advanced Graph Algorithms) and the closing self-promotional paragraph — they restate knowledge Claude already has; keep only tool names, parameters, and one worked example.

Make code examples runnable by defining inputs and replacing undefined helpers (extractTopRecommendations(), identifyInfluencers(), load_graph_partition(), etc.) with concrete code or explicit instructions.

Add validation checkpoints to the Example Workflows (e.g. check PageRank convergence/iteration results before reporting scores) and move detailed material into references/ files linked one level deep from SKILL.md.

DimensionReasoningScore

Conciseness

The ~290-line body is heavily padded with buzzword catalogs of concepts Claude already knows — e.g. "**Spectral Clustering**: Use spectral methods", "**GPU Acceleration**: Leverage GPU computing", "**Sparse Representations**: Use efficient sparse matrix representations", "**Viral Marketing**: Optimize viral marketing campaign targeting" — plus a duplicate YAML frontmatter block and a closing self-promotional paragraph. This matches anchor 1 ('Severely verbose... heavily padded'); it never rises to 2 because almost none of the bulk adds information Claude lacks.

1 / 5

Actionability

Real MCP tool names with concrete parameters are given (e.g. `mcp__sublinear-time-solver__pageRank` with `damping: 0.85, epsilon: 1e-8, maxIterations: 1000`), but every code example depends on undefined inputs and helper functions — `edgeWeights`, `userItemGraph`, `socialNetworkAdjacency`, `extractTopRecommendations()`, `identifyInfluencers()`, `load_graph_partition()`, `compute_local_pagerank()`, `synchronize_scores()` — making them pseudocode rather than executable guidance. This fits anchor 3 ('Some concrete guidance but incomplete; pseudocode instead of executable code'); not 4 because no example runs as written, not 2 because tool names, argument shapes, and parameter values are genuinely specific.

3 / 5

Workflow Clarity

The 'Example Workflows' are numbered but purely abstract — e.g. "1. **Network Construction**: Build social network graph from user interactions ... 5. **Impact Measurement**: Measure campaign impact using network metrics" — with no commands, no validation checkpoints, and no error-recovery loops, mirroring anchor 2's '1. Open the document / 2. Make changes / 3. Save and close'. Not 3 because the steps are not executable or verifiable in any form (no convergence checks, no verification of results); not 1 because a rough sequence is at least listed.

2 / 5

Progressive Disclosure

There are no bundle files (no references/, scripts/, or assets/ exist) and the entire ~290-line monolith — tool catalog, six code examples, domain listings, integration patterns, and workflows — is inlined in SKILL.md with no references or navigation, matching anchor 2 ('content that clearly belongs in separate files is inlined'). Not 3 because there are no references at all to signal, only section headers over inlined bulk; not 1 because the body is at least sectioned into navigable headers rather than a wall of text.

2 / 5

Total

8

/

20

Passed

Description

28%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The frontmatter description is a generic auto-generated wrapper ("Agent skill for X - invoke with $agent-pagerank-analyzer") that names the domain but communicates no capabilities, no use-when triggers, and no distinguishing details. The file is also structurally malformed: a second orphaned YAML frontmatter block containing a much richer description sits inside the body instead of in the actual frontmatter.

Suggestions

Replace the frontmatter description with a third-person capability statement, e.g. "Computes PageRank and influence metrics for large graphs using sublinear algorithms..." — use the richer description currently stranded in the orphaned second YAML block in the body, and delete that duplicate block.

Add an explicit 'Use when...' trigger clause covering natural user phrases such as "graph analysis", "social network analysis", "influence ranking", and "network topology".

State 3-5 concrete actions (compute PageRank, identify influential nodes, detect communities, optimize swarm topology) so the description distinguishes this skill from generic graph/network skills.

DimensionReasoningScore

Specificity

The frontmatter description is only "Agent skill for pagerank-analyzer - invoke with $agent-pagerank-analyzer" — it names the domain (pagerank-analyzer) but states no capability or action verb whatsoever, matching the anchor 'Names the domain but actions are minimal or generic'. It is not score 1 pure abstraction because a concrete domain is named, and not score 3 because there are no listed concrete actions at all.

2 / 5

Completeness

The 'what' is vague ("Agent skill for pagerank-analyzer" says nothing about what it does) and there is no 'when' — no "Use when..." or equivalent trigger clause, which the guidelines cap at 3 anyway. This exactly matches anchor 2 ('Has a vague what and no when'); it is not 3 because the what is too vague to count as clear, and not 4 because no when-clause exists. Note: a second, richer description ('Expert agent for graph analysis and PageRank calculations...') exists in an orphaned second YAML block inside the body, but the actual frontmatter field is the wrapper string above.

2 / 5

Trigger Term Quality

The only natural keyword is "pagerank"; the rest is harness jargon ("Agent skill", "invoke with $agent-pagerank-analyzer") that no user would say. This fits 'One or two generic keywords; missing the natural phrases users say'; it is not 3 because common variations users would actually say (graph analysis, network, influence, link analysis) are entirely absent.

2 / 5

Distinctiveness Conflict Risk

"pagerank-analyzer" itself denotes a fairly distinct niche (PageRank/graph analysis), so wholesale conflict risk is moderate, but the description supplies no distinguishing capability or trigger terms beyond the name — 'Somewhat specific but could still overlap with similar skills'. Not 4 because nothing in the text (as opposed to the name) distinguishes it from other graph/network analysis skills.

3 / 5

Total

9

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
ruvnet/ruflo
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.