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 jackchuka/skillctx --skill skillctx-ifygit clone --depth 1 https://github.com/jackchuka/skillctxWrote 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/jackchuka/skillctx/skillctx-ify)<a href="https://agentmods.dev/skills/jackchuka/skillctx/skillctx-ify"><img src="https://agentmods.dev/badge/skills/jackchuka/skillctx/skillctx-ify/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/jackchuka/skillctx/skillctx-ify"><img src="https://agentmods.dev/badge/skills/jackchuka/skillctx/skillctx-ify.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.00054 | $0.01559 |
| Opus 5.5 | $0.00022 | $0.00624 |
| Sonnet 5.5 | $0.00011 | $0.00312 |
| Haiku 4.5 | $0.00005 | $0.00156 |
Grade A, and why
skillctx-ify 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 1mo 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 — 130 lines — stays where its author put it; the contents beside it link to each section on GitHub.
skillctx-ify
Migrate a skill to use skillctx for skill variable resolution.
When to Use
- Making a skill portable (removing hardcoded values)
- Setting up a new skill to use skillctx
- User says "skillctx-ify" or "migrate skill to skillctx"
Prerequisites
- Python 3.10+ (for the resolver script)
- Target skill must be installed and discoverable by the agent host
Workflow
Phase 1: Scan and classify
-
Locate the target skill: Find the skill directory by name. Follow symlinks to the actual directory.
-
Check for prior migration: Check for
<!-- skillctx:begin -->marker in the skill's SKILL.md. If found, checkmetadata.skillctx.versionin frontmatter.- If version matches current: report already migrated, stop.
- If version is older: suggest running
skillctx-syncto update.
-
Read the skill files: Read SKILL.md and all referenced files in the skill directory. Also read
references/known-patterns.mdfor classification guidance. -
Identify candidates: Scan the content for hardcoded values that are user-specific or environment-specific — usernames, Slack channel IDs, filesystem paths, org names, etc. For each candidate, determine:
- Is this actually a skill variable or a generic/example string? Use context (tool calls vs prose), repetition, and specificity to decide.
- What category does it belong to in
vars? Use existing config categories as a guide. Defaults:identity,slack,paths,blog. - What should the binding key be named? See Binding Key Naming below.
-
Read existing config: Read
${XDG_CONFIG_HOME:-~/.config}/skillctx/config.jsonif it exists. If not, note it needs to be created. Reuse existing vars when the value already exists in the config — don't create duplicates.
Phase 2: Confirm and rewrite
-
Present proposed changes to user in a table like this:
Hardcoded value File:line Binding key Var dotpath New? CABC123DEFSKILL.md:42 channel_idvars.slack.channel_idyes aliceSKILL.md:10 github_usernamevars.identity.github_usernameno (exists)
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 1mo ago First seen · 130 lines · 54 tokens per session scan A 3e68f4156e5b
skillctx-ify is a skill published in the GitHub repository jackchuka/skillctx (5 stars, last pushed yesterday), licensed MIT. It adds 54 tokens to every session and 1,559 once invoked, about $0.0002 per session on Opus 5.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-08-31.
Other skills, from other repositories
gemini-api-dev
Use this skill when writing code that calls the Gemini API for text generation, multi-turn chat, multimodal understanding, image generation, video generation, speech generation (TTS), voice design, voice replication, streaming responses, background research tasks, function calling, structured output, or migrating from…
gemini-omni-flash-api
Use this skill for generative video editing, text-to-video, image-referenced video generation, first-frame-to-video, first-and-last-frame transitions, and video extensions using Gemini Omni 1.1 Flash (gemini-omni-1.1-flash) via the official google-genai SDK. Includes workflows for pre-processing/optimizing…
gemini-live-api-dev
Use this skill when building real-time, bidirectional streaming applications with the Gemini Live API, or migrating legacy Live models (2.0/2.5/3.1) to Gemini 3.8 Live. Covers WebSocket-based audio/video/text streaming, voice activity detection (VAD), background reasoning (extended thinking), asynchronous function…
gemini-watermark-remover
Remove visible Gemini image watermarks from local image files by calling the project's CLI. Use when the user wants an agent to clean one or more local Gemini-generated images and save de-watermarked output files.
whalechan-image-comic
Create DeepSeek Whale-chan comics from text, screenshots, images, chat logs or reasoning traces. For N images per source (default 5), freeze 2N concise ideas, have a different sub-agent priority-rank and select N, then complete their visual plans and obtain one generation confirmation. Use for funny 1/2/4-panel…
whalechan-image-character
Propose DeepSeek Whale-chan character illustrations, let the user select directions, then separately confirm quantities, visual settings and candidate budget before generating verified PNGs. Use for character portraits and themed illustrations with consistent identity and customizable visuals; default to one image per…