一键导入
scripting
Pick the right scripting runtime. Deno+dax by default, Python+uv only when a Python-only library is needed. Load before generating any script.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Pick the right scripting runtime. Deno+dax by default, Python+uv only when a Python-only library is needed. Load before generating any script.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Behavioral testing methodology — test what users experience, not how code is structured. Use when writing tests, reviewing test quality, planning test strategy for new features, or when existing tests are brittle/verbose/coupled to implementation details. Triggers: writing tests, TDD, test review, "tests keep breaking", "too many mocks", "tests are verbose", test coverage planning, behavior-driven development.
Summon 8–12 fictional but statistically plausible people from Kyrgyzstan to judge your web app. They take screenshots, click around, get confused, get delighted, and write honest reviews in Russian. Output: a single .md report with embedded screenshots. Use when you need brutal UX feedback from people who ride marshrutkas.
Artemy Lebedev-style бизнес-линч design review. Opens the site in a real browser, screenshots everything, then tears it apart (or praises it) in his signature voice — brutal, specific, visual. Use when you want a no-bullshit design review, 'линч', 'lebedev review', 'artemy review', or 'roast my site'.
Autonomous experiment loop — modify code, measure, keep/discard, repeat forever. Based on Karpathy's autoresearch pattern. Use when there's working code + a measurable metric to optimize. Agent works while you sleep.
Iterative deep research agent — recursive breadth×depth tree search that accumulates learnings, generates follow-ups, and produces cited reports. Uses exa + serper + subagents. Use when user says 'deep research', 'investigate', 'deep dive', 'thorough analysis', or needs multi-source synthesis with depth.
Detect and fix design system leaks — default shadcn/bootstrap/MUI styling breaking through your brand. Use when: UI feels 'template-y', 'looks like shadcn', 'too generic', buttons are inconsistent colors, cards look default, or after shipping many features fast. Also: 'audit my design', 'check consistency', 'brand leak', 'fix the defaults'.
| name | scripting |
| description | Pick the right scripting runtime. Deno+dax by default, Python+uv only when a Python-only library is needed. Load before generating any script. |
| Script needs… | Use | Skill to load |
|---|---|---|
| Shell commands, pipes | Deno + dax | deno |
| HTTP/data/batch | Deno + dax | deno + longrun |
| Python-only lib (Telethon, bip_utils, libgen-api, radon…) | Python + uv run | python |
Default is Deno. Only pick Python when a required library doesn't exist in JS/TS.
#!/usr/bin/env -S deno run --allow-all
import $ from "jsr:@david/dax@0.44.2";
import { pooledMap, retry } from "jsr:@std/async";
import { sortBy, partition, chunk, sumOf } from "jsr:@std/collections";
Single file, inline jsr: imports, no config files. Load deno skill for full reference.
#!/usr/bin/env -S uv run
# /// script
# requires-python = ">=3.12"
# dependencies = ["httpx", "plumbum"]
# ///
from plumbum import local, RETCODE
from plumbum.cmd import git, curl, jq
PEP 723 inline deps, zero-setup. plumbum for shell commands (only lib where piping works). Load python skill for full reference.
Never generate venvs, requirements.txt, or deno.json for throwaway scripts.
Before writing fuzzy matching, entity resolution, or classification logic — use ask(). It's cheaper than iterating on string algorithms.
| Task | ❌ Don't | ✅ Do |
|---|---|---|
| "Same hotel?" | Jaccard, identity keywords, compound tokenizer (10 iterations) | ask("Same hotel? A='X' B='Y'") — done, first try |
| "What category?" | regex chains, keyword lists | ask("Classify: ...") |
| "Extract field" | regex with 12 edge cases | ask("Extract room type from: ...") |
import { ask, run } from "~/.pi/agent/lib/pi-llm.ts";
const answer = await ask("Is this critical?", { model: "claude-haiku-4-5" }); // instant judgment
const result = await run("Research X", { tools: "full", maxTurns: 8 }); // agent with tools
Rule: if you're on iteration 2+ of fixing edge cases in string matching, you already wasted time — should have used ask() from the start. Tokens are unlimited (Max subscription). Optimize for results, not cost. See longrun skill for batch patterns.