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 aduermael/herm --skill audit-xcode-security-settingsgit clone --depth 1 https://github.com/aduermael/hermWrote 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/aduermael/herm/audit-xcode-security-settings)<a href="https://agentmods.dev/skills/aduermael/herm/audit-xcode-security-settings"><img src="https://agentmods.dev/badge/skills/aduermael/herm/audit-xcode-security-settings/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/aduermael/herm/audit-xcode-security-settings"><img src="https://agentmods.dev/badge/skills/aduermael/herm/audit-xcode-security-settings.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 7 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Rogue Agent · line 27 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Rogue Agent · line 29 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Rogue Agent · line 149 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Tool Misuse · line 137 Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.Fix: Override unsafe defaults with secure settings (verify=True, auth required, restrictive permissions). Review and harden all tool configurations.
- medium Tool Misuse · line 148 Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.Fix: Override unsafe defaults with secure settings (verify=True, auth required, restrictive permissions). Review and harden all tool configurations.
- medium Tool Misuse · line 173 Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.Fix: Override unsafe defaults with secure settings (verify=True, auth required, restrictive permissions). Review and harden all tool configurations.
- medium Excessive Agency · line 158 Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
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.00111 | $0.04177 |
| Opus 5.5 | $0.00044 | $0.01671 |
| Sonnet 5.5 | $0.00022 | $0.00835 |
| Haiku 4.5 | $0.00011 | $0.00418 |
Grade A, and why
audit-xcode-security-settings 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 — 217 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Audit Xcode Security Settings
Assess an Xcode project's security posture and progressively enable security build settings and entitlements — from broadly applicable warnings through Enhanced Security hardening.
Tool Preferences
When GetTargetBuildSettings writes its output to a saved file due to a token limit, see references/reading-build-settings.md for the schema and the filter script (scripts/filter_build_settings.py). Do not read the saved file linearly.
When XcodeGlob, XcodeGrep, XcodeRead, and XcodeLS tools are available, ALWAYS use them. Do not fall back to Bash filesystem tools (ls, find, cat, grep) to learn about the project. They trigger extra permission prompts and bypass project scoping.
- XcodeGlob for file discovery —
findis forbidden for files inside the project. - XcodeGrep for content search —
grep/rgis forbidden for files inside the project. - XcodeRead for file contents —
cat/Readis forbidden for files registered in the project. - XcodeLS for directory listing —
lsis forbidden for any path inside the project.
Project root and name are already in the system prompt context. Do NOT run ls to "verify" the project layout before starting. The system prompt already tells you the working directory and the project structure.
Empty XcodeGlob results are not a failure. The .xcodeproj and .xcworkspace are not indexed as files inside the Xcode project organization — XcodeGlob "**/*.xcodeproj" correctly returns 0 matches. Use the project name from system-prompt context instead. Do not fall back to filesystem ls/find.
Path translation between project-org and filesystem. XcodeGlob returns project-org-relative paths. To read or edit a file:
- Prefer
XcodeRead/XcodeUpdatewith the project-org path. - If that path is rejected (some on-disk files like
.entitlementsplists may not be navigable throughXcodeRead), translate to a filesystem absolute path by prepending the project root from system context. Do NOT usefindto discover the on-disk path.
What ships with it
15 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.
- references/additional-settings.md 916 B
- references/adoption-strategy.md 4.3 KB
- references/cpp-hardening.md 3.5 KB
- references/decision-document.md 3.4 KB
- references/enhanced-security.md 6.0 KB
- references/hardware-memory-tagging.md 3.1 KB
- references/pointer-authentication.md 4.5 KB
- references/reading-build-settings.md 1.8 KB
- references/readonly-platform-memory.md 2.2 KB
- references/runtime-restrictions.md 2.6 KB
- references/security-compiler-warnings.md 3.2 KB
- references/settings-and-entitlements-catalog.md 7.9 KB
- references/stack-zero-init.md 1.9 KB
- references/typed-allocators.md 2.9 KB
- scripts/filter_build_settings.py 2.4 KB runs code
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 · 217 lines · 111 tokens per session scan A e7da9b402251
audit-xcode-security-settings is a skill published in the GitHub repository aduermael/herm (233 stars, last pushed 2mo ago), licensed MIT. It adds 111 tokens to every session and 4,177 once invoked, about $0.0004 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-30.
Other skills, from other repositories
intentic
What Intentic is and how this sandbox works. Load it BEFORE answering any question about the product (a panel, setting or card; connecting, configuring, extending or debugging the sandbox), before saying Intentic cannot do something, and whenever the sandbox misbehaves (a failed turn, a broken editor).
fly
Manage Fly.io machines, apps, volumes and app secrets through the Machines API. Use when the user asks what is running on Fly.io, or to start, stop, resize, move, redeploy or destroy a Fly machine.
windows
Operate "${id}", the user's own Windows device: run commands, read and write files, capture its screen. Use whenever the user says "my machine", "my laptop", "my PC", "locally", or names this device, and for anything that must happen on their device rather than in the sandbox.
Gmail, Google Calendar, Drive, Docs, Sheets and Contacts for a connected Google account: read and search mail, send and reply, book and move meetings, find files, read and write Docs and Sheets, look people up. Use whenever the user mentions their email, inbox, calendar, meetings, Drive, a Google Doc or Sheet.
Read and send messages in the connected WhatsApp number's chats and groups via the whatsapp CLI, and pair its linked device. Use when the user asks to send a WhatsApp message (to a person by name or number), reply or react in a chat or group, read a chat's history, fetch a file someone sent, or connect/pair WhatsApp.
fleet
Create sandboxes on the owner's intentic account from inside this one, via the sandboxes CLI, read what the account already runs, and remove one a task is done with. Use when a task needs a SEPARATE sandbox — a second project, a specialized agent with its own tools and access, a box for a role that should not share…