Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add LeoLin990405/r-analytics-skill --skill r-networkgit clone --depth 1 https://github.com/LeoLin990405/r-analytics-skillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/leolin990405/r-analytics-skill/r-network)<a href="https://agentmods.dev/skills/leolin990405/r-analytics-skill/r-network"><img src="https://agentmods.dev/badge/skills/leolin990405/r-analytics-skill/r-network.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00024 | $0.01123 |
| Opus 5 | $0.00012 | $0.00562 |
| Sonnet 5 | $0.00005 | $0.00225 |
| Haiku 4.5 | $0.00002 | $0.00112 |
Grade A, and why
r-network scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 175 lines — stays where its author put it; the contents beside it link to each section on GitHub.
R Network Analysis Skill
Sub-skills
| Sub-skill | Description |
|---|---|
| r-network-analysis | igraph, tidygraph, centrality, communities |
| r-network-viz | ggraph, visNetwork, networkD3 |
| r-network-dynamic | networkDynamic, ndtv, temporal networks |
Network and graph analysis in R.
Core Packages
| Package | Description |
|---|---|
| igraph ★ | Comprehensive network analysis |
| tidygraph ★ | Tidy API for graphs |
| network | Basic relational data tools |
| sna | Social network analysis |
Network Modeling
| Package | Description |
|---|---|
| ergm | Exponential random graph models |
| latentnet | Latent position/cluster models |
| manynet | Many network types |
Dynamic Networks
| Package | Description |
|---|---|
| networkDynamic | Dynamic/temporal networks |
| ndtv | Animated network visualization |
| netdiffuseR | Network diffusion analysis |
Visualization
| Package | Description |
|---|---|
| ggraph ★ | Grammar of graphics for graphs |
| visNetwork ★ | Interactive visualization (vis.js) |
| networkD3 | D3 network graphs |
| autograph | Automagic network plotting |
Metrics & Analysis
| Package | Description |
|---|---|
| tnet | Weighted/two-mode networks |
| rgexf | Export to GEXF (Gephi) |
Quick Examples
# igraph basics
library(igraph)
# Create graph
g <- graph_from_data_frame(edges, directed = TRUE, vertices = nodes)
# Or from adjacency matrix
g <- graph_from_adjacency_matrix(adj_matrix)
# Basic metrics
vcount(g) # Number of vertices
ecount(g) # Number of edges
degree(g) # Degree centrality
betweenness(g) # Betweenness centrality
closeness(g) # Closeness centrality
page_rank(g)$vector # PageRank
# Community detection
communities <- cluster_louvain(g)
membership(communities)
modularity(communities)
# Shortest paths
shortest_paths(g, from = "A", to = "B")
distances(g)
# Plot
plot(g,
vertex.size = degree(g) * 2,
vertex.color = membership(communities),
edge.arrow.size = 0.5)
# tidygraph + ggraph
library(tidygraph)
library(ggraph)
tg <- as_tbl_graph(g) %>%
activate(nodes) %>%
mutate(
centrality = centrality_degree(),
community = group_louvain()
)
ggraph(tg, layout = "fr") +
geom_edge_link(alpha = 0.5) +
geom_node_point(aes(size = centrality, color = factor(community))) +
geom_node_text(aes(label = name), repel = TRUE) +
theme_graph()
# Interactive visualization
library(visNetwork)
visNetwork(nodes, edges) %>%
visOptions(highlightNearest = TRUE) %>%
visLayout(randomSeed = 123)
# Network statistics
transitivity(g) # Clustering coefficient
diameter(g) # Network diameter
graph.density(g) # Density
assortativity_degree(g) # Degree assortativity
What ships with it
15 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- r-network-analysis/igraph/SKILL.md 3.3 KB
- r-network-analysis/network/SKILL.md 3.2 KB
- r-network-analysis/SKILL.md 1.3 KB
- r-network-analysis/sna/SKILL.md 1.4 KB
- r-network-analysis/statnet/SKILL.md 3.5 KB
- r-network-analysis/tidygraph/SKILL.md 1.7 KB
- r-network-dynamic/ndtv/SKILL.md 1.9 KB
- r-network-dynamic/networkDynamic/SKILL.md 1.9 KB
- r-network-dynamic/SKILL.md 1.3 KB
- r-network-dynamic/tsna/SKILL.md 1.7 KB
- r-network-viz/ggraph/SKILL.md 1.9 KB
- r-network-viz/SKILL.md 1.6 KB
- sub-skills/r-network-analysis/sub-skills/sna/SKILL.md 1.4 KB
- sub-skills/r-network-analysis/sub-skills/tidygraph/SKILL.md 1.7 KB
- sub-skills/r-network-viz/sub-skills/ggraph/SKILL.md 1.9 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 175 lines · 24 tokens per session scan A de1886aef2c4
r-network is a skill published in the GitHub repository LeoLin990405/r-analytics-skill (5 stars, last pushed 5mo ago), licensed MIT. It adds 24 tokens to every session and 1,123 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
bio-applied-bio-data-formats
Parse/write FASTA, FASTQ, SAM/BAM, VCF, BED, GFF/GTF with pysam and pure Python; decode SAM FLAG/CIGAR; reconcile 0-based vs 1-based coordinates. Use for custom format parsers or off-by-one coordinate bugs.
bio-applied-mageck-gene-essentiality
Run MAGeCK count/test on pooled CRISPR sgRNA screens, scoring gene essentiality via RRA, FDR, and log2 fold-change. Use when analyzing CRISPR screen FASTQ/count data, calling essential or drug-resistance genes, or benchmarking vs DepMap.
bio-applied-molecular-evolution
Test Hardy-Weinberg equilibrium, simulate Wright-Fisher drift/selection, and compute dN/dS, Tajima's D, and Fst with NumPy/SciPy. Use for neutral theory, molecular clock divergence time, selection scans, or effective population size (Ne) questions.
bio-applied-network-modules
Detect PPI/co-expression modules with NetworkX/python-louvain/leidenalg (Louvain, Leiden, modularity Q) and WGCNA eigengenes. Use when clustering a gene network, computing WGCNA modules, or testing DEG/pathway enrichment on network communities.
bio-applied-ribo-seq
Ribo-seq: cutadapt/bowtie2 adapter+rRNA removal, plastid P-site calibration, 3-nt periodicity QC, RiboCode/ribotricer ORF calling, translation efficiency. Use when user has ribosome profiling or footprint data.
bio-core-computational-genetics
Translate DNA per-frame, score codon usage bias (RSCU/CAI), simulate restriction digests/ORFs, and test three-point-cross mapping and Hardy-Weinberg equilibrium. Use for CAI, virtual digests, crossover mapping, or HWE tests.