skills
67 agent skills from scenario-labs/skills — including scenario, scenario-game-assets, scenario-video. Install with npx skills add scenario-labs/skills.
Skillpack is the Claude Code and Codex skills I run in every repo, kept as a git subtree that syncs both ways. A skill edited in one repo reaches the rest.
SkillsPython · CSSGitHub @ong6OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Eight agent skills for Claude Code and Codex, shared across repos by plugin or subtree.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Agent skills I use across my repos, for Claude Code and Codex, plus links to other people's skills I
rate. One folder per skill under skills/, each with a SKILL.md that says when it fires and what
it does. The categories below are the map. A skill lives in exactly one.Read the full README ↗My public agent skills for Claude Code and Codex. Each skill is one folder under skills/, and its
SKILL.md says when it fires and what it does. Every skill belongs to exactly one category in
catalog.yaml. Nothing here holds personal data: guard, lint and CI run before every push.
One skill: link or copy its folder into a repo. Nothing depends on the rest of the tree.
git clone https://github.com/ong6/skills.git
ln -s "$PWD/skills/skills/web-extract" /path/to/repo/.claude/skills/web-extract # Claude Code
ln -s "$PWD/skills/skills/web-extract" /path/to/repo/.agents/skills/web-extract # Codex
Everything, per machine: clone into a root folder, then let bin/skills link what the
machine's profile enables and keep it current.
git clone https://github.com/ong6/skills.git <root>/skills
<root>/skills/bin/skills up --repo <repo> --machines <machines.json>
As a Claude Code plugin: /plugin marketplace add ong6/skills, then
/plugin install skills@ong6-skills.
A single-file, stdlib-only Python CLI (3.7+). It never starts a model session.
| Command | Does |
|---|---|
up --repo R --machines M [--hook claude|codex] [--wait] | match the profile; clone missing checkouts and run the pull flow in the background; link; register Claude local-scope MCP servers; print one status line (plus reloadSkills hook output when links changed) |
link / unlink --repo R --machines M | create the enabled links and remove stale ones / remove every link into the checkouts |
doctor --repo R --machines M [--json] | report profile, links, dangling links, dirty checkouts, shelf, usage, last fetch; exit 1 on problems |
autosync --repo R --machines M | for a Stop hook: publish every dirty or unpushed checkout with a generated message; exit 2 when the agent must fix a guard hit, lint failure or conflict |
publish --checkout C -m MSG | lock, guard (public checkout), lint changed skills, commit, rebase if needed, push |
guard [PATH...] | public-safety scan; exit 2 on hits |
find [WORDS...] [--json] | search core, rarely used and retired skills and the catalog's external links; ranked, with tier and path or URL |
usage --repo R --machines M [--scan] [--json] | last use of every skill across machines and what tidy would do |
tidy --repo R --machines M [--dry-run] | shelve idle core skills and restore used shelved ones, then push |
shelve / restore NAME... | move skills between skills/ and rarely-used/ by hand, then push |
With --machines omitted, the registry is $SKILLS_MACHINES, else life/tech/machines.json or
machines.json inside --repo or the working directory's repo (which then becomes the --repo).
Commands that link, clone or push (up, link, unlink, autosync, tidy, shelve, restore)
exit 2 when neither a registry nor a repo is found, instead of acting on the default profile.
The profile is the skills object of the first machine in the registry whose match fields all
equal this host's (os, model, hostname prefix, wsl, user):
{"machines": [{"match": {"os": "Linux", "hostname": "devbox"}, "name": "Dev box",
"skills": {"scope": "project", "root": "~/src", "private": false,
"repos": ["~/src/notes"], "enable": ["*"], "disable": ["category:design"],
"mcp": []}}]}
scope: project links into <repo>/.claude/skills and <repo>/.agents/skills for --repo and
each of repos, and removes our links from ~/.claude/skills and ~/.agents/skills.
scope: user links into those two home folders instead.root holds the checkouts <root>/skills and <root>/skills-private (default ~/Sideproject). enable and disable take skill names, globs and category:<key>.readonly: true is for a machine that can read the checkouts but never push them (an agent user on a
read-only deploy key): up pulls and links, records no usage, never tidies, and resets a clean
checkout to origin, dropping any local commit, so it keeps fast-forwarding; autosync does nothing.--repo only, public skills only.bin/skills up --repo "$CLAUDE_PROJECT_DIR" --machines <file> --hook claude.
up never prompts and always exits 0, and it returns in well under a second when nothing changed.bin/skills autosync --repo <repo> --machines <file> so skill edits commit
and push themselves at the end of each turn. The public checkout is guarded and linted first;
nothing is pushed past a guard hit.Pull flow. At most every five minutes up starts a background sync. For each checkout it
fetches, then fast-forwards a clean tree, or rebases its local commits onto origin, and pushes
commits an earlier auto-sync, tidy or usage scan left behind. Unpushed public commits are guarded
again before they leave. A dirty tree is left to autosync, which commits it first.
Tiers. Each checkout keeps its skills in two folders:
| Folder | Linked | Holds |
|---|---|---|
skills/<name> | yes | the core set |
rarely-used/<name> | as a stub | skills nobody used for 30 days; still callable by name, found by find |
Once a day the background sync records which skills this machine's Claude Code and Codex
transcripts used, in usage/<machine>.json in the private checkout. It then runs tidy. A core
skill moves to rarely-used/ when no machine used it in 30 days, it arrived in core more than 30
days ago, and there is a month of usage data. Pinned skills (pinned: in catalog.yaml) and
skills that a staying skill names in backticks stay put. A shelved skill used again on any machine
moves back.
A shelved skill keeps a generated stub in the link folders, so typing /name in Claude Code or
$name in Codex still runs it. The Claude stub sets disable-model-invocation: true and the Codex
stub sets allow_implicit_invocation: false, so neither model loads or picks it on its own. The
stub tells the agent to read the real SKILL.md, and that read counts as a use.
A use is a Skill tool call, a /name or $name request, or reading or running the
skill's own files. Edits, searches, and sessions that touch more than five skills (audits, evals)
are not uses.
skills-private, a separate private repo): skills that name their owner's paths,
accounts or voice, plus mcp/servers.json and guard-terms.txt. Private skills may compose
public ones by name. Public skills never reference private ones.bin/skills guard blocks home-directory paths, personal email addresses, phone numbers, NRIC/FIN
numbers, private keys, tokens, the owner terms in skills-private/guard-terms.txt and AI-CLI
launches (codex exec, claude -p) from skill code. To keep a deliberate line, add
public-guard: allow to it.The skill index and catalog below are generated from catalog.yaml and each skill's frontmatter.
CI fails when they drift.
| Skill | What I use it for |
|---|---|
web-extract | Web search and page reads, spending Firecrawl credits first. |
youtube-transcript | Fetch clean captions from a YouTube video. |
save-video | File a YouTube video as a searchable note with takeaways, category and tags. |
datastore | Keep structured records as append-only JSONL with a local SQLite cache for SQL. |
refine (rarely used) | Review and improve the work until its constraints and requested score pass. |
write-a-brief | Write or tighten a one-to-two-page brief for a meeting with a professional, quotes included. |
markdown-to-pdf | Turn a Markdown note into a checked, print-ready A4 PDF. |
system-diagram | Turn a real system flow into a polished, readable SVG figure. |
ux-design | Audit or design a page's UX against a usability checklist before visual polish. |
Getting text and data out of the web and video.
| Skill | Does |
|---|---|
web-extract | Search the web and read or extract pages, spending Firecrawl's monthly credits first and switching to the host's native search and a local readability fetch while they are at zero. Use for web searches, reading a URL, JavaScript-heavy or Cloudflare pages, public PDFs, structured extraction or page interaction. Not for YouTube (youtube-transcript) or LinkedIn (off-limits). |
youtube-transcript | Fetch clean transcripts or captions from YouTube URLs or video IDs. Use when the user shares a YouTube link or asks to transcribe, summarize, cite, or read a video. |
save-video | Save a YouTube video into the video library of the host repo as a note with overview, key takeaways, category and tags, indexed for later search. Use for "save this video", "add this to my videos", a YouTube link with "keep/remember/save", or "what videos do I have on X" (search the library). Not for a one-off summary the owner only wants to read now (youtube-transcript alone). |
datastore | Keep many same-shaped rows as a git-backed dataset: append-only JSONL as truth, a local SQLite cache for SQL. Use for "track X over time", "store these as a table", "query my jobs/prices/workouts", daily ingest scripts or durable machine state. Not for: prose notes, small Markdown tables, secrets. |
Elsewhere:
How replies, briefs and documents read.
| Skill | Does |
|---|---|
refine (rarely used) | Explicit-only. Improve the latest deliverable (draft, code, plan, note, design) through fresh independent reviewer agents until it meets the requested score and all explicit constraints, or three refinement rounds pass. Use for "/refine", "refine this", "run the refine loop", "auto-improve this". Not for a single quick edit, a PR or diff review (code-review), or feedback about agent behaviour (feedback-loop). |
write-a-brief | Write or tighten a one-to-two-page meeting brief for a professional (contractor, consultant, doctor, vendor), including what to ask about their quote. Use for "meeting brief", "prep doc", "questions to ask", "check this quote", or fixing a brief that is too long or AI-sounding; not for email drafts or general notes. |
markdown-to-pdf | Convert a markdown note into a verified, print-ready A4 PDF. Use for printable notes, meeting handouts, or rebuilding generated PDFs; not for editing existing PDFs or building a LaTeX document. |
Elsewhere:
Diagrams, interfaces, 3D and visual judgment.
| Skill | Does |
|---|---|
system-diagram | Draw a polished system or architecture diagram as hand-authored inline SVG: request flows, agent pipelines, queues, service maps, before/after. Use for "system diagram", "architecture diagram", "draw the flow", a figure for a site, README or note. Not for: data charts (dataviz), UI mockups, one-hop relationships. |
ux-design | Audit or design a page or app's UX against a usability checklist (navigation, states, touch targets, focus, contrast, motion, mobile), then hand visuals to frontend-design. Use for "UX pass", "audit the UX", "make this usable on mobile", "accessibility check". Not for: aesthetics alone (frontend-design), charts (dataviz). |
3d-design | Choose and run a 3D workflow (Blender, Three.js, CSS, model-viewer and others) for illustrations, models, character animation and interactive web scenes. Use for "3D design", "model this", "Blender or Three.js", "seamless loop", "make the movement natural". Not for: page layout, 2D diagrams, Blender install issues. |
blender-authoring | Create, edit, animate, export and render Blender scenes using headless Python (bpy). Use after 3d-design selects Blender, or when the user explicitly requests Blender or a blend file. Covers geometry, materials, rigging, animation, lighting and export. Not for choosing between 3D tools, Three.js playback or ordinary page layout. |
Elsewhere:
Trips, shopping, property, learning and hard choices.
| Skill | Does |
|---|---|
decide | Make a hard, consequential choice and commit: reframe it, find the unlisted option, rough numbers, downside, pre-mortem, one pick, the fact that flips it and a tripwire. Use for "should I X or Y", "help me decide", "is it worth quitting / switching", job offers. Not for: what to buy (product-shopping), trivial or factual questions. |
trip-planner | Plan or replan trips using live research for routes, hours, parking, food, tolls, and pacing. Use for itineraries and on-the-road questions about stops, parking, or eating. |
product-shopping | Recommend what product to buy, find the best legitimate price for a chosen model, compare its landed cost across countries (SG vs US and others, in SGD), or say where to buy it. Use for "which X should I get", "is X worth it", cheapest price, deal checks, price history, "should I buy this overseas", "where can I buy X". Not for: property (evaluate-condo). |
evaluate-condo (rarely used) | Evaluate a Singapore condo listing or development and file a cited Buy/Neutral/Avoid note. Use for PropertyGuru, 99.co, EdgeProp, "evaluate this condo", or "is this unit worth it". |
teach | Create a stateful, multi-session course in the learning workspace. Use only when the user invokes teach or asks to start structured learning of a topic. Explicit-only; not for one-off explanations or research reports. |
Interview drilling and job-search practice.
| Skill | Does |
|---|---|
interview-prep | Interview practice from the candidate's own resume and target-company notes: mocks, STAR answers, system-design walkthroughs, timed DSA reps by due pattern, debriefs of real interviews. Use for "mock interview", "give me a rep", "what's due", "I just had an interview". Not for: live rounds (interview-live), resumes (cv), job hunting. |
Elsewhere:
Customer-facing decks for forward-deployed work.
| Skill | Does |
|---|---|
create-fde-deck | Draft or review a customer-facing field-engineering deck: discovery, architecture or pilot readout, every claim labelled evidence, assumption or proposal. Use for "turn these notes into slides", "pilot readout", "go/no-go deck", "review this deck", "fact-check my slides". Not for: interview practice. |
Making, testing and improving the skills themselves.
| Skill | Does |
|---|---|
skill-search | Find whether a skill exists for a job, including unloaded ones: rarely used, retired (private archive) and external skills in the catalog. Use for "do we have a skill for...", "is there a skill like X", or a skill named but not loaded. Not for: writing or revising a skill (skillsmith). |
skillsmith | Make or revise an agent skill grounded in the current repo, then prove it beats the same model without it: gate, inventory, draft, lint, blinded baseline-vs-skill eval, keep or retire. Use to add, write, revise, merge, review or prove a skill. Not for: typo-only edits, AGENTS.md rules, hooks. |
feedback-loop | Log the owner's feedback on how the agent, a skill, hook, rule or reply behaved in feedback.md, and patch its target in the same session. Fires on "don't do X", "stop doing", "next time", "I prefer", "that was wrong", "always"/"never" about the agent. Not for: feedback on the owner's writing or a one-off instruction. |
Elsewhere:
MIT for everything here. Linked repos carry their own licences. Contributions are welcome; see CONTRIBUTING.md. Report security issues privately as described in SECURITY.md.
3d-design | Choose the right authoring and browser workflow for a 3D object or animation. |
blender-authoring | Build, animate, render and export Blender scenes with Python. |
decide | Commit to a hard choice with the numbers, a pre-mortem, a flip fact and a tripwire. |
trip-planner | Plan or replan a trip with live research on routes, hours, parking and food. |
product-shopping | Decide what to buy, find its best legitimate price, or compare it across countries. |
evaluate-condo (rarely used) | Evaluate a Singapore condo listing or development and file a cited verdict. |
teach | Run a stateful, multi-session course on a topic in a learning workspace. |
interview-prep | Mock interviews from your own resume, with spoken-plan grading, drills, debriefs, system design. |
create-fde-deck | Write or review evidence-labelled field-engineering decks: discovery, architecture, pilot readout. |
skill-search | Find a skill for a job across loaded, rarely used, retired and external skills. |
skillsmith | Make a skill from the repo, then keep it only if it beats the same model without it. |
feedback-loop | Record feedback and patch the skill or rule that caused it in the same session. |