Writing Livekit Scenarios
livekit-examples/agent-starter-python
Creates and maintains the scenarios a LiveKit agent simulation runs, and wires the agent to consume them.
Unified risk engine with VaR, stress testing, volatility regimes, and automated controls
$ npx skills add alsk1992/CloddsBot --skill risk -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install alsk1992/CloddsBot risk --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/alsk1992/CloddsBot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/skills/bundled/risk .claude/skills/risk && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "risk" agent skill from https://github.com/alsk1992/CloddsBot/tree/main/src/skills/bundled/risk into .claude/skills/risk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "risk", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/alsk1992/CloddsBot/tree/main/src/skills/bundled/riskType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add alsk1992/CloddsBot --skill risk -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install alsk1992/CloddsBot risk --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alsk1992/CloddsBot.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/skills/bundled/risk .agents/skills/risk && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "risk" agent skill from https://github.com/alsk1992/CloddsBot/tree/main/src/skills/bundled/risk into .agents/skills/risk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "risk", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alsk1992/CloddsBot --skill risk -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install alsk1992/CloddsBot risk --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alsk1992/CloddsBot.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/skills/bundled/risk .cursor/skills/risk && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "risk" agent skill from https://github.com/alsk1992/CloddsBot/tree/main/src/skills/bundled/risk into .cursor/skills/risk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "risk", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/alsk1992/CloddsBot.git --path src/skills/bundled/risk--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add alsk1992/CloddsBot --skill risk -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install alsk1992/CloddsBot risk --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alsk1992/CloddsBot.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/skills/bundled/risk .gemini/skills/risk && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "risk" agent skill from https://github.com/alsk1992/CloddsBot/tree/main/src/skills/bundled/risk into .gemini/skills/risk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "risk", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install alsk1992/CloddsBot riskInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add alsk1992/CloddsBot --skill risk -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/alsk1992/CloddsBot.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/skills/bundled/risk .github/skills/risk && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "risk" agent skill from https://github.com/alsk1992/CloddsBot/tree/main/src/skills/bundled/risk into .github/skills/risk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "risk", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alsk1992/CloddsBot --skill risk -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install alsk1992/CloddsBot risk --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alsk1992/CloddsBot.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/skills/bundled/risk .opencode/skills/risk && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "risk" agent skill from https://github.com/alsk1992/CloddsBot/tree/main/src/skills/bundled/risk into .opencode/skills/risk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "risk", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
riskUnified risk engine with VaR, stress testing, volatility regimes, and automated controls
Risk is an agent skill from alsk1992/CloddsBot. Unified risk engine with VaR, stress testing, volatility regimes, and automated controls
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `index.ts`).
It sits in Testing & QA, covering Load testing. The repository describes itself as: Open Source AI trading agent that operates autonomously across 1000+ markets - Polymarket, Kalshi, Binance, Hyperliquid, Solana DEXs, 5 EVM chains. Scans for edge, executes… The licence is MIT.
10 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c930628. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (TypeScript), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Risk loads about 2.4k tokens when it runs. Until then it costs about 23 tokens; SKILL.md has 418 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from alsk1992/CloddsBot at commit c930628, republished under its MIT licence (© alsk1992). 418 words, ~2,444 tokens.
.claude/skills/risk/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Full risk management engine: circuit breakers, loss limits, Value-at-Risk, volatility regime detection, stress testing, and kill switches.
/risk Current risk status
/risk status Detailed status with portfolio metrics
/risk limits View all limits
/risk dashboard Real-time risk metrics (VaR, regime, HHI, etc.)/risk var Value-at-Risk and CVaR numbers
/risk regime Current volatility regime and size multiplier
/risk stress [scenario] Run stress test (flash_crash, black_swan, etc.)Available stress scenarios: flash_crash, liquidity_crunch, platform_down, correlation_spike, black_swan
/risk set max-loss 1000 Max daily loss ($)
/risk set max-loss-pct 10 Max daily loss (%)
/risk set max-drawdown 20 Max drawdown (%)
/risk set max-position 25 Max single position (%)
/risk set max-trades 50 Max trades per day
/risk set consecutive-losses 5 Stop after N losses/risk trip "manual stop" Manually trip breaker
/risk reset Reset after cooldown
/risk kill Emergency stop all trading
/risk check 500 Check if a $500 trade is allowedThe risk engine is the single entry point for all pre-trade validation. It orchestrates 10 checks in order:
import { createRiskEngine } from 'clodds/risk';
const engine = createRiskEngine(
{
varLimit: 500, // Reject trades if portfolio VaR > $500
varConfidence: 0.95,
varWindowSize: 100,
volatilityConfig: {
lookbackWindow: 30,
haltOnExtreme: true, // Stop trading in extreme volatility
},
},
{
riskContext, // From trading/risk.ts
safetyManager, // From trading/safety.ts
circuitBreaker, // From execution/circuit-breaker.ts
kellyCalculator, // From trading/kelly.ts
getPositions: () => positions,
getPositionValues: () => positions.map(p => p.value),
}
);const decision = engine.validateTrade({
userId: 'user-123',
platform: 'polymarket',
marketId: 'market-456',
outcome: 'YES',
side: 'buy',
size: 500,
price: 0.65,
estimatedEdge: 0.05, // 5% edge
confidence: 0.8,
category: 'politics',
});
if (decision.approved) {
// Use adjustedSize — may be smaller than requested (Kelly + regime)
await executeTrade(decision.adjustedSize);
console.log(`Regime: ${decision.regime}`);
console.log(`Warnings: ${decision.warnings}`);
} else {
console.log(`Blocked: ${decision.reason}`);
// Check which step failed:
for (const check of decision.checks) {
console.log(` ${check.name}: ${check.passed ? 'PASS' : 'FAIL'} — ${check.message}`);
}
}engine.recordPnL({
pnlUsd: -45.20,
pnlPct: -0.09,
positionId: 'polymarket:market-456:YES',
timestamp: new Date(),
});const risk = engine.getPortfolioRisk();
console.log(`Total value: $${risk.totalValue}`);
console.log(`VaR (95%): $${risk.var95}`);
console.log(`VaR (99%): $${risk.var99}`);
console.log(`CVaR (95%): $${risk.cvar95}`);
console.log(`Regime: ${risk.regime}`);
console.log(`Drawdown: ${risk.drawdownPct}%`);import { createVaRCalculator, calculateVaR, calculateCVaR } from 'clodds/risk';
// Full calculator with rolling window
const calc = createVaRCalculator({ windowSize: 100, confidenceLevel: 0.95 });
calc.addObservation({ pnlUsd: -50, pnlPct: -0.05, timestamp: new Date() });
const result = calc.calculateAt(0.99);
console.log(`VaR (99%): $${result.historicalVaR}`);
console.log(`CVaR (99%): $${result.cvar}`);
// Quick one-liners
const var95 = calculateVaR(pnlArray, 0.95);
const cvar95 = calculateCVaR(pnlArray, 0.95);import { createVolatilityDetector, detectRegime } from 'clodds/risk';
const detector = createVolatilityDetector({
lookbackWindow: 30,
haltOnExtreme: false,
regimeMultipliers: { low: 1.2, normal: 1.0, high: 0.5, extreme: 0.25 },
});
detector.addObservation(0.03); // 3% P&L
const snapshot = detector.detect();
console.log(`Regime: ${snapshot.regime}`); // 'low' | 'normal' | 'high' | 'extreme'
console.log(`Size multiplier: ${snapshot.sizeMultiplier}x`);
console.log(`Should halt: ${snapshot.shouldHalt}`);
// One-shot from array
const regime = detectRegime(recentPnLPcts);import { runStressTest, runAllScenarios, getAvailableScenarios } from 'clodds/risk';
const result = runStressTest(positions, 'flash_crash');
console.log(`Estimated loss: $${result.estimatedLoss} (${result.estimatedLossPct}%)`);
console.log(`Severity: ${result.severity}`);
console.log(`Recommendations: ${result.recommendations.join(', ')}`);
// Run all scenarios at once
const all = runAllScenarios(positions); // sorted by severity
// Override scenario parameters
const custom = runStressTest(positions, 'flash_crash', {
scenarios: { flash_crash: { lossPct: 30, description: 'Severe crash' } },
});import { getRiskDashboard } from 'clodds/risk';
const dashboard = engine.getDashboard();
console.log(`VaR (95%): $${dashboard.portfolioVaR95}`);
console.log(`Regime: ${dashboard.regime} (${dashboard.regimeSizeMultiplier}x)`);
console.log(`Daily P&L: $${dashboard.dailyPnL} / $${dashboard.dailyLossLimit}`);
console.log(`Drawdown: ${dashboard.currentDrawdown}% / ${dashboard.maxDrawdown}%`);
console.log(`Concentration HHI: ${dashboard.concentrationHHI}`);
console.log(`Kill switch: ${dashboard.killSwitchActive}`);
console.log(`Warnings: ${dashboard.warnings}`);import { createCircuitBreaker, MODERATE_CONFIG } from 'clodds/risk';
// Feature-engineering circuit breaker (market-condition-aware)
const breaker = createCircuitBreaker(MODERATE_CONFIG);
breaker.startMonitoring();
if (!breaker.canTrade('polymarket', marketId)) {
return; // Trading halted
}
breaker.recordTrade({ success: true, pnl: 2.5 });// Emergency stop via SafetyManager — no auto-resume
safetyManager.killSwitch('Market anomaly detected');
// Resume manually after review
safetyManager.resumeTrading();| # | Check | Module | Blocks Trade? |
|---|---|---|---|
| 1 | Kill switch | SafetyManager | Yes |
| 2 | Circuit breaker | CircuitBreaker | Yes |
| 3 | Max order size | trading/risk | Yes |
| 4 | Exposure limits | trading/risk | Yes |
| 5 | Daily loss limit | SafetyManager | Yes |
| 6 | Max drawdown | SafetyManager | Yes |
| 7 | Concentration | SafetyManager | Yes |
| 8 | VaR limit | VaRCalculator | Yes (if configured) |
| 9 | Volatility regime | VolatilityDetector | Yes (if extreme + halt) |
| 10 | Kelly sizing | DynamicKelly | No (adjusts size) |
| Trigger | Default | Description |
|---|---|---|
| Daily loss (USD) | $1,000 | Absolute loss limit |
| Daily loss (%) | 10% | Percentage of capital |
| Drawdown | 20% | Peak-to-trough |
| Consecutive losses | 5 | Losses in a row |
| Error rate | 50% | Failed order rate |
| Max trades | 50 | Trades per day |
| Regime | Size Multiplier | Description |
|---|---|---|
low | 1.2x | Calm markets, slightly larger positions |
normal | 1.0x | Baseline conditions |
high | 0.5x | Elevated volatility, half size |
extreme | 0.25x | Crisis — quarter size or halt trading |
| Scenario | Loss | Description |
|---|---|---|
flash_crash | 20% | All positions lose value instantly |
liquidity_crunch | 10% | Slippage doubles, partial fills |
platform_down | 15% | Primary platform offline |
correlation_spike | 25% | All positions move together |
black_swan | 40% | 3-sigma tail event |
| Status | Description |
|---|---|
armed | Normal, trading allowed |
warning | Approaching limits (80%) |
tripped | Limit exceeded, trading stopped |
killed | Emergency stop, manual reset required |
/risk reset to re-arm/risk reset after manual review (no auto-resume)/risk var and /risk dashboard regularly/risk stress before large position changes/risk regime to understand current volatility© alsk1992, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in src/skills/bundled/risk of alsk1992/CloddsBot.
Open the folder on GitHubat commit c930628
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in alsk1992/CloddsBot, which our catalogue first saw on October 7, 2026.
Risk next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Risk this skillalsk1992/CloddsBot | 2.9k | 1 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Writing Livekit Scenarioslivekit-examples/agent-starter-python | 264 | 1 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Go Testingcxuu/golang-skills | 170 | 1 repos | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Goalcraftgrp06/goalcraft | 102 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Thinking Partnermattnowdev/thinking-partner | 206 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Visionkunchenguid/vision | 329 | — | ~2.9k | Automated safety check: Pass | MIT |
livekit-examples/agent-starter-python
Creates and maintains the scenarios a LiveKit agent simulation runs, and wires the agent to consume them.
cxuu/golang-skills
A skill your agent uses when writing, reviewing, or improving Go test code — including table-driven tests, subtests, parallel tests, test helpers, test doubles, and assertions with cmp.Diff.
grp06/goalcraft
Turn a rough draft, vague ambition, or messy task brief into a powerful Codex /goal objective for persistent, evidence-checked work.
mattnowdev/thinking-partner
A deterministic thinking partner that challenges assumptions and applies mental models to sharpen decisions, solve problems, and think more clearly.
kunchenguid/vision
Draft and stress-test a VISION.md for a repository, then iterate with the author on an interactive review board until approved.
owenHochwald/volt
Safely exercise and evaluate HTTP APIs with the Volt CLI, including authenticated requests, JSON bodies, staged load, machine-readable results, performance baselines, and before/after comparisons.
alsk1992/CloddsBot
Local hybrid search for markdown notes and docs. An agent skill from alsk1992/CloddsBot.
alsk1992/CloddsBot
Drift Protocol perpetual futures trading on Solana (direct SDK)
alsk1992/CloddsBot
Find mispriced markets by comparing to external models and data sources
alsk1992/CloddsBot
Vector embeddings configuration and semantic search. An agent skill from alsk1992/CloddsBot.
alsk1992/CloddsBot
Monitor news and correlate with prediction market movements. An agent skill from alsk1992/CloddsBot.
alsk1992/CloddsBot
Find and execute cross-platform arbitrage opportunities across prediction markets
Categories
Unified risk engine with VaR, stress testing, volatility regimes, and automated controls. Risk is an agent skill from alsk1992/CloddsBot.
Risk fits situations like: tasks that involve Load testing.
Run `npx skills add alsk1992/CloddsBot --skill risk -a claude-code`. Or copy the skill folder (src/skills/bundled/risk in alsk1992/CloddsBot) into .claude/skills/risk in your project. Claude Code loads it when a task matches its description.
Run `npx skills add alsk1992/CloddsBot --skill risk -a codex`. Or copy the skill folder (src/skills/bundled/risk in alsk1992/CloddsBot) into .agents/skills/risk in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add alsk1992/CloddsBot --skill risk -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/risk, .gemini/skills/risk, .github/skills/risk and .opencode/skills/risk in your project.
Going by SKILL.md and its folder, Risk needs TypeScript for the scripts in its folder. Our summary lists: Node.js.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Risk is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Risk: Writing Livekit Scenarios (livekit-examples/agent-starter-python, 264 stars), Go Testing (cxuu/golang-skills, 170 stars), Goalcraft (grp06/goalcraft, 102 stars) and Thinking Partner (mattnowdev/thinking-partner, 206 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
alsk1992 (a GitHub user) maintains it in alsk1992/CloddsBot, which has 2,903 GitHub stars. The repository holds 116 skills in this directory. The repository was last updated on October 2, 2026.
Source: alsk1992/CloddsBot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.