Borrowing it
Nothing to install: this file belongs to duckduckgo/apple-browsers. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/duckduckgo/apple-browsers/main/.claude/skills/ddg-drk-add-icon/SKILL.mdgit clone --depth 1 https://github.com/duckduckgo/apple-browsersWrote 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/duckduckgo/apple-browsers/ddg-drk-add-icon)<a href="https://agentmods.dev/skills/duckduckgo/apple-browsers/ddg-drk-add-icon"><img src="https://agentmods.dev/badge/skills/duckduckgo/apple-browsers/ddg-drk-add-icon/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/duckduckgo/apple-browsers/ddg-drk-add-icon"><img src="https://agentmods.dev/badge/skills/duckduckgo/apple-browsers/ddg-drk-add-icon.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.00173 | $0.02842 |
| Opus 5 | $0.00086 | $0.01421 |
| Sonnet 5 | $0.00035 | $0.00568 |
| Haiku 4.5 | $0.00017 | $0.00284 |
Grade A, and why
ddg-drk-add-icon scanned grade A with 1 finding 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 10d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
1. **Get the file locally.** If input is a URL, `curl -fL -o /tmp/<basename> <url>`. If local, just note the path. When given multiple URLs, you may run the `curl`s in parallel. How it starts
The opening of the file, as written. The whole thing — 133 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ddg-drk-add-icon
Overview
Imports one or more SVGs into the DesignResourcesKitIcons Swift package at SharedPackages/Infrastructure/DesignResourcesKitIcons. For each icon, three things must always change together:
- An
*.imageset/(or*.symbolset/for Recolorable) directory underDesignSystemImages.xcassets/{Category}/{Size}/containing the SVG. - A
Contents.jsonin that directory — format differs by category. - A
public static varaccessor in the matchingDesignSystemImages+Glyphs.swift/+Color.swift/+Recolorable.swift, inserted alphabetically inside the rightSizeNenum.
Forgetting any of the three leaves the icon unusable.
Inputs
- Required: one or more local paths and/or
http(s)URLs to SVGs. A single icon is just a list of length one — treat the singular and batch cases the same way. - Optional, only if a filename doesn't follow convention: category, size, accessor name (per-icon).
Inputs may mix local paths and URLs in the same invocation, and may span multiple categories/sizes — they don't have to be homogeneous.
Filename convention (drives everything else)
| Category | Filename | Example |
|---|---|---|
| Glyph | Title-Case-{size}.svg |
Pin-Remove-12.svg |
| Color | Title-Case-Color-{size}.svg |
Chat-Color-12.svg |
| Recolorable | lower-case-recolorable-{size}.svg |
check-recolorable-24.svg |
Allowed sizes: Glyph 12/16/20/24, Color 12/16/24/32/42/72/96/128, Recolorable 24.
If the file you were given doesn't match, rename it to match before continuing. Don't invent new size buckets — confirm with the user instead.
Steps
Run steps 1–6 for each input icon in the list (they're independent — fetch all first, then process). Step 7 is a single verification pass at the end.
- Get the file locally. If input is a URL,
curl -fL -o /tmp/<basename> <url>. If local, just note the path. When given multiple URLs, you may run thecurls in parallel. - Parse the filename to derive:
- Category (Glyph / Color / Recolorable — by presence of
-Color-or-Recolorable-). - Size (trailing number before
.svg). - Base name (everything before the category/size suffix).
- Accessor name = base name lowerCamelCased. For Color, drop the
Colorsuffix from the variable name but keep it in the resource name (e.g.Chat-Color-12.svg→ accessorchat, resource.chatColor12). For Recolorable, same shape — dropRecolorablefrom the variable name but keep it in the resource (e.g.check-recolorable-24.svg→ accessorcheck, resource.checkRecolorable24). For Glyph, no suffix to drop — the whole base name becomes the camelCased variable and the resource is<variable><size>(e.g.Pin-Remove-12.svg→ accessorpinRemove, resource.pinRemove12).
- Category (Glyph / Color / Recolorable — by presence of
- Create the imageset/symbolset directory:
- Glyph:
SharedPackages/Infrastructure/DesignResourcesKitIcons/Sources/DesignResourcesKitIcons/DesignSystemImages.xcassets/Glyphs/{size}px/{Filename-without-.svg}.imageset/ - Color: same root,
Color/{size}px/...imageset/— exception:Color/32x/(nop, matches existing repo state). - Recolorable:
Recolorable/{size}px/{Title-Cased-filename-without-.svg}.symbolset/— the directory is Title-Case (e.g.Check-Recolorable-24.symbolset/) to match how Glyph and Color imageset directories are cased. (The existingcheck-recolorable-24.svgSVG predates this convention; new icons should follow it.)
- Glyph:
- Copy the SVG into that directory. If needed, rename the SVG to match the imageset/symbolset directory name (e.g. drop
Check-Recolorable-24.svginsideCheck-Recolorable-24.symbolset/). hefilenamefield inContents.json(next step) must reference the SVG file name exactly. - Write
Contents.jsonin that same directory. Use the variant for the category:
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.
- 10d ago First seen · 133 lines · 173 tokens per session scan A 05eca2570849
ddg-drk-add-icon is a skill published in the GitHub repository duckduckgo/apple-browsers (252 stars, last pushed yesterday), licensed Apache-2.0. It adds 173 tokens to every session and 2,842 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-01.
Other skills, from other repositories
review-pr
Review a pull request for conceptual fit, architecture impact, adversarial failure modes, security risk, docs impact, regression risk, test coverage, and merge readiness. Use when asked to review a PR, check whether a PR is safe to merge, decide if more tests are needed, perform adversarial or security review, or…
time-bomb-radar
Finds deferred operations that crash on aged data -- code that passes every test but breaks weeks or months after release. Covers cascade deletes, cache expiry, trial paths, background accumulation, date-threshold transitions, and scheduled side effects. Triggers: "time bomb", "time-bomb", "/time-bomb-radar", "aged…
radar-suite-axis-classification
Shared axis classification framework for all radar-suite skills. Every finding must be classified as axis1 (bug), axis2 (scatter), or axis3 (dead/smelly) before emission, with mandatory coaching fields and file:line citations to existing patterns in the audited codebase. Triggers: invoked by every radar before…
swift-focusengine-pro
Reviews, writes, and fixes focus management code for all Apple platforms (tvOS, iOS/iPadOS, watchOS, visionOS, macOS), covering SwiftUI, UIKit, AppKit, and RealityKit. Use when reading, writing, or reviewing apps that handle focus, hover, key view loops, or Digital Crown navigation.
apple-hig-check
Audit code or design against Apple Human Interface Guidelines.
ipad-layout-audit
Detects hardcoded iPhone-sized widths, missing iPad orientation keys, and absent size-class adaptation that cause layout failures on iPad reviewers' devices under guidelines 2.1 and 2.4.1.