Allowlisted engineering skills for Claude Code and Codex.
Policy on when to use what lives in amillez/ai-eng-practices. This repo holds the skill bodies, the model rules template, and the install scripts, so no device keeps hand-copied skill folders.
| Pack | Where it lives | How |
|---|---|---|
| Amillez plugin (amillez skills, model rules, allowlisted upstream packs) | Device user root | ./scripts/install.sh → ~/.claude/skills, ~/.agents/skills; rules → ~/.claude/rules/amillez-models.md, ~/.agents/rules/amillez-models.md; stamp → ~/.amillez-plugin.json |
Project skills (e.g. verify-*) |
The project repo | .claude/skills/<name>/ and .agents/skills/<name>/, committed with the project |
The install scripts never write into project trees. A project may also commit copies of selected stack skills under .claude/skills/ and .agents/skills/ as a mirror for teammates.
git clone [email protected]:amillez/akit.git ~/agent-work/akit
# or, if already cloned:
cd ~/agent-work/akit && git pullcd ~/agent-work/akit
./scripts/install.sh # default: core + mobile
# ./scripts/install.sh --groups core # core only
# ./scripts/install.sh --groups mobile # core still included + mobile
# ./scripts/install.sh --groups core,mobile # same as defaultinstall.sh adds the allowlisted upstream packs with npx skills add, copies the amillez skills under skills/ for the chosen groups into ~/.agents/skills and ~/.claude/skills, copies templates/models.md to the user rules dirs, and writes ~/.amillez-plugin.json (and ~/.agents/amillez-plugin.json).
Groups (see manifest.json groups and the per-entry group tags):
| Group | Always? | Contents |
|---|---|---|
core |
yes (even with --groups mobile) |
amillez-mode, grill-me, grilling, orchestrate-agents, create-verification-skill, maintain-verification-skill, setup-amillez-models, typescript-best-practices |
mobile |
no | Argent, animate-expo, apple-design, review-animations, expo-dev-client, expo-upgrade, react-native-best-practices, uniwind, Margelo Nitro modules, simfleet |
Default is core+mobile. --groups core skips mobile.
Mobile work also needs the Argent CLI on the device (skills alone are not enough):
npm install -g @swmansion/[email protected]
argent init -y --no-telemetry --globalThe simfleet skill needs the simfleet CLI and its device tools. Skip this block on a host that does not run simfleet. The skill falls back to the Argent setup skills when simfleet serve is not up.
brew install bun
bun add -g [email protected]
brew install mobai-app/tap/simslim baguette watchman
brew tap kdbhalala/avdslim https://github.com/kdbhalala/avdslim.git && brew install avdslim scrcpyRun this before every coding session. Bots and agents run it automatically per the ai-eng-practices policy.
cd ~/agent-work/akit
./scripts/ensure-install.sh- The pack counts as installed when the stamp exists and every amillez skill the chosen groups install (
install.sh --list-skills) is in both~/.claude/skillsand~/.agents/skills. - If the stamp is missing, it runs
update-install.shand printsamillez plugin: installed. If a amillez skill is missing, it refreshes and printsamillez plugin: updated. Otherwise it printsamillez plugin: already present. --forcerefreshes even when the pack is present.--groupsworks as ininstall.sh.
ensure-install.sh. The required entry point before coding. It is idempotent. It detects the pack and installs or refreshes it at user root.update-install.sh. Refreshes user-root skills, copiestemplates/models.mdto~/.claude/rules/amillez-models.mdand~/.agents/rules/amillez-models.md, and rewrites the stamp.--skip-upstreamskips the npx packs.--skip-skillsrefreshes only the rules and the stamp.install.sh. Full install: upstream packs, amillez skills, user rules, and the stamp.--skip-upstreamskips the npx packs.test-install.sh. Runs the three install scripts against a temporaryHOMEwith a stubnpx. Run it after changing any install script.check-links.sh. Checks relative Markdown links and their anchors.update-upstream.sh. See Keeping skills up to date.
Grouped as core and mobile in manifest.json, selectable with --groups on install.sh, ensure-install.sh, and update-install.sh.
| Skill | Group | Source | When |
|---|---|---|---|
All Argent argent-* |
mobile | software-mansion/argent (pinned tag in manifest.json) |
Skill description |
animate-expo |
mobile | emilkowalski/skills |
Building animations |
apple-design |
mobile | emilkowalski/skills |
Building UIs |
review-animations |
mobile | emilkowalski/skills |
Reviewing or critiquing animation and motion (Emil craft bar). Upstream sets disable-model-invocation: true, so the model never invokes it on its own. Launch prompts name it for critique passes. |
grill-me |
core | mattpocock/skills |
Stress-test a plan before build |
grilling |
core | mattpocock/skills |
Holds the grill-me content. Upstream grill-me only forwards to it. |
expo-dev-client |
mobile | expo/skills |
Build and distribute Expo development clients locally or via TestFlight for internal testing. For production TestFlight releases and store submission, use eas-app-stores. |
expo-upgrade |
mobile | expo/skills |
Skill description (Expo SDK upgrades, dependency conflicts, deprecated packages, cache cleanup) |
react-native-best-practices |
mobile | software-mansion-labs/skills |
Skill description, when writing, reviewing, or debugging any React Native or Expo code |
uniwind |
mobile | uni-stack/uniwind |
Skill description, when building or debugging Uniwind className styling in RN |
amillez-mode |
core | amillez (pstack poteto-mode port, MIT; see skills/amillez-mode/UPSTREAM.md) |
Required working mode for every coding agent (single agent or Orca worker). Launch prompts name it explicitly. |
orchestrate-agents |
core | amillez (brief template and retry rules adapted from pstack, MIT; see skills/orchestrate-agents/UPSTREAM.md) |
Size gate, then Orca with an Opus 5.5 xHigh coordinator for large work. Worker briefs name amillez-mode, which every invoked coding agent loads. |
create-verification-skill |
core | amillez (pstack port, MIT; see skills/create-verification-skill/UPSTREAM.md) |
Generate a project-local verify-<app> skill: Launch, Doctor, Drive, Evidence, Cleanup, an agent-friendly app CLI (dev setup, seeding, test users, reset, open a feature), and a feature map |
maintain-verification-skill |
core | amillez (pstack port, MIT; see skills/maintain-verification-skill/UPSTREAM.md) |
Keep a project verify-<app> skill, its feature map, and its app CLI honest |
setup-amillez-models |
core | amillez | Pick the session's model lane from the policy and install or update the user-level model rules (templates/models.md) |
typescript-best-practices |
core | amillez (pstack port, MIT; see skills/typescript-best-practices/UPSTREAM.md) |
Skill description, when reading, writing, or reviewing any .ts or .tsx file. Claude Code also scopes it with paths. |
Nitro modules set (api-design, build-nitro-modules, cpp, kotlin, swift, react-native-mmkv, react-native-nitro-fetch, react-native-vision-camera) |
mobile | margelo/react-native-skills |
Building native or Nitro modules |
simfleet |
mobile | amillez (entropyconquers/simfleet port, MIT; see skills/simfleet/UPSTREAM.md) |
Boot, slim, restore, claim, and shut down simulators and emulators through simfleet, and run worktree lanes with leased Metro ports. Argent still drives proof. Needs the simfleet CLI (see Install). |
Not in the pack: autoreview, the Superset pack, other design and planning skills, and expo-native-ui. Orca's own skills (orca-cli, orchestration) come from orca skills install on the coordinator device (see orchestrate-agents).
| Template | Destination |
|---|---|
templates/models.md |
~/.claude/rules/amillez-models.md and ~/.agents/rules/amillez-models.md (user level) |
Defaults: super defined → GPT 6 Luna Max (Codex); general code and UI → Opus 5.5 High (Claude Code), or GPT 6.1 Sol (xHigh general, High UI, Codex) when Claude Code usage is above 70%; Orca coordinator → Opus 5.5 xHigh; large non-orchestration reasoning → Fable 5.1 Medium, then High or xHigh. Workers pick per task from the policy. /setup-amillez-models, update-install.sh, and install.sh refresh the user rules. Nothing writes project .claude/rules/ or .agents/rules/.
The skills CLI (the tool behind npx skills add) manages the upstream packs (Argent, Emil, Matt, Expo, Software Mansion Labs, Uniwind, Margelo).
-
Routine refresh. Pull the latest for globally installed skills that the CLI tracks:
npx skills update -g -y
Or:
./scripts/update-upstream.sh -
Argent version bumps. Pin the CLI and the skills tag together. Update the ref in
manifest.json(upstream[argent].ref) and inscripts/install.sh, upgrade@swmansion/argent, then re-run./scripts/install.sh. -
Amillez (every directory under
skills/). Edit underskills/and commit. On each device,git pulland run./scripts/update-install.sh --skip-upstream.ensure-install.shonly adds missing skills, so it does not pick up edits to installed ones. -
Lockfile. After installs,
~/.agents/.skill-lock.jsonrecords source URLs and hashes for the upstream packs. Prefer it and this repo'smanifest.jsonover ad hoc copies.
amillez-plugin.json # pack metadata
skills/ # amillez skills, one directory each
templates/models.md # Claude Code and Codex model rules → user rules dirs
manifest.json # allowlist, groups, and upstream pins
scripts/install.sh # user-root install: skills, user rules, stamp
scripts/ensure-install.sh # required before coding: detect, then install or refresh
scripts/update-install.sh # refresh user-root skills, rules, and stamp
scripts/test-install.sh # sandboxed test of the three install scripts
scripts/check-links.sh # relative Markdown link and anchor check
scripts/update-upstream.sh # npx skills update for upstream packs