asgard-ai-platform/algo-social-virality
Model viral spread dynamics using SIR/SIS/SEIR compartmental models. Use this skill when the user needs to predict content spread patterns, estimate viral thresholds, or model information cascades in social networks — even if they say 'will this go viral', 'epidemic model for content', or 'spread prediction'.
npx skills add https://github.com/asgard-ai-platform/skills --skill algo-social-virality
Compartmental models (SIR, SIS, SEIR) model how content/information spreads through populations. Susceptible → Infected → Recovered mirrors unaware → sharing → stopped sharing. Key metric: R0 (basic reproduction number). Solves as ODEs in O(T × N) for T timesteps, N compartments.
Trigger conditions:
When NOT to use:
IRON LAW: Viral Spread Occurs ONLY When R0 > 1
R0 = transmission rate (β) / recovery rate (γ).
Below R0 = 1, content dies out regardless of initial seed size.
Above R0 = 1, exponential growth phase begins before saturation.
Design interventions (seeding, incentives) to push R0 above threshold.
Define: population size (N), initial seed size (I₀), transmission rate (β — probability of sharing upon exposure), recovery rate (γ — rate of losing interest).
Gate: Parameters non-negative, β and γ estimated from historical data or assumed.
SIR Model: dS/dt = -βSI/N, dI/dt = βSI/N - γI, dR/dt = γI
SIS variant: No recovery to immune state — recovered become susceptible again (recurring content).
Check: S+I+R = N at all timesteps (conservation). Peak and final sizes plausible for given R0.
Gate: Population conserved, dynamics consistent with R0.
Return time series of compartments and summary metrics.
{
"time_series": [{"t": 0, "S": 9900, "I": 100, "R": 0}],
"summary": {"R0": 2.5, "peak_infected": 3200, "peak_day": 12, "total_infected": 8500},
"metadata": {"model": "SIR", "beta": 0.5, "gamma": 0.2, "population": 10000}
}
Input: N=10000, I₀=10, β=0.3, γ=0.1 (R0=3.0)
Expected: Exponential growth, peak ~4000 at day ~15, total infected ~9500
| Input | Expected | Why |
|-------|----------|-----|
| R0 = 0.8 | Rapid decay | Below threshold, dies out |
| I₀ = 1 | Slower start but same eventual dynamics | Single seed takes longer to ignite |
| β = γ (R0=1) | Linear, no growth | Critical threshold, endemic equilibrium |
references/network-sir.mdreferences/parameter-fitting.mdTake asgard-ai-platform/algo-social-virality from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.