Repository navigation
README v2 and AGENTS.md: quickstart first, docs links, agent guidance - #874
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
SpertsyanKM
left a comment
There was a problem hiding this comment.
Thanks, Vlada — snippets, minimum versions, pins, links and the MCP destructive-tool flow check out against main. Changes needed before merge:
This repo
- AGENTS.md:18 (minor) —
releases/latest --jq .tag_namecan returnnocodes/*and returnssdk/9.8.0with prefix. Suggestgh api repos/qonversion/android-sdk/releases --jq '[.[]|select(.tag_name|startswith("sdk/"))][0].tag_name|ltrimstr("sdk/")'. - AGENTS.md:53-59 (minor) — first-call snippet has no imports (
QonversionEntitlementsCallback,QEntitlement,QonversionError); the README version has them. - README.md:152 / AGENTS.md:113 (nit) — "Kotlin JVM toolchain 17" is the SDK's own build setting, not a consumer minimum; reword or drop.
- Repo description: "the revenue data behind Apple Ads" is odd for Android-only. Suggest: "Qonversion Android SDK: Google Play purchases validated server-side, entitlements, and the revenue data behind A/B tests and analytics."
Shared with the other README v2 / AGENTS.md PRs
- Apple Ads availability — my earlier guidance is outdated, sorry. After 2026-10-09, mcp-server #126 (DEV-1480) removed the separate write beta: there is no
apple_ads_writeaccount gate any more (mcp-server/internal/tools/apple_ads_write.go:134). Writes need theapple_adsaccount feature, theapple_ads:writescope, a dashboard member with campaign-management permission and Apple org write access, and can be switched off server-side. "Closed beta — ask support to switch it on" sends agents the wrong way. Until Sam finalises the Apple Ads docs, please use neutral wording, e.g.: "Apple Ads tools need the feature on your account (404 otherwise); campaign changes additionally need theapple_ads:writescope and a team member with campaign-management permission — checkget_apple_ads_connection_status." - AGENTS.md "If the three disagree, the docs page wins". For the version the docs page lags (iOS page says 6.17.0, Flutter 11.11.0, Unity 9.10.0 and "2018.3", Android
9.+, Cordova still lists cordova-ios 6.x; Web/RN pages name no version). Make the release tag / package registry authoritative for the version, docs for API usage, and tell the agent to report a mismatch. Same for the integration prompt line "use the SDK version the docs name".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@SpertsyanKM thanks for the review. All points are addressed in 4333789 — could you take another look? This repo
Shared with the other README v2 / AGENTS.md PRs
Repo description is left to you, as agreed. Not merging from our side. |
SpertsyanKM
left a comment
There was a problem hiding this comment.
Re-reviewed 4333789 — the round-1 points are fixed (sdk/* version command, imports, JVM toolchain line, Apple Ads, version source). Verified: tag = Maven latest = 9.8.0; import paths exist; io.qonversion:no-codes is on Maven Central.
Two things I missed in round 1 (both were already fixed on iOS):
-
AGENTS.md:115 — blocker.
sample/src/main/java/io/qonversion/sample/App.javais called "the reference for initialization", but it hardcodes a project key (App.java:17, contradicts AGENTS.md:51 "never reuse a key you saw in a sample"), setsQEnvironment.Sandbox(App.java:30) and a proxy URL (App.java:38-39), and it is Java while the snippets are Kotlin. Suggested:sample/— a Java demo app that initializes the SDK, lists products, purchases and reads entitlements; it runs in the sandbox environment. It is not a reference for initialization:App.javahardcodes a sample project key, setsQEnvironment.Sandboxand a proxy URL. The reference is the Initialize snippet above (the same as in the README).And in README.md:143 add: "It runs in the sandbox environment; for your own initialization, use the Quickstart snippet above."
-
README.md:80-81. "the entitlement is already granted server-side when the link arrives" — same inaccuracy as fixed on iOS. Suggested:
When
handleRedemptionLinkreturns success, the entitlement has already been granted server-side, so you do not add anidentifycall yourself; the redemptionUricarries a single-use token — do not log or display it.
Nits:
- AGENTS.md:111 — "
QONEnvironmenton iOS" is Objective-C only now; suggest "(Qonversion.Environment/QONEnvironmenton iOS,QEnvironmenton Android,Environmentin the wrappers)" — or just name this SDK'sQEnvironment. - PR body line 20 still lists "Kotlin JVM toolchain 17".
Once these are in, it's good to merge from your side — no need for another round from me unless something else changes.
Shared across all nine README v2 / AGENTS.md PRs
- PR body before squash-merge. The body still says reading Apple Ads "is on for all accounts" and changing campaigns "is a closed beta per account". Both are outdated (mcp-server#126). The body becomes the squash commit message, so please update that sentence, or replace the commit body when merging, e.g.: "Apple Ads in MCP: tools need the
apple_adsaccount feature; campaign changes additionally need theapple_ads:writescope and campaign-management permission (mcp-server#126)." - "A refused Apple Ads call means missing access … do not retry" (AGENTS.md). Slightly too absolute:
get_apple_ads_connection_statuscan reportcampaign_management.state: unknown(permission snapshot not landed yet — try later), and an Apple authorization can need reauthorization. Suggested: "A refused Apple Ads call usually means missing access or an Apple authorization that needs attention, not a broken server: callget_apple_ads_connection_status, do not work around it, and tell the human what it reports." Non-blocking; can go together with Sam's final Apple Ads wording.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@SpertsyanKM round 2 is done in e4229e4, CI is green:
I tried to merge as you suggested, but the branch rules block it while your review is still "changes requested". Could you approve (or merge it yourself)? I don't want to use an admin override. |
SpertsyanKM
left a comment
There was a problem hiding this comment.
Re-reviewed e4229e4: all round-2 points are fixed and verified against source. Thanks! Merging.
Tiny follow-up nit (from my own suggestion, sorry): AGENTS.md:116 calls sample/ "a Java demo app", but only App.java is Java, the rest of the sample is Kotlin. Not blocking.
Summary
Files:
README.md,AGENTS.md.checkEntitlements/entitlements). The mode is named out loud, with a link to Analytics Mode.llms.txt, the Qonversion MCP server with the Apple Ads access conditions, the two-step confirmation for destructive tools, and the integration prompt (the docs text, with step 3 taking the SDK version from the release tag or the package registry).AGENTS.mdfor coding agents: how to get the current version instead of one from memory, install, init, first call, docs as markdown, MCP, and what an agent must not do without the human saying yes (keys, mode, live project configuration, destructive MCP tools, environment).Removed on purpose: the Analytics / A/B Experiments / Integrations / Why Qonversion? sections (they duplicate the website and push the install below the fold); long platform guides → a link into the docs; all images except the header.
Also removed in this repository: the Web2App guide (~95 lines) → three lines and a link. The Installation section from the hygiene PR (#870) is kept.
Facts checked
Minimum versions, from this repository's manifests:
minSdkVersion23 ·compileSdk34 —sdk/build.gradleInit and first-call signatures:
sdk/src/main/java/com/qonversion/android/sdk/QonversionConfig.kt,sdk/src/main/java/com/qonversion/android/sdk/Qonversion.kt,sdk/src/main/java/com/qonversion/android/sdk/listeners/QonversionCallback.kt,sdk/src/main/java/com/qonversion/android/sdk/dto/entitlements/QEntitlement.kt.Versions: The install snippet pins the exact current version, 9.8.0 (latest
sdk/*release on 2026-10-12), with "current at the time of writing; check Releases" — instead of9.+. The version badge is filtered tosdk/*, otherwise it shows thenocodes/*tag.Header image
The approved header (logo and platform list, no positioning text) ships in this PR as
.github/assets/sdk-header.png, referenced by a one-line<img>tag on line 1 with a relative path, which GitHub, npm and pub.dev all resolve. The quickstart line count does not move.Links
All 29 URLs in these files checked with
curl -sI -Lon 2026-10-12: 27 return 200, the rest are expected:401https://mcp.qonversion.io/mcp — OAuth endpoint of the MCP server, expected without a token405https://documentation.qonversion.io/mcp — the docs MCP endpoint does not answer GET, it speaks MCPLICENSEexists in this repository (hygiene PRs merged 2026-10-09/10).docs/for-agentsis live.Review
Four independent reviews in the marketing hub (product, marketing, QA, brand), two iterations. Maintainer answers of 2026-10-09 applied here: Apple Ads in MCP: tools need the
apple_adsaccount feature; campaign changes additionally need theapple_ads:writescope and campaign-management permission (mcp-server#126); exact9.8.0instead of9.+; thediscard_*docs-gap note removed fromAGENTS.md.Repository description (settings, not a file)
The repository description shown under the name on GitHub is a setting, so it cannot be part of this PR. Proposed text to set when merging, so the description, the README header and the docs say the same thing:
Current: Android SDK for cross-platform in-app purchase and subscription infrastructure, revenue analytics, engagement automation, and integrations
One command for a maintainer:
gh repo edit qonversion/android-sdk --description "Qonversion Android SDK: in-app purchases confirmed with Google Play, entitlements, and the revenue data behind Apple Ads, A/B tests and analytics.".Maintainer review rounds of 2026-10-13 and 2026-10-14 applied (see the PR comments).
🤖 Generated with Claude Code