High-fidelity extraction mode for clone-app: skips feasibility phases
(effort/cost/verdict), deepens RE to full Tier-2 + in-app logic + nav
graph + inferred backend design, adds a fidelity build-spec variant.
Phase A (static deep) only; dynamic analysis deferred to a follow-on.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- detect-unity.sh: handle XAPK bundles by extracting nested *.apk entries
to a mktemp dir and merging their listings before grepping; /dev/stdin
pipe approach is unreliable on macOS (unzip central-dir seek fails)
- tests/test-detect-unity.sh: add xapk il2cpp fixture — outer xapk wraps
a Unity base.apk; asserts classification returns il2cpp
- SKILL.md mono branch: replace hardcoded $WORK/output/Managed/ path (jadx
never creates it) with correct extract-from-APK step into $WORK/managed/;
mirrors the il2cpp branch wording and adds XAPK note
- SKILL.md il2cpp+mono branches: add game-assets/manifest.json inventory
step after unity-assets.sh so re-digest-contract.md claim is satisfied
- extract-design.py: remove unused imports sys and re
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add design for pixel-perfect clone capture: APK resource design tokens +
Play screenshots, Unity IL2CPP/Mono RE + AssetRipper game assets, and a
standalone Clone Build Spec artifact feeding writing-plans.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replaces the AppBrain scraper (Cloudflare-blocked 403, confirmed dead).
play.google.com server-rendered chart HTML works: live-validated, real
Android packages + names + ratings from both /store/apps/top and
/store/apps/category/<CAT>. CLI: <top|category> [--category CAT]
[--region R] [--limit N] [--html-file F]; output source:"google-play",
entries {rank,name,package,rating}. Package link is the stable field;
title (Epkrse class) and rating are best-effort.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
AppBrain is Cloudflare-blocked (403) for free scraping. play.google.com's
own /store/apps/top + /store/apps/category HTML works (validated live 46/46).
Rework Task 1, fetch-play-charts.py CLI/output, and all downstream prose.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
NOTE: AppBrain returns a Cloudflare JS challenge (HTTP 403) for
automated requests; live fetch degrades gracefully to an error (the
skill falls back to Apple RSS + web search). Offline test passes
against synthetic fixture — that is the test gate per the brief.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Approved spec for market-research v2: AppBrain Play charts + Play
resolver/saturation scripts + best-effort Google Trends + curated numeric
sources, numeric source-cited scoring, 1-2 verified Play links per candidate,
survivor-only enrichment for efficiency.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Six-task TDD plan for the market-research plugin: scaffold + marketplace
entry, fetch-charts.py (App Store RSS), history.py (non-repeat memory),
reference rubrics, 6-phase SKILL.md with clone-app handoff, test aggregator.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Umbrella spec for two new plugins (market-research, hermes-build) plus a
one-branch clone-app Phase 7 edit, chaining discover -> analyze -> build.
Decomposes into three implementation plans built in order.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace the hand-rolled two-step APKCombo curl/grep flow with apkeep
(default source apk-pure): no auth, no JavaScript, handles XAPK split
bundling and retries itself, and the per-mirror HTML parsing is no longer
ours to maintain. The script still prints a stable app.apk/app.xapk path.
- download-apk.sh: invoke apkeep, rename artifact to app.<ext>, clear error
when the binary is missing; CLONE_APP_APKEEP (test stub) and
CLONE_APP_APKEEP_SOURCE (mirror override) env hooks
- test-download-apk.sh: rewritten against an apkeep stub (xapk/apk/fail/
missing-binary cases)
- SKILL.md Phase 1: prose updated for apkeep install + source override
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>