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 spatstatgit 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/spatstat)<a href="https://agentmods.dev/skills/leolin990405/r-analytics-skill/spatstat"><img src="https://agentmods.dev/badge/skills/leolin990405/r-analytics-skill/spatstat/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/leolin990405/r-analytics-skill/spatstat"><img src="https://agentmods.dev/badge/skills/leolin990405/r-analytics-skill/spatstat.svg" alt="Reviewed on agentmods" width="80" 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.00023 | $0.01092 |
| Opus 5 | $0.00012 | $0.00546 |
| Sonnet 5 | $0.00005 | $0.00218 |
| Haiku 4.5 | $0.00002 | $0.00109 |
Grade A, and why
spatstat 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 9d 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 — 219 lines — stays where its author put it; the contents beside it link to each section on GitHub.
spatstat
Spatial point pattern analysis.
Point Patterns
library(spatstat)
# Create point pattern
pp <- ppp(x, y, window = owin(c(0, 1), c(0, 1)))
# From data frame
pp <- ppp(df$x, df$y, window = owin(range(df$x), range(df$y)))
# With marks (attributes)
pp <- ppp(x, y, window = win, marks = factor(types))
Windows
# Rectangular window
win <- owin(c(0, 100), c(0, 100))
# Polygonal window
win <- owin(poly = list(x = c(0, 1, 1, 0), y = c(0, 0, 1, 1)))
# Circular window
win <- disc(radius = 50, centre = c(50, 50))
# From shapefile
library(maptools)
win <- as.owin(sp_polygon)
Summary Statistics
# Summary
summary(pp)
# Intensity (points per unit area)
intensity(pp)
# Quadrat counts
quadratcount(pp, nx = 5, ny = 5)
# Quadrat test (CSR)
quadrat.test(pp, nx = 5, ny = 5)
Density Estimation
# Kernel density
dens <- density(pp)
plot(dens)
# With bandwidth
dens <- density(pp, sigma = 10)
# Adaptive bandwidth
dens <- density(pp, sigma = bw.diggle)
# Bandwidth selection
bw.diggle(pp)
bw.ppl(pp)
bw.scott(pp)
Distance Functions
# G function (nearest neighbor)
G <- Gest(pp)
plot(G)
# F function (empty space)
F <- Fest(pp)
plot(F)
# K function (Ripley's K)
K <- Kest(pp)
plot(K)
# L function (transformed K)
L <- Lest(pp)
plot(L)
# Pair correlation function
g <- pcf(pp)
plot(g)
Envelopes (Significance Testing)
# Monte Carlo envelope for K function
env <- envelope(pp, Kest, nsim = 99)
plot(env)
# For L function
env <- envelope(pp, Lest, nsim = 99)
plot(env)
# Global envelope
env <- envelope(pp, Lest, nsim = 99, global = TRUE)
Point Process Models
# Poisson (CSR)
fit <- ppm(pp ~ 1)
# Inhomogeneous Poisson
fit <- ppm(pp ~ x + y)
# With covariates
fit <- ppm(pp ~ covariate_image)
# Cluster process
fit <- kppm(pp ~ 1, "Thomas")
# Summary
summary(fit)
Marked Point Patterns
# Create marked pattern
pp <- ppp(x, y, window = win, marks = factor(types))
# Split by marks
split(pp)
# Mark correlation
markcorr(pp)
# Cross-type functions
Kcross(pp, "type1", "type2")
Lcross(pp, "type1", "type2")
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.
- 9d ago First seen · 219 lines · 23 tokens per session scan A 31d312cbe99e
spatstat is a skill published in the GitHub repository LeoLin990405/r-analytics-skill (5 stars, last pushed 6mo ago), licensed MIT. It adds 23 tokens to every session and 1,092 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-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.
advanced-string-structures
Build tries, Aho-Corasick, and suffix arrays with Kasai LCP to index DNA/text and match many patterns in one pass. Use for genome motif scanning, k-mer indexing, longest-repeat search, or BWA/FM-index groundwork.
ai-science-esm2-embeddings
Generate ESM2 protein embeddings (fair-esm/transformers) and predict structure with ESMFold. Use when embedding sequences, scoring mutations zero-shot, annotating protein function, or doing fast MSA-free structure prediction.
ai-science-geneformer-scgpt
Tokenize scRNA-seq via Geneformer gene-rank or scGPT expression-bin encoding; annotate cell types, simulate in-silico knockouts. Use for foundation-model cell annotation, Geneformer/scGPT tokenization, or perturbation prediction.
ai-science-zero-shot-mutation
Score protein point mutations zero-shot with ESM-1v/ESM-2 masked-LM log-odds, ensembled, benchmarked on ProteinGym DMS. Use when predicting mutation effects, ranking missense variants, scoring VUS fitness with no labels.
bio-applied-advanced-ngs
Assemble genomes de novo: greedy OLC, de Bruijn graph/Eulerian path, N50/L50/NG50 stats, SPAdes/Flye/hifiasm CLI usage. Use when choosing k-mer size, picking an assembler for Illumina/ONT/HiFi reads, or scoring contiguity.