Agent skill · Audited from source
axiom-media
skill · charleswiltgen/axiomMIT licenceAudited 31 Oct 2026 · source 0f9ca4f3815b
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 0f9ca4f3815b and found no filesystem, network or shell access and no hard-coded secrets. What it does: Use when working with camera, photos, audio, haptics, ShazamKit, on-device music analysis, face grouping and video highlights, screen recording, casting to non-AirPlay routes, SharePlay playback, the user's Apple Music…
Cite
Cite this page
ModelsAtlas. “axiom-media (charleswiltgen/axiom)”. Retrieved 31 Oct 2026. https://modelsatlas.com/skills/charleswiltgen/axiom-media
Trust audit
Audit 0.4.1 · source read 31 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 16,667 of 17,602 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | NA | 0 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 6 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (6)
LOWPrompt injectionprompt.transfer_instruction · skills/now-playing.md:1316
Two token kinds, both `Data?` and both rotating — hex-encode each new value, send it to your server over HTTPS, and invalidate the old one. Tokens are device-scoped identifiers: keep them only as long
- Why
- an instruction to move sensitive data to an outside destination
- Fix
- remove; a skill never needs the user's secrets off the machine
INFOPrompt injectionprompt.authority_framing · skills/photo-library-ref.md:384
| `.authorized` | Full access granted |
- Why
- No further detail recorded for this rule.
- Fix
- —
INFOPrompt injectionprompt.authority_framing · skills/photo-library.md:721
### Anti-Pattern 1: Requesting Full Access for Photo Picking
- Why
- No further detail recorded for this rule.
- Fix
- —
INFOPrompt injectionprompt.authority_framing · skills/photo-library.md:870
**Reality**: Since iOS 14, users can grant limited access. Full access request triggers additional privacy prompt. App Store Review may reject unnecessary permission requests.
- Why
- No further detail recorded for this rule.
- Fix
- —
INFOPrompt injectionprompt.authority_framing · skills/photo-library.md:883
**Pressure**: "Just ask for full access again."
- Why
- No further detail recorded for this rule.
- Fix
- —
INFOPrompt injectionprompt.authority_framing · skills/photo-library.md:936
- ☑ Using .addOnly when full access not needed
- Why
- No further detail recorded for this rule.
- Fix
- —
Audit 0.4.1 · source sha 0f9ca4f3815b · 31 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publishercharleswiltgen GitHub userOwner of the repository this skill is read from
- Source foldercharleswiltgen/axiom/axiom-codex/skills/axiom-mediaThe exact folder we audited
- LicenceMITAs the repository states it
- Commit pinned for this verdict0f9ca4f3815bA new audit runs when the source changes
- Repository statusNot archivedPushed today
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Use when working with camera, photos, audio, haptics, ShazamKit, on-device music analysis, face grouping and video highlights, screen recording, casting to non-AirPlay routes, SharePlay playback, the user's Apple Music…
---
name: axiom-media
description: Use when working with camera, photos, audio, haptics, ShazamKit, on-device music analysis, face grouping and video highlights, screen recording, casting to non-AirPlay routes, SharePlay playback, the user's Apple Music library, lock-screen metadata, or CarPlay app design, templates, and navigation. Covers AVCaptureSession, AVFoundation, Core Haptics, MediaPlayer, MusicKit, NowPlaying, ScreenCaptureKit, DockKit.
license: MIT
---
# Media
**You MUST use this skill for ANY camera, photo, audio, haptic, or media playback work.**
<!-- AXIOM_AUDITOR_INLINE_BEGIN — rewritten for Codex by scripts/build-codex.ts; do not hand-edit -->
> **Auditors are skills here.** Where this router says "Launch `some-auditor` agent", invoke the
> matching Codex skill instead — same procedure, no Claude Code agent required.
>
> Available: `axiom-audit-camera`.
>
> The ones that shell out — builds, tests, simulators, crash symbolication — need shell access to run.
<!-- AXIOM_AUDITOR_INLINE_END -->
## Quick Reference
| Symptom / Task | Reference |
|----------------|-----------|
| Camera capture, AVCaptureSession | See `skills/camera-capture.md` |
| Slow camera launch / deferred start (iOS 26+), ProRes recording via Pro Video Storage (`OS27`) | See `skills/camera-capture.md` Patterns 8-9 |
| Camera API (RotationCoordinator, etc.) | See `skills/camera-capture-ref.md` |
| Lens aperture / shutter / ISO priority modes, exposure signals, continuous autofocus tracking, low-light video noise reduction, cinematic video metadata capture (`OS27`) | See `skills/camera-capture-ref.md` |
| Center Stage front camera (iPhone 17), dynamic aspect ratio, smart framing, 24/48 MP capture | See `skills/camera-capture-ref.md` |
| iPhone Duo front cameras (virtual front camera, inner/outer ultra-wide), camera direction vs position | See `skills/camera-capture.md` Pattern 6 and `skills/camera-capture-ref.md` (iPhone Duo Front Cameras) |
| Camera freezes, black preview, rotation | See `skills/camera-capture-diag.md` |
| Photo pickers, library access | See `skills/photo-library.md` |
| PHPicker, PhotosPicker, PhotoKit API reference: asset metadata editing (keywords, rating, caption), persistent change observer, background resource upload (`OS27`) | See `skills/photo-library-ref.md` |
| PhotoKit + Swift 6 strict concurrency, `nonisolated` observer, `performChanges` isolation, `_dispatch_assert_queue_fail` | See axiom-concurrency (skills/isolation-inheritance-diag.md) |
| Audio, AVFoundation, spatial audio, async session activation, throwing AVAudioEngine APIs (`OS27`) | See `skills/avfoundation-ref.md` |
| Video write/export/playback, sample-buffer engine, resumable export, Apple Log 2, iOS 27 deprecations (`OS27`) | See `skills/avfoundation-video-ref.md` |
| Audio recognition, ShazamKit | See `skills/shazamkit.md` |
| ShazamKit API reference | See `skills/shazamkit-ref.md` |
| On-device music analysis (key, tempo, structure, loudness), MusicUnderstanding (`OS27`) | See `skills/music-understanding.md` |
| On-device face grouping (cluster faces into people across a library), video highlights/key frames, MediaIntelligence (`OS27`) | See `skills/media-intelligence.md` |
| Haptic feedback, Core Haptics | See `skills/haptics.md` |
| SharePlay coordinated playback, AVDelegatingPlaybackCoordinator, custom-engine sync | See `skills/shareplay-playback.md` |
| SharePlay session lifecycle, activation, non-media state | Use axiom-integration (`skills/shareplay.md`) instead |
| Now Playing metadata, remote commands | See `skills/now-playing.md` |
| Siri playing content in your audio app ("play X in MyApp", like/add-to-playlist by voice) | **Use `axiom-integration` (`skills/siri-audio.md`)** — Audio schema domain + SiriKit media |
| Animated lock-screen artwork (iOS 26+) | See `skills/now-playing.md` Pattern 8 |
| NowPlaying framework (`import NowPlaying`, Swift-native `MediaSession`, `OS27`) | See `skills/now-playing.md` (NowPlaying Framework section) |
| Cast / route media to non-AirPlay devices (Google Cast/Chromecast, DLNA) as system routes, AVSystemRouting (`iOS27`, likely EU-gated) | See `skills/system-media-routing.md` |
| Screen capture / recording / streaming the screen or your own app, ScreenCaptureKit (`OS27` — new on iOS/iPadOS/tvOS/visionOS 27; macOS 12.3+) | See `skills/screen-capture.md` |
| CarPlay HIG, app categories, design rules, entitlements | See `skills/carplay-hig.md` |
| CarPlay templates reference (all 12 templates, availability matrix, depth limits) | See `skills/carplay-templates-ref.md` |
| CarPlay navigation reference (base view, route guidance, cluster/HUD, multitouch, voice prompts, map panels + EV charging iOS 27) | See `skills/carplay-navigation-ref.md` |
| CarPlay Now Playing template customization + sports mode | See `skills/now-playing-carplay.md` |
| MusicKit Now Playing, ApplicationMusicPlayer playback, subscription/authorization | See `skills/now-playing-musickit.md` |
| Enumerate the user's Apple Music **library** — MusicLibraryRequest vs MPMediaQuery, reconciling the two, playlist entries, sync, library identity, per-device `Song.id`, missing `PlayParameters`, MusicKit stops responding after a scan | See `skills/music-library.md` |
| DockKit motorized stands / gimbals, subject tracking, custom motor control | See `skills/dockkit.md` |
| Speech-to-text / transcription (SpeechAnalyzer, mic → transcript) | **Invoke axiom-ai** (`skills/speech.md`) |
## Decision Tree
```dot
digraph media {
start [label="Media task" shape=ellipse];
what [label="Which media feature?" shape=diamond];
auditor [label="camera-auditor agent" shape=box];
start -> what;
what -> "skills/camera-capture.md" [label="camera capture"];
what -> "skills/photo-library.md" [label="photo pickers\n/ library"];
what -> "skills/avfoundation-ref.md" [label="audio / AVFoundation"];
what -> "skills/avfoundation-video-ref.md" [label="video write/export\n/ sample-buffer (OS27)"];
what -> Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 0f9ca4f
git clone https://github.com/charleswiltgen/axiom git -C axiom checkout 0f9ca4f3815b
The author documents no install command, so this uses the repository directly. Our verdict covers commit 0f9ca4f3815b only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Claude Code | Mentioned in its text, not tested | Skills for Claude Code · About Claude Code |
| Codex | Mentioned in its text, not tested | Skills for Codex · About Codex |
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
0f9ca4f3815b
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/charleswiltgen/axiom-media/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
obra/superpowers
Use when creating new skills, editing existing skills, or verifying skills work before deployment
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
mattpocock/skills
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
Add this badge to your README
[](https://modelsatlas.com/skills/charleswiltgen/axiom-media/)
<a href="https://modelsatlas.com/skills/charleswiltgen/axiom-media/"><img src="https://modelsatlas.com/skills/charleswiltgen/axiom-media/badge.svg" alt="ModelsAtlas: SAFE B"></a>
Questions about axiom-media
What does the axiom-media skill do?
Is axiom-media safe to install?
What can axiom-media access on my machine?
Which assistants does axiom-media work with?
How current is this page?
Sources
- github.com/charleswiltgen/axiom/tree/main/axiom-codex/skills/axi — the audited source at commit 0f9ca4f3815b and every finding aboveObserved · 31 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the axiom-media skill do?
- Is axiom-media safe to install?
- What can axiom-media access on my machine?