iPhone-Duo-Agent-Skill
AGENTS.md6 starsChanged 36 days agoMITView on GitHub
This repository contains Agent Skills that advise on and change iOS app code. - Phase 1 stays read-only. duo_scan.py and sdk_api_check.py must never write to the scanned project or the SDK. Keep it that way; test_scan_does_not_modify_files guards the scanner. - duo_pose.py changes simulator state — it moves an iPhone Duo simulator's hinge and device orientation through the third-party hinge CLI. Skills run it only in the verification phase, after the developer approves; it acts on iPhone Duo simulators only and…
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,542 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository5 other files it gives its agents.
- iphone-duo-adaptivity-auditSkill
- iphone-duo-barsSkill
- iphone-duo-displaysSkill
- iphone-duo-layoutSkill
- iphone-duo-readinessSkill
The file
We split this AGENTS.md into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 34
Keep the plugin version identical in .claude-plugin/plugin.json, .claude-plugin/marketplace.json, .cursor-plugin/plugin.json and …
- Distinctive: line 38
Run before completing a change:
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Agent guidance
This repository contains Agent Skills that advise on and change iOS app code.
- Phase 1 stays read-only.
duo_scan.pyandsdk_api_check.pymust never write to the scanned project or the SDK. Keep it that way;test_scan_does_not_modify_filesguards the scanner. duo_pose.pychanges simulator state — it moves an iPhone Duo simulator's hinge and device orientation through the third-partyhingeCLI. Skills run it only in the verification phase, after the developer approves; it acts on iPhone Duo simulators only and restores the angle and the orientation aftershoot. Its tests never touch a simulator.- Every recommendation cites a session and timestamp. New scanner rules need a
sourcematchingTech Talk 1114xx … m:ssorWWDC26 278 … m:ss. Where no session covers a rule, an Apple technote (TN3208 …) is the source; the metadata test enforces both forms. An Apple engineer's forum answer is cited by thread number (Forums 848036) in the skills and references, never as a scanner rule's only source; it ranks below the talks, the HIG, the documentation and the SDK (references/sources.md). - The SDK outranks the talks. Typecheck every code sample against the installed
SDK before adding it (
xcrun --sdk iphonesimulator swiftc -typecheck). The iOS 27.1 SDK ships with Xcode 27.1, so "reproduced from a session page" is no longer reason enough for a 27.1 API. A sample that cannot be typechecked must say so, and say why — that it is a fragment, or that the machine lacks the SDK. - Shared files have one source. Edit
references/*.mdandscripts/*.pyat the root, then runpython3 scripts/sync_skill_copies.py. Never edit the copies underskills/*/referencesorskills/*/scriptsthat the sync script owns. - Keep SKILL.md descriptions under 1024 characters and the
nameequal to the directory name. - Scanner changes need tests for both a positive and a negative case.
- Behavior changes need evals. Each skill keeps skill-creator evals in
skills/<skill>/evals/(evals.jsonwith fixture projects underfiles/, andtrigger-evals.json). Re-run them with and without the skill before claiming an improvement;scripts/package_skills.pyleavesevals/out of release archives. - Keep the plugin version identical in
.claude-plugin/plugin.json,.claude-plugin/marketplace.json,.cursor-plugin/plugin.jsonandagents/openai.yaml. A GitHub release is cut by pushing a matchingvX.Y.Ztag; theReleaseworkflow builds the.skillarchives (CONTRIBUTING.md› Releasing). Run before completing a change:
python3 scripts/sync_skill_copies.py --check python3 -m unittest discover -s tests -v
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

