apple-browsers: Skill for Claude Code

.claude/skills/ddg-drk-add-icon/SKILL.md

ddg-drk-add-icon is a skill for Claude Code from duckduckgo/apple-browsers. It costs 173 tokens per session (2,842 once invoked), scanned A, original, Apache-2.0.

A list of coding practices to avoid, including global state, shared singleton objects, and unhandled errors in asynchronous code. It pairs common mistakes with safer dependency-injection and error-handling patterns.

In plain words
What is it for?
Use it during code reviews or development when working with dependencies, shared state, asynchronous operations, and UI updates.
Why use it?
It highlights designs that are difficult to test, debug, or maintain. Developers can use it as a checklist when reviewing implementation choices.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is duckduckgo/apple-browsers's own configuration. It tells Claude Code how to work on apple-browsers itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything apple-browsers configures →

Not installable: its command points at a path on the author’s own machine, so it runs nowhere else. The line is /Users/ayoy/Downloads/Pin-Remove-12.svg.

Reuse

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.

Copy the file
curl -O https://raw.githubusercontent.com/duckduckgo/apple-browsers/main/.claude/skills/ddg-drk-add-icon/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/duckduckgo/apple-browsers

Made for: Claude Code.

Wrote 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.

agentmods badge for ddg-drk-add-icon

README.md
[![agentmods](https://agentmods.dev/badge/skills/duckduckgo/apple-browsers/ddg-drk-add-icon/github.svg)](https://agentmods.dev/skills/duckduckgo/apple-browsers/ddg-drk-add-icon)
Your own site
<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.

agentmods 80×15 button for ddg-drk-add-icon

Your own site · 80×15
<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>
Per session 173 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,842 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 10d ago against content hash 05eca2570849, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

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.
.claude/skills/ddg-drk-add-icon/SKILL.md · 133 lines

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:

  1. An *.imageset/ (or *.symbolset/ for Recolorable) directory under DesignSystemImages.xcassets/{Category}/{Size}/ containing the SVG.
  2. A Contents.json in that directory — format differs by category.
  3. A public static var accessor in the matching DesignSystemImages+Glyphs.swift / +Color.swift / +Recolorable.swift, inserted alphabetically inside the right SizeN enum.

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.

  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 curls in parallel.
  2. 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 Color suffix from the variable name but keep it in the resource name (e.g. Chat-Color-12.svg → accessor chat, resource .chatColor12). For Recolorable, same shape — drop Recolorable from the variable name but keep it in the resource (e.g. check-recolorable-24.svg → accessor check, 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 → accessor pinRemove, resource .pinRemove12).
  3. 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/ (no p, 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 existing check-recolorable-24.svg SVG predates this convention; new icons should follow it.)
  4. Copy the SVG into that directory. If needed, rename the SVG to match the imageset/symbolset directory name (e.g. drop Check-Recolorable-24.svg inside Check-Recolorable-24.symbolset/). he filename field in Contents.json (next step) must reference the SVG file name exactly.
  5. Write Contents.json in that same directory. Use the variant for the category:

Read the full file on GitHub · 133 lines

Changes

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.

  1. 10d ago First seen · 133 lines · 173 tokens per session scan A 05eca2570849

Subscribe to this mod's changes

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.

Related

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…

soniqo/speech-swift · 71 tokens

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…

Terryc21/radar-suite · 80 tokens

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…

Terryc21/radar-suite · 77 tokens

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.

mhaviv/Swift-FocusEngine-Agent-Skill · 74 tokens

apple-hig-check

Audit code or design against Apple Human Interface Guidelines.

lyupro/skillforge-mcp · 15 tokens

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.

cruisediary/apple-app-review-skills · 49 tokens