@leejungkiin/awkit 1.7.0 → 1.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/bin/awk.js +576 -84
  2. package/core/CLAUDE.md +1 -1
  3. package/core/GEMINI.md +148 -167
  4. package/core/GEMINI.md.bak +149 -116
  5. package/core/skill-runtime-manifest.json +3 -0
  6. package/docs/Claude Fable 5.md +3826 -0
  7. package/docs/android_kotlin_system_instruction.md +210 -0
  8. package/docs/brainstorm_ponytail_integration.md +146 -0
  9. package/docs/brainstorm_smart_setup.md +113 -0
  10. package/docs/deep-research-report (1).md +293 -0
  11. package/docs/history/GEMINI.v1.md +135 -0
  12. package/docs/history/brainstorm_antigravity_unified_architecture.v1.md +105 -0
  13. package/docs/history/implementation_plan.v1.md +58 -0
  14. package/package.json +4 -1
  15. package/scripts/artifact-storage.js +130 -0
  16. package/scripts/automation-gate.js +40 -7
  17. package/scripts/claude-plan.js +76 -0
  18. package/scripts/dependency-manager.js +210 -0
  19. package/scripts/exec-rtk.js +11 -5
  20. package/scripts/i18n-helper.js +381 -0
  21. package/scripts/multi-model-pipeline.js +144 -0
  22. package/skill-packs/mobile-ios/pack.json +4 -2
  23. package/skill-packs/reverse-engineering/pack.json +1 -0
  24. package/skills/CATALOG.md +20 -0
  25. package/skills/GEMINI.md +9 -1
  26. package/skills/TRIGGER_INDEX.md +10 -0
  27. package/skills/ai-music/SKILL.md +275 -0
  28. package/skills/android-re-analyzer/SKILL.md +238 -0
  29. package/skills/android-re-analyzer/references/api-extraction-patterns.md +119 -0
  30. package/skills/android-re-analyzer/references/call-flow-analysis.md +176 -0
  31. package/skills/android-re-analyzer/references/fernflower-usage.md +115 -0
  32. package/skills/android-re-analyzer/references/jadx-usage.md +116 -0
  33. package/skills/android-re-analyzer/references/setup-guide.md +221 -0
  34. package/skills/android-re-analyzer/scripts/check-deps.sh +129 -0
  35. package/skills/android-re-analyzer/scripts/decompile.sh +375 -0
  36. package/skills/android-re-analyzer/scripts/find-api-calls.sh +118 -0
  37. package/skills/android-re-analyzer/scripts/install-dep.sh +448 -0
  38. package/skills/animal-island-ui-style/SKILL.md +1450 -0
  39. package/skills/app-store-review-agent/SKILL.md +164 -0
  40. package/skills/app-store-review-agent/references/guidelines/README.md +154 -0
  41. package/skills/app-store-review-agent/references/guidelines/by-app-type/ai_apps.md +37 -0
  42. package/skills/app-store-review-agent/references/guidelines/by-app-type/all_apps.md +50 -0
  43. package/skills/app-store-review-agent/references/guidelines/by-app-type/crypto_finance.md +31 -0
  44. package/skills/app-store-review-agent/references/guidelines/by-app-type/games.md +31 -0
  45. package/skills/app-store-review-agent/references/guidelines/by-app-type/health_fitness.md +31 -0
  46. package/skills/app-store-review-agent/references/guidelines/by-app-type/kids.md +27 -0
  47. package/skills/app-store-review-agent/references/guidelines/by-app-type/macos.md +38 -0
  48. package/skills/app-store-review-agent/references/guidelines/by-app-type/social_ugc.md +32 -0
  49. package/skills/app-store-review-agent/references/guidelines/by-app-type/subscription_iap.md +34 -0
  50. package/skills/app-store-review-agent/references/guidelines/by-app-type/vpn.md +18 -0
  51. package/skills/app-store-review-agent/references/rules/design/minimum_functionality.md +96 -0
  52. package/skills/app-store-review-agent/references/rules/design/sign_in_with_apple.md +54 -0
  53. package/skills/app-store-review-agent/references/rules/entitlements/unused_entitlements.md +83 -0
  54. package/skills/app-store-review-agent/references/rules/metadata/accurate_metadata.md +54 -0
  55. package/skills/app-store-review-agent/references/rules/metadata/apple_trademark.md +99 -0
  56. package/skills/app-store-review-agent/references/rules/metadata/china_storefront.md +72 -0
  57. package/skills/app-store-review-agent/references/rules/metadata/competitor_terms.md +56 -0
  58. package/skills/app-store-review-agent/references/rules/metadata/subscription_metadata.md +81 -0
  59. package/skills/app-store-review-agent/references/rules/privacy/privacy_manifest.md +84 -0
  60. package/skills/app-store-review-agent/references/rules/privacy/unnecessary_data.md +60 -0
  61. package/skills/app-store-review-agent/references/rules/subscription/misleading_pricing.md +63 -0
  62. package/skills/app-store-review-agent/references/rules/subscription/missing_tos_pp.md +54 -0
  63. package/skills/awf-ponytail/SKILL.md +91 -0
  64. package/skills/awf-ponytail-review/SKILL.md +67 -0
  65. package/skills/awf-session-restore/SKILL.md +3 -3
  66. package/skills/brainstorm-agent/SKILL.md +11 -2
  67. package/skills/brainstorm-agent/templates/brief-template.md +8 -0
  68. package/skills/claude-planner/SKILL.md +47 -0
  69. package/skills/code-review/SKILL.md +87 -0
  70. package/skills/expo-game-development/SKILL.md +163 -0
  71. package/skills/flutter/LICENSE.txt +202 -0
  72. package/skills/flutter/SKILL.md +127 -0
  73. package/skills/flutter-project-creater/LICENSE.txt +202 -0
  74. package/skills/flutter-project-creater/SKILL.md +106 -0
  75. package/skills/game-developer/SKILL.md +163 -0
  76. package/skills/game-developer/references/ecs-patterns.md +501 -0
  77. package/skills/game-developer/references/multiplayer-networking.md +475 -0
  78. package/skills/game-developer/references/performance-optimization.md +422 -0
  79. package/skills/game-developer/references/unity-patterns.md +271 -0
  80. package/skills/game-developer/references/unreal-cpp.md +352 -0
  81. package/skills/generate-gui-assets/SKILL.md +305 -0
  82. package/skills/generate-gui-assets/agents/openai.yaml +4 -0
  83. package/skills/generate-gui-assets/references/catalog-schema.md +58 -0
  84. package/skills/generate-gui-assets/references/extraction-techniques.md +21 -0
  85. package/skills/generate-gui-assets/references/prompt-patterns.md +58 -0
  86. package/skills/generate-gui-assets/scripts/__pycache__/clean_chroma_edges.cpython-311.pyc +0 -0
  87. package/skills/generate-gui-assets/scripts/build_gui_contact_sheet.py +51 -0
  88. package/skills/generate-gui-assets/scripts/clean_chroma_edges.py +262 -0
  89. package/skills/generate-gui-assets/scripts/copy_approved_icons.py +64 -0
  90. package/skills/generate-gui-assets/scripts/prepare_gui_asset_run.py +91 -0
  91. package/skills/generate-gui-assets/scripts/suggest_grid_options.py +63 -0
  92. package/skills/generate-gui-assets/scripts/validate_gui_catalog.py +50 -0
  93. package/skills/godot-game-development/SKILL.md +142 -0
  94. package/skills/hatch-pet/LICENSE.txt +201 -0
  95. package/skills/hatch-pet/SKILL.md +420 -0
  96. package/skills/hatch-pet/agents/openai.yaml +4 -0
  97. package/skills/hatch-pet/references/animation-rows.md +29 -0
  98. package/skills/hatch-pet/references/codex-pet-contract.md +35 -0
  99. package/skills/hatch-pet/references/qa-rubric.md +60 -0
  100. package/skills/hatch-pet/scripts/__pycache__/clean_chroma_edges.cpython-311.pyc +0 -0
  101. package/skills/hatch-pet/scripts/clean_chroma_edges.py +262 -0
  102. package/skills/hatch-pet/scripts/compose_atlas.py +150 -0
  103. package/skills/hatch-pet/scripts/derive_running_left_from_running_right.py +143 -0
  104. package/skills/hatch-pet/scripts/extract_strip_frames.py +323 -0
  105. package/skills/hatch-pet/scripts/finalize_pet_run.py +382 -0
  106. package/skills/hatch-pet/scripts/generate_pet_images.py +287 -0
  107. package/skills/hatch-pet/scripts/inspect_frames.py +246 -0
  108. package/skills/hatch-pet/scripts/make_contact_sheet.py +96 -0
  109. package/skills/hatch-pet/scripts/package_custom_pet.py +108 -0
  110. package/skills/hatch-pet/scripts/pet_job_status.py +117 -0
  111. package/skills/hatch-pet/scripts/prepare_pet_run.py +673 -0
  112. package/skills/hatch-pet/scripts/queue_pet_repairs.py +172 -0
  113. package/skills/hatch-pet/scripts/record_imagegen_result.py +250 -0
  114. package/skills/hatch-pet/scripts/render_animation_videos.py +134 -0
  115. package/skills/hatch-pet/scripts/render_animation_videos.sh +5 -0
  116. package/skills/hatch-pet/scripts/validate_atlas.py +139 -0
  117. package/skills/i18n-orchestrator/SKILL.md +37 -0
  118. package/skills/ios-simulator-skill/SKILL.md +390 -0
  119. package/skills/ios-simulator-skill/scripts/accessibility_audit.py +300 -0
  120. package/skills/ios-simulator-skill/scripts/app_launcher.py +326 -0
  121. package/skills/ios-simulator-skill/scripts/app_state_capture.py +400 -0
  122. package/skills/ios-simulator-skill/scripts/appearance.py +385 -0
  123. package/skills/ios-simulator-skill/scripts/build_and_test.py +348 -0
  124. package/skills/ios-simulator-skill/scripts/clipboard.py +103 -0
  125. package/skills/ios-simulator-skill/scripts/common/__init__.py +61 -0
  126. package/skills/ios-simulator-skill/scripts/common/cache_utils.py +289 -0
  127. package/skills/ios-simulator-skill/scripts/common/device_utils.py +462 -0
  128. package/skills/ios-simulator-skill/scripts/common/env_config.py +35 -0
  129. package/skills/ios-simulator-skill/scripts/common/hang_pipeline.py +862 -0
  130. package/skills/ios-simulator-skill/scripts/common/hang_sessions.py +490 -0
  131. package/skills/ios-simulator-skill/scripts/common/idb_utils.py +180 -0
  132. package/skills/ios-simulator-skill/scripts/common/screenshot_utils.py +338 -0
  133. package/skills/ios-simulator-skill/scripts/container.py +668 -0
  134. package/skills/ios-simulator-skill/scripts/gesture.py +394 -0
  135. package/skills/ios-simulator-skill/scripts/hang_watcher.py +1533 -0
  136. package/skills/ios-simulator-skill/scripts/keyboard.py +391 -0
  137. package/skills/ios-simulator-skill/scripts/localization_audit.py +483 -0
  138. package/skills/ios-simulator-skill/scripts/location.py +467 -0
  139. package/skills/ios-simulator-skill/scripts/log_monitor.py +493 -0
  140. package/skills/ios-simulator-skill/scripts/model_inspector.py +645 -0
  141. package/skills/ios-simulator-skill/scripts/navigator.py +461 -0
  142. package/skills/ios-simulator-skill/scripts/privacy_manager.py +310 -0
  143. package/skills/ios-simulator-skill/scripts/push_notification.py +240 -0
  144. package/skills/ios-simulator-skill/scripts/screen_mapper.py +296 -0
  145. package/skills/ios-simulator-skill/scripts/sim_health_check.sh +245 -0
  146. package/skills/ios-simulator-skill/scripts/sim_list.py +299 -0
  147. package/skills/ios-simulator-skill/scripts/simctl_boot.py +312 -0
  148. package/skills/ios-simulator-skill/scripts/simctl_create.py +316 -0
  149. package/skills/ios-simulator-skill/scripts/simctl_delete.py +357 -0
  150. package/skills/ios-simulator-skill/scripts/simctl_erase.py +351 -0
  151. package/skills/ios-simulator-skill/scripts/simctl_shutdown.py +290 -0
  152. package/skills/ios-simulator-skill/scripts/simulator_selector.py +375 -0
  153. package/skills/ios-simulator-skill/scripts/status_bar.py +250 -0
  154. package/skills/ios-simulator-skill/scripts/test_recorder.py +323 -0
  155. package/skills/ios-simulator-skill/scripts/visual_diff.py +235 -0
  156. package/skills/ios-simulator-skill/scripts/xcode/__init__.py +13 -0
  157. package/skills/ios-simulator-skill/scripts/xcode/builder.py +397 -0
  158. package/skills/ios-simulator-skill/scripts/xcode/cache.py +204 -0
  159. package/skills/ios-simulator-skill/scripts/xcode/config.py +178 -0
  160. package/skills/ios-simulator-skill/scripts/xcode/reporter.py +343 -0
  161. package/skills/ios-simulator-skill/scripts/xcode/xcresult.py +451 -0
  162. package/skills/ios-visual-qa-strategist/SKILL.md +111 -0
  163. package/skills/ios-visual-qa-strategist/agents/openai.yaml +4 -0
  164. package/skills/ios-visual-qa-strategist/references/ios-tool-selection.md +61 -0
  165. package/skills/ios-visual-qa-strategist/references/minimal-capture-policy.md +56 -0
  166. package/skills/ios-visual-qa-strategist/references/visual-reasoning-heuristics.md +53 -0
  167. package/skills/orchestrator/SKILL.md +0 -20
  168. package/skills/persistent-storage/SKILL.md +55 -0
  169. package/skills/short-maker/SKILL.md +23 -0
  170. package/skills/short-maker/scripts/effects.js +56 -0
  171. package/skills/short-maker/scripts/shortmaker-bridge.js +332 -0
  172. package/skills/short-maker/scripts/videomix.js +601 -0
  173. package/skills/short-maker/templates/hyperframes/cinematic-character.template.html +172 -0
  174. package/skills/short-maker/templates/hyperframes/index.template.html +194 -0
  175. package/skills/smali-to-kotlin/SKILL.md +128 -0
  176. package/skills/smali-to-kotlin/examples/getting-started/tech-stack.md +58 -0
  177. package/skills/smali-to-kotlin/examples/pipeline/data-ui-parity.md +118 -0
  178. package/skills/smali-to-kotlin/examples/pipeline/scanner-and-bootstrap.md +106 -0
  179. package/skills/smali-to-kotlin/library-patterns.md +189 -0
  180. package/skills/smali-to-kotlin/phase-0-discovery.md +128 -0
  181. package/skills/smali-to-kotlin/phase-1-architecture.md +166 -0
  182. package/skills/smali-to-kotlin/phase-2-blueprint-ui.md +347 -0
  183. package/skills/smali-to-kotlin/phase-2-blueprint.md +228 -0
  184. package/skills/smali-to-kotlin/phase-3-build.md +248 -0
  185. package/skills/smali-to-kotlin/phase-3-logic-build.md +268 -0
  186. package/skills/smali-to-kotlin/smali-reading-guide.md +310 -0
  187. package/skills/smali-to-kotlin/templates/app-map.md +101 -0
  188. package/skills/smali-to-kotlin/templates/architecture.md +142 -0
  189. package/skills/smali-to-kotlin/templates/blueprint.md +145 -0
  190. package/skills/spec-gate/SKILL.md +6 -2
  191. package/skills/symphony-enforcer/SKILL.md +8 -0
  192. package/skills/symphony-enforcer/examples/mindful-stop.md +2 -0
  193. package/skills/symphony-enforcer/examples/three-phase.md +16 -0
  194. package/skills/symphony-enforcer/examples/trigger-points.md +7 -1
  195. package/skills/unity-game-development/SKILL.md +231 -0
  196. package/skills/verification-gate/SKILL.md +4 -2
  197. package/skills/video-edit/SKILL.md +36 -0
  198. package/skills/video-edit/scripts/video_edit.py +324 -0
  199. package/templates/setup-mapping.json +48 -0
  200. package/templates/specs/design-template.md +161 -71
  201. package/templates/specs/requirements-template.md +65 -133
  202. package/templates/specs/task-spec-template.xml +3 -0
  203. package/workflows/_uncategorized/critic.md +40 -0
  204. package/workflows/_uncategorized/git-rebase-flow.md +81 -0
  205. package/workflows/_uncategorized/image-gen.md +118 -0
  206. package/workflows/_uncategorized/multi-model-pipeline.md +60 -0
  207. package/workflows/_uncategorized/pixel-gen.md +86 -0
  208. package/workflows/_uncategorized/pixel-setup.md +90 -0
  209. package/workflows/_uncategorized/ponytail-review.md +59 -0
  210. package/workflows/_uncategorized/reverse-android-build.md +222 -0
  211. package/workflows/_uncategorized/reverse-android-design.md +139 -0
  212. package/workflows/_uncategorized/reverse-android-discover.md +150 -0
  213. package/workflows/_uncategorized/reverse-android-scan.md +158 -0
  214. package/workflows/_uncategorized/reverse-android.md +143 -0
  215. package/workflows/_uncategorized/reverse-ios-build.md +240 -0
  216. package/workflows/_uncategorized/reverse-ios-design.md +112 -0
  217. package/workflows/_uncategorized/reverse-ios-discover.md +120 -0
  218. package/workflows/_uncategorized/reverse-ios-scan.md +155 -0
  219. package/workflows/_uncategorized/reverse-ios.md +152 -0
  220. package/workflows/_uncategorized/safety-router.md +34 -0
  221. package/workflows/_uncategorized/teach.md +89 -0
  222. package/workflows/_uncategorized/verify-ui.md +53 -0
  223. package/workflows/_uncategorized/visualize-screenshots.md +34 -0
  224. package/workflows/ads/ads-analyst.md +201 -0
  225. package/workflows/ads/ads-audit.md +106 -0
  226. package/workflows/ads/ads-optimize.md +97 -0
  227. package/workflows/ads/ads-targeting.md +241 -0
  228. package/workflows/ads/adsExpert.md +160 -0
  229. package/workflows/ads/smali-ads-config.md +400 -0
  230. package/workflows/ads/smali-ads-flow.md +331 -0
  231. package/workflows/ads/smali-ads-interstitial.md +377 -0
  232. package/workflows/ads/smali-ads-native.md +382 -0
  233. package/workflows/context/teach.md +89 -0
  234. package/workflows/gitnexus.md +8 -8
  235. package/workflows/lifecycle/brainstorm.md +43 -0
  236. package/workflows/lifecycle/code.md +5 -0
  237. package/workflows/lifecycle/init.md +23 -5
  238. package/workflows/lifecycle/multi-model-pipeline.md +60 -0
  239. package/workflows/quality/ponytail-review.md +59 -0
  240. package/workflows/roles/critic.md +40 -0
  241. package/workflows/roles/safety-router.md +34 -0
@@ -0,0 +1,275 @@
1
+ ---
2
+ name: ai-music
3
+ displayName: "AI Music"
4
+ allowed-tools: Bash(runcomfy *)
5
+ description: >
6
+ Generate AI music on RunComfy via the `runcomfy` CLI — a smart router
7
+ across the music-model catalog. Routes to ElevenLabs AI Music
8
+ Generation (premium 44.1 kHz stereo vocal tracks, 5 s–5 min, $0.0083/s)
9
+ and ACE Step / ACE Step 1.5 (StepFun-AI open-weights, tag-driven
10
+ composition, multilingual lyrics, $0.0002–0.0003/s, ~27× cheaper),
11
+ plus ACE Step audio-inpaint (regenerate a time range inside an
12
+ existing track) and ACE Step audio-outpaint (extend a track before
13
+ or after). Picks the right model for the user's actual intent —
14
+ premium vocal hook, cheap background music library, multilingual
15
+ pop song, repair a bad chorus, lengthen a 30 s draft into a 2 min
16
+ cut — and ships each model's documented prompting patterns plus the
17
+ minimal `runcomfy run` invoke. Triggers on "generate music",
18
+ "make a song", "AI music", "background music", "instrumental track",
19
+ "soundtrack", "jingle", "theme music", "royalty-free music",
20
+ "compose", "music with lyrics", "extend music", "fix this song",
21
+ "inpaint music", or any explicit ask to generate or edit music.
22
+ homepage: https://www.runcomfy.com
23
+ license: MIT
24
+ ---
25
+
26
+ # AI Music
27
+
28
+ Generate AI music on RunComfy through one CLI — vocal songs, instrumentals, jingles, game loops, multilingual covers. This skill picks the right model from the RunComfy catalog based on the user's actual intent and ships the documented prompting patterns + the exact `runcomfy run` invoke for each.
29
+
30
+ [runcomfy.com](https://www.runcomfy.com/?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-music) · [Audio models](https://www.runcomfy.com/models?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-music) · [CLI docs](https://docs.runcomfy.com/cli/introduction?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-music)
31
+
32
+ ## Install this skill
33
+
34
+ ```bash
35
+ npx skills add agentspace-so/runcomfy-agent-skills --skill ai-music -g
36
+ ```
37
+
38
+ ## Powered by the RunComfy CLI
39
+
40
+ **Step 1 — install** (one of, see the `runcomfy-cli` skill for details):
41
+
42
+ ```bash
43
+ npm i -g @runcomfy/cli # global install
44
+ npx -y @runcomfy/cli --version # zero-install
45
+ ```
46
+
47
+ **Step 2 — sign in** (or set `RUNCOMFY_TOKEN` env var in CI / containers):
48
+
49
+ ```bash
50
+ runcomfy login
51
+ ```
52
+
53
+ **Step 3 — generate music**:
54
+
55
+ ```bash
56
+ runcomfy run <vendor>/<model>/<endpoint> \
57
+ --input '{"prompt": "...", ...}' \
58
+ --output-dir ./out
59
+ ```
60
+
61
+ CLI deep dive: [`runcomfy-cli`](https://www.skills.sh/agentspace-so/runcomfy-agent-skills/runcomfy-cli) skill.
62
+
63
+ ---
64
+
65
+ ## Pick the right model for the user's intent
66
+
67
+ ### Text-to-music (generate from scratch) — newest first
68
+
69
+ **ACE Step 1.5** — `acestep-ai/ace-step-1.5/text-to-audio`
70
+ > Latest ACE Step generation. **50+ language vocal support**, refined structured-lyric handling, $0.0003/s. Open-weights (Apache 2.0).
71
+ > Pick for: multilingual launches, vocal songs in non-English, hero-quality ACE output.
72
+ > Avoid for: maximally polished commercial vocal hooks (try ElevenLabs Music) or cost-sensitive batches (try base ACE Step).
73
+
74
+ **ElevenLabs AI Music Generation** — `elevenlabs/elevenlabs/music-generation`
75
+ > Premium 44.1 kHz stereo, 5 s–5 min, section-level control (Intro/Verse/Chorus/Bridge), multilingual vocals, commercial-friendly. $0.0083/s (~27× ACE Step).
76
+ > Pick for: hero brand campaigns, polished vocal hooks, premium commercial cuts, ad music.
77
+ > Avoid for: high-volume drafts / background music libraries — cost dominates.
78
+
79
+ **ACE Step (base)** — `acestep-ai/ace-step/text-to-audio` *(default for cost-sensitive work)*
80
+ > Original ACE Step. Tag-driven composition, optional lyrics, 5–240 s stereo. **$0.0002/s** — cheapest CLI-reachable music model on RunComfy.
81
+ > Pick for: background music libraries, jingles, game loops, drafts, cost-sensitive iteration.
82
+ > Avoid for: premium vocal hooks — use **ElevenLabs Music** or **ACE Step 1.5**.
83
+
84
+ ### Edit existing audio — ACE Step only (ElevenLabs has no edit endpoints)
85
+
86
+ **ACE Step audio-inpaint** — `acestep-ai/ace-step/audio-inpaint`
87
+ > Regenerate a **time range** (start_time / end_time, anchorable to track start or end) inside an existing track.
88
+ > Pick for: fix a bad chorus, swap the bridge, replace a 20 s section without re-rendering.
89
+ > Avoid for: edits not bounded by time (use the source-model text-to-music instead).
90
+
91
+ **ACE Step audio-outpaint** — `acestep-ai/ace-step/audio-outpaint`
92
+ > Extend an existing track **bidirectionally** — add intro before, outro after, or both (`extend_before_duration` / `extend_after_duration`).
93
+ > Pick for: lengthen a 30 s hook into a 2 min cut, add a fade-out, build longer arrangement around an existing hook.
94
+ > Avoid for: extending past 4 min total — chain calls instead.
95
+
96
+ The agent reads these tables, classifies user intent (premium vs cost-sensitive · multilingual · vocal vs instrumental · generate vs edit), and picks the matching subsection below.
97
+
98
+ ---
99
+
100
+ ## Route 1: ElevenLabs AI Music Generation — premium
101
+
102
+ **Model**: `elevenlabs/elevenlabs/music-generation`
103
+ **Full schema + tips**: see the dedicated [`elevenlabs-music-generation`](https://www.skills.sh/agentspace-so/runcomfy-agent-skills/elevenlabs-music-generation) skill.
104
+
105
+ ### Quick invoke
106
+
107
+ ```bash
108
+ runcomfy run elevenlabs/elevenlabs/music-generation \
109
+ --input '{
110
+ "prompt": "Upbeat indie-pop anthem, bright electric guitars, driving drums, 120 BPM, female lead vocal. [Intro 8 bars] instrumental build. [Verse] Chalk on the palms, laces double-knotted. [Chorus] We rise, we strike, we never fade out. [Outro] full band, fade.",
111
+ "music_length_ms": 60000
112
+ }' \
113
+ --output-dir ./out
114
+ ```
115
+
116
+ ElevenLabs Music reads **one `prompt`** carrying both style brief and lyrics with section markers. `force_instrumental: true` for no vocals. $0.0083/s — draft short, finalize long.
117
+
118
+ ---
119
+
120
+ ## Route 2: ACE Step / ACE Step 1.5 — cheap, open-weights
121
+
122
+ **Model**: `acestep-ai/ace-step/text-to-audio` (base) or `acestep-ai/ace-step-1.5/text-to-audio` (1.5)
123
+ **Full schema + tips**: see the dedicated [`ace-step`](https://www.skills.sh/agentspace-so/runcomfy-agent-skills/ace-step) skill.
124
+
125
+ ### Quick invoke
126
+
127
+ ```bash
128
+ runcomfy run acestep-ai/ace-step-1.5/text-to-audio \
129
+ --input '{
130
+ "tags": "indie pop, anthemic, electric guitar, driving drums, female vocal, 120 BPM",
131
+ "lyrics": "[Verse]\nChalk on the palms\nMorning on the ridge\n[Chorus]\nWe rise, we strike, we never fade out",
132
+ "duration": 60
133
+ }' \
134
+ --output-dir ./out
135
+ ```
136
+
137
+ ACE Step splits **style into `tags`** and **vocal content into `lyrics`** (with `[Verse]/[Chorus]/[Bridge]` markers, or `[inst]` for instrumental). 1.5 variant adds 50+ language vocal support.
138
+
139
+ ---
140
+
141
+ ## Route 3: ACE Step audio-inpaint — repair a section
142
+
143
+ ```bash
144
+ runcomfy run acestep-ai/ace-step/audio-inpaint \
145
+ --input '{
146
+ "audio": "https://your-cdn.example/song.mp3",
147
+ "tags": "indie pop, breakdown, piano only, soft, no drums",
148
+ "start_time": 20,
149
+ "end_time": 40,
150
+ "lyrics": "[inst]"
151
+ }' \
152
+ --output-dir ./out
153
+ ```
154
+
155
+ `start_time_relative_to` and `end_time_relative_to` default to `start`; set to `end` to anchor against the track's end (e.g. rewrite the last 15 s without computing exact timestamps). Full schema: [`ace-step`](https://www.skills.sh/agentspace-so/runcomfy-agent-skills/ace-step) skill.
156
+
157
+ ---
158
+
159
+ ## Route 4: ACE Step audio-outpaint — extend a track
160
+
161
+ ```bash
162
+ runcomfy run acestep-ai/ace-step/audio-outpaint \
163
+ --input '{
164
+ "audio": "https://your-cdn.example/hook-30s.mp3",
165
+ "tags": "indie pop, build-up before chorus, fade outro",
166
+ "extend_before_duration": 30,
167
+ "extend_after_duration": 60,
168
+ "lyrics": "[inst]"
169
+ }' \
170
+ --output-dir ./out
171
+ ```
172
+
173
+ Bidirectional in one call — set both `extend_before_duration` and `extend_after_duration` to add intro + outro at once. Cap is 4 min total.
174
+
175
+ ---
176
+
177
+ ## Common patterns
178
+
179
+ ### Premium brand campaign jingle (5–15 s)
180
+ - **Route 1 (ElevenLabs Music)** — hero quality, polished mix. $0.05–0.12 per take.
181
+
182
+ ### Background music library at scale (50+ tracks)
183
+ - **Route 2 (ACE Step base)** with varied tag combos. $0.012 / 60 s × 50 = $0.60 for 50 drafts.
184
+
185
+ ### Multilingual launch (same song, 8 languages)
186
+ - **Route 2 (ACE Step 1.5)** — identical tags, swap `lyrics` per language. Or **Route 1 (ElevenLabs Music)** if premium quality matters more than cost.
187
+
188
+ ### Game loop bed
189
+ - **Route 2 (ACE Step base)** with "seamless loop, consistent groove" in tags, 60–120 s.
190
+
191
+ ### Theme song for a video
192
+ - **Route 1 (ElevenLabs Music)** with full brief + lyrics + section markers, `music_length_ms` matched to the video length.
193
+
194
+ ### "I generated a 30 s hook but I need a 2 min track"
195
+ - **Route 4 (ACE Step audio-outpaint)** with the hook as `audio`, add 30 s intro + 60 s outro in one call.
196
+
197
+ ### "My second chorus came out wrong"
198
+ - **Route 3 (ACE Step audio-inpaint)** with `start_time` / `end_time` around the bad chorus, tags matching the original song style.
199
+
200
+ ### Cheap draft → premium polish
201
+ - Iterate tags on **Route 2 (ACE Step base)** for $0.01–0.02 per attempt → lock vibe → final render on **Route 1 (ElevenLabs Music)** for the polished commercial cut.
202
+
203
+ ### Inpaint a section that doesn't fit ACE's time-range schema
204
+ - The CLI today doesn't expose a mask-based audio inpaint endpoint. Either reformulate as a time-range edit, or use **Route 2** to regenerate the full track with adjusted tags.
205
+
206
+ ---
207
+
208
+ ## Decision flow (for the agent)
209
+
210
+ The agent should ask / infer:
211
+
212
+ 1. **Generate from scratch or edit existing audio?**
213
+ - Edit → go to step 5
214
+ - Generate → step 2
215
+ 2. **Premium polish required (brand / commercial)?**
216
+ - Yes → **Route 1 (ElevenLabs Music)**
217
+ - No → step 3
218
+ 3. **Multilingual vocals needed?**
219
+ - Yes → **Route 2 (ACE Step 1.5)**
220
+ - No → step 4
221
+ 4. **Cost-sensitive batch or single track?**
222
+ - Cost-sensitive / batch → **Route 2 (ACE Step base)**
223
+ - Single quality track → **Route 1 (ElevenLabs Music)** or **Route 2 (ACE Step 1.5)** — pick by budget
224
+ 5. **Edit type?**
225
+ - Time-bounded section rewrite → **Route 3 (audio-inpaint)**
226
+ - Add before / after → **Route 4 (audio-outpaint)**
227
+
228
+ ---
229
+
230
+ ## Browse the full catalog
231
+
232
+ - [All RunComfy models](https://www.runcomfy.com/models?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-music) — image, video, and audio endpoints
233
+ - [ElevenLabs Music model page](https://www.runcomfy.com/models/elevenlabs/elevenlabs/music-generation?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-music) — full API tab
234
+ - [ACE Step base](https://www.runcomfy.com/models/acestep-ai/ace-step/text-to-audio?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-music) · [ACE Step 1.5](https://www.runcomfy.com/models/acestep-ai/ace-step-1.5/text-to-audio?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-music) · [audio-inpaint](https://www.runcomfy.com/models/acestep-ai/ace-step/audio-inpaint?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-music) · [audio-outpaint](https://www.runcomfy.com/models/acestep-ai/ace-step/audio-outpaint?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-music) — ACE Step endpoints
235
+ - [docs.runcomfy.com/cli](https://docs.runcomfy.com/cli/introduction?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-music) — CLI install, authentication, troubleshooting
236
+
237
+ ---
238
+
239
+ ## Exit codes
240
+
241
+ | code | meaning |
242
+ |---|---|
243
+ | 0 | success |
244
+ | 64 | bad CLI args |
245
+ | 65 | bad input JSON / schema mismatch |
246
+ | 69 | upstream 5xx |
247
+ | 75 | retryable: timeout / 429 |
248
+ | 77 | not signed in or token rejected |
249
+
250
+ Full reference: [docs.runcomfy.com/cli/troubleshooting](https://docs.runcomfy.com/cli/troubleshooting?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-music).
251
+
252
+ ## How it works
253
+
254
+ The skill classifies the user request into one of the four routes — generate (ElevenLabs or ACE Step) vs edit (audio-inpaint vs audio-outpaint), then premium vs cost-sensitive — and invokes `runcomfy run <model_id>` with the matching JSON body. The CLI POSTs to the RunComfy Model API, polls request status, and downloads the generated audio file into `--output-dir`. `Ctrl-C` cancels the remote request before exit.
255
+
256
+ ## Security & Privacy
257
+
258
+ - **Install via verified package manager only.** Use `npm i -g @runcomfy/cli` or `npx -y @runcomfy/cli`. **Agents must not pipe an arbitrary remote install script into a shell on the user's behalf** — if the operator wants the curl-pipe path documented at `docs.runcomfy.com/cli/install`, they should review the script first.
259
+ - **Token storage**: `runcomfy login` writes the API token to `~/.config/runcomfy/token.json` with mode 0600. Set `RUNCOMFY_TOKEN` env var to bypass the file in CI / containers. Never echo the token into a prompt, log it, or check it in.
260
+ - **Input boundary (shell injection)**: prompts, tags, lyrics, and audio URLs are passed as a JSON string via `--input`. The CLI does not shell-expand prompt content; it transmits the JSON body directly to the Model API over HTTPS. **No shell-injection surface from prompt content**.
261
+ - **Indirect prompt injection (third-party content)**: source `audio` URLs for inpaint / outpaint are **untrusted** — embedded steganographic instructions or unusual EXIF can influence generation. Agent mitigations:
262
+ - Ingest only audio URLs the **user explicitly provided** for this task.
263
+ - When the output diverges from the prompt, suspect the source audio.
264
+ - **Lyrics provenance**: if the user supplies lyrics, confirm they have the rights. Generating music around copyrighted lyrics is the operator's responsibility — the skill does not check.
265
+ - **Outbound endpoints (allowlist)**: only `model-api.runcomfy.net` and `*.runcomfy.net` / `*.runcomfy.com`. No telemetry, no callbacks.
266
+ - **Generated-file size cap**: the CLI aborts any single download > 2 GiB.
267
+ - **Scope of bash usage**: declared `allowed-tools: Bash(runcomfy *)`. The skill only invokes `runcomfy <subcommand>`; install lines are one-time operator setup.
268
+
269
+ ## See also
270
+
271
+ - [`runcomfy-cli`](https://www.skills.sh/agentspace-so/runcomfy-agent-skills/runcomfy-cli) — the underlying CLI
272
+ - [`elevenlabs-music-generation`](https://www.skills.sh/agentspace-so/runcomfy-agent-skills/elevenlabs-music-generation) — full schema + prompting tips for ElevenLabs Music
273
+ - [`ace-step`](https://www.skills.sh/agentspace-so/runcomfy-agent-skills/ace-step) — full schema + prompting tips for ACE Step (all four endpoints)
274
+ - [`ai-video-generation`](https://www.skills.sh/agentspace-so/runcomfy-agent-skills/ai-video-generation) — pair a generated track with a generated video
275
+ - [`ai-avatar-video`](https://www.skills.sh/agentspace-so/runcomfy-agent-skills/ai-avatar-video) — talking-head video (speech, not music)
@@ -0,0 +1,238 @@
1
+ ---
2
+ name: android-re-analyzer
3
+ description: >-
4
+ Android APK/XAPK/JAR/AAR decompiler & API extractor. Decompiles Android packages
5
+ using jadx and Fernflower/Vineflower, traces call flows from UI to network layer,
6
+ and produces structured API documentation. Complements smali-to-kotlin (rebuild)
7
+ by focusing on analysis & extraction.
8
+ author: SimoneAvogadro (adapted by Antigravity Team)
9
+ version: 1.0.0
10
+ license: Apache-2.0
11
+ original_repo: https://github.com/SimoneAvogadro/android-reverse-engineering-skill
12
+ trigger: conditional
13
+ activation_keywords:
14
+ - "/decompile"
15
+ - "decompile apk"
16
+ - "reverse engineer android"
17
+ - "extract api"
18
+ - "jadx"
19
+ - "fernflower"
20
+ - "vineflower"
21
+ - "find api endpoints"
22
+ - "trace call flow"
23
+ - "analyze apk"
24
+ - "dịch ngược apk"
25
+ - "phân tích apk"
26
+ priority: high
27
+ platform: android
28
+ ---
29
+
30
+ # 🔍 Android RE Analyzer Skill
31
+
32
+ > **Purpose:** Decompile Android APK/XAPK/JAR/AAR → Analyze structure → Extract & document HTTP APIs.
33
+ > **Philosophy:** "Scan → Understand → Document" — analysis & extraction, not rebuilding.
34
+
35
+ ---
36
+
37
+ ## ⚠️ SCOPE CLARITY
38
+
39
+ | This skill DOES | This skill DOES NOT |
40
+ |-----------------|---------------------|
41
+ | Decompile APK/XAPK/JAR/AAR to Java source | Rebuild app in modern Kotlin |
42
+ | Extract HTTP API endpoints & auth patterns | Write new production code |
43
+ | Trace call flows from UI → Network | Modify or repackage APKs |
44
+ | Analyze app architecture & manifest | Crack/bypass security |
45
+ | Handle obfuscated code (ProGuard/R8) | Deploy to Play Store |
46
+ | Auto-install dependencies (jadx, etc.) | Handle iOS apps |
47
+
48
+ **For rebuilding apps** → delegate to `smali-to-kotlin` skill
49
+ **For iOS reverse engineering** → delegate to `smali-to-swift` skill
50
+
51
+ ---
52
+
53
+ ## 🎯 ROLE DEFINITION
54
+
55
+ When this skill is active, the agent becomes:
56
+
57
+ > **Expert Android Reverse Engineer & API Analyst**
58
+ > - Master at navigating decompiled Java source (obfuscated or clean)
59
+ > - Fluent in Retrofit, OkHttp, Volley API patterns
60
+ > - Knows how to trace DI (Dagger/Hilt) bindings to find implementations
61
+ > - Uses dual-engine decompilation for maximum accuracy
62
+
63
+ ---
64
+
65
+ ## 🛠️ PREREQUISITES
66
+
67
+ Required: **Java JDK 17+** and **jadx**.
68
+ Optional (recommended): **Vineflower** (Fernflower fork) and **dex2jar**.
69
+
70
+ Check dependencies:
71
+ ```bash
72
+ bash SKILL_ROOT/scripts/check-deps.sh
73
+ ```
74
+
75
+ Install missing ones:
76
+ ```bash
77
+ bash SKILL_ROOT/scripts/install-dep.sh <dep>
78
+ # Available: java, jadx, vineflower, dex2jar, apktool, adb
79
+ ```
80
+
81
+ > `SKILL_ROOT` = path to this skill directory (e.g. `~/.gemini/antigravity/skills/android-re-analyzer`)
82
+
83
+ ---
84
+
85
+ ## 📋 EXECUTION PIPELINE (5 Phases)
86
+
87
+ > **Rule:** Complete each phase before proceeding to the next.
88
+ > **Rule:** After each phase, summarize findings for the user.
89
+
90
+ ### Phase 1: Verify & Install Dependencies
91
+
92
+ **Action:** Run `check-deps.sh`. If missing required deps → run `install-dep.sh <dep>`.
93
+ Re-run check after installation. Do NOT proceed until all required deps are OK.
94
+
95
+ For optional deps (vineflower, dex2jar), ask user if they want them installed.
96
+ Recommend both for best results.
97
+
98
+ ---
99
+
100
+ ### Phase 2: Decompile
101
+
102
+ **Action:** Run the decompile script:
103
+ ```bash
104
+ bash SKILL_ROOT/scripts/decompile.sh [OPTIONS] <file>
105
+ ```
106
+
107
+ Options:
108
+ - `-o <dir>` — output directory (default: `<filename>-decompiled`)
109
+ - `--deobf` — enable deobfuscation (for obfuscated apps)
110
+ - `--no-res` — skip resources, code only (faster)
111
+ - `--engine ENGINE` — `jadx` (default), `fernflower`, or `both`
112
+
113
+ **Engine selection:**
114
+
115
+ | Situation | Engine |
116
+ |---|---|
117
+ | First pass on any APK | `jadx` |
118
+ | JAR/AAR library analysis | `fernflower` |
119
+ | jadx output has warnings | `both` (compare) |
120
+ | Complex lambdas/generics | `fernflower` |
121
+ | Quick overview of large APK | `jadx --no-res` |
122
+
123
+ XAPK files are auto-extracted and each APK inside is decompiled separately.
124
+
125
+ ---
126
+
127
+ ### Phase 3: Analyze Structure
128
+
129
+ 1. **Read `AndroidManifest.xml`:**
130
+ - Identify launcher Activity, Application class
131
+ - List Activities, Services, BroadcastReceivers, ContentProviders
132
+ - Note permissions (especially INTERNET, ACCESS_NETWORK_STATE)
133
+
134
+ 2. **Survey package structure** under `<output>/sources/`:
135
+ - Distinguish app code from third-party libraries
136
+ - Look for packages: `api`, `network`, `data`, `repository`, `service`, `retrofit`
137
+
138
+ 3. **Identify architecture pattern:**
139
+ - MVP: `Presenter` classes
140
+ - MVVM: `ViewModel` + `LiveData`/`StateFlow`
141
+ - Clean Architecture: `domain`, `data`, `presentation` packages
142
+
143
+ ---
144
+
145
+ ### Phase 4: Trace Call Flows
146
+
147
+ Follow execution paths from entry points to network calls:
148
+
149
+ 1. Start from Activities identified in Phase 3
150
+ 2. Follow initialization: `Application.onCreate()` → HTTP client setup
151
+ 3. Trace user actions: `onClick()` → ViewModel → Repository → API service
152
+ 4. Map DI bindings (`@Module`, `@Provides`, `@Binds`, `@Inject`)
153
+ 5. Handle obfuscated code: use strings, annotations, and library APIs as anchors
154
+
155
+ See `SKILL_ROOT/references/call-flow-analysis.md` for detailed grep commands and techniques.
156
+
157
+ ---
158
+
159
+ ### Phase 5: Extract & Document APIs
160
+
161
+ **Action:** Run API search script:
162
+ ```bash
163
+ bash SKILL_ROOT/scripts/find-api-calls.sh <output>/sources/
164
+ # Targeted: --retrofit, --okhttp, --volley, --urls, --auth
165
+ ```
166
+
167
+ For each endpoint, document:
168
+ ```markdown
169
+ ### `METHOD /path/to/endpoint`
170
+ - **Source**: `com.example.api.ApiService` (file:line)
171
+ - **Base URL**: `https://api.example.com/v1`
172
+ - **Path params**: `id` (String)
173
+ - **Query params**: `page` (int), `limit` (int)
174
+ - **Headers**: `Authorization: Bearer <token>`
175
+ - **Request body**: `LoginRequest { email: String, password: String }`
176
+ - **Response type**: `ApiResponse<User>`
177
+ - **Called from**: `LoginActivity → ViewModel → Repository → ApiService`
178
+ ```
179
+
180
+ See `SKILL_ROOT/references/api-extraction-patterns.md` for all search patterns.
181
+
182
+ ---
183
+
184
+ ## 🔄 WORKFLOW INTEGRATION
185
+
186
+ ```yaml
187
+ triggers_from:
188
+ - "/decompile" workflow command
189
+ - Keywords: "decompile", "extract api", "analyze apk", "jadx"
190
+
191
+ delegates_to:
192
+ - smali-to-kotlin — when user wants to rebuild the app after analysis
193
+ - smali-to-swift — when user wants iOS equivalent
194
+
195
+ works_with:
196
+ - memory-sync — saves analysis findings, API docs
197
+ - symphony-orchestrator — tracks progress per phase
198
+ - orchestrator — routes to this skill based on intent
199
+
200
+ independent_from:
201
+ - brainstorm-agent
202
+ - ios-engineer
203
+ ```
204
+
205
+ ---
206
+
207
+ ## 🚫 ANTI-PATTERNS
208
+
209
+ ```yaml
210
+ never_do:
211
+ - Skip dependency check → always verify tools are available first
212
+ - Guess at API endpoints → always use grep patterns to find them
213
+ - Ignore obfuscation → use --deobf and string-based tracing
214
+ - Assume app architecture → verify from code before tracing
215
+
216
+ always_do:
217
+ - Run check-deps.sh before any decompilation
218
+ - Offer dual-engine decompilation when jadx has warnings
219
+ - Document every discovered API endpoint with the template
220
+ - Report architecture pattern before tracing call flows
221
+ - Ask user before proceeding to rebuild (delegate to smali-to-kotlin)
222
+ ```
223
+
224
+ ---
225
+
226
+ ## 📚 REFERENCES
227
+
228
+ Detailed guides available in `SKILL_ROOT/references/`:
229
+ - `setup-guide.md` — Installing Java, jadx, Vineflower, dex2jar
230
+ - `jadx-usage.md` — jadx CLI options and workflows
231
+ - `fernflower-usage.md` — Fernflower/Vineflower CLI options
232
+ - `api-extraction-patterns.md` — Library-specific grep patterns
233
+ - `call-flow-analysis.md` — Techniques for tracing call flows
234
+
235
+ ---
236
+
237
+ *android-re-analyzer v1.0.0 — Based on SimoneAvogadro/android-reverse-engineering-skill (Apache 2.0)*
238
+ *Adapted for Antigravity by Antigravity Team*
@@ -0,0 +1,119 @@
1
+ # API Extraction Patterns
2
+
3
+ Patterns and grep commands for finding HTTP API calls in decompiled Android source code.
4
+
5
+ ## Retrofit
6
+
7
+ Retrofit is the most common HTTP client in Android apps. API endpoints are declared as annotated interface methods.
8
+
9
+ ### Annotations to search for
10
+
11
+ ```bash
12
+ # HTTP method annotations
13
+ grep -rn '@GET\|@POST\|@PUT\|@DELETE\|@PATCH\|@HEAD' sources/
14
+
15
+ # Parameter annotations
16
+ grep -rn '@Query\|@QueryMap\|@Path\|@Body\|@Field\|@FieldMap\|@Part\|@Header\|@HeaderMap' sources/
17
+
18
+ # Headers annotation (static headers)
19
+ grep -rn '@Headers' sources/
20
+
21
+ # Base URL configuration
22
+ grep -rn 'baseUrl\|\.baseUrl(' sources/
23
+ ```
24
+
25
+ ### Typical Retrofit interface
26
+
27
+ ```java
28
+ public interface ApiService {
29
+ @GET("users/{id}")
30
+ Call<User> getUser(@Path("id") String userId);
31
+
32
+ @POST("auth/login")
33
+ @Headers({"Content-Type: application/json"})
34
+ Call<LoginResponse> login(@Body LoginRequest request);
35
+ }
36
+ ```
37
+
38
+ When documenting, capture: HTTP method, path, path parameters, query parameters, request body type, response type, and any static headers.
39
+
40
+ ## OkHttp
41
+
42
+ OkHttp is often used directly or as the transport layer for Retrofit.
43
+
44
+ ```bash
45
+ # Request building
46
+ grep -rn 'Request\.Builder\|Request.Builder\|\.url(\|\.post(\|\.put(\|\.delete(\|\.patch(' sources/
47
+
48
+ # URL construction
49
+ grep -rn 'HttpUrl\|\.addQueryParameter\|\.addPathSegment' sources/
50
+
51
+ # Interceptors (often add auth headers)
52
+ grep -rn 'Interceptor\|addInterceptor\|addNetworkInterceptor\|intercept(' sources/
53
+
54
+ # Response handling
55
+ grep -rn '\.execute()\|\.enqueue(' sources/
56
+ ```
57
+
58
+ ## Volley
59
+
60
+ ```bash
61
+ grep -rn 'StringRequest\|JsonObjectRequest\|JsonArrayRequest\|Volley\.newRequestQueue\|RequestQueue' sources/
62
+ ```
63
+
64
+ Volley requests typically pass the URL as a constructor argument and override `getHeaders()` or `getParams()` for custom headers/parameters.
65
+
66
+ ## HttpURLConnection (legacy)
67
+
68
+ ```bash
69
+ grep -rn 'HttpURLConnection\|HttpsURLConnection\|openConnection\|setRequestMethod\|setRequestProperty' sources/
70
+ ```
71
+
72
+ ## WebView
73
+
74
+ ```bash
75
+ grep -rn 'loadUrl\|evaluateJavascript\|addJavascriptInterface\|WebViewClient\|shouldOverrideUrlLoading' sources/
76
+ ```
77
+
78
+ WebView-based apps may load API endpoints via JavaScript bridges. Look for `@JavascriptInterface` annotated methods.
79
+
80
+ ## Hardcoded URLs and Secrets
81
+
82
+ ```bash
83
+ # HTTP/HTTPS URLs
84
+ grep -rn '"https\?://[^"]*"' sources/
85
+
86
+ # API keys and tokens
87
+ grep -rni 'api[_-]\?key\|api[_-]\?secret\|auth[_-]\?token\|bearer\|access[_-]\?token\|client[_-]\?secret' sources/
88
+
89
+ # Base URL constants
90
+ grep -rni 'BASE_URL\|API_URL\|SERVER_URL\|ENDPOINT\|API_BASE' sources/
91
+ ```
92
+
93
+ ## Documentation Template
94
+
95
+ For each discovered API endpoint, document it using this template:
96
+
97
+ ```markdown
98
+ ### `METHOD /path/to/endpoint`
99
+
100
+ - **Source**: `com.example.app.api.ApiService` (file:line)
101
+ - **Base URL**: `https://api.example.com/v1`
102
+ - **Full URL**: `https://api.example.com/v1/path/to/endpoint`
103
+ - **Path parameters**: `id` (String)
104
+ - **Query parameters**: `page` (int), `limit` (int)
105
+ - **Headers**:
106
+ - `Authorization: Bearer <token>`
107
+ - `Content-Type: application/json`
108
+ - **Request body**: `LoginRequest { email: String, password: String }`
109
+ - **Response type**: `ApiResponse<User>`
110
+ - **Notes**: Called from `LoginActivity.onLoginClicked()`
111
+ ```
112
+
113
+ ## Search Strategy
114
+
115
+ 1. Start with **base URL constants** — find where the API root is configured
116
+ 2. Search for **Retrofit interfaces** — they give the clearest picture of all endpoints
117
+ 3. Check **interceptors** — they reveal auth schemes and common headers
118
+ 4. Search for **hardcoded URLs** — catch any one-off API calls outside the main client
119
+ 5. Look for **WebView URLs** — some apps use hybrid web/native approaches