Compose Multiplatform Patterns
monta-app/ocpp-emulator
Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
Compare two AOSP releases (e.g. An agent skill from aospbooks/aosp-internal-book.
$ npx skills add aospbooks/aosp-internal-book --skill aosp-version-diff -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aospbooks/aosp-internal-book aosp-version-diff --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/aospbooks/aosp-internal-book.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/aosp-version-diff .claude/skills/aosp-version-diff && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "aosp-version-diff" agent skill from https://github.com/aospbooks/aosp-internal-book/tree/main/.claude/skills/aosp-version-diff into .claude/skills/aosp-version-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aosp-version-diff", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/aospbooks/aosp-internal-book/tree/main/.claude/skills/aosp-version-diffType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add aospbooks/aosp-internal-book --skill aosp-version-diff -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aospbooks/aosp-internal-book aosp-version-diff --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aospbooks/aosp-internal-book.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/aosp-version-diff .agents/skills/aosp-version-diff && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "aosp-version-diff" agent skill from https://github.com/aospbooks/aosp-internal-book/tree/main/.claude/skills/aosp-version-diff into .agents/skills/aosp-version-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aosp-version-diff", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aospbooks/aosp-internal-book --skill aosp-version-diff -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aospbooks/aosp-internal-book aosp-version-diff --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aospbooks/aosp-internal-book.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/aosp-version-diff .cursor/skills/aosp-version-diff && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "aosp-version-diff" agent skill from https://github.com/aospbooks/aosp-internal-book/tree/main/.claude/skills/aosp-version-diff into .cursor/skills/aosp-version-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aosp-version-diff", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/aospbooks/aosp-internal-book.git --path .claude/skills/aosp-version-diff--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add aospbooks/aosp-internal-book --skill aosp-version-diff -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aospbooks/aosp-internal-book aosp-version-diff --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aospbooks/aosp-internal-book.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/aosp-version-diff .gemini/skills/aosp-version-diff && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "aosp-version-diff" agent skill from https://github.com/aospbooks/aosp-internal-book/tree/main/.claude/skills/aosp-version-diff into .gemini/skills/aosp-version-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aosp-version-diff", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install aospbooks/aosp-internal-book aosp-version-diffInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add aospbooks/aosp-internal-book --skill aosp-version-diff -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aospbooks/aosp-internal-book.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/aosp-version-diff .github/skills/aosp-version-diff && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "aosp-version-diff" agent skill from https://github.com/aospbooks/aosp-internal-book/tree/main/.claude/skills/aosp-version-diff into .github/skills/aosp-version-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aosp-version-diff", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aospbooks/aosp-internal-book --skill aosp-version-diff -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aospbooks/aosp-internal-book aosp-version-diff --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aospbooks/aosp-internal-book.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/aosp-version-diff .opencode/skills/aosp-version-diff && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "aosp-version-diff" agent skill from https://github.com/aospbooks/aosp-internal-book/tree/main/.claude/skills/aosp-version-diff into .opencode/skills/aosp-version-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aosp-version-diff", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
aosp-version-diffCompare two AOSP releases (e.g. An agent skill from aospbooks/aosp-internal-book.
Aosp Version Diff is an agent skill from aospbooks/aosp-internal-book. Compare two AOSP releases (e.g. android-16 vs android-17) and turn the diff into a written report of the important platform changes. Use this whenever the user wants to know what changed between two Android/AOSP versions, generate an "Android N updates" report or appendix, diff two repo manifests/branches, find newly-added projects or new code modules in a version, or fill gaps in an existing version-changes report. Triggers on requests like "what's new in android 17", "diff android16 to android17", "find modules…
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `evals/evals.json`, `references/gap-analysis.md` and `references/tooling.md`).
It sits in Mobile. It works with Android. The repository describes itself as: The book introduces the internal of AOSP. The licence is Apache-2.0.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fc0b48b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Aosp Version Diff loads about 2k tokens when it runs, and up to ~5.4k if it reads all its reference files. Until then it costs about 197 tokens; SKILL.md has 1,012 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from aospbooks/aosp-internal-book at commit fc0b48b, republished under its Apache-2.0 licence (© aospbooks). 1,012 words, ~2,049 tokens.
.claude/skills/aosp-version-diff/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.This skill captures a proven, two-phase workflow for answering "what changed
between two AOSP releases, and which of it matters?" It leans on an existing
tool (tools/manifest_snapshot.py) for the mechanical diff, and on a small
agent team for the judgement-heavy parts: deciding what's significant, verifying
claims against real source, and finding modules a first draft missed.
The guiding principle throughout is accuracy over coverage: a smaller report whose every claim is checked against the actual Android source beats a broad one that paraphrases commit subjects. Every architectural claim cites a real path you opened.
references/tooling.md): you have (or can produce) the
two releases and want the raw per-repository changeset, then a curated report.references/gap-analysis.md): a report already
exists and you want to find and add the important modules it missed — both
newly-added projects and new code modules introduced inside moved repos.Phase 2 is the "backend" that keeps a report honest: a single drafting pass almost always misses modules, because the changeset is huge (hundreds of moved repos, dozens of added projects) and a drafter naturally anchors on the headline features. Phase 2 systematically diffs "what the changeset added" against "what the report mentions" and closes the difference.
tools/manifest_snapshot.py (subcommands snap, history,
compare, compare-history). Read references/tooling.md for exact commands,
flags, and the gotchas that bite (ref-name filenames, LFS, non-UTF-8 commit
subjects, the snapshot-vs-history coherence trap).$ANDROID_BUILD_TOP) synced to whichever
release you're analyzing. The tools are read-only against it; never write
into the AOSP tree.Capture each side. With the checkout synced to the older release, run
history (full per-repo commit log) and/or snap (pinned manifest). Re-sync
to the newer release and repeat. The two large .txt history files and the
snapshots are the raw material. See references/tooling.md for the commands
and which artifact feeds which comparison.
Diff. compare diffs two snapshots; compare-history diffs two history
files plus a newer-side snapshot (use this when the two history files were
captured at different sub-revisions — it keeps the project list and the commit
lists coherent). Both write a per-comparison directory under
manifest-snapshots/_compare/<old>-to-<new>/ containing report.md
(navigator), changes.txt (per-repo commit lists), and added-removed.txt.
Curate into a report. Organize by subsystem, then by change category
(New projects / New modules / Architecture changes / Notable integrations).
The hard part is selection: hundreds of repos moved, but most of the signal
is in a handful. Apply a scope policy — see references/gap-analysis.md §Scope
— and treat external/* dependencies as integration signals: describe how
and why a new external dep was pulled in (what platform capability it
enables, what consumes it), never its internal code. A new external/openxr-sdk
means "XR runtime support arrived", not "here's OpenXR's changelog".
For a large report, fan out per-subsystem analyst agents (one per book Part / subsystem), each reading the actual source for its repos and writing a cited section, then synthesize under a size budget. Keep a verification pass (below).
This is the backend that makes the report trustworthy. Full procedure with the
exact extraction commands and agent prompts is in references/gap-analysis.md.
The shape:
Build the candidate set deterministically. Extract every added project
from the changeset's report.md, subtract the ones already named in the
existing report. Separately, scan high-signal moved repos for new
modules/services/directories introduced within them (the changeset's
changes.txt "NEW" commit subjects are the cheap index). This second pass
matters because the biggest gaps hide inside repos that merely "moved" —
a new service added to frameworks/base won't show up as an added project.
Triage with an agent team (≤10). Partition candidates by area, one agent
per batch. Each agent: confirms a candidate is genuinely absent from the
report, reads the real Android source to learn what it is, and classifies it —
part (subsystem), category (New project / New module / Notable
integration), and relevance (add-worthy vs out-of-scope, with a reason).
Ruthlessly drop noise: empty placeholder repos, pure relocations, routine
third-party uprevs, prebuilts, toolchains, vendor/board.
Curate, then append concisely. "Reduce gaps": add only the high-signal findings. Each addition is a tight, source-cited bullet. Mind the report's size budget — if appending pushes it over, trim lower-value existing prose (never citations or diagrams) to make room.
Review → fix loop until clean. Spawn independent verifiers (not the authors) to adversarially check every new claim against source. Fix what they find. Repeat until a round surfaces no new material issue. This loop is the point — newly-written content is exactly where fabricated paths and off-by-a-bit symbol names creep in.
book/CLAUDE.md + book-writer skill): manual section numbering, a
descriptive heading before each Mermaid block, quoted Mermaid labels, no
epigraph, and a size ceiling. Validate diagrams with ./serve.sh png <file>
(require errors=0) and register the file in properdocs.yml nav + llms.txt..superpowers/<topic>/) so a long run is
resumable and the agent team's findings survive.These cost real time the first time around; references/tooling.md has detail.
refs/tags/android-16.0.0_r4).
Slashes in it must be slugified or they become directories in output paths.git log output is not guaranteed UTF-8; decode with errors="replace".compare-history so the sides stay
coherent.history/compare outputs are large; track them with git LFS and
keep generated _compare//_history/ gitignored. Pushing the LFS objects can
SIGPIPE after a successful upload — retry; the objects are already server-side
so the retry just moves the ref.© aospbooks, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in .claude/skills/aosp-version-diff of aospbooks/aosp-internal-book.
Open the folder on GitHubat commit fc0b48b
Aosp Version Diff next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Aosp Version Diff this skillaospbooks/aosp-internal-book | 138 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Compose Multiplatform Patternsmonta-app/ocpp-emulator | 180 | 5 repos | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Phone HarnessShawnPana/phone-harness | 3.2k | — | ~4.3k | Automated safety check: Pass | MIT | |
| Stylesarindamxd/camerax-android | 132 | 4 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Verified Emailarindamxd/camerax-android | 132 | 4 repos | ~4.7k | Automated safety check: Pass | Apache-2.0 | |
| Argent Metro Debuggerbbplayer-app/BBPlayer | 1.1k | — | ~3.4k | Automated safety check: Pass | MIT |
monta-app/ocpp-emulator
Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
ShawnPana/phone-harness
Control the user's phone — an iPhone through the Mac's iPhone Mirroring window, an Android over adb, or a rented cloud Android: open apps, tap, type, swipe, read the screen.
arindamxd/camerax-android
A skill your agent uses to integrate the Jetpack Compose Styles API into an Android project.
arindamxd/camerax-android
Provides a complete workflow for implementing verified email retrieval on Android Credential Manager API.
bbplayer-app/BBPlayer
Debug a JS runtime via CDP using argent debugger tools. An agent skill from bbplayer-app/BBPlayer.
afkT/DevUtils
统一 Android XML 资源命名:layout、drawable、mipmap、color、values、id 的前缀与 snakecase 规则;把颜色/圆角/描边/状态编码进文件名(bg、border、textcolor…selector)。
aospbooks/aosp-internal-book
Patterns for writing technical book chapters in Markdown with Mermaid diagrams, served via ProperDocs (a MkDocs fork).
aospbooks/aosp-internal-book
AOSP Part XIV — Device Support. An agent skill from aospbooks/aosp-internal-book.
aospbooks/aosp-internal-book
AOSP Part VI — Framework Core. An agent skill from aospbooks/aosp-internal-book.
aospbooks/aosp-internal-book
AOSP Part VII — Framework Services. An agent skill from aospbooks/aosp-internal-book.
aospbooks/aosp-internal-book
AOSP Part IV — Native Services & Media. An agent skill from aospbooks/aosp-internal-book.
aospbooks/aosp-internal-book
AOSP Part XII — AI & Devices. An agent skill from aospbooks/aosp-internal-book.
Works with
Categories
Compare two AOSP releases (e.g. An agent skill from aospbooks/aosp-internal-book. Aosp Version Diff is an agent skill from aospbooks/aosp-internal-book.g.
Aosp Version Diff fits situations like: wants to know what changed between two Android/AOSP versions; generate an Android N updates report; diff two repo manifests/branches; find newly-added projects.
Run `npx skills add aospbooks/aosp-internal-book --skill aosp-version-diff -a claude-code`. Or copy the skill folder (.claude/skills/aosp-version-diff in aospbooks/aosp-internal-book) into .claude/skills/aosp-version-diff in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aospbooks/aosp-internal-book --skill aosp-version-diff -a codex`. Or copy the skill folder (.claude/skills/aosp-version-diff in aospbooks/aosp-internal-book) into .agents/skills/aosp-version-diff in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aospbooks/aosp-internal-book --skill aosp-version-diff -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/aosp-version-diff, .gemini/skills/aosp-version-diff, .github/skills/aosp-version-diff and .opencode/skills/aosp-version-diff in your project.
Going by SKILL.md and its folder, Aosp Version Diff needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Aosp Version Diff is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Aosp Version Diff: Compose Multiplatform Patterns (monta-app/ocpp-emulator, 180 stars), Phone Harness (ShawnPana/phone-harness, 3.2k stars), Styles (arindamxd/camerax-android, 132 stars) and Verified Email (arindamxd/camerax-android, 132 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
aospbooks (a GitHub organization) maintains it in aospbooks/aosp-internal-book, which has 138 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 5, 2026.
Source: aospbooks/aosp-internal-book on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.